comparison src/descriptors.c @ 59:8fd7088c8ff6

Various minor fixes
author Jamie Bullock <jamie@postlude.co.uk>
date Mon, 12 Feb 2007 17:11:31 +0000
parents 450712b21565
children 192097e366d1
comparison
equal deleted inserted replaced
58:3936f8492cab 59:8fd7088c8ff6
55 case XTRACT_AVERAGE_DEVIATION: 55 case XTRACT_AVERAGE_DEVIATION:
56 case XTRACT_SPECTRAL_VARIANCE: 56 case XTRACT_SPECTRAL_VARIANCE:
57 case XTRACT_SPECTRAL_STANDARD_DEVIATION: 57 case XTRACT_SPECTRAL_STANDARD_DEVIATION:
58 case XTRACT_SPECTRAL_AVERAGE_DEVIATION: 58 case XTRACT_SPECTRAL_AVERAGE_DEVIATION:
59 case XTRACT_SPECTRAL_INHARMONICITY: 59 case XTRACT_SPECTRAL_INHARMONICITY:
60 case XTRACT_ODD_EVEN_RATIO:
61 case XTRACT_LOWEST_VALUE: 60 case XTRACT_LOWEST_VALUE:
62 case XTRACT_F0: 61 case XTRACT_F0:
63 case XTRACT_FAILSAFE_F0: 62 case XTRACT_FAILSAFE_F0:
64 case XTRACT_TONALITY: 63 case XTRACT_TONALITY:
65 *argc = 1; 64 *argc = 1;
113 case XTRACT_AUTOCORRELATION_FFT: 112 case XTRACT_AUTOCORRELATION_FFT:
114 case XTRACT_DCT: 113 case XTRACT_DCT:
115 case XTRACT_AUTOCORRELATION: 114 case XTRACT_AUTOCORRELATION:
116 case XTRACT_AMDF: 115 case XTRACT_AMDF:
117 case XTRACT_ASDF: 116 case XTRACT_ASDF:
117 case XTRACT_NONZERO_COUNT:
118 case XTRACT_ODD_EVEN_RATIO:
118 default: 119 default:
119 *argc = 0; 120 *argc = 0;
120 break; 121 break;
121 } 122 }
122 123
139 *argv_min = XTRACT_ANY; 140 *argv_min = XTRACT_ANY;
140 *argv_max = XTRACT_ANY; 141 *argv_max = XTRACT_ANY;
141 *argv_def = XTRACT_ANY; 142 *argv_def = XTRACT_ANY;
142 *argv_unit = XTRACT_ANY; 143 *argv_unit = XTRACT_ANY;
143 case XTRACT_SPECTRAL_INHARMONICITY: 144 case XTRACT_SPECTRAL_INHARMONICITY:
144 case XTRACT_ODD_EVEN_RATIO:
145 *argv_min = 0.f; 145 *argv_min = 0.f;
146 *argv_max = XTRACT_SR_UPPER_LIMIT / 2; 146 *argv_max = XTRACT_SR_UPPER_LIMIT / 2;
147 *argv_def = XTRACT_FUNDAMENTAL_DEFAULT; 147 *argv_def = XTRACT_FUNDAMENTAL_DEFAULT;
148 *argv_unit = XTRACT_HERTZ; 148 *argv_unit = XTRACT_HERTZ;
149 case XTRACT_F0: 149 case XTRACT_F0:
233 break; 233 break;
234 case XTRACT_SPECTRAL_AVERAGE_DEVIATION: 234 case XTRACT_SPECTRAL_AVERAGE_DEVIATION:
235 *argv_donor = XTRACT_SPECTRAL_MEAN; 235 *argv_donor = XTRACT_SPECTRAL_MEAN;
236 break; 236 break;
237 case XTRACT_SPECTRAL_INHARMONICITY: 237 case XTRACT_SPECTRAL_INHARMONICITY:
238 case XTRACT_ODD_EVEN_RATIO:
239 *argv_donor = XTRACT_FAILSAFE_F0; 238 *argv_donor = XTRACT_FAILSAFE_F0;
240 break; 239 break;
241 case XTRACT_TONALITY: 240 case XTRACT_TONALITY:
242 *argv_donor = XTRACT_FLATNESS; 241 *argv_donor = XTRACT_FLATNESS;
243 break; 242 break;
274 *argv_donor = XTRACT_SUM; 273 *argv_donor = XTRACT_SUM;
275 *(argv_donor + 1) = XTRACT_SUM; 274 *(argv_donor + 1) = XTRACT_SUM;
276 break; 275 break;
277 case XTRACT_CREST: 276 case XTRACT_CREST:
278 *argv_donor = XTRACT_HIGHEST_VALUE; 277 *argv_donor = XTRACT_HIGHEST_VALUE;
279 *(argv_donor + 1) = XTRACT_SPECTRAL_MEAN; 278 *(argv_donor + 1) = XTRACT_MEAN;
280 break; 279 break;
281 /* argc = BARK_BANDS */ 280 /* argc = BARK_BANDS */
282 case XTRACT_BARK_COEFFICIENTS: 281 case XTRACT_BARK_COEFFICIENTS:
283 *argv_donor = XTRACT_INIT_BARK; 282 *argv_donor = XTRACT_INIT_BARK;
284 break; 283 break;
298 case XTRACT_SKEWNESS: 297 case XTRACT_SKEWNESS:
299 case XTRACT_KURTOSIS: 298 case XTRACT_KURTOSIS:
300 case XTRACT_LOWEST_VALUE: 299 case XTRACT_LOWEST_VALUE:
301 case XTRACT_HIGHEST_VALUE: 300 case XTRACT_HIGHEST_VALUE:
302 case XTRACT_SUM: 301 case XTRACT_SUM:
303 case XTRACT_ZCR:
304 *data_format = XTRACT_ARBITRARY_SERIES; 302 *data_format = XTRACT_ARBITRARY_SERIES;
305 break; 303 break;
306 case XTRACT_SPECTRAL_MEAN: 304 case XTRACT_SPECTRAL_MEAN:
307 case XTRACT_SPECTRAL_VARIANCE: 305 case XTRACT_SPECTRAL_VARIANCE:
308 case XTRACT_SPECTRAL_STANDARD_DEVIATION: 306 case XTRACT_SPECTRAL_STANDARD_DEVIATION:
309 case XTRACT_SPECTRAL_AVERAGE_DEVIATION: 307 case XTRACT_SPECTRAL_AVERAGE_DEVIATION:
310 case XTRACT_SPECTRAL_SKEWNESS: 308 case XTRACT_SPECTRAL_SKEWNESS:
311 case XTRACT_SPECTRAL_KURTOSIS: 309 case XTRACT_SPECTRAL_KURTOSIS:
312 case XTRACT_SPECTRAL_CENTROID: 310 case XTRACT_SPECTRAL_CENTROID:
313 case XTRACT_SPECTRAL_SLOPE: 311 case XTRACT_SPECTRAL_SLOPE:
314 case XTRACT_PEAK_SPECTRUM:
315 case XTRACT_HARMONIC_SPECTRUM:
316 *data_format = XTRACT_SPECTRAL; 312 *data_format = XTRACT_SPECTRAL;
317 break; 313 break;
318 case XTRACT_ROLLOFF: 314 case XTRACT_ROLLOFF:
319 case XTRACT_NOISINESS: 315 case XTRACT_NOISINESS:
320 case XTRACT_BARK_COEFFICIENTS: 316 case XTRACT_BARK_COEFFICIENTS:
322 case XTRACT_IRREGULARITY_K: 318 case XTRACT_IRREGULARITY_K:
323 case XTRACT_IRREGULARITY_J: 319 case XTRACT_IRREGULARITY_J:
324 case XTRACT_SMOOTHNESS: 320 case XTRACT_SMOOTHNESS:
325 case XTRACT_FLATNESS: 321 case XTRACT_FLATNESS:
326 case XTRACT_SPREAD: 322 case XTRACT_SPREAD:
327 case XTRACT_RMS_AMPLITUDE:
328 case XTRACT_POWER: 323 case XTRACT_POWER:
329 case XTRACT_SHARPNESS:
330 case XTRACT_HPS: 324 case XTRACT_HPS:
325 case XTRACT_PEAK_SPECTRUM:
331 *data_format = XTRACT_SPECTRAL_MAGNITUDES; 326 *data_format = XTRACT_SPECTRAL_MAGNITUDES;
332 break; 327 break;
333 case XTRACT_SPECTRAL_INHARMONICITY: 328 case XTRACT_SPECTRAL_INHARMONICITY:
329 case XTRACT_HARMONIC_SPECTRUM:
334 *data_format = XTRACT_SPECTRAL_PEAKS; 330 *data_format = XTRACT_SPECTRAL_PEAKS;
335 break; 331 break;
336 case XTRACT_ODD_EVEN_RATIO: 332 case XTRACT_NONZERO_COUNT:
337 *data_format = XTRACT_SPECTRAL_HARMONICS_FREQUENCIES; 333 *data_format = XTRACT_SPECTRAL_PEAKS_MAGNITUDES;
338 break; 334 break;
339 case XTRACT_F0: 335 case XTRACT_F0:
340 case XTRACT_FAILSAFE_F0: 336 case XTRACT_FAILSAFE_F0:
341 case XTRACT_SPECTRUM: 337 case XTRACT_SPECTRUM:
342 case XTRACT_MFCC: 338 case XTRACT_MFCC:
343 case XTRACT_AUTOCORRELATION: 339 case XTRACT_AUTOCORRELATION:
344 case XTRACT_AUTOCORRELATION_FFT: 340 case XTRACT_AUTOCORRELATION_FFT:
345 case XTRACT_DCT: 341 case XTRACT_DCT:
346 case XTRACT_AMDF: 342 case XTRACT_AMDF:
347 case XTRACT_ASDF: 343 case XTRACT_ASDF:
344 case XTRACT_ZCR:
345 case XTRACT_RMS_AMPLITUDE:
348 *data_format = XTRACT_AUDIO_SAMPLES; 346 *data_format = XTRACT_AUDIO_SAMPLES;
349 break; 347 break;
350 case XTRACT_TONALITY: 348 case XTRACT_TONALITY:
351 *data_format = XTRACT_NO_DATA; 349 *data_format = XTRACT_NO_DATA;
352 break; 350 break;
353 case XTRACT_TRISTIMULUS_1: 351 case XTRACT_TRISTIMULUS_1:
354 case XTRACT_TRISTIMULUS_2: 352 case XTRACT_TRISTIMULUS_2:
355 case XTRACT_TRISTIMULUS_3: 353 case XTRACT_TRISTIMULUS_3:
354 case XTRACT_ODD_EVEN_RATIO:
356 *data_format = XTRACT_SPECTRAL_HARMONICS_MAGNITUDES; 355 *data_format = XTRACT_SPECTRAL_HARMONICS_MAGNITUDES;
357 break; 356 break;
358 case XTRACT_LOUDNESS: 357 case XTRACT_LOUDNESS:
358 case XTRACT_SHARPNESS:
359 *data_format = XTRACT_BARK_COEFFS; 359 *data_format = XTRACT_BARK_COEFFS;
360 break; 360 break;
361 case XTRACT_FLUX: 361 case XTRACT_FLUX:
362 case XTRACT_ATTACK_TIME: 362 case XTRACT_ATTACK_TIME:
363 case XTRACT_DECAY_TIME: 363 case XTRACT_DECAY_TIME:
411 case XTRACT_SHARPNESS: 411 case XTRACT_SHARPNESS:
412 case XTRACT_HPS: 412 case XTRACT_HPS:
413 case XTRACT_SPECTRUM: 413 case XTRACT_SPECTRUM:
414 case XTRACT_TONALITY: 414 case XTRACT_TONALITY:
415 case XTRACT_LOUDNESS: 415 case XTRACT_LOUDNESS:
416 case XTRACT_NONZERO_COUNT:
416 *data_unit = XTRACT_ANY; 417 *data_unit = XTRACT_ANY;
417 break; 418 break;
418 case XTRACT_SPECTRAL_MEAN: 419 case XTRACT_SPECTRAL_MEAN:
419 case XTRACT_SPECTRAL_VARIANCE: 420 case XTRACT_SPECTRAL_VARIANCE:
420 case XTRACT_SPECTRAL_STANDARD_DEVIATION: 421 case XTRACT_SPECTRAL_STANDARD_DEVIATION:
473 "Extract the average deviation of an input vector"); 474 "Extract the average deviation of an input vector");
474 strcpy(p_desc, 475 strcpy(p_desc,
475 "Extract the average deviation of a range of values"); 476 "Extract the average deviation of a range of values");
476 strcpy(author, ""); 477 strcpy(author, "");
477 break; 478 break;
479 case XTRACT_SKEWNESS:
480 strcpy(name, "skewness");
481 strcpy(p_name, "Skewness");
482 strcpy(desc,
483 "Extract the skewness of an input vector");
484 strcpy(p_desc,
485 "Extract the skewness of a range of values");
486 strcpy(author, "");
487 break;
488 case XTRACT_KURTOSIS:
489 strcpy(name, "kurtosis");
490 strcpy(p_name, "Kurtosis");
491 strcpy(desc,
492 "Extract the kurtosis of an input vector");
493 strcpy(p_desc,
494 "Extract the kurtosis of a range of values");
495 strcpy(author, "");
496 break;
478 case XTRACT_SPECTRAL_MEAN: 497 case XTRACT_SPECTRAL_MEAN:
479 strcpy(name, "spectral_mean"); 498 strcpy(name, "spectral_mean");
480 strcpy(p_name, "Spectral Mean"); 499 strcpy(p_name, "Spectral Mean");
481 strcpy(desc, "Extract the mean of an input spectrum"); 500 strcpy(desc, "Extract the mean of an input spectrum");
482 strcpy(p_desc, "Extract the mean of an audio spectrum"); 501 strcpy(p_desc, "Extract the mean of an audio spectrum");
553 strcpy(name, "f0"); 572 strcpy(name, "f0");
554 strcpy(p_name, "Fundamental Frequency"); 573 strcpy(p_name, "Fundamental Frequency");
555 strcpy(desc, "Extract the fundamental frequency of a signal"); 574 strcpy(desc, "Extract the fundamental frequency of a signal");
556 strcpy(p_desc, 575 strcpy(p_desc,
557 "Extract the fundamental frequency of an audio signal"); 576 "Extract the fundamental frequency of an audio signal");
558 strcpy(author, ""); 577 strcpy(author, "Jamie Bullock");
559 break; 578 break;
560 case XTRACT_FAILSAFE_F0: 579 case XTRACT_FAILSAFE_F0:
561 strcpy(name, "failsafe_f0"); 580 strcpy(name, "failsafe_f0");
562 strcpy(p_name, "Fundamental Frequency (failsafe)"); 581 strcpy(p_name, "Fundamental Frequency (failsafe)");
563 strcpy(desc, "Extract the fundamental frequency of a signal"); 582 strcpy(desc, "Extract the fundamental frequency of a signal (failsafe)");
564 strcpy(p_desc, 583 strcpy(p_desc,
565 "Extract the fundamental frequency of an audio signal"); 584 "Extract the fundamental frequency of an audio signal (failsafe)");
566 strcpy(author, ""); 585 strcpy(author, "Jamie Bullock");
567 break; 586 break;
568 case XTRACT_TONALITY: 587 case XTRACT_TONALITY:
569 strcpy(name, "tonality"); 588 strcpy(name, "tonality");
570 strcpy(p_name, "Tonality"); 589 strcpy(p_name, "Tonality");
571 strcpy(desc, "Extract the tonality of a spectrum"); 590 strcpy(desc, "Extract the tonality of a spectrum");
572 strcpy(p_desc, "Extract the tonality an audio spectrum"); 591 strcpy(p_desc, "Extract the tonality an audio spectrum");
573 strcpy(author, "Tristan Jehan"); 592 strcpy(author, "J. D. Johnston");
574 *year = 2005; 593 *year = 1988;
575 break; 594 break;
576 case XTRACT_SPECTRAL_SKEWNESS: 595 case XTRACT_SPECTRAL_SKEWNESS:
577 strcpy(name, "spectral_skewness"); 596 strcpy(name, "spectral_skewness");
578 strcpy(p_name, "Spectral Skewness"); 597 strcpy(p_name, "Spectral Skewness");
579 strcpy(desc, "Extract the skewness of an input spectrum"); 598 strcpy(desc, "Extract the skewness of an input spectrum");
644 strcpy(author, ""); 663 strcpy(author, "");
645 break; 664 break;
646 case XTRACT_IRREGULARITY_K: 665 case XTRACT_IRREGULARITY_K:
647 strcpy(name, "irregularity_k"); 666 strcpy(name, "irregularity_k");
648 strcpy(p_name, "Irregularity I"); 667 strcpy(p_name, "Irregularity I");
649 strcpy(desc, "Extract the irregularity of a spectrum"); 668 strcpy(desc, "Extract the irregularity (type I) of a spectrum");
650 strcpy(p_desc, 669 strcpy(p_desc,
651 "Extract the irregularity of an audio spectrum"); 670 "Extract the irregularity (type I) of an audio spectrum");
652 strcpy(author, "Krimphoff"); 671 strcpy(author, "Krimphoff");
653 *year = 1994; 672 *year = 1994;
654 break; 673 break;
655 case XTRACT_IRREGULARITY_J: 674 case XTRACT_IRREGULARITY_J:
656 strcpy(name, "irregularity_j"); 675 strcpy(name, "irregularity_j");
657 strcpy(p_name, "Irregularity II"); 676 strcpy(p_name, "Irregularity II");
658 strcpy(desc, "Extract the irregularity of a spectrum"); 677 strcpy(desc, "Extract the irregularity (type II) of a spectrum");
659 strcpy(p_desc, 678 strcpy(p_desc,
660 "Extract the irregularity of an audio spectrum"); 679 "Extract the irregularity (type II) of an audio spectrum");
661 strcpy(author, "Jensen"); 680 strcpy(author, "Jensen");
662 *year = 1999; 681 *year = 1999;
663 break; 682 break;
664 case XTRACT_TRISTIMULUS_1: 683 case XTRACT_TRISTIMULUS_1:
665 strcpy(name, "tristimulus_1"); 684 strcpy(name, "tristimulus_1");
821 strcpy(author, ""); 840 strcpy(author, "");
822 break; 841 break;
823 case XTRACT_AUTOCORRELATION_FFT: 842 case XTRACT_AUTOCORRELATION_FFT:
824 strcpy(name, "autocorrelation_fft"); 843 strcpy(name, "autocorrelation_fft");
825 strcpy(p_name, "Autocorrelation (FFT method)"); 844 strcpy(p_name, "Autocorrelation (FFT method)");
826 strcpy(desc, "Extract the autocorrelation of a signal"); 845 strcpy(desc, "Extract the autocorrelation of a signal (fft method)");
827 strcpy(p_desc, "Extract the autocorrelation of an audio signal"); 846 strcpy(p_desc, "Extract the autocorrelation of an audio signal (fft method)");
828 strcpy(author, ""); 847 strcpy(author, "");
829 break; 848 break;
830 case XTRACT_DCT: 849 case XTRACT_DCT:
831 strcpy(name, "dct"); 850 strcpy(name, "dct");
832 strcpy(p_name, "Discrete Cosine Transform"); 851 strcpy(p_name, "Discrete Cosine Transform");
852 case XTRACT_ASDF: 871 case XTRACT_ASDF:
853 strcpy(name, "asdf"); 872 strcpy(name, "asdf");
854 strcpy(p_name, "Average Squared Difference Function"); 873 strcpy(p_name, "Average Squared Difference Function");
855 strcpy(desc, "Extract the ASDF of a signal"); 874 strcpy(desc, "Extract the ASDF of a signal");
856 strcpy(p_desc, "Extract the ASDF of an audio signal"); 875 strcpy(p_desc, "Extract the ASDF of an audio signal");
876 strcpy(author, "");
877 break;
878 case XTRACT_NONZERO_COUNT:
879 strcpy(name, "nonzero_count");
880 strcpy(p_name, "Non-zero count");
881 strcpy(desc, "Extract the number of non-zero elements in the input vector");
882 strcpy(p_desc, "Extract the number of non-zero elements in an input spectrum");
857 strcpy(author, ""); 883 strcpy(author, "");
858 break; 884 break;
859 default: 885 default:
860 strcpy(name, ""); 886 strcpy(name, "");
861 strcpy(p_name, ""); 887 strcpy(p_name, "");
873 case XTRACT_AVERAGE_DEVIATION: 899 case XTRACT_AVERAGE_DEVIATION:
874 case XTRACT_SPECTRAL_VARIANCE: 900 case XTRACT_SPECTRAL_VARIANCE:
875 case XTRACT_SPECTRAL_STANDARD_DEVIATION: 901 case XTRACT_SPECTRAL_STANDARD_DEVIATION:
876 case XTRACT_SPECTRAL_AVERAGE_DEVIATION: 902 case XTRACT_SPECTRAL_AVERAGE_DEVIATION:
877 case XTRACT_SPECTRAL_INHARMONICITY: 903 case XTRACT_SPECTRAL_INHARMONICITY:
878 case XTRACT_ODD_EVEN_RATIO:
879 case XTRACT_LOWEST_VALUE: 904 case XTRACT_LOWEST_VALUE:
880 case XTRACT_F0: 905 case XTRACT_F0:
881 case XTRACT_FAILSAFE_F0: 906 case XTRACT_FAILSAFE_F0:
882 case XTRACT_TONALITY: 907 case XTRACT_TONALITY:
883 *argc = 1; 908 *argc = 1;
931 case XTRACT_AUTOCORRELATION_FFT: 956 case XTRACT_AUTOCORRELATION_FFT:
932 case XTRACT_DCT: 957 case XTRACT_DCT:
933 case XTRACT_AUTOCORRELATION: 958 case XTRACT_AUTOCORRELATION:
934 case XTRACT_AMDF: 959 case XTRACT_AMDF:
935 case XTRACT_ASDF: 960 case XTRACT_ASDF:
961 case XTRACT_NONZERO_COUNT:
962 case XTRACT_ODD_EVEN_RATIO:
936 default: 963 default:
937 *argc = 0; 964 *argc = 0;
938 break; 965 break;
939 } 966 }
940 967
978 case XTRACT_HIGHEST_VALUE: 1005 case XTRACT_HIGHEST_VALUE:
979 case XTRACT_SUM: 1006 case XTRACT_SUM:
980 case XTRACT_HPS: 1007 case XTRACT_HPS:
981 case XTRACT_F0: 1008 case XTRACT_F0:
982 case XTRACT_FAILSAFE_F0: 1009 case XTRACT_FAILSAFE_F0:
1010 case XTRACT_NONZERO_COUNT:
983 *is_scalar = XTRACT_TRUE; 1011 *is_scalar = XTRACT_TRUE;
984 break; 1012 break;
985 case XTRACT_AUTOCORRELATION: 1013 case XTRACT_AUTOCORRELATION:
986 case XTRACT_AMDF: 1014 case XTRACT_AMDF:
987 case XTRACT_ASDF: 1015 case XTRACT_ASDF:
1015 case XTRACT_KURTOSIS: 1043 case XTRACT_KURTOSIS:
1016 case XTRACT_RMS_AMPLITUDE: 1044 case XTRACT_RMS_AMPLITUDE:
1017 case XTRACT_LOWEST_VALUE: 1045 case XTRACT_LOWEST_VALUE:
1018 case XTRACT_HIGHEST_VALUE: 1046 case XTRACT_HIGHEST_VALUE:
1019 case XTRACT_SUM: 1047 case XTRACT_SUM:
1048 case XTRACT_NONZERO_COUNT:
1020 *result_unit = XTRACT_ANY; 1049 *result_unit = XTRACT_ANY;
1021 *result_min = XTRACT_ANY; 1050 *result_min = XTRACT_ANY;
1022 *result_max = XTRACT_ANY; 1051 *result_max = XTRACT_ANY;
1023 break; 1052 break;
1024 case XTRACT_SPECTRAL_SKEWNESS: 1053 case XTRACT_SPECTRAL_SKEWNESS: