aboutsummaryrefslogtreecommitdiff
path: root/src/descriptors.c
diff options
context:
space:
mode:
authorJamie Bullock <jamie@jamiebullock.com>2013-01-07 16:27:15 +0000
committerJamie Bullock <jamie@jamiebullock.com>2013-01-07 16:39:29 +0000
commit144e7f8668166ee1779ad304cc5ac94d8e525529 (patch)
tree089b2bbbcf15ee8bdde390a4d270e4812e7e2228 /src/descriptors.c
parent0f46938156dedf13032bdb1fc914a63d46bae558 (diff)
downloadLibXtract-144e7f8668166ee1779ad304cc5ac94d8e525529.tar.gz
LibXtract-144e7f8668166ee1779ad304cc5ac94d8e525529.tar.bz2
LibXtract-144e7f8668166ee1779ad304cc5ac94d8e525529.zip
added Ooura implementation to repository
Diffstat (limited to 'src/descriptors.c')
-rw-r--r--src/descriptors.c2356
1 files changed, 1186 insertions, 1170 deletions
diff --git a/src/descriptors.c b/src/descriptors.c
index 892a899..1072d42 100644
--- a/src/descriptors.c
+++ b/src/descriptors.c
@@ -1,5 +1,5 @@
/* libxtract feature extraction library
- *
+ *
* Copyright (C) 2006 Jamie Bullock
*
* This program is free software; you can redistribute it and/or modify
@@ -14,7 +14,7 @@
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
* USA.
*/
@@ -24,13 +24,14 @@
#include <string.h>
#define XTRACT
-xtract_function_descriptor_t *xtract_make_descriptors(void){
+xtract_function_descriptor_t *xtract_make_descriptors(void)
+{
int f , F;
- char *name, *p_name, *desc, *p_desc, *author;
+ char *name, *p_name, *desc, *p_desc, *author;
float *argv_min, *argv_max, *argv_def, *result_min, *result_max;
int *argc, *year, *argv_donor;
- xtract_vector_t *data_format, *result_format;
+ xtract_vector_t *data_format, *result_format;
xtract_unit_t *data_unit, *argv_unit, *result_unit;
xtract_bool_t *is_scalar, *is_delta;
xtract_function_descriptor_t *fd, *d;
@@ -42,7 +43,8 @@ xtract_function_descriptor_t *xtract_make_descriptors(void){
/* FIX - this file probably needs a rewrite for readability */
- while(f--){
+ while(f--)
+ {
d = &fd[f];
d->id = f;
@@ -54,396 +56,400 @@ xtract_function_descriptor_t *xtract_make_descriptors(void){
argv_def = &d->argv.def[0];
argv_unit = &d->argv.unit[0];
- switch (f) {
+ switch (f)
+ {
/* argc = 1 */
- case XTRACT_VARIANCE:
- case XTRACT_SPECTRAL_VARIANCE:
- case XTRACT_STANDARD_DEVIATION:
- case XTRACT_DIFFERENCE_VECTOR:
- case XTRACT_AVERAGE_DEVIATION:
- case XTRACT_SPECTRAL_STANDARD_DEVIATION:
+ case XTRACT_VARIANCE:
+ case XTRACT_SPECTRAL_VARIANCE:
+ case XTRACT_STANDARD_DEVIATION:
+ case XTRACT_DIFFERENCE_VECTOR:
+ case XTRACT_AVERAGE_DEVIATION:
+ case XTRACT_SPECTRAL_STANDARD_DEVIATION:
/* case XTRACT_SPECTRAL_AVERAGE_DEVIATION: */
- case XTRACT_LOWEST_VALUE:
- case XTRACT_TONALITY:
- case XTRACT_MFCC:
- case XTRACT_LPC:
- case XTRACT_LPCC:
- *argv_min = XTRACT_ANY;
- *argv_max = XTRACT_ANY;
- *argv_def = XTRACT_ANY;
- *argv_unit = XTRACT_DBFS;
- break;
- case XTRACT_SPECTRAL_INHARMONICITY:
- *argv_min = 0.f;
- *argv_max = XTRACT_SR_UPPER_LIMIT / 2;
- *argv_def = XTRACT_FUNDAMENTAL_DEFAULT;
- *argv_unit = XTRACT_HERTZ;
- break;
- case XTRACT_F0:
- case XTRACT_FAILSAFE_F0:
- *argv_min = XTRACT_SR_LOWER_LIMIT;
- *argv_max = XTRACT_SR_UPPER_LIMIT;
- *argv_def = XTRACT_SR_DEFAULT;
- *argv_unit = XTRACT_HERTZ;
- break;
- case XTRACT_FLATNESS_DB:
- *argv_min = 0;
- *argv_max = 1.0;
- *argv_def = XTRACT_ANY;
- *argv_unit = XTRACT_DBFS;
- break;
+ case XTRACT_LOWEST_VALUE:
+ case XTRACT_TONALITY:
+ case XTRACT_MFCC:
+ case XTRACT_LPC:
+ case XTRACT_LPCC:
+ *argv_min = XTRACT_ANY;
+ *argv_max = XTRACT_ANY;
+ *argv_def = XTRACT_ANY;
+ *argv_unit = XTRACT_DBFS;
+ break;
+ case XTRACT_SPECTRAL_INHARMONICITY:
+ *argv_min = 0.f;
+ *argv_max = XTRACT_SR_UPPER_LIMIT / 2;
+ *argv_def = XTRACT_FUNDAMENTAL_DEFAULT;
+ *argv_unit = XTRACT_HERTZ;
+ break;
+ case XTRACT_F0:
+ case XTRACT_FAILSAFE_F0:
+ *argv_min = XTRACT_SR_LOWER_LIMIT;
+ *argv_max = XTRACT_SR_UPPER_LIMIT;
+ *argv_def = XTRACT_SR_DEFAULT;
+ *argv_unit = XTRACT_HERTZ;
+ break;
+ case XTRACT_FLATNESS_DB:
+ *argv_min = 0;
+ *argv_max = 1.0;
+ *argv_def = XTRACT_ANY;
+ *argv_unit = XTRACT_DBFS;
+ break;
/* argc = 2 */;
- case XTRACT_ROLLOFF:
- *argv_min = XTRACT_FFT_BANDS_MIN;
- *argv_max = XTRACT_FFT_BANDS_MAX;
- *argv_def = XTRACT_SPEC_BW_DEF ;
- *argv_unit = XTRACT_HERTZ;
- *(argv_min + 1) = 0.f;
- *(argv_max + 1) = 100.f;
- *(argv_def + 1) = 95.f;
- *(argv_unit + 1) = XTRACT_PERCENT;
- break;
- case XTRACT_PEAK_SPECTRUM:
- *argv_min = XTRACT_SR_LOWER_LIMIT / 2;
- *argv_max = XTRACT_SR_UPPER_LIMIT / 2;
- *argv_def = XTRACT_SR_DEFAULT / 2;
- *argv_unit = XTRACT_HERTZ;
- *(argv_min + 1) = 0.f;
- *(argv_max + 1) = 100.f ;
- *(argv_def + 1) = 10.f ;
- *(argv_unit + 1) = XTRACT_PERCENT;
- break;
- case XTRACT_HARMONIC_SPECTRUM:
- *argv_min = 0.f;
- *argv_max = XTRACT_SR_UPPER_LIMIT / 2;
- *argv_def = XTRACT_FUNDAMENTAL_DEFAULT;
- *argv_unit = XTRACT_HERTZ;
- *(argv_min + 1) = 0.f;
- *(argv_max + 1) = 1.f ;
- *(argv_def + 1) = .1f ;
- *(argv_unit + 1) = XTRACT_NONE;
- break;
- case XTRACT_NOISINESS:
- case XTRACT_SKEWNESS:
- case XTRACT_KURTOSIS:
- case XTRACT_SPECTRAL_SKEWNESS:
- case XTRACT_SPECTRAL_KURTOSIS:
- case XTRACT_CREST:
- *argv_min = XTRACT_NONE;
- *argv_max = XTRACT_NONE;
- *argv_def = XTRACT_NONE;
- *argv_unit = XTRACT_NONE;
- *(argv_min + 1) = XTRACT_NONE;
- *(argv_max + 1) = XTRACT_NONE;
- *(argv_def + 1) = XTRACT_NONE;
- *(argv_unit + 1) = XTRACT_NONE;
- break;
+ case XTRACT_ROLLOFF:
+ *argv_min = XTRACT_FFT_BANDS_MIN;
+ *argv_max = XTRACT_FFT_BANDS_MAX;
+ *argv_def = XTRACT_SPEC_BW_DEF ;
+ *argv_unit = XTRACT_HERTZ;
+ *(argv_min + 1) = 0.f;
+ *(argv_max + 1) = 100.f;
+ *(argv_def + 1) = 95.f;
+ *(argv_unit + 1) = XTRACT_PERCENT;
+ break;
+ case XTRACT_PEAK_SPECTRUM:
+ *argv_min = XTRACT_SR_LOWER_LIMIT / 2;
+ *argv_max = XTRACT_SR_UPPER_LIMIT / 2;
+ *argv_def = XTRACT_SR_DEFAULT / 2;
+ *argv_unit = XTRACT_HERTZ;
+ *(argv_min + 1) = 0.f;
+ *(argv_max + 1) = 100.f ;
+ *(argv_def + 1) = 10.f ;
+ *(argv_unit + 1) = XTRACT_PERCENT;
+ break;
+ case XTRACT_HARMONIC_SPECTRUM:
+ *argv_min = 0.f;
+ *argv_max = XTRACT_SR_UPPER_LIMIT / 2;
+ *argv_def = XTRACT_FUNDAMENTAL_DEFAULT;
+ *argv_unit = XTRACT_HERTZ;
+ *(argv_min + 1) = 0.f;
+ *(argv_max + 1) = 1.f ;
+ *(argv_def + 1) = .1f ;
+ *(argv_unit + 1) = XTRACT_NONE;
+ break;
+ case XTRACT_NOISINESS:
+ case XTRACT_SKEWNESS:
+ case XTRACT_KURTOSIS:
+ case XTRACT_SPECTRAL_SKEWNESS:
+ case XTRACT_SPECTRAL_KURTOSIS:
+ case XTRACT_CREST:
+ *argv_min = XTRACT_NONE;
+ *argv_max = XTRACT_NONE;
+ *argv_def = XTRACT_NONE;
+ *argv_unit = XTRACT_NONE;
+ *(argv_min + 1) = XTRACT_NONE;
+ *(argv_max + 1) = XTRACT_NONE;
+ *(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) = XTRACT_ANY;
- *(argv_def + 3) = 0;
- *(argv_unit + 3) = XTRACT_BINS;
- break;
- case XTRACT_BARK_COEFFICIENTS:
- /* BARK_COEFFICIENTS is special because argc = BARK_BANDS */
- case XTRACT_WINDOWED:
- /* WINDOWED is special because argc = window size = N */
- default:
- *argv_min = XTRACT_NONE;
- *argv_max = XTRACT_NONE;
- *argv_def = XTRACT_NONE;
- *argv_unit = XTRACT_NONE;
- 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_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) = XTRACT_ANY;
+ *(argv_def + 3) = 0;
+ *(argv_unit + 3) = XTRACT_BINS;
+ break;
+ case XTRACT_BARK_COEFFICIENTS:
+ /* BARK_COEFFICIENTS is special because argc = BARK_BANDS */
+ case XTRACT_WINDOWED:
+ /* WINDOWED is special because argc = window size = N */
+ default:
+ *argv_min = XTRACT_NONE;
+ *argv_max = XTRACT_NONE;
+ *argv_def = XTRACT_NONE;
+ *argv_unit = XTRACT_NONE;
+ break;
}
argv_donor = &d->argv.donor[0];
- switch (f) {
+ switch (f)
+ {
/* argc = 1 */
- case XTRACT_VARIANCE:
- *argv_donor = XTRACT_MEAN;
- break;
- case XTRACT_SPECTRAL_VARIANCE:
- *argv_donor = XTRACT_SPECTRAL_MEAN;
- break;
- case XTRACT_STANDARD_DEVIATION:
- *argv_donor = XTRACT_VARIANCE;
- break;
- case XTRACT_AVERAGE_DEVIATION:
- *argv_donor = XTRACT_MEAN;
- break;
- case XTRACT_SPECTRAL_STANDARD_DEVIATION:
- *argv_donor = XTRACT_SPECTRAL_VARIANCE;
- break;
+ case XTRACT_VARIANCE:
+ *argv_donor = XTRACT_MEAN;
+ break;
+ case XTRACT_SPECTRAL_VARIANCE:
+ *argv_donor = XTRACT_SPECTRAL_MEAN;
+ break;
+ case XTRACT_STANDARD_DEVIATION:
+ *argv_donor = XTRACT_VARIANCE;
+ break;
+ case XTRACT_AVERAGE_DEVIATION:
+ *argv_donor = XTRACT_MEAN;
+ break;
+ case XTRACT_SPECTRAL_STANDARD_DEVIATION:
+ *argv_donor = XTRACT_SPECTRAL_VARIANCE;
+ break;
/* case XTRACT_SPECTRAL_AVERAGE_DEVIATION:
*argv_donor = XTRACT_SPECTRAL_MEAN;
break; */
- case XTRACT_SPECTRAL_INHARMONICITY:
- *argv_donor = XTRACT_FAILSAFE_F0;
- break;
- case XTRACT_FLATNESS_DB:
- *argv_donor = XTRACT_FLATNESS;
- break;
- case XTRACT_TONALITY:
- *argv_donor = XTRACT_FLATNESS_DB;
- break;
- case XTRACT_LOWEST_VALUE:
- case XTRACT_F0:
- case XTRACT_FAILSAFE_F0:
- *argv_donor = XTRACT_ANY;
- break;
- case XTRACT_MFCC:
- *argv_donor = XTRACT_INIT_MFCC;
- break;
- /* argc = 2 */;
- case XTRACT_ROLLOFF:
- case XTRACT_PEAK_SPECTRUM:
- case XTRACT_FLUX:
- case XTRACT_LNORM:
- *argv_donor = XTRACT_ANY;
- *(argv_donor + 1) = XTRACT_ANY;
- break;
- case XTRACT_SKEWNESS:
- case XTRACT_KURTOSIS:
- *argv_donor = XTRACT_MEAN;
- *(argv_donor + 1) = XTRACT_STANDARD_DEVIATION;
- break;
- case XTRACT_SPECTRAL_SKEWNESS:
- case XTRACT_SPECTRAL_KURTOSIS:
- *argv_donor = XTRACT_SPECTRAL_MEAN;
- *(argv_donor + 1) = XTRACT_SPECTRAL_STANDARD_DEVIATION;
- break;
- case XTRACT_HARMONIC_SPECTRUM:
- *argv_donor = XTRACT_FAILSAFE_F0;
- *(argv_donor + 1) = XTRACT_ANY;
- break;
- case XTRACT_NOISINESS:
- *argv_donor = XTRACT_SUM;
- *(argv_donor + 1) = XTRACT_SUM;
- break;
- case XTRACT_CREST:
- *argv_donor = XTRACT_HIGHEST_VALUE;
- *(argv_donor + 1) = XTRACT_MEAN;
- break;
- /* argc = 4 */
- case XTRACT_SPECTRUM:
- *argv_donor = XTRACT_ANY;
- *(argv_donor + 1) = XTRACT_ANY;
- *(argv_donor + 2) = XTRACT_ANY;
- *(argv_donor + 3) = XTRACT_ANY;
- break;
- case XTRACT_SUBBANDS:
- *argv_donor = XTRACT_ANY;
- *(argv_donor + 1) = XTRACT_ANY;
- *(argv_donor + 2) = XTRACT_ANY;
- *(argv_donor + 3) = XTRACT_ANY;
- break;
+ case XTRACT_SPECTRAL_INHARMONICITY:
+ *argv_donor = XTRACT_FAILSAFE_F0;
+ break;
+ case XTRACT_FLATNESS_DB:
+ *argv_donor = XTRACT_FLATNESS;
+ break;
+ case XTRACT_TONALITY:
+ *argv_donor = XTRACT_FLATNESS_DB;
+ break;
+ case XTRACT_LOWEST_VALUE:
+ case XTRACT_F0:
+ case XTRACT_FAILSAFE_F0:
+ *argv_donor = XTRACT_ANY;
+ break;
+ case XTRACT_MFCC:
+ *argv_donor = XTRACT_INIT_MFCC;
+ break;
+ /* argc = 2 */;
+ case XTRACT_ROLLOFF:
+ case XTRACT_PEAK_SPECTRUM:
+ case XTRACT_FLUX:
+ case XTRACT_LNORM:
+ *argv_donor = XTRACT_ANY;
+ *(argv_donor + 1) = XTRACT_ANY;
+ break;
+ case XTRACT_SKEWNESS:
+ case XTRACT_KURTOSIS:
+ *argv_donor = XTRACT_MEAN;
+ *(argv_donor + 1) = XTRACT_STANDARD_DEVIATION;
+ break;
+ case XTRACT_SPECTRAL_SKEWNESS:
+ case XTRACT_SPECTRAL_KURTOSIS:
+ *argv_donor = XTRACT_SPECTRAL_MEAN;
+ *(argv_donor + 1) = XTRACT_SPECTRAL_STANDARD_DEVIATION;
+ break;
+ case XTRACT_HARMONIC_SPECTRUM:
+ *argv_donor = XTRACT_FAILSAFE_F0;
+ *(argv_donor + 1) = XTRACT_ANY;
+ break;
+ case XTRACT_NOISINESS:
+ *argv_donor = XTRACT_SUM;
+ *(argv_donor + 1) = XTRACT_SUM;
+ break;
+ case XTRACT_CREST:
+ *argv_donor = XTRACT_HIGHEST_VALUE;
+ *(argv_donor + 1) = XTRACT_MEAN;
+ break;
+ /* argc = 4 */
+ case XTRACT_SPECTRUM:
+ *argv_donor = XTRACT_ANY;
+ *(argv_donor + 1) = XTRACT_ANY;
+ *(argv_donor + 2) = XTRACT_ANY;
+ *(argv_donor + 3) = XTRACT_ANY;
+ break;
+ case XTRACT_SUBBANDS:
+ *argv_donor = XTRACT_ANY;
+ *(argv_donor + 1) = XTRACT_ANY;
+ *(argv_donor + 2) = XTRACT_ANY;
+ *(argv_donor + 3) = XTRACT_ANY;
+ break;
/* BARK_BANDS */
- case XTRACT_BARK_COEFFICIENTS:
- *argv_donor = XTRACT_INIT_BARK;
- break;
- case XTRACT_WINDOWED:
- *argv_donor = XTRACT_INIT_WINDOWED;
- break;
- default:
- *argv_donor = XTRACT_ANY;
- break;
+ case XTRACT_BARK_COEFFICIENTS:
+ *argv_donor = XTRACT_INIT_BARK;
+ break;
+ case XTRACT_WINDOWED:
+ *argv_donor = XTRACT_INIT_WINDOWED;
+ break;
+ default:
+ *argv_donor = XTRACT_ANY;
+ break;
}
data_format = &d->data.format;
- switch(f){
+ switch(f)
+ {
- case XTRACT_MEAN:
- case XTRACT_VARIANCE:
- case XTRACT_STANDARD_DEVIATION:
- case XTRACT_AVERAGE_DEVIATION:
- case XTRACT_SKEWNESS:
- case XTRACT_KURTOSIS:
- case XTRACT_LOWEST_VALUE:
- case XTRACT_HIGHEST_VALUE:
- case XTRACT_SUM:
- case XTRACT_WINDOWED:
- *data_format = XTRACT_ARBITRARY_SERIES;
- break;
- case XTRACT_SPECTRAL_MEAN:
- case XTRACT_SPECTRAL_VARIANCE:
- case XTRACT_SPECTRAL_STANDARD_DEVIATION:
+ case XTRACT_MEAN:
+ case XTRACT_VARIANCE:
+ case XTRACT_STANDARD_DEVIATION:
+ case XTRACT_AVERAGE_DEVIATION:
+ case XTRACT_SKEWNESS:
+ case XTRACT_KURTOSIS:
+ case XTRACT_LOWEST_VALUE:
+ case XTRACT_HIGHEST_VALUE:
+ case XTRACT_SUM:
+ case XTRACT_WINDOWED:
+ *data_format = XTRACT_ARBITRARY_SERIES;
+ break;
+ case XTRACT_SPECTRAL_MEAN:
+ case XTRACT_SPECTRAL_VARIANCE:
+ case XTRACT_SPECTRAL_STANDARD_DEVIATION:
/* case XTRACT_SPECTRAL_AVERAGE_DEVIATION: */
- case XTRACT_SPECTRAL_SKEWNESS:
- case XTRACT_SPECTRAL_KURTOSIS:
- case XTRACT_SPECTRAL_CENTROID:
- case XTRACT_SPECTRAL_SLOPE:
- *data_format = XTRACT_SPECTRAL;
- break;
- case XTRACT_ROLLOFF:
- case XTRACT_NOISINESS:
- case XTRACT_BARK_COEFFICIENTS:
- case XTRACT_CREST:
- case XTRACT_IRREGULARITY_K:
- case XTRACT_IRREGULARITY_J:
- case XTRACT_SMOOTHNESS:
- case XTRACT_FLATNESS:
- case XTRACT_SPREAD:
- case XTRACT_POWER:
- case XTRACT_HPS:
- case XTRACT_PEAK_SPECTRUM:
- case XTRACT_SUBBANDS:
- case XTRACT_MFCC:
- *data_format = XTRACT_SPECTRAL_MAGNITUDES;
- break;
- case XTRACT_LPC:
- *data_format = XTRACT_AUTOCORRELATION_COEFFS;
- break;
- case XTRACT_LPCC:
- *data_format = XTRACT_LPC_COEFFS;
- break;
- case XTRACT_SPECTRAL_INHARMONICITY:
- case XTRACT_HARMONIC_SPECTRUM:
- *data_format = XTRACT_SPECTRAL_PEAKS;
- break;
- case XTRACT_NONZERO_COUNT:
- *data_format = XTRACT_SPECTRAL_PEAKS_MAGNITUDES;
- break;
- case XTRACT_F0:
- case XTRACT_FAILSAFE_F0:
- case XTRACT_SPECTRUM:
- case XTRACT_AUTOCORRELATION:
- case XTRACT_AUTOCORRELATION_FFT:
- case XTRACT_DCT:
- case XTRACT_AMDF:
- case XTRACT_ASDF:
- case XTRACT_ZCR:
- case XTRACT_RMS_AMPLITUDE:
- case XTRACT_FLUX:
- case XTRACT_LNORM:
- *data_format = XTRACT_AUDIO_SAMPLES;
- break;
- case XTRACT_TONALITY:
- case XTRACT_FLATNESS_DB:
- *data_format = XTRACT_NO_DATA;
- break;
- case XTRACT_TRISTIMULUS_1:
- case XTRACT_TRISTIMULUS_2:
- case XTRACT_TRISTIMULUS_3:
- case XTRACT_ODD_EVEN_RATIO:
- *data_format = XTRACT_SPECTRAL_HARMONICS_MAGNITUDES;
- break;
- case XTRACT_LOUDNESS:
- case XTRACT_SHARPNESS:
- *data_format = XTRACT_BARK_COEFFS;
- break;
- case XTRACT_DIFFERENCE_VECTOR:
- *data_format = XTRACT_SUBFRAMES;
- break;
- case XTRACT_ATTACK_TIME:
- case XTRACT_DECAY_TIME:
- default:
- *data_format = XTRACT_NO_DATA;
- break;
+ case XTRACT_SPECTRAL_SKEWNESS:
+ case XTRACT_SPECTRAL_KURTOSIS:
+ case XTRACT_SPECTRAL_CENTROID:
+ case XTRACT_SPECTRAL_SLOPE:
+ *data_format = XTRACT_SPECTRAL;
+ break;
+ case XTRACT_ROLLOFF:
+ case XTRACT_NOISINESS:
+ case XTRACT_BARK_COEFFICIENTS:
+ case XTRACT_CREST:
+ case XTRACT_IRREGULARITY_K:
+ case XTRACT_IRREGULARITY_J:
+ case XTRACT_SMOOTHNESS:
+ case XTRACT_FLATNESS:
+ case XTRACT_SPREAD:
+ case XTRACT_POWER:
+ case XTRACT_HPS:
+ case XTRACT_PEAK_SPECTRUM:
+ case XTRACT_SUBBANDS:
+ case XTRACT_MFCC:
+ *data_format = XTRACT_SPECTRAL_MAGNITUDES;
+ break;
+ case XTRACT_LPC:
+ *data_format = XTRACT_AUTOCORRELATION_COEFFS;
+ break;
+ case XTRACT_LPCC:
+ *data_format = XTRACT_LPC_COEFFS;
+ break;
+ case XTRACT_SPECTRAL_INHARMONICITY:
+ case XTRACT_HARMONIC_SPECTRUM:
+ *data_format = XTRACT_SPECTRAL_PEAKS;
+ break;
+ case XTRACT_NONZERO_COUNT:
+ *data_format = XTRACT_SPECTRAL_PEAKS_MAGNITUDES;
+ break;
+ case XTRACT_F0:
+ case XTRACT_FAILSAFE_F0:
+ case XTRACT_SPECTRUM:
+ case XTRACT_AUTOCORRELATION:
+ case XTRACT_AUTOCORRELATION_FFT:
+ case XTRACT_DCT:
+ case XTRACT_AMDF:
+ case XTRACT_ASDF:
+ case XTRACT_ZCR:
+ case XTRACT_RMS_AMPLITUDE:
+ case XTRACT_FLUX:
+ case XTRACT_LNORM:
+ *data_format = XTRACT_AUDIO_SAMPLES;
+ break;
+ case XTRACT_TONALITY:
+ case XTRACT_FLATNESS_DB:
+ *data_format = XTRACT_NO_DATA;
+ break;
+ case XTRACT_TRISTIMULUS_1:
+ case XTRACT_TRISTIMULUS_2:
+ case XTRACT_TRISTIMULUS_3:
+ case XTRACT_ODD_EVEN_RATIO:
+ *data_format = XTRACT_SPECTRAL_HARMONICS_MAGNITUDES;
+ break;
+ case XTRACT_LOUDNESS:
+ case XTRACT_SHARPNESS:
+ *data_format = XTRACT_BARK_COEFFS;
+ break;
+ case XTRACT_DIFFERENCE_VECTOR:
+ *data_format = XTRACT_SUBFRAMES;
+ break;
+ case XTRACT_ATTACK_TIME:
+ case XTRACT_DECAY_TIME:
+ default:
+ *data_format = XTRACT_NO_DATA;
+ break;
}
data_unit = &d->data.unit;
- switch(f){
+ switch(f)
+ {
- case XTRACT_MEAN:
- case XTRACT_VARIANCE:
- case XTRACT_STANDARD_DEVIATION:
- case XTRACT_AVERAGE_DEVIATION:
- case XTRACT_SKEWNESS:
- case XTRACT_KURTOSIS:
- case XTRACT_LOWEST_VALUE:
- case XTRACT_HIGHEST_VALUE:
- case XTRACT_SUM:
- case XTRACT_ZCR:
- case XTRACT_PEAK_SPECTRUM:
- case XTRACT_TRISTIMULUS_1:
- case XTRACT_TRISTIMULUS_2:
- case XTRACT_TRISTIMULUS_3:
- case XTRACT_DCT:
- case XTRACT_AMDF:
- case XTRACT_ASDF:
- case XTRACT_IRREGULARITY_K:
- case XTRACT_IRREGULARITY_J:
- case XTRACT_ATTACK_TIME:
- case XTRACT_DECAY_TIME:
- case XTRACT_DIFFERENCE_VECTOR:
- case XTRACT_FLUX:
- case XTRACT_LNORM:
- case XTRACT_F0:
- case XTRACT_FAILSAFE_F0:
- case XTRACT_MFCC:
- case XTRACT_AUTOCORRELATION:
- case XTRACT_AUTOCORRELATION_FFT:
- case XTRACT_ROLLOFF:
- case XTRACT_NOISINESS:
- case XTRACT_CREST:
- case XTRACT_FLATNESS:
- case XTRACT_FLATNESS_DB:
- case XTRACT_POWER:
- case XTRACT_BARK_COEFFICIENTS:
- case XTRACT_RMS_AMPLITUDE:
- case XTRACT_SMOOTHNESS:
- case XTRACT_SPREAD:
- case XTRACT_SHARPNESS:
- case XTRACT_HPS:
- case XTRACT_SPECTRUM:
- case XTRACT_TONALITY:
- case XTRACT_LOUDNESS:
- case XTRACT_NONZERO_COUNT:
- case XTRACT_LPC:
- case XTRACT_LPCC:
- case XTRACT_WINDOWED:
- case XTRACT_SUBBANDS:
- *data_unit = XTRACT_ANY;
- break;
- case XTRACT_SPECTRAL_MEAN:
- case XTRACT_SPECTRAL_VARIANCE:
- case XTRACT_SPECTRAL_STANDARD_DEVIATION:
+ case XTRACT_MEAN:
+ case XTRACT_VARIANCE:
+ case XTRACT_STANDARD_DEVIATION:
+ case XTRACT_AVERAGE_DEVIATION:
+ case XTRACT_SKEWNESS:
+ case XTRACT_KURTOSIS:
+ case XTRACT_LOWEST_VALUE:
+ case XTRACT_HIGHEST_VALUE:
+ case XTRACT_SUM:
+ case XTRACT_ZCR:
+ case XTRACT_PEAK_SPECTRUM:
+ case XTRACT_TRISTIMULUS_1:
+ case XTRACT_TRISTIMULUS_2:
+ case XTRACT_TRISTIMULUS_3:
+ case XTRACT_DCT:
+ case XTRACT_AMDF:
+ case XTRACT_ASDF:
+ case XTRACT_IRREGULARITY_K:
+ case XTRACT_IRREGULARITY_J:
+ case XTRACT_ATTACK_TIME:
+ case XTRACT_DECAY_TIME:
+ case XTRACT_DIFFERENCE_VECTOR:
+ case XTRACT_FLUX:
+ case XTRACT_LNORM:
+ case XTRACT_F0:
+ case XTRACT_FAILSAFE_F0:
+ case XTRACT_MFCC:
+ case XTRACT_AUTOCORRELATION:
+ case XTRACT_AUTOCORRELATION_FFT:
+ case XTRACT_ROLLOFF:
+ case XTRACT_NOISINESS:
+ case XTRACT_CREST:
+ case XTRACT_FLATNESS:
+ case XTRACT_FLATNESS_DB:
+ case XTRACT_POWER:
+ case XTRACT_BARK_COEFFICIENTS:
+ case XTRACT_RMS_AMPLITUDE:
+ case XTRACT_SMOOTHNESS:
+ case XTRACT_SPREAD:
+ case XTRACT_SHARPNESS:
+ case XTRACT_HPS:
+ case XTRACT_SPECTRUM:
+ case XTRACT_TONALITY:
+ case XTRACT_LOUDNESS:
+ case XTRACT_NONZERO_COUNT:
+ case XTRACT_LPC:
+ case XTRACT_LPCC:
+ case XTRACT_WINDOWED:
+ case XTRACT_SUBBANDS:
+ *data_unit = XTRACT_ANY;
+ break;
+ case XTRACT_SPECTRAL_MEAN:
+ case XTRACT_SPECTRAL_VARIANCE:
+ case XTRACT_SPECTRAL_STANDARD_DEVIATION:
/* case XTRACT_SPECTRAL_AVERAGE_DEVIATION: */
- case XTRACT_SPECTRAL_SKEWNESS:
- case XTRACT_SPECTRAL_KURTOSIS:
- case XTRACT_SPECTRAL_CENTROID:
- case XTRACT_SPECTRAL_SLOPE:
- case XTRACT_HARMONIC_SPECTRUM:
- case XTRACT_SPECTRAL_INHARMONICITY:
- *data_unit = XTRACT_ANY_AMPLITUDE_HERTZ;
- break;
- case XTRACT_ODD_EVEN_RATIO:
- *data_unit = XTRACT_HERTZ;
- break;
+ case XTRACT_SPECTRAL_SKEWNESS:
+ case XTRACT_SPECTRAL_KURTOSIS:
+ case XTRACT_SPECTRAL_CENTROID:
+ case XTRACT_SPECTRAL_SLOPE:
+ case XTRACT_HARMONIC_SPECTRUM:
+ case XTRACT_SPECTRAL_INHARMONICITY:
+ *data_unit = XTRACT_ANY_AMPLITUDE_HERTZ;
+ break;
+ case XTRACT_ODD_EVEN_RATIO:
+ *data_unit = XTRACT_HERTZ;
+ break;
}
name = d->algo.name;
@@ -456,864 +462,872 @@ xtract_function_descriptor_t *xtract_make_descriptors(void){
strcpy(author, "");
*year = 0;
- switch(f){
- case XTRACT_MEAN:
- strcpy(name, "mean");
- strcpy(p_name, "Mean");
- strcpy(desc, "Extract the mean of an input vector");
- strcpy(p_desc, "Extract the mean of a range of values");
- strcpy(author, "");
- break;
- case XTRACT_VARIANCE:
- strcpy(name, "variance");
- strcpy(p_name, "Variance");
- strcpy(desc, "Extract the variance of an input vector");
- strcpy(p_desc, "Extract the variance of a range of values");
- strcpy(author, "");
- break;
- case XTRACT_STANDARD_DEVIATION:
- strcpy(name, "standard_deviation");
- strcpy(p_name, "Standard Deviation");
- strcpy(desc,
- "Extract the standard deviation of an input vector");
- strcpy(p_desc,
- "Extract the standard deviation of a range of values");
- strcpy(author, "");
- break;
- case XTRACT_AVERAGE_DEVIATION:
- strcpy(name, "average_deviation");
- strcpy(p_name, "Average Deviation");
- strcpy(desc,
- "Extract the average deviation of an input vector");
- strcpy(p_desc,
- "Extract the average deviation of a range of values");
- strcpy(author, "");
- break;
- case XTRACT_SKEWNESS:
- strcpy(name, "skewness");
- strcpy(p_name, "Skewness");
- strcpy(desc,
- "Extract the skewness of an input vector");
- strcpy(p_desc,
- "Extract the skewness of a range of values");
- strcpy(author, "");
- break;
- case XTRACT_KURTOSIS:
- strcpy(name, "kurtosis");
- strcpy(p_name, "Kurtosis");
- strcpy(desc,
- "Extract the kurtosis of an input vector");
- strcpy(p_desc,
- "Extract the kurtosis of a range of values");
- strcpy(author, "");
- break;
- case XTRACT_SPECTRAL_MEAN:
- strcpy(name, "spectral_mean");
- strcpy(p_name, "Spectral Mean");
- strcpy(desc, "Extract the mean of an input spectrum");
- strcpy(p_desc, "Extract the mean of an audio spectrum");
- strcpy(author, "");
- break;
- case XTRACT_SPECTRAL_VARIANCE:
- strcpy(name, "spectral_variance");
- strcpy(p_name, "Spectral Variance");
- strcpy(desc, "Extract the variance of an input spectrum");
- strcpy(p_desc, "Extract the variance of an audio spectrum");
- strcpy(author, "");
- break;
- case XTRACT_SPECTRAL_STANDARD_DEVIATION:
- strcpy(name, "spectral_standard_deviation");
- strcpy(p_name, "Spectral Standard Deviation");
- strcpy(desc,
- "Extract the standard deviation of an input spectrum");
- strcpy(p_desc,
- "Extract the standard deviation of an audio spectrum");
- strcpy(author, "");
- break;
+ switch(f)
+ {
+ case XTRACT_MEAN:
+ strcpy(name, "mean");
+ strcpy(p_name, "Mean");
+ strcpy(desc, "Extract the mean of an input vector");
+ strcpy(p_desc, "Extract the mean of a range of values");
+ strcpy(author, "");
+ break;
+ case XTRACT_VARIANCE:
+ strcpy(name, "variance");
+ strcpy(p_name, "Variance");
+ strcpy(desc, "Extract the variance of an input vector");
+ strcpy(p_desc, "Extract the variance of a range of values");
+ strcpy(author, "");
+ break;
+ case XTRACT_STANDARD_DEVIATION:
+ strcpy(name, "standard_deviation");
+ strcpy(p_name, "Standard Deviation");
+ strcpy(desc,
+ "Extract the standard deviation of an input vector");
+ strcpy(p_desc,
+ "Extract the standard deviation of a range of values");
+ strcpy(author, "");
+ break;
+ case XTRACT_AVERAGE_DEVIATION:
+ strcpy(name, "average_deviation");
+ strcpy(p_name, "Average Deviation");
+ strcpy(desc,
+ "Extract the average deviation of an input vector");
+ strcpy(p_desc,
+ "Extract the average deviation of a range of values");
+ strcpy(author, "");
+ break;
+ case XTRACT_SKEWNESS:
+ strcpy(name, "skewness");
+ strcpy(p_name, "Skewness");
+ strcpy(desc,
+ "Extract the skewness of an input vector");
+ strcpy(p_desc,
+ "Extract the skewness of a range of values");
+ strcpy(author, "");
+ break;
+ case XTRACT_KURTOSIS:
+ strcpy(name, "kurtosis");
+ strcpy(p_name, "Kurtosis");
+ strcpy(desc,
+ "Extract the kurtosis of an input vector");
+ strcpy(p_desc,
+ "Extract the kurtosis of a range of values");
+ strcpy(author, "");
+ break;
+ case XTRACT_SPECTRAL_MEAN:
+ strcpy(name, "spectral_mean");
+ strcpy(p_name, "Spectral Mean");
+ strcpy(desc, "Extract the mean of an input spectrum");
+ strcpy(p_desc, "Extract the mean of an audio spectrum");
+ strcpy(author, "");
+ break;
+ case XTRACT_SPECTRAL_VARIANCE:
+ strcpy(name, "spectral_variance");
+ strcpy(p_name, "Spectral Variance");
+ strcpy(desc, "Extract the variance of an input spectrum");
+ strcpy(p_desc, "Extract the variance of an audio spectrum");
+ strcpy(author, "");
+ break;
+ case XTRACT_SPECTRAL_STANDARD_DEVIATION:
+ strcpy(name, "spectral_standard_deviation");
+ strcpy(p_name, "Spectral Standard Deviation");
+ strcpy(desc,
+ "Extract the standard deviation of an input spectrum");
+ strcpy(p_desc,
+ "Extract the standard deviation of an audio spectrum");
+ strcpy(author, "");
+ break;
/* case XTRACT_SPECTRAL_AVERAGE_DEVIATION:
strcpy(name, "spectral_average_deviation");
strcpy(p_name, "Spectral Average Deviation");
- strcpy(desc,
+ strcpy(desc,
"Extract the average deviation of an input spectrum");
- strcpy(p_desc,
+ strcpy(p_desc,
"Extract the average deviation of an audio spectrum");
strcpy(author, "");
break;
*/
- case XTRACT_ROLLOFF:
- strcpy(name, "rolloff");
- strcpy(p_name, "Spectral Rolloff");
- strcpy(desc,
- "Extract the rolloff point of a spectrum");
- strcpy(p_desc,
- "Extract the rolloff point of an audio spectrum");
- strcpy(author, "Bee Suan Ong");
- *year = 2005;
- break;
- case XTRACT_SPECTRAL_INHARMONICITY:
- strcpy(name, "spectral_inharmonicity");
- strcpy(p_name, "Inharmonicity");
- strcpy(desc, "Extract the inharmonicity of a spectrum");
- strcpy(p_desc,
- "Extract the inharmonicity of an audio spectrum");
- break;
- case XTRACT_SPECTRUM:
- strcpy(name, "spectrum");
- strcpy(p_name, "Spectrum");
- strcpy(desc,
- "Extract the spectrum of an input vector");
- strcpy(p_desc,
- "Extract the spectrum of an audio signal");
- strcpy(author, "");
- break;
- case XTRACT_ODD_EVEN_RATIO:
- strcpy(name, "odd_even_ratio");
- strcpy(p_name, "Odd/even Harmonic Ratio");
- strcpy(desc,
- "Extract the odd-to-even harmonic ratio of a spectrum");
- strcpy(p_desc,
- "Extract the odd-to-even harmonic ratio of an audio spectrum");
- strcpy(author, "");
- break;
- case XTRACT_LOWEST_VALUE:
- strcpy(name, "lowest_value");
- strcpy(p_name, "Lowest Value");
- strcpy(desc, "Extract the lowest value from an input vector");
- strcpy(p_desc, "Extract the lowest value from a given range");
- strcpy(author, "");
- break;
- case XTRACT_F0:
- strcpy(name, "f0");
- strcpy(p_name, "Fundamental Frequency");
- strcpy(desc, "Extract the fundamental frequency of a signal");
- strcpy(p_desc,
- "Extract the fundamental frequency of an audio signal");
- strcpy(author, "Jamie Bullock");
- break;
- case XTRACT_FAILSAFE_F0:
- strcpy(name, "failsafe_f0");
- strcpy(p_name, "Fundamental Frequency (failsafe)");
- strcpy(desc, "Extract the fundamental frequency of a signal (failsafe)");
- strcpy(p_desc,
- "Extract the fundamental frequency of an audio signal (failsafe)");
- strcpy(author, "Jamie Bullock");
- break;
- case XTRACT_TONALITY:
- strcpy(name, "tonality");
- strcpy(p_name, "Tonality");
- strcpy(desc, "Extract the tonality of a spectrum");
- strcpy(p_desc, "Extract the tonality an audio spectrum");
- strcpy(author, "J. D. Johnston");
- *year = 1988;
- break;
- case XTRACT_SPECTRAL_SKEWNESS:
- strcpy(name, "spectral_skewness");
- strcpy(p_name, "Spectral Skewness");
- strcpy(desc, "Extract the skewness of an input spectrum");
- strcpy(p_desc, "Extract the skewness of an audio spectrum");
- strcpy(author, "");
- break;
- case XTRACT_SPECTRAL_KURTOSIS:
- strcpy(name, "spectral_kurtosis");
- strcpy(p_name, "Spectral Kurtosis");
- strcpy(desc, "Extract the kurtosis of an input spectrum");
- strcpy(p_desc, "Extract the kurtosis of an audio spectrum");
- strcpy(author, "");
- break;
- case XTRACT_PEAK_SPECTRUM:
- strcpy(name, "peak_spectrum");
- strcpy(p_name, "Peak Spectrum");
- strcpy(desc, "Extract the spectral peaks from of a spectrum");
- strcpy(p_desc,
- "Extract the spectral peaks from an audio spectrum");
- strcpy(author, "");
- break;
- case XTRACT_HARMONIC_SPECTRUM:
- strcpy(name, "harmonic_spectrum");
- strcpy(p_name, "Harmonic Spectrum");
- strcpy(desc, "Extract the harmonics from a spectrum");
- strcpy(p_desc, "Extract the harmonics from an audio spectrum");
- strcpy(author, "");
- break;
- case XTRACT_NOISINESS:
- strcpy(name, "noisiness");
- strcpy(p_name, "Noisiness");
- strcpy(desc, "Extract the noisiness of a spectrum");
- strcpy(p_desc, "Extract the noisiness of an audio spectrum");
- strcpy(author, "Tae Hong Park");
- *year = 2000;
- break;
- case XTRACT_CREST:
- strcpy(name, "crest");
- strcpy(p_name, "Spectral Crest Measure");
- strcpy(desc,
- "Extract the spectral crest measure of a spectrum");
- strcpy(p_desc,
- "Extract the spectral crest measure of an audio spectrum");
- strcpy(author, "Peeters");
- *year = 2003;
- break;
- case XTRACT_MFCC:
- strcpy(name, "mfcc");
- strcpy(p_name, "Mel-Frequency Cepstral Coefficients");
- strcpy(desc, "Extract MFCC from a spectrum");
- strcpy(p_desc, "Extract MFCC from an audio spectrum");
- strcpy(author, "Rabiner");
- break;
- case XTRACT_LPC:
- strcpy(name, "lpc");
- strcpy(p_name, "Linear predictive coding coefficients");
- strcpy(desc, "Extract LPC from autocorrelation coefficients");
- strcpy(p_desc,
- "Extract LPC from autocorrelation coefficients");
- strcpy(author,
- "Rabiner and Juang as implemented by Jutta Degener");
- *year = 1994;
- break;
- case XTRACT_LPCC:
- strcpy(name, "lpcc");
- strcpy(p_name, "Linear predictive coding cepstral coefficients");
- strcpy(desc, "Extract LPC cepstrum from LPC coefficients");
- strcpy(p_desc,
- "Extract LPC cepstrum from LPC coefficients");
- strcpy(author, "Rabiner and Juang");
- *year = 1993;
- break;
- case XTRACT_SUBBANDS:
- strcpy(name, "subbands");
- strcpy(p_name, "Sub band coefficients");
- strcpy(desc, "Extract subband coefficients from spectral magnitudes");
- strcpy(p_desc,
- "Extract subband coefficients from spectral magnitudes");
- strcpy(author, "");
- break;
- case XTRACT_BARK_COEFFICIENTS:
- strcpy(name, "bark_coefficients");
- strcpy(p_name, "Bark Coefficients");
- strcpy(desc, "Extract bark coefficients from a spectrum");
- strcpy(p_desc,
- "Extract bark coefficients from an audio spectrum");
- strcpy(author, "");
- break;
- case XTRACT_SPECTRAL_CENTROID:
- strcpy(name, "spectral_centroid");
- strcpy(p_name, "Spectral Centroid");
- strcpy(desc, "Extract the spectral centroid of a spectrum");
- strcpy(p_desc,
- "Extract the spectral centroid of an audio spectrum");
- strcpy(author, "");
- break;
- case XTRACT_IRREGULARITY_K:
- strcpy(name, "irregularity_k");
- strcpy(p_name, "Irregularity I");
- strcpy(desc, "Extract the irregularity (type I) of a spectrum");
- strcpy(p_desc,
- "Extract the irregularity (type I) of an audio spectrum");
- strcpy(author, "Krimphoff");
- *year = 1994;
- break;
- case XTRACT_IRREGULARITY_J:
- strcpy(name, "irregularity_j");
- strcpy(p_name, "Irregularity II");
- strcpy(desc, "Extract the irregularity (type II) of a spectrum");
- strcpy(p_desc,
- "Extract the irregularity (type II) of an audio spectrum");
- strcpy(author, "Jensen");
- *year = 1999;
- break;
- case XTRACT_TRISTIMULUS_1:
- strcpy(name, "tristimulus_1");
- strcpy(p_name, "Tristimulus I");
- strcpy(desc, "Extract the tristimulus (type I) of a spectrum");
- strcpy(p_desc,
- "Extract the tristimulus (type I) of an audio spectrum");
- strcpy(author, "Pollard and Jansson");
- *year = 1982;
- break;
- case XTRACT_TRISTIMULUS_2:
- strcpy(name, "tristimulus_2");
- strcpy(p_name, "Tristimulus II");
- strcpy(desc, "Extract the tristimulus (type II) of a spectrum");
- strcpy(p_desc,
- "Extract the tristimulus (type II) of an audio spectrum");
- strcpy(author, "Pollard and Jansson");
- *year = 1982;
- break;
- case XTRACT_TRISTIMULUS_3:
- strcpy(name, "tristimulus_3");
- strcpy(p_name, "Tristimulus III");
- strcpy(desc,
- "Extract the tristimulus (type III) of a spectrum");
- strcpy(p_desc,
- "Extract the tristimulus (type III) of an audio spectrum");
- strcpy(author, "Pollard and Jansson");
- *year = 1982;
- break;
- case XTRACT_SMOOTHNESS:
- strcpy(name, "smoothness");
- strcpy(p_name, "Spectral Smoothness");
- strcpy(desc, "Extract the spectral smoothness of a spectrum");
- strcpy(p_desc,
- "Extract the spectral smoothness of an audio spectrum");
- strcpy(author, "McAdams");
- *year = 1999;
- break;
- case XTRACT_FLATNESS:
- strcpy(name, "flatness");
- strcpy(p_name, "Spectral Flatness");
- strcpy(desc, "Extract the spectral flatness of a spectrum");
- strcpy(p_desc,
- "Extract the spectral flatness of an audio spectrum");
- strcpy(author, "Tristan Jehan");
- *year = 2005;
- break;
- case XTRACT_FLATNESS_DB:
- strcpy(name, "flatness_db");
- strcpy(p_name, "Log Spectral Flatness");
- strcpy(desc, "Extract the log spectral flatness of a spectrum");
- strcpy(p_desc,
- "Extract the log spectral flatness of an audio spectrum");
- strcpy(author, "Peeters");
- *year = 2003;
- break;
- case XTRACT_SPREAD:
- strcpy(name, "spread");
- strcpy(p_name, "Spectral Spread");
- strcpy(desc, "Extract the spectral spread of a spectrum");
- strcpy(p_desc,
- "Extract the spectral spread of an audio spectrum");
- strcpy(author, "Norman Casagrande");
- *year = 2005;
- break;
- case XTRACT_ZCR:
- strcpy(name, "zcr");
- strcpy(p_name, "Zero Crossing Rate");
- strcpy(desc, "Extract the zero crossing rate of a vector");
- strcpy(p_desc,
- "Extract the zero crossing rate of an audio signal");
- strcpy(author, "");
- break;
- case XTRACT_LOUDNESS:
- strcpy(name, "loudness");
- strcpy(p_name, "Loudness");
- strcpy(desc,
- "Extract the loudness of a signal from its spectrum");
- strcpy(p_desc,
- "Extract the loudness of an audio signal from its spectrum");
- strcpy(author, "Moore, Glasberg et al");
- *year = 2005;
- break;
- case XTRACT_HIGHEST_VALUE:
- strcpy(name, "highest_value");
- strcpy(p_name, "Highest Value");
- strcpy(desc, "Extract the highest value from an input vector");
- strcpy(p_desc, "Extract the highest value from a given range");
- strcpy(author, "");
- break;
- case XTRACT_SUM:
- strcpy(name, "sum");
- strcpy(p_name, "Sum of Values");
- strcpy(desc,
- "Extract the sum of the values in an input vector");
- strcpy(p_desc,
- "Extract the sum of the values in a given range");
- strcpy(author, "");
- break;
- case XTRACT_RMS_AMPLITUDE:
- strcpy(name, "rms_amplitude");
- strcpy(p_name, "RMS Amplitude");
- strcpy(desc, "Extract the RMS amplitude of a signal");
- strcpy(p_desc, "Extract the RMS amplitude of an audio signal");
- strcpy(author, "");
- break;
- case XTRACT_POWER:
- strcpy(name, "power");
- strcpy(p_name, "Spectral Power");
- strcpy(desc, "Extract the spectral power of a spectrum");
- strcpy(p_desc,
- "Extract the spectral power of an audio spectrum");
- strcpy(author, "Bee Suan Ong");
- *year = 2005;
- break;
- case XTRACT_SHARPNESS:
- strcpy(name, "sharpness");
- strcpy(p_name, "Spectral Sharpness");
- strcpy(desc, "Extract the spectral sharpness of a spectrum");
- strcpy(p_desc,
- "Extract the spectral sharpness of an audio spectrum");
- strcpy(author, "");
- break;
- case XTRACT_SPECTRAL_SLOPE:
- strcpy(name, "spectral_slope");
- strcpy(p_name, "Spectral Slope");
- strcpy(desc, "Extract the spectral slope of a spectrum");
- strcpy(p_desc,
- "Extract the spectral slope of an audio spectrum");
- strcpy(author, "");
- break;
- case XTRACT_HPS:
- strcpy(name, "hps");
- strcpy(p_name, "Harmonic Product Spectrum");
- strcpy(desc,
- "Extract the harmonic product spectrum of a spectrum");
- strcpy(p_desc,
- "Extract the harmonic product spectrum of an audio spectrum");
- strcpy(author, "");
- break;
- case XTRACT_FLUX:
- strcpy(name, "flux");
- strcpy(p_name, "Spectral Flux");
- strcpy(desc, "Extract the spectral flux of a spectrum");
- strcpy(p_desc,
- "Extract the spectral flux of an audio spectrum");
- strcpy(author, "");
- break;
- case XTRACT_LNORM:
- strcpy(name, "lnorm");
- strcpy(p_name, "L-norm");
- strcpy(desc, "Extract the L-norm of a vector");
- strcpy(p_desc, "Extract the L-norm of a vector");
- strcpy(author, "");
- break;
- case XTRACT_ATTACK_TIME:
- strcpy(name, "attack_time");
- strcpy(p_name, "Attack Time");
- strcpy(desc, "Extract the attack time of a signal");
- strcpy(p_desc, "Extract the attack time of an audio signal");
- strcpy(author, "");
- break;
- case XTRACT_DECAY_TIME:
- strcpy(name, "decay_time");
- strcpy(p_name, "Decay Time");
- strcpy(desc, "Extract the decay time of a signal");
- strcpy(p_desc, "Extract the decay time of an audio signal");
- strcpy(author, "");
- break;
- case XTRACT_DIFFERENCE_VECTOR:
- strcpy(name, "difference_vector");
- strcpy(p_name, "Difference vector");
- strcpy(desc, "Extract the difference between two vectors");
- strcpy(p_desc, "Extract the difference between two vectors");
- strcpy(author, "");
- break;
- case XTRACT_AUTOCORRELATION_FFT:
- strcpy(name, "autocorrelation_fft");
- strcpy(p_name, "Autocorrelation (FFT method)");
- strcpy(desc, "Extract the autocorrelation of a signal (fft method)");
- strcpy(p_desc, "Extract the autocorrelation of an audio signal (fft method)");
- strcpy(author, "");
- break;
- case XTRACT_DCT:
- strcpy(name, "dct");
- strcpy(p_name, "Discrete Cosine Transform");
- strcpy(desc, "Extract the DCT of a signal");
- strcpy(p_desc, "Extract the DCT of an audio signal");
- strcpy(author, "");
- break;
- case XTRACT_AUTOCORRELATION:
- strcpy(name, "autocorrelation");
- strcpy(p_name, "Autocorrelation");
- strcpy(desc, "Extract the autocorrelation of a signal");
- strcpy(p_desc,
- "Extract the autocorrelation of an audio signal");
- strcpy(author, "");
- break;
- case XTRACT_AMDF:
- strcpy(name, "amdf");
- strcpy(p_name, "Average Magnitude Difference Function");
- strcpy(desc, "Extract the AMDF of a signal");
- strcpy(p_desc, "Extract the AMDF of an audio signal");
- strcpy(author, "");
- break;
- case XTRACT_ASDF:
- strcpy(name, "asdf");
- strcpy(p_name, "Average Squared Difference Function");
- strcpy(desc, "Extract the ASDF of a signal");
- strcpy(p_desc, "Extract the ASDF of an audio signal");
- strcpy(author, "");
- break;
- case XTRACT_NONZERO_COUNT:
- strcpy(name, "nonzero_count");
- strcpy(p_name, "Non-zero count");
- strcpy(desc,
- "Extract the number of non-zero elements in the input vector");
- strcpy(p_desc,
- "Extract the number of non-zero elements in an input spectrum");
- strcpy(author, "");
- break;
- case XTRACT_WINDOWED:
- strcpy(name, "windowed");
- strcpy(p_name, "Windowed frame");
- strcpy(desc, "Apply a window function to a frame of data");
- strcpy(p_desc, "Apply a window function to a frame of data");
- strcpy(author, "");
- break;
- default:
- strcpy(name, "");
- strcpy(p_name, "");
- strcpy(desc, "");
- strcpy(p_desc, "");
- strcpy(author, "");
- break;
+ case XTRACT_ROLLOFF:
+ strcpy(name, "rolloff");
+ strcpy(p_name, "Spectral Rolloff");
+ strcpy(desc,
+ "Extract the rolloff point of a spectrum");
+ strcpy(p_desc,
+ "Extract the rolloff point of an audio spectrum");
+ strcpy(author, "Bee Suan Ong");
+ *year = 2005;
+ break;
+ case XTRACT_SPECTRAL_INHARMONICITY:
+ strcpy(name, "spectral_inharmonicity");
+ strcpy(p_name, "Inharmonicity");
+ strcpy(desc, "Extract the inharmonicity of a spectrum");
+ strcpy(p_desc,
+ "Extract the inharmonicity of an audio spectrum");
+ break;
+ case XTRACT_SPECTRUM:
+ strcpy(name, "spectrum");
+ strcpy(p_name, "Spectrum");
+ strcpy(desc,
+ "Extract the spectrum of an input vector");
+ strcpy(p_desc,
+ "Extract the spectrum of an audio signal");
+ strcpy(author, "");
+ break;
+ case XTRACT_ODD_EVEN_RATIO:
+ strcpy(name, "odd_even_ratio");
+ strcpy(p_name, "Odd/even Harmonic Ratio");
+ strcpy(desc,
+ "Extract the odd-to-even harmonic ratio of a spectrum");
+ strcpy(p_desc,
+ "Extract the odd-to-even harmonic ratio of an audio spectrum");
+ strcpy(author, "");
+ break;
+ case XTRACT_LOWEST_VALUE:
+ strcpy(name, "lowest_value");
+ strcpy(p_name, "Lowest Value");
+ strcpy(desc, "Extract the lowest value from an input vector");
+ strcpy(p_desc, "Extract the lowest value from a given range");
+ strcpy(author, "");
+ break;
+ case XTRACT_F0:
+ strcpy(name, "f0");
+ strcpy(p_name, "Fundamental Frequency");
+ strcpy(desc, "Extract the fundamental frequency of a signal");
+ strcpy(p_desc,
+ "Extract the fundamental frequency of an audio signal");
+ strcpy(author, "Jamie Bullock");
+ break;
+ case XTRACT_FAILSAFE_F0:
+ strcpy(name, "failsafe_f0");
+ strcpy(p_name, "Fundamental Frequency (failsafe)");
+ strcpy(desc, "Extract the fundamental frequency of a signal (failsafe)");
+ strcpy(p_desc,
+ "Extract the fundamental frequency of an audio signal (failsafe)");
+ strcpy(author, "Jamie Bullock");
+ break;
+ case XTRACT_TONALITY:
+ strcpy(name, "tonality");
+ strcpy(p_name, "Tonality");
+ strcpy(desc, "Extract the tonality of a spectrum");
+ strcpy(p_desc, "Extract the tonality an audio spectrum");
+ strcpy(author, "J. D. Johnston");
+ *year = 1988;
+ break;
+ case XTRACT_SPECTRAL_SKEWNESS:
+ strcpy(name, "spectral_skewness");
+ strcpy(p_name, "Spectral Skewness");
+ strcpy(desc, "Extract the skewness of an input spectrum");
+ strcpy(p_desc, "Extract the skewness of an audio spectrum");
+ strcpy(author, "");
+ break;
+ case XTRACT_SPECTRAL_KURTOSIS:
+ strcpy(name, "spectral_kurtosis");
+ strcpy(p_name, "Spectral Kurtosis");
+ strcpy(desc, "Extract the kurtosis of an input spectrum");
+ strcpy(p_desc, "Extract the kurtosis of an audio spectrum");
+ strcpy(author, "");
+ break;
+ case XTRACT_PEAK_SPECTRUM:
+ strcpy(name, "peak_spectrum");
+ strcpy(p_name, "Peak Spectrum");
+ strcpy(desc, "Extract the spectral peaks from of a spectrum");
+ strcpy(p_desc,
+ "Extract the spectral peaks from an audio spectrum");
+ strcpy(author, "");
+ break;
+ case XTRACT_HARMONIC_SPECTRUM:
+ strcpy(name, "harmonic_spectrum");
+ strcpy(p_name, "Harmonic Spectrum");
+ strcpy(desc, "Extract the harmonics from a spectrum");
+ strcpy(p_desc, "Extract the harmonics from an audio spectrum");
+ strcpy(author, "");
+ break;
+ case XTRACT_NOISINESS:
+ strcpy(name, "noisiness");
+ strcpy(p_name, "Noisiness");
+ strcpy(desc, "Extract the noisiness of a spectrum");
+ strcpy(p_desc, "Extract the noisiness of an audio spectrum");
+ strcpy(author, "Tae Hong Park");
+ *year = 2000;
+ break;
+ case XTRACT_CREST:
+ strcpy(name, "crest");
+ strcpy(p_name, "Spectral Crest Measure");
+ strcpy(desc,
+ "Extract the spectral crest measure of a spectrum");
+ strcpy(p_desc,
+ "Extract the spectral crest measure of an audio spectrum");
+ strcpy(author, "Peeters");
+ *year = 2003;
+ break;
+ case XTRACT_MFCC:
+ strcpy(name, "mfcc");
+ strcpy(p_name, "Mel-Frequency Cepstral Coefficients");
+ strcpy(desc, "Extract MFCC from a spectrum");
+ strcpy(p_desc, "Extract MFCC from an audio spectrum");
+ strcpy(author, "Rabiner");
+ break;
+ case XTRACT_LPC:
+ strcpy(name, "lpc");
+ strcpy(p_name, "Linear predictive coding coefficients");
+ strcpy(desc, "Extract LPC from autocorrelation coefficients");
+ strcpy(p_desc,
+ "Extract LPC from autocorrelation coefficients");
+ strcpy(author,
+ "Rabiner and Juang as implemented by Jutta Degener");
+ *year = 1994;
+ break;
+ case XTRACT_LPCC:
+ strcpy(name, "lpcc");
+ strcpy(p_name, "Linear predictive coding cepstral coefficients");
+ strcpy(desc, "Extract LPC cepstrum from LPC coefficients");
+ strcpy(p_desc,
+ "Extract LPC cepstrum from LPC coefficients");
+ strcpy(author, "Rabiner and Juang");
+ *year = 1993;
+ break;
+ case XTRACT_SUBBANDS:
+ strcpy(name, "subbands");
+ strcpy(p_name, "Sub band coefficients");
+ strcpy(desc, "Extract subband coefficients from spectral magnitudes");
+ strcpy(p_desc,
+ "Extract subband coefficients from spectral magnitudes");
+ strcpy(author, "");
+ break;
+ case XTRACT_BARK_COEFFICIENTS:
+ strcpy(name, "bark_coefficients");
+ strcpy(p_name, "Bark Coefficients");
+ strcpy(desc, "Extract bark coefficients from a spectrum");
+ strcpy(p_desc,
+ "Extract bark coefficients from an audio spectrum");
+ strcpy(author, "");
+ break;
+ case XTRACT_SPECTRAL_CENTROID:
+ strcpy(name, "spectral_centroid");
+ strcpy(p_name, "Spectral Centroid");
+ strcpy(desc, "Extract the spectral centroid of a spectrum");
+ strcpy(p_desc,
+ "Extract the spectral centroid of an audio spectrum");
+ strcpy(author, "");
+ break;
+ case XTRACT_IRREGULARITY_K:
+ strcpy(name, "irregularity_k");
+ strcpy(p_name, "Irregularity I");
+ strcpy(desc, "Extract the irregularity (type I) of a spectrum");
+ strcpy(p_desc,
+ "Extract the irregularity (type I) of an audio spectrum");
+ strcpy(author, "Krimphoff");
+ *year = 1994;
+ break;
+ case XTRACT_IRREGULARITY_J:
+ strcpy(name, "irregularity_j");
+ strcpy(p_name, "Irregularity II");
+ strcpy(desc, "Extract the irregularity (type II) of a spectrum");
+ strcpy(p_desc,
+ "Extract the irregularity (type II) of an audio spectrum");
+ strcpy(author, "Jensen");
+ *year = 1999;
+ break;
+ case XTRACT_TRISTIMULUS_1:
+ strcpy(name, "tristimulus_1");
+ strcpy(p_name, "Tristimulus I");
+ strcpy(desc, "Extract the tristimulus (type I) of a spectrum");
+ strcpy(p_desc,
+ "Extract the tristimulus (type I) of an audio spectrum");
+ strcpy(author, "Pollard and Jansson");
+ *year = 1982;
+ break;
+ case XTRACT_TRISTIMULUS_2:
+ strcpy(name, "tristimulus_2");
+ strcpy(p_name, "Tristimulus II");
+ strcpy(desc, "Extract the tristimulus (type II) of a spectrum");
+ strcpy(p_desc,
+ "Extract the tristimulus (type II) of an audio spectrum");
+ strcpy(author, "Pollard and Jansson");
+ *year = 1982;
+ break;
+ case XTRACT_TRISTIMULUS_3:
+ strcpy(name, "tristimulus_3");
+ strcpy(p_name, "Tristimulus III");
+ strcpy(desc,
+ "Extract the tristimulus (type III) of a spectrum");
+ strcpy(p_desc,
+ "Extract the tristimulus (type III) of an audio spectrum");
+ strcpy(author, "Pollard and Jansson");
+ *year = 1982;
+ break;
+ case XTRACT_SMOOTHNESS:
+ strcpy(name, "smoothness");
+ strcpy(p_name, "Spectral Smoothness");
+ strcpy(desc, "Extract the spectral smoothness of a spectrum");
+ strcpy(p_desc,
+ "Extract the spectral smoothness of an audio spectrum");
+ strcpy(author, "McAdams");
+ *year = 1999;
+ break;
+ case XTRACT_FLATNESS:
+ strcpy(name, "flatness");
+ strcpy(p_name, "Spectral Flatness");
+ strcpy(desc, "Extract the spectral flatness of a spectrum");
+ strcpy(p_desc,
+ "Extract the spectral flatness of an audio spectrum");
+ strcpy(author, "Tristan Jehan");
+ *year = 2005;
+ break;
+ case XTRACT_FLATNESS_DB:
+ strcpy(name, "flatness_db");
+ strcpy(p_name, "Log Spectral Flatness");
+ strcpy(desc, "Extract the log spectral flatness of a spectrum");
+ strcpy(p_desc,
+ "Extract the log spectral flatness of an audio spectrum");
+ strcpy(author, "Peeters");
+ *year = 2003;
+ break;
+ case XTRACT_SPREAD:
+ strcpy(name, "spread");
+ strcpy(p_name, "Spectral Spread");
+ strcpy(desc, "Extract the spectral spread of a spectrum");
+ strcpy(p_desc,
+ "Extract the spectral spread of an audio spectrum");
+ strcpy(author, "Norman Casagrande");
+ *year = 2005;
+ break;
+ case XTRACT_ZCR:
+ strcpy(name, "zcr");
+ strcpy(p_name, "Zero Crossing Rate");
+ strcpy(desc, "Extract the zero crossing rate of a vector");
+ strcpy(p_desc,
+ "Extract the zero crossing rate of an audio signal");
+ strcpy(author, "");
+ break;
+ case XTRACT_LOUDNESS:
+ strcpy(name, "loudness");
+ strcpy(p_name, "Loudness");
+ strcpy(desc,
+ "Extract the loudness of a signal from its spectrum");
+ strcpy(p_desc,
+ "Extract the loudness of an audio signal from its spectrum");
+ strcpy(author, "Moore, Glasberg et al");
+ *year = 2005;
+ break;
+ case XTRACT_HIGHEST_VALUE:
+ strcpy(name, "highest_value");
+ strcpy(p_name, "Highest Value");
+ strcpy(desc, "Extract the highest value from an input vector");
+ strcpy(p_desc, "Extract the highest value from a given range");
+ strcpy(author, "");
+ break;
+ case XTRACT_SUM:
+ strcpy(name, "sum");
+ strcpy(p_name, "Sum of Values");
+ strcpy(desc,
+ "Extract the sum of the values in an input vector");
+ strcpy(p_desc,
+ "Extract the sum of the values in a given range");
+ strcpy(author, "");
+ break;
+ case XTRACT_RMS_AMPLITUDE:
+ strcpy(name, "rms_amplitude");
+ strcpy(p_name, "RMS Amplitude");
+ strcpy(desc, "Extract the RMS amplitude of a signal");
+ strcpy(p_desc, "Extract the RMS amplitude of an audio signal");
+ strcpy(author, "");
+ break;
+ case XTRACT_POWER:
+ strcpy(name, "power");
+ strcpy(p_name, "Spectral Power");
+ strcpy(desc, "Extract the spectral power of a spectrum");
+ strcpy(p_desc,
+ "Extract the spectral power of an audio spectrum");
+ strcpy(author, "Bee Suan Ong");
+ *year = 2005;
+ break;
+ case XTRACT_SHARPNESS:
+ strcpy(name, "sharpness");
+ strcpy(p_name, "Spectral Sharpness");
+ strcpy(desc, "Extract the spectral sharpness of a spectrum");
+ strcpy(p_desc,
+ "Extract the spectral sharpness of an audio spectrum");
+ strcpy(author, "");
+ break;
+ case XTRACT_SPECTRAL_SLOPE:
+ strcpy(name, "spectral_slope");
+ strcpy(p_name, "Spectral Slope");
+ strcpy(desc, "Extract the spectral slope of a spectrum");
+ strcpy(p_desc,
+ "Extract the spectral slope of an audio spectrum");
+ strcpy(author, "");
+ break;
+ case XTRACT_HPS:
+ strcpy(name, "hps");
+ strcpy(p_name, "Harmonic Product Spectrum");
+ strcpy(desc,
+ "Extract the harmonic product spectrum of a spectrum");
+ strcpy(p_desc,
+ "Extract the harmonic product spectrum of an audio spectrum");
+ strcpy(author, "");
+ break;
+ case XTRACT_FLUX:
+ strcpy(name, "flux");
+ strcpy(p_name, "Spectral Flux");
+ strcpy(desc, "Extract the spectral flux of a spectrum");
+ strcpy(p_desc,
+ "Extract the spectral flux of an audio spectrum");
+ strcpy(author, "");
+ break;
+ case XTRACT_LNORM:
+ strcpy(name, "lnorm");
+ strcpy(p_name, "L-norm");
+ strcpy(desc, "Extract the L-norm of a vector");
+ strcpy(p_desc, "Extract the L-norm of a vector");
+ strcpy(author, "");
+ break;
+ case XTRACT_ATTACK_TIME:
+ strcpy(name, "attack_time");
+ strcpy(p_name, "Attack Time");
+ strcpy(desc, "Extract the attack time of a signal");
+ strcpy(p_desc, "Extract the attack time of an audio signal");
+ strcpy(author, "");
+ break;
+ case XTRACT_DECAY_TIME:
+ strcpy(name, "decay_time");
+ strcpy(p_name, "Decay Time");
+ strcpy(desc, "Extract the decay time of a signal");
+ strcpy(p_desc, "Extract the decay time of an audio signal");
+ strcpy(author, "");
+ break;
+ case XTRACT_DIFFERENCE_VECTOR:
+ strcpy(name, "difference_vector");
+ strcpy(p_name, "Difference vector");
+ strcpy(desc, "Extract the difference between two vectors");
+ strcpy(p_desc, "Extract the difference between two vectors");
+ strcpy(author, "");
+ break;
+ case XTRACT_AUTOCORRELATION_FFT:
+ strcpy(name, "autocorrelation_fft");
+ strcpy(p_name, "Autocorrelation (FFT method)");
+ strcpy(desc, "Extract the autocorrelation of a signal (fft method)");
+ strcpy(p_desc, "Extract the autocorrelation of an audio signal (fft method)");
+ strcpy(author, "");
+ break;
+ case XTRACT_DCT:
+ strcpy(name, "dct");
+ strcpy(p_name, "Discrete Cosine Transform");
+ strcpy(desc, "Extract the DCT of a signal");
+ strcpy(p_desc, "Extract the DCT of an audio signal");
+ strcpy(author, "");
+ break;
+ case XTRACT_AUTOCORRELATION:
+ strcpy(name, "autocorrelation");
+ strcpy(p_name, "Autocorrelation");
+ strcpy(desc, "Extract the autocorrelation of a signal");
+ strcpy(p_desc,
+ "Extract the autocorrelation of an audio signal");
+ strcpy(author, "");
+ break;
+ case XTRACT_AMDF:
+ strcpy(name, "amdf");
+ strcpy(p_name, "Average Magnitude Difference Function");
+ strcpy(desc, "Extract the AMDF of a signal");
+ strcpy(p_desc, "Extract the AMDF of an audio signal");
+ strcpy(author, "");
+ break;
+ case XTRACT_ASDF:
+ strcpy(name, "asdf");
+ strcpy(p_name, "Average Squared Difference Function");
+ strcpy(desc, "Extract the ASDF of a signal");
+ strcpy(p_desc, "Extract the ASDF of an audio signal");
+ strcpy(author, "");
+ break;
+ case XTRACT_NONZERO_COUNT:
+ strcpy(name, "nonzero_count");
+ strcpy(p_name, "Non-zero count");
+ strcpy(desc,
+ "Extract the number of non-zero elements in the input vector");
+ strcpy(p_desc,
+ "Extract the number of non-zero elements in an input spectrum");
+ strcpy(author, "");
+ break;
+ case XTRACT_WINDOWED:
+ strcpy(name, "windowed");
+ strcpy(p_name, "Windowed frame");
+ strcpy(desc, "Apply a window function to a frame of data");
+ strcpy(p_desc, "Apply a window function to a frame of data");
+ strcpy(author, "");
+ break;
+ default:
+ strcpy(name, "");
+ strcpy(p_name, "");
+ strcpy(desc, "");
+ strcpy(p_desc, "");
+ strcpy(author, "");
+ break;
}
- switch(f){
+ switch(f)
+ {
- case XTRACT_VARIANCE:
- case XTRACT_STANDARD_DEVIATION:
- case XTRACT_AVERAGE_DEVIATION:
- case XTRACT_SPECTRAL_VARIANCE:
- case XTRACT_SPECTRAL_STANDARD_DEVIATION:
+ case XTRACT_VARIANCE:
+ case XTRACT_STANDARD_DEVIATION:
+ case XTRACT_AVERAGE_DEVIATION:
+ case XTRACT_SPECTRAL_VARIANCE:
+ case XTRACT_SPECTRAL_STANDARD_DEVIATION:
/* case XTRACT_SPECTRAL_AVERAGE_DEVIATION: */
- case XTRACT_SPECTRAL_INHARMONICITY:
- case XTRACT_LOWEST_VALUE:
- case XTRACT_F0:
- case XTRACT_FAILSAFE_F0:
- case XTRACT_FLATNESS_DB:
- case XTRACT_TONALITY:
- *argc = 1;
- *argv_type = XTRACT_FLOAT;
- break;
- case XTRACT_SKEWNESS:
- case XTRACT_KURTOSIS:
- case XTRACT_SPECTRAL_SKEWNESS:
- case XTRACT_SPECTRAL_KURTOSIS:
- case XTRACT_PEAK_SPECTRUM:
- case XTRACT_HARMONIC_SPECTRUM:
- case XTRACT_NOISINESS:
- case XTRACT_CREST:
- case XTRACT_ROLLOFF:
- case XTRACT_FLUX:
- case XTRACT_LNORM:
- *argc = 2;
- *argv_type = XTRACT_FLOAT;
- break;
- case XTRACT_SPECTRUM:
- *argc = 4;
- *argv_type = XTRACT_FLOAT;
- break;
- case XTRACT_SUBBANDS:
- *argc = 4;
- *argv_type = XTRACT_INT;
- break;
- case XTRACT_MFCC:
- *argc = 1;
- *argv_type = XTRACT_MEL_FILTER;
- break;
- case XTRACT_LPCC:
- *argc = 1;
- *argv_type = XTRACT_INT;
- break;
- case XTRACT_BARK_COEFFICIENTS:
- *argc = XTRACT_BARK_BANDS;
- *argv_type = XTRACT_INT;
- break;
- case XTRACT_WINDOWED:
- *argc = XTRACT_WINDOW_SIZE;
- *argv_type = XTRACT_FLOAT;
- break;
- case XTRACT_MEAN:
- case XTRACT_SPECTRAL_MEAN:
- case XTRACT_SPECTRAL_CENTROID:
- case XTRACT_IRREGULARITY_K:
- case XTRACT_IRREGULARITY_J:
- case XTRACT_TRISTIMULUS_1:
- case XTRACT_TRISTIMULUS_2:
- case XTRACT_TRISTIMULUS_3:
- case XTRACT_SMOOTHNESS:
- case XTRACT_FLATNESS:
- case XTRACT_SPREAD:
- case XTRACT_ZCR:
- case XTRACT_LOUDNESS:
- case XTRACT_HIGHEST_VALUE:
- case XTRACT_SUM:
- case XTRACT_RMS_AMPLITUDE:
- case XTRACT_POWER:
- case XTRACT_SHARPNESS:
- case XTRACT_SPECTRAL_SLOPE:
- case XTRACT_HPS:
- case XTRACT_ATTACK_TIME:
- case XTRACT_DECAY_TIME:
- case XTRACT_DIFFERENCE_VECTOR:
- case XTRACT_AUTOCORRELATION_FFT:
- case XTRACT_DCT:
- case XTRACT_AUTOCORRELATION:
- case XTRACT_AMDF:
- case XTRACT_ASDF:
- case XTRACT_NONZERO_COUNT:
- case XTRACT_ODD_EVEN_RATIO:
- case XTRACT_LPC:
- default:
- *argc = 0;
- break;
+ case XTRACT_SPECTRAL_INHARMONICITY:
+ case XTRACT_LOWEST_VALUE:
+ case XTRACT_F0:
+ case XTRACT_FAILSAFE_F0:
+ case XTRACT_FLATNESS_DB:
+ case XTRACT_TONALITY:
+ *argc = 1;
+ *argv_type = XTRACT_FLOAT;
+ break;
+ case XTRACT_SKEWNESS:
+ case XTRACT_KURTOSIS:
+ case XTRACT_SPECTRAL_SKEWNESS:
+ case XTRACT_SPECTRAL_KURTOSIS:
+ case XTRACT_PEAK_SPECTRUM:
+ case XTRACT_HARMONIC_SPECTRUM:
+ case XTRACT_NOISINESS:
+ case XTRACT_CREST:
+ case XTRACT_ROLLOFF:
+ case XTRACT_FLUX:
+ case XTRACT_LNORM:
+ *argc = 2;
+ *argv_type = XTRACT_FLOAT;
+ break;
+ case XTRACT_SPECTRUM:
+ *argc = 4;
+ *argv_type = XTRACT_FLOAT;
+ break;
+ case XTRACT_SUBBANDS:
+ *argc = 4;
+ *argv_type = XTRACT_INT;
+ break;
+ case XTRACT_MFCC:
+ *argc = 1;
+ *argv_type = XTRACT_MEL_FILTER;
+ break;
+ case XTRACT_LPCC:
+ *argc = 1;
+ *argv_type = XTRACT_INT;
+ break;
+ case XTRACT_BARK_COEFFICIENTS:
+ *argc = XTRACT_BARK_BANDS;
+ *argv_type = XTRACT_INT;
+ break;
+ case XTRACT_WINDOWED:
+ *argc = XTRACT_WINDOW_SIZE;
+ *argv_type = XTRACT_FLOAT;
+ break;
+ case XTRACT_MEAN:
+ case XTRACT_SPECTRAL_MEAN:
+ case XTRACT_SPECTRAL_CENTROID:
+ case XTRACT_IRREGULARITY_K:
+ case XTRACT_IRREGULARITY_J:
+ case XTRACT_TRISTIMULUS_1:
+ case XTRACT_TRISTIMULUS_2:
+ case XTRACT_TRISTIMULUS_3:
+ case XTRACT_SMOOTHNESS:
+ case XTRACT_FLATNESS:
+ case XTRACT_SPREAD:
+ case XTRACT_ZCR:
+ case XTRACT_LOUDNESS:
+ case XTRACT_HIGHEST_VALUE:
+ case XTRACT_SUM:
+ case XTRACT_RMS_AMPLITUDE:
+ case XTRACT_POWER:
+ case XTRACT_SHARPNESS:
+ case XTRACT_SPECTRAL_SLOPE:
+ case XTRACT_HPS:
+ case XTRACT_ATTACK_TIME:
+ case XTRACT_DECAY_TIME:
+ case XTRACT_DIFFERENCE_VECTOR:
+ case XTRACT_AUTOCORRELATION_FFT:
+ case XTRACT_DCT:
+ case XTRACT_AUTOCORRELATION:
+ case XTRACT_AMDF:
+ case XTRACT_ASDF:
+ case XTRACT_NONZERO_COUNT:
+ case XTRACT_ODD_EVEN_RATIO:
+ case XTRACT_LPC:
+ default:
+ *argc = 0;
+ break;
}
is_scalar = &d->is_scalar;
- switch(f){
+ switch(f)
+ {
+ case XTRACT_MEAN:
+ case XTRACT_VARIANCE:
+ case XTRACT_STANDARD_DEVIATION:
+ case XTRACT_AVERAGE_DEVIATION:
+ case XTRACT_SKEWNESS:
+ case XTRACT_KURTOSIS:
+ case XTRACT_SPECTRAL_MEAN:
+ case XTRACT_SPECTRAL_VARIANCE:
+ case XTRACT_SPECTRAL_STANDARD_DEVIATION:
+ /* case XTRACT_SPECTRAL_AVERAGE_DEVIATION: */
+ case XTRACT_SPECTRAL_SKEWNESS:
+ case XTRACT_SPECTRAL_KURTOSIS:
+ case XTRACT_SPECTRAL_CENTROID:
+ case XTRACT_IRREGULARITY_K:
+ case XTRACT_IRREGULARITY_J:
+ case XTRACT_TRISTIMULUS_1:
+ case XTRACT_TRISTIMULUS_2:
+ case XTRACT_TRISTIMULUS_3:
+ case XTRACT_SMOOTHNESS:
+ case XTRACT_SPREAD:
+ case XTRACT_ZCR:
+ case XTRACT_ROLLOFF:
+ case XTRACT_LOUDNESS:
+ case XTRACT_FLATNESS:
+ case XTRACT_FLATNESS_DB:
+ case XTRACT_TONALITY:
+ case XTRACT_CREST:
+ case XTRACT_NOISINESS:
+ case XTRACT_RMS_AMPLITUDE:
+ case XTRACT_SPECTRAL_INHARMONICITY:
+ case XTRACT_POWER:
+ case XTRACT_ODD_EVEN_RATIO:
+ case XTRACT_SHARPNESS:
+ case XTRACT_SPECTRAL_SLOPE:
+ case XTRACT_LOWEST_VALUE:
+ case XTRACT_HIGHEST_VALUE:
+ case XTRACT_SUM:
+ case XTRACT_HPS:
+ case XTRACT_F0:
+ case XTRACT_FAILSAFE_F0:
+ case XTRACT_FLUX:
+ case XTRACT_LNORM:
+ case XTRACT_NONZERO_COUNT:
+ *is_scalar = XTRACT_TRUE;
+ break;
+ case XTRACT_AUTOCORRELATION:
+ case XTRACT_AMDF:
+ case XTRACT_ASDF:
+ case XTRACT_BARK_COEFFICIENTS:
+ case XTRACT_PEAK_SPECTRUM:
+ case XTRACT_SPECTRUM:
+ case XTRACT_SUBBANDS:
+ case XTRACT_AUTOCORRELATION_FFT:
+ case XTRACT_MFCC:
+ case XTRACT_LPC:
+ case XTRACT_LPCC:
+ case XTRACT_DCT:
+ case XTRACT_HARMONIC_SPECTRUM:
+ case XTRACT_DIFFERENCE_VECTOR:
+ case XTRACT_WINDOWED:
+ *is_scalar = XTRACT_FALSE;
+ break;
+ default:
+ *is_scalar = XTRACT_TRUE;
+ break;
+
+ }
+
+ is_delta = &d->is_delta;
+
+ switch(f)
+ {
+ case XTRACT_FLUX:
+ case XTRACT_LNORM:
+ case XTRACT_DIFFERENCE_VECTOR:
+ *is_delta = XTRACT_TRUE;
+ break;
+ case XTRACT_MEAN:
+ case XTRACT_VARIANCE:
+ case XTRACT_STANDARD_DEVIATION:
+ case XTRACT_AVERAGE_DEVIATION:
+ case XTRACT_SKEWNESS:
+ case XTRACT_KURTOSIS:
+ case XTRACT_SPECTRAL_MEAN:
+ case XTRACT_SPECTRAL_VARIANCE:
+ case XTRACT_SPECTRAL_STANDARD_DEVIATION:
+ /* case XTRACT_SPECTRAL_AVERAGE_DEVIATION: */
+ case XTRACT_SPECTRAL_SKEWNESS:
+ case XTRACT_SPECTRAL_KURTOSIS:
+ case XTRACT_SPECTRAL_CENTROID:
+ case XTRACT_IRREGULARITY_K:
+ case XTRACT_IRREGULARITY_J:
+ case XTRACT_TRISTIMULUS_1:
+ case XTRACT_TRISTIMULUS_2:
+ case XTRACT_TRISTIMULUS_3:
+ case XTRACT_SMOOTHNESS:
+ case XTRACT_SPREAD:
+ case XTRACT_ZCR:
+ case XTRACT_ROLLOFF:
+ case XTRACT_LOUDNESS:
+ case XTRACT_FLATNESS:
+ case XTRACT_FLATNESS_DB:
+ case XTRACT_TONALITY:
+ case XTRACT_CREST:
+ case XTRACT_NOISINESS:
+ case XTRACT_RMS_AMPLITUDE:
+ case XTRACT_SPECTRAL_INHARMONICITY:
+ case XTRACT_POWER:
+ case XTRACT_ODD_EVEN_RATIO:
+ case XTRACT_SHARPNESS:
+ case XTRACT_SPECTRAL_SLOPE:
+ case XTRACT_LOWEST_VALUE:
+ case XTRACT_HIGHEST_VALUE:
+ case XTRACT_SUM:
+ case XTRACT_HPS:
+ case XTRACT_F0:
+ case XTRACT_FAILSAFE_F0:
+ case XTRACT_NONZERO_COUNT:
+ case XTRACT_AUTOCORRELATION:
+ case XTRACT_AMDF:
+ case XTRACT_ASDF:
+ case XTRACT_BARK_COEFFICIENTS:
+ case XTRACT_PEAK_SPECTRUM:
+ case XTRACT_SPECTRUM:
+ case XTRACT_SUBBANDS:
+ case XTRACT_AUTOCORRELATION_FFT:
+ case XTRACT_MFCC:
+ case XTRACT_LPC:
+ case XTRACT_LPCC:
+ case XTRACT_DCT:
+ case XTRACT_HARMONIC_SPECTRUM:
+ case XTRACT_WINDOWED:
+ default:
+ *is_delta = XTRACT_FALSE;
+ break;
+ }
+
+ if(*is_scalar)
+ {
+
+ result_unit = &d->result.scalar.unit;
+ result_min = &d->result.scalar.min;
+ result_max = &d->result.scalar.max;
+
+ switch(f)
+ {
case XTRACT_MEAN:
case XTRACT_VARIANCE:
case XTRACT_STANDARD_DEVIATION:
case XTRACT_AVERAGE_DEVIATION:
case XTRACT_SKEWNESS:
case XTRACT_KURTOSIS:
- case XTRACT_SPECTRAL_MEAN:
- case XTRACT_SPECTRAL_VARIANCE:
- case XTRACT_SPECTRAL_STANDARD_DEVIATION:
- /* case XTRACT_SPECTRAL_AVERAGE_DEVIATION: */
- case XTRACT_SPECTRAL_SKEWNESS:
- case XTRACT_SPECTRAL_KURTOSIS:
- case XTRACT_SPECTRAL_CENTROID:
- case XTRACT_IRREGULARITY_K:
- case XTRACT_IRREGULARITY_J:
- case XTRACT_TRISTIMULUS_1:
- case XTRACT_TRISTIMULUS_2:
- case XTRACT_TRISTIMULUS_3:
- case XTRACT_SMOOTHNESS:
- case XTRACT_SPREAD:
- case XTRACT_ZCR:
- case XTRACT_ROLLOFF:
- case XTRACT_LOUDNESS:
- case XTRACT_FLATNESS:
- case XTRACT_FLATNESS_DB:
- case XTRACT_TONALITY:
- case XTRACT_CREST:
- case XTRACT_NOISINESS:
case XTRACT_RMS_AMPLITUDE:
- case XTRACT_SPECTRAL_INHARMONICITY:
- case XTRACT_POWER:
- case XTRACT_ODD_EVEN_RATIO:
- case XTRACT_SHARPNESS:
- case XTRACT_SPECTRAL_SLOPE:
case XTRACT_LOWEST_VALUE:
case XTRACT_HIGHEST_VALUE:
case XTRACT_SUM:
- case XTRACT_HPS:
- case XTRACT_F0:
- case XTRACT_FAILSAFE_F0:
case XTRACT_FLUX:
case XTRACT_LNORM:
case XTRACT_NONZERO_COUNT:
- *is_scalar = XTRACT_TRUE;
- break;
- case XTRACT_AUTOCORRELATION:
- case XTRACT_AMDF:
- case XTRACT_ASDF:
- case XTRACT_BARK_COEFFICIENTS:
- case XTRACT_PEAK_SPECTRUM:
- case XTRACT_SPECTRUM:
- case XTRACT_SUBBANDS:
- case XTRACT_AUTOCORRELATION_FFT:
- case XTRACT_MFCC:
- case XTRACT_LPC:
- case XTRACT_LPCC:
- case XTRACT_DCT:
- case XTRACT_HARMONIC_SPECTRUM:
- case XTRACT_DIFFERENCE_VECTOR:
case XTRACT_WINDOWED:
- *is_scalar = XTRACT_FALSE;
- break;
- default:
- *is_scalar = XTRACT_TRUE;
- break;
-
- }
-
- is_delta = &d->is_delta;
-
- switch(f){
- case XTRACT_FLUX:
- case XTRACT_LNORM:
- case XTRACT_DIFFERENCE_VECTOR:
- *is_delta = XTRACT_TRUE;
+ *result_unit = XTRACT_ANY;
+ *result_min = XTRACT_ANY;
+ *result_max = XTRACT_ANY;
break;
- case XTRACT_MEAN:
- case XTRACT_VARIANCE:
- case XTRACT_STANDARD_DEVIATION:
- case XTRACT_AVERAGE_DEVIATION:
- case XTRACT_SKEWNESS:
- case XTRACT_KURTOSIS:
- case XTRACT_SPECTRAL_MEAN:
- case XTRACT_SPECTRAL_VARIANCE:
- case XTRACT_SPECTRAL_STANDARD_DEVIATION:
- /* case XTRACT_SPECTRAL_AVERAGE_DEVIATION: */
case XTRACT_SPECTRAL_SKEWNESS:
case XTRACT_SPECTRAL_KURTOSIS:
- case XTRACT_SPECTRAL_CENTROID:
case XTRACT_IRREGULARITY_K:
case XTRACT_IRREGULARITY_J:
case XTRACT_TRISTIMULUS_1:
case XTRACT_TRISTIMULUS_2:
case XTRACT_TRISTIMULUS_3:
+ case XTRACT_NOISINESS:
case XTRACT_SMOOTHNESS:
+ *result_unit = XTRACT_NONE;
+ *result_min = XTRACT_ANY; /* FIX: need to check these */
+ *result_max = XTRACT_ANY;
+ break;
+ case XTRACT_SPECTRAL_MEAN:
+ case XTRACT_SPECTRAL_VARIANCE:
+ case XTRACT_SPECTRAL_STANDARD_DEVIATION:
+ /* case XTRACT_SPECTRAL_AVERAGE_DEVIATION: */
+ case XTRACT_SPECTRAL_CENTROID:
case XTRACT_SPREAD:
- case XTRACT_ZCR:
+ case XTRACT_F0:
+ case XTRACT_FAILSAFE_F0:
+ case XTRACT_HPS:
case XTRACT_ROLLOFF:
+ *result_unit = XTRACT_HERTZ;
+ *result_min = 0.f;
+ *result_max = XTRACT_SR_UPPER_LIMIT / 2;
+ break;
+ case XTRACT_ZCR:
+ *result_unit = XTRACT_HERTZ;
+ *result_min = 0.f;
+ *result_max = XTRACT_ANY;
+ break;
+ case XTRACT_ODD_EVEN_RATIO:
+ *result_unit = XTRACT_NONE;
+ *result_min = 0.f;
+ *result_max = 1.f;
+ break;
+ case XTRACT_FLATNESS_DB:
+ *result_unit = XTRACT_DBFS;
+ *result_min = XTRACT_ANY; /* FIX: check this */
+ *result_max = XTRACT_ANY;
+ break;
case XTRACT_LOUDNESS:
case XTRACT_FLATNESS:
- case XTRACT_FLATNESS_DB:
case XTRACT_TONALITY:
case XTRACT_CREST:
- case XTRACT_NOISINESS:
- case XTRACT_RMS_AMPLITUDE:
case XTRACT_SPECTRAL_INHARMONICITY:
case XTRACT_POWER:
- case XTRACT_ODD_EVEN_RATIO:
case XTRACT_SHARPNESS:
case XTRACT_SPECTRAL_SLOPE:
- case XTRACT_LOWEST_VALUE:
- case XTRACT_HIGHEST_VALUE:
- case XTRACT_SUM:
- case XTRACT_HPS:
- case XTRACT_F0:
- case XTRACT_FAILSAFE_F0:
- case XTRACT_NONZERO_COUNT:
- case XTRACT_AUTOCORRELATION:
- case XTRACT_AMDF:
- case XTRACT_ASDF:
- case XTRACT_BARK_COEFFICIENTS:
- case XTRACT_PEAK_SPECTRUM:
- case XTRACT_SPECTRUM:
- case XTRACT_SUBBANDS:
- case XTRACT_AUTOCORRELATION_FFT:
- case XTRACT_MFCC:
case XTRACT_LPC:
case XTRACT_LPCC:
- case XTRACT_DCT:
- case XTRACT_HARMONIC_SPECTRUM:
- case XTRACT_WINDOWED:
default:
- *is_delta = XTRACT_FALSE;
+ *result_unit = XTRACT_UNKNOWN;
+ *result_min = XTRACT_UNKNOWN;
+ *result_max = XTRACT_UNKNOWN;
break;
- }
-
- if(*is_scalar){
-
- result_unit = &d->result.scalar.unit;
- result_min = &d->result.scalar.min;
- result_max = &d->result.scalar.max;
-
- switch(f){
- case XTRACT_MEAN:
- case XTRACT_VARIANCE:
- case XTRACT_STANDARD_DEVIATION:
- case XTRACT_AVERAGE_DEVIATION:
- case XTRACT_SKEWNESS:
- case XTRACT_KURTOSIS:
- case XTRACT_RMS_AMPLITUDE:
- case XTRACT_LOWEST_VALUE:
- case XTRACT_HIGHEST_VALUE:
- case XTRACT_SUM:
- case XTRACT_FLUX:
- case XTRACT_LNORM:
- case XTRACT_NONZERO_COUNT:
- case XTRACT_WINDOWED:
- *result_unit = XTRACT_ANY;
- *result_min = XTRACT_ANY;
- *result_max = XTRACT_ANY;
- break;
- case XTRACT_SPECTRAL_SKEWNESS:
- case XTRACT_SPECTRAL_KURTOSIS:
- case XTRACT_IRREGULARITY_K:
- case XTRACT_IRREGULARITY_J:
- case XTRACT_TRISTIMULUS_1:
- case XTRACT_TRISTIMULUS_2:
- case XTRACT_TRISTIMULUS_3:
- case XTRACT_NOISINESS:
- case XTRACT_SMOOTHNESS:
- *result_unit = XTRACT_NONE;
- *result_min = XTRACT_ANY; /* FIX: need to check these */
- *result_max = XTRACT_ANY;
- break;
- case XTRACT_SPECTRAL_MEAN:
- case XTRACT_SPECTRAL_VARIANCE:
- case XTRACT_SPECTRAL_STANDARD_DEVIATION:
- /* case XTRACT_SPECTRAL_AVERAGE_DEVIATION: */
- case XTRACT_SPECTRAL_CENTROID:
- case XTRACT_SPREAD:
- case XTRACT_F0:
- case XTRACT_FAILSAFE_F0:
- case XTRACT_HPS:
- case XTRACT_ROLLOFF:
- *result_unit = XTRACT_HERTZ;
- *result_min = 0.f;
- *result_max = XTRACT_SR_UPPER_LIMIT / 2;
- break;
- case XTRACT_ZCR:
- *result_unit = XTRACT_HERTZ;
- *result_min = 0.f;
- *result_max = XTRACT_ANY;
- break;
- case XTRACT_ODD_EVEN_RATIO:
- *result_unit = XTRACT_NONE;
- *result_min = 0.f;
- *result_max = 1.f;
- break;
- case XTRACT_FLATNESS_DB:
- *result_unit = XTRACT_DBFS;
- *result_min = XTRACT_ANY; /* FIX: check this */
- *result_max = XTRACT_ANY;
- break;
- case XTRACT_LOUDNESS:
- case XTRACT_FLATNESS:
- case XTRACT_TONALITY:
- case XTRACT_CREST:
- case XTRACT_SPECTRAL_INHARMONICITY:
- case XTRACT_POWER:
- case XTRACT_SHARPNESS:
- case XTRACT_SPECTRAL_SLOPE:
- case XTRACT_LPC:
- case XTRACT_LPCC:
- default:
- *result_unit = XTRACT_UNKNOWN;
- *result_min = XTRACT_UNKNOWN;
- *result_max = XTRACT_UNKNOWN;
- break;
}
}
- else {
+ else
+ {
result_min = NULL;
result_max = NULL;
result_unit = &d->result.vector.unit;
result_format = &d->result.vector.format;
- switch(f) {
- case XTRACT_AUTOCORRELATION:
- case XTRACT_AMDF:
- case XTRACT_ASDF:
- case XTRACT_DCT:
- case XTRACT_SUBBANDS:
- case XTRACT_WINDOWED:
- *result_format = XTRACT_ARBITRARY_SERIES;
- *result_unit = XTRACT_ANY;
- break;
- case XTRACT_BARK_COEFFICIENTS:
- *result_format = XTRACT_BARK_COEFFS;
- *result_unit = XTRACT_UNKNOWN; /* FIX: check */
- break;
- case XTRACT_PEAK_SPECTRUM:
- case XTRACT_SPECTRUM:
- case XTRACT_HARMONIC_SPECTRUM:
- *result_format = XTRACT_SPECTRAL;
- *result_unit = XTRACT_ANY_AMPLITUDE_HERTZ;
- break;
- case XTRACT_AUTOCORRELATION_FFT:
- break;
- case XTRACT_MFCC:
- *result_format = XTRACT_MEL_COEFFS;
- *result_unit = XTRACT_UNKNOWN; /* FIX: check */
- break;
- case XTRACT_LPC:
- *result_format = XTRACT_LPC_COEFFS;
- *result_unit = XTRACT_UNKNOWN;
- break;
- case XTRACT_LPCC:
- *result_format = XTRACT_LPCC_COEFFS;
- *result_unit = XTRACT_UNKNOWN;
- break;
- default:
- break;
+ switch(f)
+ {
+ case XTRACT_AUTOCORRELATION:
+ case XTRACT_AMDF:
+ case XTRACT_ASDF:
+ case XTRACT_DCT:
+ case XTRACT_SUBBANDS:
+ case XTRACT_WINDOWED:
+ *result_format = XTRACT_ARBITRARY_SERIES;
+ *result_unit = XTRACT_ANY;
+ break;
+ case XTRACT_BARK_COEFFICIENTS:
+ *result_format = XTRACT_BARK_COEFFS;
+ *result_unit = XTRACT_UNKNOWN; /* FIX: check */
+ break;
+ case XTRACT_PEAK_SPECTRUM:
+ case XTRACT_SPECTRUM:
+ case XTRACT_HARMONIC_SPECTRUM:
+ *result_format = XTRACT_SPECTRAL;
+ *result_unit = XTRACT_ANY_AMPLITUDE_HERTZ;
+ break;
+ case XTRACT_AUTOCORRELATION_FFT:
+ break;
+ case XTRACT_MFCC:
+ *result_format = XTRACT_MEL_COEFFS;
+ *result_unit = XTRACT_UNKNOWN; /* FIX: check */
+ break;
+ case XTRACT_LPC:
+ *result_format = XTRACT_LPC_COEFFS;
+ *result_unit = XTRACT_UNKNOWN;
+ break;
+ case XTRACT_LPCC:
+ *result_format = XTRACT_LPCC_COEFFS;
+ *result_unit = XTRACT_UNKNOWN;
+ break;
+ default:
+ break;
}
}
}
@@ -1321,9 +1335,11 @@ xtract_function_descriptor_t *xtract_make_descriptors(void){
return fd;
}
-int xtract_free_descriptors(xtract_function_descriptor_t *fd){
+int xtract_free_descriptors(xtract_function_descriptor_t *fd)
+{
- if (fd != NULL) {
+ if (fd != NULL)
+ {
free(fd);
}