From 5f5edc116c0b9efc08b2c47be149e76cf9a7b35a Mon Sep 17 00:00:00 2001 From: Paul Brossier Date: Mon, 2 Nov 2015 23:02:58 +0100 Subject: [PATCH] src/tempo/beattracking.{c,h}: add _get_period and _get_period_s --- src/tempo/beattracking.c | 14 +++++++++++++- src/tempo/beattracking.h | 20 ++++++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/src/tempo/beattracking.c b/src/tempo/beattracking.c index c6bf4844..1010e016 100644 --- a/src/tempo/beattracking.c +++ b/src/tempo/beattracking.c @@ -409,10 +409,22 @@ aubio_beattracking_checkstate (aubio_beattracking_t * bt) } 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.; } diff --git a/src/tempo/beattracking.h b/src/tempo/beattracking.h index c3b6a231..b22fbc17 100644 --- a/src/tempo/beattracking.h +++ b/src/tempo/beattracking.h @@ -67,6 +67,26 @@ aubio_beattracking_t * new_aubio_beattracking(uint_t winlen, uint_t hop_size, 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 -- 2.11.0