}
smpl_t
+aubio_beattracking_get_period (aubio_beattracking_t * bt)
+{
+ return bt->hop_size * bt->bp;
+}
+
+smpl_t
+aubio_beattracking_get_period_s (aubio_beattracking_t * bt)
+{
+ return aubio_beattracking_get_period(bt) / (smpl_t) bt->samplerate;
+}
+
+smpl_t
aubio_beattracking_get_bpm (aubio_beattracking_t * bt)
{
if (bt->bp != 0) {
- return 60. * bt->samplerate/ bt->bp / bt->hop_size;
+ return 60. / aubio_beattracking_get_period_s(bt);
} else {
return 0.;
}
void aubio_beattracking_do (aubio_beattracking_t * bt, fvec_t * dfframes,
fvec_t * out);
+/** get current beat period in samples
+
+ \param bt beat tracking object
+
+ Returns the currently observed period, in samples, or 0 if no consistent
+ value is found.
+
+*/
+smpl_t aubio_beattracking_get_period (aubio_beattracking_t * bt);
+
+/** get current beat period in seconds
+
+ \param bt beat tracking object
+
+ Returns the currently observed period, in seconds, or 0 if no consistent
+ value is found.
+
+*/
+smpl_t aubio_beattracking_get_period_s (aubio_beattracking_t * bt);
+
/** get current tempo in bpm
\param bt beat tracking object