# HG changeset patch # User Chris Cannam # Date 1165601136 0 # Node ID dbc354a007148eeedef4d031ae944385a8cf1746 # Parent bca1953e4cbb865c5c958f011ef1bc3e3daecbdd * Make tempo tracker return locked tempo as well as beats diff -r bca1953e4cbb -r dbc354a00714 dsp/tempotracking/TempoTrack.cpp --- 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 + ////////////////////////////////////////////////////////////////////// // 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 TempoTrack::process( vector DF ) +vector TempoTrack::process( vector DF, + vector *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++; } diff -r bca1953e4cbb -r dbc354a00714 dsp/tempotracking/TempoTrack.h --- 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 process( vector DF ); + vector process( vector DF, vector *tempoReturn = 0); vector process( double* DF, unsigned int length ); @@ -74,6 +74,8 @@ vector m_beats; // Vector of detected beats + double m_lockedTempo; + double* m_tempoScratch; // Processing Buffers