tempo.{c,h}: add aubio_tempo_get_bpm, which for now just calls aubio_beattracking_get...
authorPaul Brossier <piem@piem.org>
Thu, 6 Sep 2007 16:04:08 +0000 (18:04 +0200)
committerPaul Brossier <piem@piem.org>
Thu, 6 Sep 2007 16:04:08 +0000 (18:04 +0200)
examples/tests/test-tempo.c
src/tempo.c
src/tempo.h

index c7a9bd0d87feed7da655b070f227ea758562cebe..84e1e32dc47e5cda292b955758b747980c95eb20 100644 (file)
@@ -9,8 +9,14 @@ int main(){
         aubio_tempo_t * o  = new_aubio_tempo(aubio_onset_complex, win_s, win_s/4, channels);
         uint_t i = 0;
 
+        smpl_t curtempo;
+
         while (i < 1000) {
           aubio_tempo(o,in,out);
+          curtempo = aubio_tempo_get_bpm(o);
+          if (curtempo != 0.) {
+            fprintf(stdout,"%f\n",curtempo);
+          }
           i++;
         };
 
index e077898b2a1e298dd4f58408135bbd8a3497fd1f..328a7e7ea9846558606e459639608ac9c97caaff 100644 (file)
@@ -123,6 +123,10 @@ aubio_tempo_t * new_aubio_tempo (aubio_onsetdetection_type type_onset,
   return o;
 }
 
+smpl_t aubio_tempo_get_bpm(aubio_tempo_t *o) {
+  return aubio_beattracking_get_bpm(o->bt);
+}
+
 void del_aubio_tempo (aubio_tempo_t *o)
 {
   del_aubio_onsetdetection(o->od);
index c2c835df99bd0a3aeef2e2c47a4d77377b3cefcd..f3faf6e5ff4146cbac64c930e45628d129c09d4b 100644 (file)
@@ -49,6 +49,15 @@ void aubio_tempo_set_silence(aubio_tempo_t * o, smpl_t silence);
 /** set tempo detection peak picking threshold  */
 void aubio_tempo_set_threshold(aubio_tempo_t * o, smpl_t threshold);
 
+/** get current tempo
+
+  \param bt beat tracking object
+
+  Returns the currently observed tempo, or 0 if no consistent value is found
+
+*/
+smpl_t aubio_tempo_get_bpm(aubio_tempo_t * bt);
+
 /** delete tempo detection object */
 void del_aubio_tempo(aubio_tempo_t * o);