aboutsummaryrefslogtreecommitdiff
path: root/src/descriptors.c
diff options
context:
space:
mode:
authorJamie Bullock <jamie@postlude.co.uk>2008-02-15 15:49:49 +0000
committerJamie Bullock <jamie@postlude.co.uk>2008-02-15 15:49:49 +0000
commit26fa6beab516a699ead017f4a2d68b1d861b9561 (patch)
treec8d8c17053b55a7a8aa0c5a91e5a6a7190073bca /src/descriptors.c
parente876da1b38221d8020d81b72926d2dee5c2bdc55 (diff)
downloadLibXtract-26fa6beab516a699ead017f4a2d68b1d861b9561.tar.gz
LibXtract-26fa6beab516a699ead017f4a2d68b1d861b9561.tar.bz2
LibXtract-26fa6beab516a699ead017f4a2d68b1d861b9561.zip
Added new extraction function: xtract_subbands()
Diffstat (limited to 'src/descriptors.c')
-rw-r--r--src/descriptors.c57
1 files changed, 38 insertions, 19 deletions
diff --git a/src/descriptors.c b/src/descriptors.c
index 4460de8..e96f467 100644
--- a/src/descriptors.c
+++ b/src/descriptors.c
@@ -86,7 +86,7 @@ xtract_function_descriptor_t *xtract_make_descriptors(void){
*argv_def = XTRACT_SR_DEFAULT;
*argv_unit = XTRACT_HERTZ;
break;
- /* argc = 2 */;
+ /* argc = 2 */;
case XTRACT_ROLLOFF:
*argv_min = XTRACT_FFT_BANDS_MIN;
*argv_max = XTRACT_FFT_BANDS_MAX;
@@ -97,24 +97,6 @@ xtract_function_descriptor_t *xtract_make_descriptors(void){
*(argv_def + 1) = 95.f;
*(argv_unit + 1) = XTRACT_PERCENT;
break;
- case XTRACT_SPECTRUM:
- *argv_min = XTRACT_SR_LOWER_LIMIT / XTRACT_FFT_BANDS_MIN;
- *argv_max = XTRACT_SR_UPPER_LIMIT / XTRACT_FFT_BANDS_MAX;
- *argv_def = XTRACT_SR_DEFAULT / XTRACT_FFT_BANDS_DEF;
- *argv_unit = XTRACT_HERTZ;
- *(argv_min + 1) = 0;
- *(argv_max + 1) = 3 ;
- *(argv_def + 1) = 0;
- *(argv_unit + 1) = XTRACT_NONE;
- *(argv_min + 2) = 0;
- *(argv_max + 2) = 1;
- *(argv_def + 2) = 0;
- *(argv_unit + 2) = XTRACT_NONE;
- *(argv_min + 3) = 0;
- *(argv_max + 3) = 1;
- *(argv_def + 3) = 0;
- *(argv_unit + 3) = XTRACT_NONE;
- break;
case XTRACT_PEAK_SPECTRUM:
*argv_min = XTRACT_SR_LOWER_LIMIT / 2;
*argv_max = XTRACT_SR_UPPER_LIMIT / 2;
@@ -150,6 +132,43 @@ xtract_function_descriptor_t *xtract_make_descriptors(void){
*(argv_def + 1) = XTRACT_NONE;
*(argv_unit + 1) = XTRACT_NONE;
break;
+ /* argc = 4 */
+ case XTRACT_SPECTRUM:
+ *argv_min = XTRACT_SR_LOWER_LIMIT / XTRACT_FFT_BANDS_MIN;
+ *argv_max = XTRACT_SR_UPPER_LIMIT / XTRACT_FFT_BANDS_MAX;
+ *argv_def = XTRACT_SR_DEFAULT / XTRACT_FFT_BANDS_DEF;
+ *argv_unit = XTRACT_HERTZ;
+ *(argv_min + 1) = 0;
+ *(argv_max + 1) = 3 ;
+ *(argv_def + 1) = 0;
+ *(argv_unit + 1) = XTRACT_NONE;
+ *(argv_min + 2) = 0;
+ *(argv_max + 2) = 1;
+ *(argv_def + 2) = 0;
+ *(argv_unit + 2) = XTRACT_NONE;
+ *(argv_min + 3) = 0;
+ *(argv_max + 3) = 1;
+ *(argv_def + 3) = 0;
+ *(argv_unit + 3) = XTRACT_NONE;
+ break;
+ case XTRACT_SUBBANDS:
+ *argv_min = XTRACT_ANY;
+ *argv_max = XTRACT_ANY;
+ *argv_def = XTRACT_MEAN;
+ *argv_unit = XTRACT_NONE;
+ *(argv_min + 1) = 1;
+ *(argv_max + 1) = 16384;
+ *(argv_def + 1) = 4;
+ *(argv_unit + 1) = XTRACT_NONE;
+ *(argv_min + 2) = 0;
+ *(argv_max + 2) = 32;
+ *(argv_def + 2) = 0;
+ *(argv_unit + 2) = XTRACT_NONE;
+ *(argv_min + 3) = 0;
+ *(argv_max + 3) = 1;
+ *(argv_def + 3) = 0;
+ *(argv_unit + 3) = XTRACT_NONE;
+ break;
case XTRACT_BARK_COEFFICIENTS:
/* BARK_COEFFICIENTS is special because argc = BARK_BANDS */
case XTRACT_WINDOWED: