- Timestamp:
- Nov 26, 2018, 11:34:45 AM (6 years ago)
- Branches:
- feature/autosink, feature/cnn, feature/cnn_org, feature/constantq, feature/crepe, feature/crepe_org, feature/pitchshift, feature/pydocstrings, feature/timestretch, fix/ffmpeg5, master
- Children:
- ce323e4
- Parents:
- bcc5387 (diff), ef0a430 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tests/src/tempo/test-tempo.c
rbcc5387 r1cf031a 1 1 #include <aubio.h> 2 2 #include "utils_tests.h" 3 4 int test_wrong_params(void); 3 5 4 6 int main (int argc, char **argv) … … 7 9 if (argc < 2) { 8 10 err = 2; 9 PRINT_ERR("not enough arguments\n"); 10 PRINT_MSG("read a wave file as a mono vector\n"); 11 PRINT_MSG("usage: %s <source_path> [samplerate] [win_size] [hop_size]\n", argv[0]); 11 PRINT_WRN("no arguments, running tests\n"); 12 if (test_wrong_params() != 0) { 13 PRINT_ERR("tests failed!\n"); 14 err = 1; 15 } else { 16 err = 0; 17 } 18 PRINT_MSG("usage: %s <source_path> [samplerate] [win_size] [hop_size]\n", 19 argv[0]); 12 20 return err; 13 21 } … … 21 29 22 30 char_t *source_path = argv[1]; 23 aubio_source_t * source = new_aubio_source(source_path, samplerate, hop_size); 31 aubio_source_t * source = new_aubio_source(source_path, samplerate, 32 hop_size); 24 33 if (!source) { err = 1; goto beach; } 25 34 … … 31 40 32 41 // create tempo object 33 aubio_tempo_t * o = new_aubio_tempo("default", win_size, hop_size, samplerate); 42 aubio_tempo_t * o = new_aubio_tempo("default", win_size, hop_size, 43 samplerate); 44 45 if (!o) { err = 1; goto beach_tempo; } 34 46 35 47 do { … … 40 52 // do something with the beats 41 53 if (out->data[0] != 0) { 42 PRINT_MSG("beat at %.3fms, %.3fs, frame %d, %.2fbpm with confidence %.2f\n", 54 PRINT_MSG("beat at %.3fms, %.3fs, frame %d, %.2f bpm " 55 "with confidence %.2f\n", 43 56 aubio_tempo_get_last_ms(o), aubio_tempo_get_last_s(o), 44 aubio_tempo_get_last(o), aubio_tempo_get_bpm(o), aubio_tempo_get_confidence(o)); 57 aubio_tempo_get_last(o), aubio_tempo_get_bpm(o), 58 aubio_tempo_get_confidence(o)); 45 59 } 46 60 n_frames += read; … … 54 68 // clean up memory 55 69 del_aubio_tempo(o); 70 beach_tempo: 56 71 del_fvec(in); 57 72 del_fvec(out); … … 62 77 return err; 63 78 } 79 80 int test_wrong_params(void) 81 { 82 uint_t win_size = 1024; 83 uint_t hop_size = 256; 84 uint_t samplerate = 44100; 85 aubio_tempo_t *t; 86 fvec_t* in, *out; 87 uint_t i; 88 89 // test wrong method fails 90 if (new_aubio_tempo("unexisting_method", win_size, hop_size, samplerate)) 91 return 1; 92 93 // test hop > win fails 94 if (new_aubio_tempo("default", hop_size, win_size, samplerate)) 95 return 1; 96 97 // test null hop_size fails 98 if (new_aubio_tempo("default", win_size, 0, samplerate)) 99 return 1; 100 101 // test 1 buf_size fails 102 if (new_aubio_tempo("default", 1, 1, samplerate)) 103 return 1; 104 105 // test null samplerate fails 106 if (new_aubio_tempo("default", win_size, hop_size, 0)) 107 return 1; 108 109 // test short sizes workaround 110 t = new_aubio_tempo("default", 2048, 2048, 500); 111 if (!t) 112 return 1; 113 114 del_aubio_tempo(t); 115 116 t = new_aubio_tempo("default", win_size, hop_size, samplerate); 117 if (!t) 118 return 1; 119 120 in = new_fvec(hop_size); 121 out = new_fvec(1); 122 123 // up to step = (next_power_of_two(5.8 * samplerate / hop_size ) / 4 ) 124 for (i = 0; i < 256 + 1; i++) 125 { 126 aubio_tempo_do(t,in,out); 127 PRINT_MSG("beat at %.3fms, %.3fs, frame %d, %.2f bpm " 128 "with confidence %.2f, was tatum %d\n", 129 aubio_tempo_get_last_ms(t), aubio_tempo_get_last_s(t), 130 aubio_tempo_get_last(t), aubio_tempo_get_bpm(t), 131 aubio_tempo_get_confidence(t), aubio_tempo_was_tatum(t)); 132 } 133 134 del_aubio_tempo(t); 135 del_fvec(in); 136 del_fvec(out); 137 138 return 0; 139 }
Note: See TracChangeset
for help on using the changeset viewer.