Mercurial > hg > qm-dsp
diff dsp/tempotracking/TempoTrack.cpp @ 231:dbc354a00714
* Make tempo tracker return locked tempo as well as beats
author | Chris Cannam <c.cannam@qmul.ac.uk> |
---|---|
date | Fri, 08 Dec 2006 18:05:36 +0000 |
parents | 49844bc8a895 |
children | 2e3f5d2d62c1 |
line wrap: on
line diff
--- a/dsp/tempotracking/TempoTrack.cpp Thu Nov 30 14:52:53 2006 +0000 +++ b/dsp/tempotracking/TempoTrack.cpp Fri Dec 08 18:05:36 2006 +0000 @@ -13,6 +13,8 @@ #include "dsp/maths/MathAliases.h" #include "dsp/maths/MathUtilities.h" +#include <iostream> + ////////////////////////////////////////////////////////////////////// // Construction/Destruction @@ -166,7 +168,12 @@ maxIndexRCF = i; } } - + + double locked = 5168.f / maxIndexRCF; + if (locked >= 30 && locked <= 180) { + m_lockedTempo = locked; + } + if( tsig == 0 ) tsig = 4; @@ -634,10 +641,13 @@ -vector<int> TempoTrack::process( vector <double> DF ) +vector<int> TempoTrack::process( vector <double> DF, + vector <double> *tempoReturn ) { m_dataLength = DF.size(); + m_lockedTempo = 0.0; + double period = 0.0; int stepFlag = 0; int constFlag = 0; @@ -758,6 +768,8 @@ FSP += (m_lagLength); + if (tempoReturn) tempoReturn->push_back(m_lockedTempo); + TTLoopIndex++; }