diff options
Diffstat (limited to 'src/descriptors.c')
-rw-r--r-- | src/descriptors.c | 59 |
1 files changed, 38 insertions, 21 deletions
diff --git a/src/descriptors.c b/src/descriptors.c index 044f3d4..2bfdd35 100644 --- a/src/descriptors.c +++ b/src/descriptors.c @@ -42,7 +42,7 @@ xtract_function_descriptor_t *xtract_make_descriptors(void) f = F = XTRACT_FEATURES; - fd = malloc(XTRACT_FEATURES * sizeof(xtract_function_descriptor_t)); + fd = (xtract_function_descriptor_t*)malloc(XTRACT_FEATURES * sizeof(xtract_function_descriptor_t)); /* FIX - this file probably needs a rewrite for readability */ @@ -88,6 +88,7 @@ xtract_function_descriptor_t *xtract_make_descriptors(void) case XTRACT_F0: case XTRACT_FAILSAFE_F0: case XTRACT_WAVELET_F0: + case XTRACT_MIDICENT: *argv_min = XTRACT_SR_LOWER_LIMIT; *argv_max = XTRACT_SR_UPPER_LIMIT; *argv_def = XTRACT_SR_DEFAULT; @@ -128,7 +129,7 @@ xtract_function_descriptor_t *xtract_make_descriptors(void) *(argv_min + 1) = 0.0; *(argv_max + 1) = 1.0 ; *(argv_def + 1) = .1 ; - *(argv_unit + 1) = XTRACT_NONE; + *(argv_unit + 1) = (xtract_unit_t)XTRACT_NONE; break; case XTRACT_NOISINESS: case XTRACT_SKEWNESS: @@ -139,11 +140,11 @@ xtract_function_descriptor_t *xtract_make_descriptors(void) *argv_min = XTRACT_NONE; *argv_max = XTRACT_NONE; *argv_def = XTRACT_NONE; - *argv_unit = XTRACT_NONE; + *argv_unit = (xtract_unit_t)XTRACT_NONE; *(argv_min + 1) = XTRACT_NONE; *(argv_max + 1) = XTRACT_NONE; *(argv_def + 1) = XTRACT_NONE; - *(argv_unit + 1) = XTRACT_NONE; + *(argv_unit + 1) = (xtract_unit_t)XTRACT_NONE; break; /* argc = 4 */ case XTRACT_SPECTRUM: @@ -154,29 +155,29 @@ xtract_function_descriptor_t *xtract_make_descriptors(void) *(argv_min + 1) = 0; *(argv_max + 1) = 3 ; *(argv_def + 1) = 0; - *(argv_unit + 1) = XTRACT_NONE; + *(argv_unit + 1) = (xtract_unit_t)XTRACT_NONE; *(argv_min + 2) = 0; *(argv_max + 2) = 1; *(argv_def + 2) = 0; - *(argv_unit + 2) = XTRACT_NONE; + *(argv_unit + 2) = (xtract_unit_t)XTRACT_NONE; *(argv_min + 3) = 0; *(argv_max + 3) = 1; *(argv_def + 3) = 0; - *(argv_unit + 3) = XTRACT_NONE; + *(argv_unit + 3) = (xtract_unit_t)XTRACT_NONE; break; case XTRACT_SUBBANDS: *argv_min = XTRACT_ANY; *argv_max = XTRACT_ANY; *argv_def = XTRACT_MEAN; - *argv_unit = XTRACT_NONE; + *argv_unit = (xtract_unit_t)XTRACT_NONE; *(argv_min + 1) = 1; *(argv_max + 1) = 16384; *(argv_def + 1) = 4; - *(argv_unit + 1) = XTRACT_NONE; + *(argv_unit + 1) = (xtract_unit_t)XTRACT_NONE; *(argv_min + 2) = 0; *(argv_max + 2) = 32; *(argv_def + 2) = 0; - *(argv_unit + 2) = XTRACT_NONE; + *(argv_unit + 2) = (xtract_unit_t)XTRACT_NONE; *(argv_min + 3) = 0; *(argv_max + 3) = XTRACT_ANY; *(argv_def + 3) = 0; @@ -190,7 +191,7 @@ xtract_function_descriptor_t *xtract_make_descriptors(void) *argv_min = XTRACT_NONE; *argv_max = XTRACT_NONE; *argv_def = XTRACT_NONE; - *argv_unit = XTRACT_NONE; + *argv_unit = (xtract_unit_t)XTRACT_NONE; break; } @@ -230,6 +231,7 @@ xtract_function_descriptor_t *xtract_make_descriptors(void) case XTRACT_F0: case XTRACT_FAILSAFE_F0: case XTRACT_WAVELET_F0: + case XTRACT_MIDICENT: *argv_donor = XTRACT_ANY; break; case XTRACT_MFCC: @@ -380,6 +382,7 @@ xtract_function_descriptor_t *xtract_make_descriptors(void) break; case XTRACT_ATTACK_TIME: case XTRACT_DECAY_TIME: + case XTRACT_MIDICENT: default: *data_format = XTRACT_NO_DATA; break; @@ -440,7 +443,7 @@ xtract_function_descriptor_t *xtract_make_descriptors(void) case XTRACT_LPCC: case XTRACT_WINDOWED: case XTRACT_SUBBANDS: - *data_unit = XTRACT_ANY; + *data_unit = (xtract_unit_t)XTRACT_ANY; break; case XTRACT_SPECTRAL_MEAN: case XTRACT_SPECTRAL_VARIANCE: @@ -620,6 +623,13 @@ xtract_function_descriptor_t *xtract_make_descriptors(void) "Extract the fundamental frequency of an audio signal (wavelet method)"); strcpy(author, "Antoine Schmitt"); break; + case XTRACT_MIDICENT: + strcpy(name, "midicent"); + strcpy(p_name, "Frequency to MIDI Cent conversion"); + strcpy(desc, "Convert frequency in Hertz to Pitch in MIDI cents"); + strcpy(p_desc, "Convert frequency in Hertz to Pitch in MIDI cents"); + strcpy(author, "Jamie Bullock"); + break; case XTRACT_TONALITY: strcpy(name, "tonality"); strcpy(p_name, "Tonality"); @@ -993,6 +1003,7 @@ xtract_function_descriptor_t *xtract_make_descriptors(void) case XTRACT_F0: case XTRACT_FAILSAFE_F0: case XTRACT_WAVELET_F0: + case XTRACT_MIDICENT: case XTRACT_FLATNESS_DB: case XTRACT_TONALITY: *argc = 1; @@ -1117,6 +1128,7 @@ xtract_function_descriptor_t *xtract_make_descriptors(void) case XTRACT_F0: case XTRACT_FAILSAFE_F0: case XTRACT_WAVELET_F0: + case XTRACT_MIDICENT: case XTRACT_FLUX: case XTRACT_LNORM: case XTRACT_NONZERO_COUNT: @@ -1195,6 +1207,7 @@ xtract_function_descriptor_t *xtract_make_descriptors(void) case XTRACT_F0: case XTRACT_FAILSAFE_F0: case XTRACT_WAVELET_F0: + case XTRACT_MIDICENT: case XTRACT_NONZERO_COUNT: case XTRACT_AUTOCORRELATION: case XTRACT_AMDF: @@ -1238,7 +1251,7 @@ xtract_function_descriptor_t *xtract_make_descriptors(void) case XTRACT_LNORM: case XTRACT_NONZERO_COUNT: case XTRACT_WINDOWED: - *result_unit = XTRACT_ANY; + *result_unit = (xtract_unit_t)XTRACT_ANY; *result_min = XTRACT_ANY; *result_max = XTRACT_ANY; break; @@ -1251,7 +1264,7 @@ xtract_function_descriptor_t *xtract_make_descriptors(void) case XTRACT_TRISTIMULUS_3: case XTRACT_NOISINESS: case XTRACT_SMOOTHNESS: - *result_unit = XTRACT_NONE; + *result_unit = (xtract_unit_t)XTRACT_NONE; *result_min = XTRACT_ANY; /* FIX: need to check these */ *result_max = XTRACT_ANY; break; @@ -1270,13 +1283,17 @@ xtract_function_descriptor_t *xtract_make_descriptors(void) *result_min = 0.0; *result_max = XTRACT_SR_UPPER_LIMIT / 2.0; break; + case XTRACT_MIDICENT: + *result_unit = XTRACT_MIDI_CENT; + *result_min = 0.0; + *result_max = 12700; case XTRACT_ZCR: *result_unit = XTRACT_HERTZ; *result_min = 0.0; *result_max = XTRACT_ANY; break; case XTRACT_ODD_EVEN_RATIO: - *result_unit = XTRACT_NONE; + *result_unit = (xtract_unit_t)XTRACT_NONE; *result_min = 0.0; *result_max = 1.0; break; @@ -1296,7 +1313,7 @@ xtract_function_descriptor_t *xtract_make_descriptors(void) case XTRACT_LPC: case XTRACT_LPCC: default: - *result_unit = XTRACT_UNKNOWN; + *result_unit = (xtract_unit_t)XTRACT_UNKNOWN; *result_min = XTRACT_UNKNOWN; *result_max = XTRACT_UNKNOWN; break; @@ -1319,11 +1336,11 @@ xtract_function_descriptor_t *xtract_make_descriptors(void) case XTRACT_SUBBANDS: case XTRACT_WINDOWED: *result_format = XTRACT_ARBITRARY_SERIES; - *result_unit = XTRACT_ANY; + *result_unit = (xtract_unit_t)XTRACT_ANY; break; case XTRACT_BARK_COEFFICIENTS: *result_format = XTRACT_BARK_COEFFS; - *result_unit = XTRACT_UNKNOWN; /* FIX: check */ + *result_unit = (xtract_unit_t)XTRACT_UNKNOWN; /* FIX: check */ break; case XTRACT_PEAK_SPECTRUM: case XTRACT_SPECTRUM: @@ -1335,15 +1352,15 @@ xtract_function_descriptor_t *xtract_make_descriptors(void) break; case XTRACT_MFCC: *result_format = XTRACT_MEL_COEFFS; - *result_unit = XTRACT_UNKNOWN; /* FIX: check */ + *result_unit = (xtract_unit_t)XTRACT_UNKNOWN; /* FIX: check */ break; case XTRACT_LPC: *result_format = XTRACT_LPC_COEFFS; - *result_unit = XTRACT_UNKNOWN; + *result_unit = (xtract_unit_t)XTRACT_UNKNOWN; break; case XTRACT_LPCC: *result_format = XTRACT_LPCC_COEFFS; - *result_unit = XTRACT_UNKNOWN; + *result_unit = (xtract_unit_t)XTRACT_UNKNOWN; break; default: break; |