shithub: aubio

Download patch

ref: c71aa4417bf3e9bd52acd75c51c7b43193ad285a
parent: e230bb4e3a6afef5685a28e659991051bd89db8e
author: Paul Brossier <piem@piem.org>
date: Sun Mar 3 06:47:05 EST 2013

tests/src/pitch/: improve examples

--- a/tests/src/pitch/test-pitch.c
+++ b/tests/src/pitch/test-pitch.c
@@ -1,26 +1,33 @@
 #include <aubio.h>
 
-int
-main ()
+int main ()
 {
-  /* allocate some memory */
-  uint_t win_s = 1024;          /* window size */
-  uint_t hop_s = win_s / 4;     /* hop size */
-  uint_t samplerate = 44100;    /* samplerate */
-  fvec_t *in = new_fvec (hop_s);      /* input buffer */
-  fvec_t *out = new_fvec (1); /* input buffer */
-  aubio_pitch_t *o =
-      new_aubio_pitch ("default", win_s, hop_s, samplerate);
-  uint_t i = 0;
+  // 1. allocate some memory
+  uint_t n = 0; // frame counter
+  uint_t win_s = 1024; // window size
+  uint_t hop_s = win_s / 4; // hop size
+  uint_t samplerate = 44100; // samplerate
+  // create some vectors
+  fvec_t *input = new_fvec (hop_s); // input buffer
+  fvec_t *out = new_fvec (1); // output candidates
+  // create pitch object
+  aubio_pitch_t *o = new_aubio_pitch ("default", win_s, hop_s, samplerate);
 
-  while (i < 100) {
-    aubio_pitch_do (o, in, out);
-    i++;
+  // 2. do something with it
+  while (n < 100) {
+    // get `hop_s` new samples into `input`
+    // ...
+    // exectute pitch
+    aubio_pitch_do (o, input, out);
+    // do something with output candidates
+    // ...
+    n++;
   };
 
+  // 3. clean up memory
   del_aubio_pitch (o);
   del_fvec (out);
-  del_fvec (in);
+  del_fvec (input);
   aubio_cleanup ();
 
   return 0;
--- a/tests/src/pitch/test-pitchfcomb.c
+++ b/tests/src/pitch/test-pitchfcomb.c
@@ -1,26 +1,29 @@
 #define AUBIO_UNSTABLE 1
 
+// this file uses the unstable aubio api, please use aubio_pitch instead
+// see src/pitch/pitch.h and tests/src/pitch/test-pitch.c
+
 #include <aubio.h>
 
-int main(){
-        /* allocate some memory */
-        uint_t win_s      = 1024;                       /* window size */
-        uint_t hop_s      = win_s/4;                    /* hop size */
-        fvec_t * in       = new_fvec (hop_s); /* input buffer */
-        fvec_t * out      = new_fvec (1);
-        aubio_pitchfcomb_t * o  = new_aubio_pitchfcomb (
-          win_s, hop_s);
-        uint_t i = 0;
+int main ()
+{
+  uint_t i = 0;
+  uint_t win_s = 1024; // window size
+  uint_t hop_s = win_s/4; // hop size
+  // create some vectors
+  fvec_t * in = new_fvec (hop_s); // input buffer
+  fvec_t * out = new_fvec (1); // output candidates
+  // create pitch object
+  aubio_pitchfcomb_t * o  = new_aubio_pitchfcomb ( win_s, hop_s);
 
-        while (i < 2) {
-          aubio_pitchfcomb_do (o,in, out);
-          i++;
-        };
+  while (i < 10) {
+    aubio_pitchfcomb_do (o,in, out);
+    i++;
+  };
 
-        del_aubio_pitchfcomb(o);
-        del_fvec(out);
-        del_fvec(in);
-        aubio_cleanup();
-
-        return 0;
+  del_aubio_pitchfcomb(o);
+  del_fvec(out);
+  del_fvec(in);
+  aubio_cleanup();
+  return 0;
 }
--- a/tests/src/pitch/test-pitchmcomb.c
+++ b/tests/src/pitch/test-pitchmcomb.c
@@ -1,26 +1,32 @@
 #define AUBIO_UNSTABLE 1
 
+// this file uses the unstable aubio api, please use aubio_pitch instead
+// see src/pitch/pitch.h and tests/src/pitch/test-pitch.c
+
 #include <aubio.h>
 
-int main(){
-        /* allocate some memory */
-        uint_t win_s      = 1024;                       /* window size */
-        uint_t hop_s      = win_s/4;                    /* hop size */
-        cvec_t * in       = new_cvec (win_s); /* input buffer */
-        fvec_t * out      = new_fvec (1); /* input buffer */
+int main ()
+{
+  uint_t n = 10; // compute n times
+  uint_t win_s = 1024; // window size
+  uint_t hop_s = win_s/4; // hop size
+  // create some vectors
+  cvec_t * in_cvec = new_cvec (win_s); // input fftgrain
+  fvec_t * out_cands = new_fvec (1); // pitch candidate
+  // create pitch object
+  aubio_pitchmcomb_t * mcomb = new_aubio_pitchmcomb(win_s, hop_s);
 
-        aubio_pitchmcomb_t * o  = new_aubio_pitchmcomb(win_s, hop_s);
-        uint_t i = 0;
+  while ( n-- ) {
+    aubio_pitchmcomb_do (mcomb, in_cvec, out_cands);
+    // fvec_print(out_cands);
+  };
 
-        while (i < 1000) {
-          aubio_pitchmcomb_do (o,in, out);
-          i++;
-        };
+  // clean up before exiting
+  del_aubio_pitchmcomb(mcomb);
+  del_cvec(in_cvec);
+  del_fvec(out_cands);
 
-        del_aubio_pitchmcomb(o);
-        del_cvec(in);
-        del_fvec(out);
-        aubio_cleanup();
+  aubio_cleanup();
 
-        return 0;
+  return 0;
 }
--- a/tests/src/pitch/test-pitchschmitt.c
+++ b/tests/src/pitch/test-pitchschmitt.c
@@ -1,25 +1,29 @@
 #define AUBIO_UNSTABLE 1
 
+// this file uses the unstable aubio api, please use aubio_pitch instead
+// see src/pitch/pitch.h and tests/src/pitch/test-pitch.c
+
 #include <aubio.h>
 
-int main(){
-        /* allocate some memory */
-        uint_t win_s      = 1024;                       /* window size */
-        fvec_t * in       = new_fvec (win_s); /* input buffer */
-        fvec_t * out = new_fvec (1); /* input buffer */
-        aubio_pitchschmitt_t * o  = new_aubio_pitchschmitt(win_s);
-        uint_t i = 0;
+int main ()
+{
+  uint_t n = 10; // compute n times
+  uint_t win_s = 1024; // window size
+  // create some vectors
+  fvec_t * in = new_fvec (win_s); // input buffer
+  fvec_t * out = new_fvec (1); // input buffer
+  // create pitch object
+  aubio_pitchschmitt_t * o = new_aubio_pitchschmitt(win_s);
 
-        while (i < 1000) {
-          aubio_pitchschmitt_do (o,in, out);
-          i++;
-        };
+  while ( n-- ) {
+    aubio_pitchschmitt_do (o,in, out);
+  };
 
-        del_aubio_pitchschmitt(o);
-        del_fvec(in);
-        del_fvec(out);
-        aubio_cleanup();
+  del_aubio_pitchschmitt(o);
+  del_fvec(in);
+  del_fvec(out);
+  aubio_cleanup();
 
-        return 0;
+  return 0;
 }
 
--- a/tests/src/pitch/test-pitchyin.c
+++ b/tests/src/pitch/test-pitchyin.c
@@ -1,24 +1,30 @@
 #define AUBIO_UNSTABLE 1
 
+// this file uses the unstable aubio api, please use aubio_pitch instead
+// see src/pitch/pitch.h and tests/src/pitch/test-pitch.c
+
 #include <aubio.h>
 
-int main(){
-        /* allocate some memory */
-        uint_t win_s      = 1024;                       /* window size */
-        fvec_t * in       = new_fvec (win_s); /* input buffer */
-        fvec_t * out      = new_fvec (win_s/2); /* input buffer */
-        aubio_pitchyin_t *p = new_aubio_pitchyin (win_s);
-        uint_t i = 0;
+int main ()
+{
+  uint_t n = 10; // compute n times
+  uint_t win_s = 1024; // window size
+  // create some vectors
+  fvec_t * input_signal = new_fvec (win_s); // input signal
+  fvec_t * output_cands = new_fvec (1); // output candidates
+  // create pitch object
+  aubio_pitchyin_t *p = new_aubio_pitchyin (win_s);
 
-        while (i < 10) {
-          aubio_pitchyin_do (p, in,out);
-          i++;
-        };
+  while ( n-- ) {
+    aubio_pitchyin_do (p, input_signal, output_cands);
+  };
 
-        del_fvec(in);
-        del_fvec(out);
-        del_aubio_pitchyin(p);
-        aubio_cleanup();
+  fvec_print(output_cands);
 
-        return 0;
+  del_fvec(input_signal);
+  del_fvec(output_cands);
+  del_aubio_pitchyin(p);
+  aubio_cleanup();
+
+  return 0;
 }
--- a/tests/src/pitch/test-pitchyinfft.c
+++ b/tests/src/pitch/test-pitchyinfft.c
@@ -1,26 +1,31 @@
 #define AUBIO_UNSTABLE 1
 
+// this file uses the unstable aubio api, please use aubio_pitch instead
+// see src/pitch/pitch.h and tests/src/pitch/test-pitch.c
+
 #include <aubio.h>
 
-int main(){
-        /* allocate some memory */
-        uint_t win_s      = 1024;                       /* window size */
-        fvec_t * in       = new_fvec (win_s); /* input buffer */
-        fvec_t * out      = new_fvec (1); /* output pitch periods */
-        aubio_pitchyinfft_t * o  = new_aubio_pitchyinfft(win_s);
-        aubio_pitchyinfft_set_tolerance (o, 0.2);
-        uint_t i = 0;
+int main ()
+{
+  uint_t n = 10; // compute n times
+  uint_t win_s = 1024; // window size
+  // create some vectors
+  fvec_t * in = new_fvec (win_s); // input buffer
+  fvec_t * out = new_fvec (1); // output candidates
+  // create pitch object
+  aubio_pitchyinfft_t *p  = new_aubio_pitchyinfft(win_s);
+  aubio_pitchyinfft_set_tolerance (p, 0.2);
 
-        while (i < 10) {
-          aubio_pitchyinfft_do (o,in,out);
-          i++;
-        };
+  while ( n-- ) {
+    aubio_pitchyinfft_do (p, in,out);
+  };
 
-        del_aubio_pitchyinfft(o);
-        del_fvec(in);
-        del_fvec(out);
-        aubio_cleanup();
+  fvec_print(out);
 
-        return 0;
-}
+  del_fvec(in);
+  del_fvec(out);
+  del_aubio_pitchyinfft(p);
+  aubio_cleanup();
 
+  return 0;
+}