beattracking.{h,c}: add function aubio_beattracking_get_bpm to return the observed...
authorPaul Brossier <piem@piem.org>
Thu, 6 Sep 2007 16:01:41 +0000 (18:01 +0200)
committerPaul Brossier <piem@piem.org>
Thu, 6 Sep 2007 16:01:41 +0000 (18:01 +0200)
src/beattracking.c
src/beattracking.h

index d902e272f21081d43d455cbb39a7c100c70a1b17..6d30ee073cde2665add59541d294c9fd6d0ded43 100644 (file)
@@ -452,3 +452,11 @@ void aubio_beattracking_checkstate(aubio_beattracking_t * bt) {
         bt->rp2 = rp2;
 
 }
+
+smpl_t aubio_beattracking_get_bpm(aubio_beattracking_t * bt) {
+        if (bt->timesig != 0 && bt->counter == 0 && bt->flagstep == 0) {
+          return 5168. / (smpl_t)bt->gp;
+        } else {
+          return 0.;
+        }
+}
index 05309c82d9e139ac119cedd741d9e866df300e5a..78da1fcd1e39fd910f68998b7b6b52aecb771dc6 100644 (file)
@@ -59,6 +59,15 @@ aubio_beattracking_t * new_aubio_beattracking(uint_t winlen, uint_t channels);
 
 */
 void aubio_beattracking_do(aubio_beattracking_t * bt, fvec_t * dfframes, fvec_t * out);
+/** get current tempo in bpm
+
+  \param bt beat tracking object
+
+  Returns the currently observed tempo, in beats per minutes, or 0 if no
+  consistent value is found.
+
+*/
+smpl_t aubio_beattracking_get_bpm(aubio_beattracking_t * bt);
 /** delete beat tracking object
 
   \param p beat tracking object