source: tests/src/pitch/test-pitch.c @ 9e2c1a1

feature/autosinkfeature/cnnfeature/cnn_orgfeature/constantqfeature/crepefeature/crepe_orgfeature/pitchshiftfeature/timestretchfix/ffmpeg5
Last change on this file since 9e2c1a1 was 7625d85, checked in by Paul Brossier <piem@piem.org>, 6 years ago

[tests] check new_aubio_pitch fails with wrong parameters

  • Property mode set to 100644
File size: 2.4 KB
Line 
1#include <aubio.h>
2
3int main (void)
4{
5  // 1. allocate some memory
6  uint_t n = 0; // frame counter
7  uint_t win_s = 1024; // window size
8  uint_t hop_s = win_s / 4; // hop size
9  uint_t samplerate = 44100; // samplerate
10  // create some vectors
11  fvec_t *input = new_fvec (hop_s); // input buffer
12  fvec_t *out = new_fvec (1); // output candidates
13  // create pitch object
14  aubio_pitch_t *o = new_aubio_pitch ("default", win_s, hop_s, samplerate);
15
16  // 2. do something with it
17  while (n < 100) {
18    // get `hop_s` new samples into `input`
19    // ...
20    // exectute pitch
21    aubio_pitch_do (o, input, out);
22    // do something with output candidates
23    // ...
24    n++;
25  };
26
27  // 3. clean up memory
28  del_aubio_pitch (o);
29  del_fvec (out);
30  del_fvec (input);
31  aubio_cleanup ();
32
33  if (new_aubio_pitch(0, win_s, hop_s, samplerate)) return 1;
34  if (new_aubio_pitch("unknown", win_s, hop_s, samplerate)) return 1;
35  if (new_aubio_pitch("default", win_s,     0, samplerate)) return 1;
36  if (new_aubio_pitch("default",     0, hop_s, samplerate)) return 1;
37  if (new_aubio_pitch("default", hop_s, win_s, samplerate)) return 1;
38  if (new_aubio_pitch("default", win_s, hop_s,          0)) return 1;
39
40  o = new_aubio_pitch("default", win_s, hop_s, samplerate);
41
42  if (aubio_pitch_set_unit(o, "freq")) return 1;
43  if (aubio_pitch_set_unit(o, "hertz")) return 1;
44  if (aubio_pitch_set_unit(o, "Hertz")) return 1;
45  if (aubio_pitch_set_unit(o, "Hz")) return 1;
46  if (aubio_pitch_set_unit(o, "f0")) return 1;
47  if (aubio_pitch_set_unit(o, "midi")) return 1;
48  if (aubio_pitch_set_unit(o, "cent")) return 1;
49  if (aubio_pitch_set_unit(o, "bin")) return 1;
50  if (!aubio_pitch_set_unit(o, "unknown")) return 1;
51
52  if (aubio_pitch_set_tolerance(o, 0.3)) return 1;
53  if (aubio_pitch_set_silence(o, 0)) return 1;
54  if (aubio_pitch_set_silence(o, -200)) return 1;
55  if (!aubio_pitch_set_silence(o, -300)) return 1;
56  del_aubio_pitch(o);
57
58  // fft based might fail with non power of 2
59  o = new_aubio_pitch("yinfft", win_s + 1, hop_s, samplerate);
60  if (o) del_aubio_pitch(o);
61  o = new_aubio_pitch("yinfast", win_s + 1, hop_s, samplerate);
62  if (o) del_aubio_pitch(o);
63  o = new_aubio_pitch("fcomb", win_s + 1, hop_s, samplerate);
64  if (o) del_aubio_pitch(o);
65  o = new_aubio_pitch("mcomb", win_s + 1, hop_s, samplerate);
66  if (o) del_aubio_pitch(o);
67  o = new_aubio_pitch("specacf", win_s + 1, hop_s, samplerate);
68  if (o) del_aubio_pitch(o);
69
70  return 0;
71}
Note: See TracBrowser for help on using the repository browser.