Mercurial > hg > qm-dsp
changeset 6:a9bf0cfe9383
* Make tempo tracker return locked tempo as well as beats
author | cannam |
---|---|
date | Fri, 08 Dec 2006 18:05:36 +0000 |
parents | 1e6d89e4f441 |
children | 85a9e268a8c4 |
files | dsp/tempotracking/TempoTrack.cpp dsp/tempotracking/TempoTrack.h |
diffstat | 2 files changed, 17 insertions(+), 3 deletions(-) [+] |
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++; }
--- a/dsp/tempotracking/TempoTrack.h Thu Nov 30 14:52:53 2006 +0000 +++ b/dsp/tempotracking/TempoTrack.h Fri Dec 08 18:05:36 2006 +0000 @@ -47,7 +47,7 @@ TempoTrack( TTParams Params ); virtual ~TempoTrack(); - vector<int> process( vector <double> DF ); + vector<int> process( vector <double> DF, vector <double> *tempoReturn = 0); vector<int> process( double* DF, unsigned int length ); @@ -74,6 +74,8 @@ vector<int> m_beats; // Vector of detected beats + double m_lockedTempo; + double* m_tempoScratch; // Processing Buffers