Mercurial > hg > libxtract
comparison src/descriptors.c @ 211:ef80f7c52c6d
add VC2012 project to compile static and dynamic lib, also fix some C
issues
| author | Q <andrea@nocte.co.uk> |
|---|---|
| date | Thu, 27 Mar 2014 09:48:26 +0000 |
| parents | f6fcf3bec020 |
| children | d383a8c66b5d |
comparison
equal
deleted
inserted
replaced
| 210:c99c00e1c508 | 211:ef80f7c52c6d |
|---|---|
| 40 xtract_function_descriptor_t *fd, *d; | 40 xtract_function_descriptor_t *fd, *d; |
| 41 xtract_type_t *argv_type; | 41 xtract_type_t *argv_type; |
| 42 | 42 |
| 43 f = F = XTRACT_FEATURES; | 43 f = F = XTRACT_FEATURES; |
| 44 | 44 |
| 45 fd = malloc(XTRACT_FEATURES * sizeof(xtract_function_descriptor_t)); | 45 fd = (xtract_function_descriptor_t*)malloc(XTRACT_FEATURES * sizeof(xtract_function_descriptor_t)); |
| 46 | 46 |
| 47 /* FIX - this file probably needs a rewrite for readability */ | 47 /* FIX - this file probably needs a rewrite for readability */ |
| 48 | 48 |
| 49 while(f--) | 49 while(f--) |
| 50 { | 50 { |
| 127 *argv_def = XTRACT_FUNDAMENTAL_DEFAULT; | 127 *argv_def = XTRACT_FUNDAMENTAL_DEFAULT; |
| 128 *argv_unit = XTRACT_HERTZ; | 128 *argv_unit = XTRACT_HERTZ; |
| 129 *(argv_min + 1) = 0.0; | 129 *(argv_min + 1) = 0.0; |
| 130 *(argv_max + 1) = 1.0 ; | 130 *(argv_max + 1) = 1.0 ; |
| 131 *(argv_def + 1) = .1 ; | 131 *(argv_def + 1) = .1 ; |
| 132 *(argv_unit + 1) = XTRACT_NONE; | 132 *(argv_unit + 1) = (xtract_unit_t)XTRACT_NONE; |
| 133 break; | 133 break; |
| 134 case XTRACT_NOISINESS: | 134 case XTRACT_NOISINESS: |
| 135 case XTRACT_SKEWNESS: | 135 case XTRACT_SKEWNESS: |
| 136 case XTRACT_KURTOSIS: | 136 case XTRACT_KURTOSIS: |
| 137 case XTRACT_SPECTRAL_SKEWNESS: | 137 case XTRACT_SPECTRAL_SKEWNESS: |
| 138 case XTRACT_SPECTRAL_KURTOSIS: | 138 case XTRACT_SPECTRAL_KURTOSIS: |
| 139 case XTRACT_CREST: | 139 case XTRACT_CREST: |
| 140 *argv_min = XTRACT_NONE; | 140 *argv_min = XTRACT_NONE; |
| 141 *argv_max = XTRACT_NONE; | 141 *argv_max = XTRACT_NONE; |
| 142 *argv_def = XTRACT_NONE; | 142 *argv_def = XTRACT_NONE; |
| 143 *argv_unit = XTRACT_NONE; | 143 *argv_unit = (xtract_unit_t)XTRACT_NONE; |
| 144 *(argv_min + 1) = XTRACT_NONE; | 144 *(argv_min + 1) = XTRACT_NONE; |
| 145 *(argv_max + 1) = XTRACT_NONE; | 145 *(argv_max + 1) = XTRACT_NONE; |
| 146 *(argv_def + 1) = XTRACT_NONE; | 146 *(argv_def + 1) = XTRACT_NONE; |
| 147 *(argv_unit + 1) = XTRACT_NONE; | 147 *(argv_unit + 1) = (xtract_unit_t)XTRACT_NONE; |
| 148 break; | 148 break; |
| 149 /* argc = 4 */ | 149 /* argc = 4 */ |
| 150 case XTRACT_SPECTRUM: | 150 case XTRACT_SPECTRUM: |
| 151 *argv_min = XTRACT_SR_LOWER_LIMIT / XTRACT_FFT_BANDS_MIN; | 151 *argv_min = XTRACT_SR_LOWER_LIMIT / XTRACT_FFT_BANDS_MIN; |
| 152 *argv_max = XTRACT_SR_UPPER_LIMIT / XTRACT_FFT_BANDS_MAX; | 152 *argv_max = XTRACT_SR_UPPER_LIMIT / XTRACT_FFT_BANDS_MAX; |
| 153 *argv_def = XTRACT_SR_DEFAULT / XTRACT_FFT_BANDS_DEF; | 153 *argv_def = XTRACT_SR_DEFAULT / XTRACT_FFT_BANDS_DEF; |
| 154 *argv_unit = XTRACT_HERTZ; | 154 *argv_unit = XTRACT_HERTZ; |
| 155 *(argv_min + 1) = 0; | 155 *(argv_min + 1) = 0; |
| 156 *(argv_max + 1) = 3 ; | 156 *(argv_max + 1) = 3 ; |
| 157 *(argv_def + 1) = 0; | 157 *(argv_def + 1) = 0; |
| 158 *(argv_unit + 1) = XTRACT_NONE; | 158 *(argv_unit + 1) = (xtract_unit_t)XTRACT_NONE; |
| 159 *(argv_min + 2) = 0; | 159 *(argv_min + 2) = 0; |
| 160 *(argv_max + 2) = 1; | 160 *(argv_max + 2) = 1; |
| 161 *(argv_def + 2) = 0; | 161 *(argv_def + 2) = 0; |
| 162 *(argv_unit + 2) = XTRACT_NONE; | 162 *(argv_unit + 2) = (xtract_unit_t)XTRACT_NONE; |
| 163 *(argv_min + 3) = 0; | 163 *(argv_min + 3) = 0; |
| 164 *(argv_max + 3) = 1; | 164 *(argv_max + 3) = 1; |
| 165 *(argv_def + 3) = 0; | 165 *(argv_def + 3) = 0; |
| 166 *(argv_unit + 3) = XTRACT_NONE; | 166 *(argv_unit + 3) = (xtract_unit_t)XTRACT_NONE; |
| 167 break; | 167 break; |
| 168 case XTRACT_SUBBANDS: | 168 case XTRACT_SUBBANDS: |
| 169 *argv_min = XTRACT_ANY; | 169 *argv_min = XTRACT_ANY; |
| 170 *argv_max = XTRACT_ANY; | 170 *argv_max = XTRACT_ANY; |
| 171 *argv_def = XTRACT_MEAN; | 171 *argv_def = XTRACT_MEAN; |
| 172 *argv_unit = XTRACT_NONE; | 172 *argv_unit = (xtract_unit_t)XTRACT_NONE; |
| 173 *(argv_min + 1) = 1; | 173 *(argv_min + 1) = 1; |
| 174 *(argv_max + 1) = 16384; | 174 *(argv_max + 1) = 16384; |
| 175 *(argv_def + 1) = 4; | 175 *(argv_def + 1) = 4; |
| 176 *(argv_unit + 1) = XTRACT_NONE; | 176 *(argv_unit + 1) = (xtract_unit_t)XTRACT_NONE; |
| 177 *(argv_min + 2) = 0; | 177 *(argv_min + 2) = 0; |
| 178 *(argv_max + 2) = 32; | 178 *(argv_max + 2) = 32; |
| 179 *(argv_def + 2) = 0; | 179 *(argv_def + 2) = 0; |
| 180 *(argv_unit + 2) = XTRACT_NONE; | 180 *(argv_unit + 2) = (xtract_unit_t)XTRACT_NONE; |
| 181 *(argv_min + 3) = 0; | 181 *(argv_min + 3) = 0; |
| 182 *(argv_max + 3) = XTRACT_ANY; | 182 *(argv_max + 3) = XTRACT_ANY; |
| 183 *(argv_def + 3) = 0; | 183 *(argv_def + 3) = 0; |
| 184 *(argv_unit + 3) = XTRACT_BINS; | 184 *(argv_unit + 3) = XTRACT_BINS; |
| 185 break; | 185 break; |
| 189 /* WINDOWED is special because argc = window size = N */ | 189 /* WINDOWED is special because argc = window size = N */ |
| 190 default: | 190 default: |
| 191 *argv_min = XTRACT_NONE; | 191 *argv_min = XTRACT_NONE; |
| 192 *argv_max = XTRACT_NONE; | 192 *argv_max = XTRACT_NONE; |
| 193 *argv_def = XTRACT_NONE; | 193 *argv_def = XTRACT_NONE; |
| 194 *argv_unit = XTRACT_NONE; | 194 *argv_unit = (xtract_unit_t)XTRACT_NONE; |
| 195 break; | 195 break; |
| 196 } | 196 } |
| 197 | 197 |
| 198 argv_donor = &d->argv.donor[0]; | 198 argv_donor = &d->argv.donor[0]; |
| 199 | 199 |
| 441 case XTRACT_NONZERO_COUNT: | 441 case XTRACT_NONZERO_COUNT: |
| 442 case XTRACT_LPC: | 442 case XTRACT_LPC: |
| 443 case XTRACT_LPCC: | 443 case XTRACT_LPCC: |
| 444 case XTRACT_WINDOWED: | 444 case XTRACT_WINDOWED: |
| 445 case XTRACT_SUBBANDS: | 445 case XTRACT_SUBBANDS: |
| 446 *data_unit = XTRACT_ANY; | 446 *data_unit = (xtract_unit_t)XTRACT_ANY; |
| 447 break; | 447 break; |
| 448 case XTRACT_SPECTRAL_MEAN: | 448 case XTRACT_SPECTRAL_MEAN: |
| 449 case XTRACT_SPECTRAL_VARIANCE: | 449 case XTRACT_SPECTRAL_VARIANCE: |
| 450 case XTRACT_SPECTRAL_STANDARD_DEVIATION: | 450 case XTRACT_SPECTRAL_STANDARD_DEVIATION: |
| 451 /* case XTRACT_SPECTRAL_AVERAGE_DEVIATION: */ | 451 /* case XTRACT_SPECTRAL_AVERAGE_DEVIATION: */ |
| 1249 case XTRACT_SUM: | 1249 case XTRACT_SUM: |
| 1250 case XTRACT_FLUX: | 1250 case XTRACT_FLUX: |
| 1251 case XTRACT_LNORM: | 1251 case XTRACT_LNORM: |
| 1252 case XTRACT_NONZERO_COUNT: | 1252 case XTRACT_NONZERO_COUNT: |
| 1253 case XTRACT_WINDOWED: | 1253 case XTRACT_WINDOWED: |
| 1254 *result_unit = XTRACT_ANY; | 1254 *result_unit = (xtract_unit_t)XTRACT_ANY; |
| 1255 *result_min = XTRACT_ANY; | 1255 *result_min = XTRACT_ANY; |
| 1256 *result_max = XTRACT_ANY; | 1256 *result_max = XTRACT_ANY; |
| 1257 break; | 1257 break; |
| 1258 case XTRACT_SPECTRAL_SKEWNESS: | 1258 case XTRACT_SPECTRAL_SKEWNESS: |
| 1259 case XTRACT_SPECTRAL_KURTOSIS: | 1259 case XTRACT_SPECTRAL_KURTOSIS: |
| 1262 case XTRACT_TRISTIMULUS_1: | 1262 case XTRACT_TRISTIMULUS_1: |
| 1263 case XTRACT_TRISTIMULUS_2: | 1263 case XTRACT_TRISTIMULUS_2: |
| 1264 case XTRACT_TRISTIMULUS_3: | 1264 case XTRACT_TRISTIMULUS_3: |
| 1265 case XTRACT_NOISINESS: | 1265 case XTRACT_NOISINESS: |
| 1266 case XTRACT_SMOOTHNESS: | 1266 case XTRACT_SMOOTHNESS: |
| 1267 *result_unit = XTRACT_NONE; | 1267 *result_unit = (xtract_unit_t)XTRACT_NONE; |
| 1268 *result_min = XTRACT_ANY; /* FIX: need to check these */ | 1268 *result_min = XTRACT_ANY; /* FIX: need to check these */ |
| 1269 *result_max = XTRACT_ANY; | 1269 *result_max = XTRACT_ANY; |
| 1270 break; | 1270 break; |
| 1271 case XTRACT_SPECTRAL_MEAN: | 1271 case XTRACT_SPECTRAL_MEAN: |
| 1272 case XTRACT_SPECTRAL_VARIANCE: | 1272 case XTRACT_SPECTRAL_VARIANCE: |
| 1291 *result_unit = XTRACT_HERTZ; | 1291 *result_unit = XTRACT_HERTZ; |
| 1292 *result_min = 0.0; | 1292 *result_min = 0.0; |
| 1293 *result_max = XTRACT_ANY; | 1293 *result_max = XTRACT_ANY; |
| 1294 break; | 1294 break; |
| 1295 case XTRACT_ODD_EVEN_RATIO: | 1295 case XTRACT_ODD_EVEN_RATIO: |
| 1296 *result_unit = XTRACT_NONE; | 1296 *result_unit = (xtract_unit_t)XTRACT_NONE; |
| 1297 *result_min = 0.0; | 1297 *result_min = 0.0; |
| 1298 *result_max = 1.0; | 1298 *result_max = 1.0; |
| 1299 break; | 1299 break; |
| 1300 case XTRACT_FLATNESS_DB: | 1300 case XTRACT_FLATNESS_DB: |
| 1301 *result_unit = XTRACT_DBFS; | 1301 *result_unit = XTRACT_DBFS; |
| 1311 case XTRACT_SHARPNESS: | 1311 case XTRACT_SHARPNESS: |
| 1312 case XTRACT_SPECTRAL_SLOPE: | 1312 case XTRACT_SPECTRAL_SLOPE: |
| 1313 case XTRACT_LPC: | 1313 case XTRACT_LPC: |
| 1314 case XTRACT_LPCC: | 1314 case XTRACT_LPCC: |
| 1315 default: | 1315 default: |
| 1316 *result_unit = XTRACT_UNKNOWN; | 1316 *result_unit = (xtract_unit_t)XTRACT_UNKNOWN; |
| 1317 *result_min = XTRACT_UNKNOWN; | 1317 *result_min = XTRACT_UNKNOWN; |
| 1318 *result_max = XTRACT_UNKNOWN; | 1318 *result_max = XTRACT_UNKNOWN; |
| 1319 break; | 1319 break; |
| 1320 } | 1320 } |
| 1321 } | 1321 } |
| 1334 case XTRACT_ASDF: | 1334 case XTRACT_ASDF: |
| 1335 case XTRACT_DCT: | 1335 case XTRACT_DCT: |
| 1336 case XTRACT_SUBBANDS: | 1336 case XTRACT_SUBBANDS: |
| 1337 case XTRACT_WINDOWED: | 1337 case XTRACT_WINDOWED: |
| 1338 *result_format = XTRACT_ARBITRARY_SERIES; | 1338 *result_format = XTRACT_ARBITRARY_SERIES; |
| 1339 *result_unit = XTRACT_ANY; | 1339 *result_unit = (xtract_unit_t)XTRACT_ANY; |
| 1340 break; | 1340 break; |
| 1341 case XTRACT_BARK_COEFFICIENTS: | 1341 case XTRACT_BARK_COEFFICIENTS: |
| 1342 *result_format = XTRACT_BARK_COEFFS; | 1342 *result_format = XTRACT_BARK_COEFFS; |
| 1343 *result_unit = XTRACT_UNKNOWN; /* FIX: check */ | 1343 *result_unit = (xtract_unit_t)XTRACT_UNKNOWN; /* FIX: check */ |
| 1344 break; | 1344 break; |
| 1345 case XTRACT_PEAK_SPECTRUM: | 1345 case XTRACT_PEAK_SPECTRUM: |
| 1346 case XTRACT_SPECTRUM: | 1346 case XTRACT_SPECTRUM: |
| 1347 case XTRACT_HARMONIC_SPECTRUM: | 1347 case XTRACT_HARMONIC_SPECTRUM: |
| 1348 *result_format = XTRACT_SPECTRAL; | 1348 *result_format = XTRACT_SPECTRAL; |
| 1350 break; | 1350 break; |
| 1351 case XTRACT_AUTOCORRELATION_FFT: | 1351 case XTRACT_AUTOCORRELATION_FFT: |
| 1352 break; | 1352 break; |
| 1353 case XTRACT_MFCC: | 1353 case XTRACT_MFCC: |
| 1354 *result_format = XTRACT_MEL_COEFFS; | 1354 *result_format = XTRACT_MEL_COEFFS; |
| 1355 *result_unit = XTRACT_UNKNOWN; /* FIX: check */ | 1355 *result_unit = (xtract_unit_t)XTRACT_UNKNOWN; /* FIX: check */ |
| 1356 break; | 1356 break; |
| 1357 case XTRACT_LPC: | 1357 case XTRACT_LPC: |
| 1358 *result_format = XTRACT_LPC_COEFFS; | 1358 *result_format = XTRACT_LPC_COEFFS; |
| 1359 *result_unit = XTRACT_UNKNOWN; | 1359 *result_unit = (xtract_unit_t)XTRACT_UNKNOWN; |
| 1360 break; | 1360 break; |
| 1361 case XTRACT_LPCC: | 1361 case XTRACT_LPCC: |
| 1362 *result_format = XTRACT_LPCC_COEFFS; | 1362 *result_format = XTRACT_LPCC_COEFFS; |
| 1363 *result_unit = XTRACT_UNKNOWN; | 1363 *result_unit = (xtract_unit_t)XTRACT_UNKNOWN; |
| 1364 break; | 1364 break; |
| 1365 default: | 1365 default: |
| 1366 break; | 1366 break; |
| 1367 } | 1367 } |
| 1368 } | 1368 } |
