qm-dsp 1.8
TempoTrackV2 Class Reference

!! Question: how far is this actually sample rate dependent? I More...

#include <TempoTrackV2.h>

Public Member Functions

 TempoTrackV2 (float sampleRate, size_t dfIncrement)
 Construct a tempo tracker that will operate on beat detection function data calculated from audio at the given sample rate with the given frame increment.
 ~TempoTrackV2 ()
void calculateBeatPeriod (const vector< double > &df, vector< double > &beatPeriod, vector< double > &tempi)
void calculateBeatPeriod (const vector< double > &df, vector< double > &beatPeriod, vector< double > &tempi, double inputtempo, bool constraintempo)
void calculateBeats (const vector< double > &df, const vector< double > &beatPeriod, vector< double > &beats)
void calculateBeats (const vector< double > &df, const vector< double > &beatPeriod, vector< double > &beats, double alpha, double tightness)

Private Types

typedef vector< int > i_vec_t
typedef vector< vector< int > > i_mat_t
typedef vector< double > d_vec_t
typedef vector< vector< double > > d_mat_t

Private Member Functions

void adapt_thresh (d_vec_t &df)
double mean_array (const d_vec_t &dfin, int start, int end)
void filter_df (d_vec_t &df)
void get_rcf (const d_vec_t &dfframe, const d_vec_t &wv, d_vec_t &rcf)
void viterbi_decode (const d_mat_t &rcfmat, const d_vec_t &wv, d_vec_t &bp, d_vec_t &tempi)
double get_max_val (const d_vec_t &df)
int get_max_ind (const d_vec_t &df)
void normalise_vec (d_vec_t &df)

Private Attributes

float m_rate
size_t m_increment

Detailed Description

!! Question: how far is this actually sample rate dependent? I

Definition at line 28 of file TempoTrackV2.h.

Member Typedef Documentation

◆ i_vec_t

typedef vector<int> TempoTrackV2::i_vec_t
private

Definition at line 73 of file TempoTrackV2.h.

◆ i_mat_t

typedef vector<vector<int> > TempoTrackV2::i_mat_t
private

Definition at line 74 of file TempoTrackV2.h.

◆ d_vec_t

typedef vector<double> TempoTrackV2::d_vec_t
private

Definition at line 75 of file TempoTrackV2.h.

◆ d_mat_t

typedef vector<vector<double> > TempoTrackV2::d_mat_t
private

Definition at line 76 of file TempoTrackV2.h.

Constructor & Destructor Documentation

◆ TempoTrackV2()

TempoTrackV2::TempoTrackV2 ( float sampleRate,
size_t dfIncrement )

Construct a tempo tracker that will operate on beat detection function data calculated from audio at the given sample rate with the given frame increment.

Currently the sample rate and increment are used only for the conversion from beat frame location to bpm in the tempo array.

Definition at line 26 of file TempoTrackV2.cpp.

References m_increment, and m_rate.

◆ ~TempoTrackV2()

TempoTrackV2::~TempoTrackV2 ( )

Definition at line 28 of file TempoTrackV2.cpp.

Member Function Documentation

◆ calculateBeatPeriod() [1/2]

void TempoTrackV2::calculateBeatPeriod ( const vector< double > & df,
vector< double > & beatPeriod,
vector< double > & tempi )
inline

Definition at line 43 of file TempoTrackV2.h.

References calculateBeatPeriod().

Referenced by calculateBeatPeriod().

◆ calculateBeatPeriod() [2/2]

void TempoTrackV2::calculateBeatPeriod ( const vector< double > & df,
vector< double > & beatPeriod,
vector< double > & tempi,
double inputtempo,
bool constraintempo )

Definition at line 101 of file TempoTrackV2.cpp.

References get_rcf(), and viterbi_decode().

◆ calculateBeats() [1/2]

void TempoTrackV2::calculateBeats ( const vector< double > & df,
const vector< double > & beatPeriod,
vector< double > & beats )
inline

Definition at line 58 of file TempoTrackV2.h.

References calculateBeats().

Referenced by calculateBeats().

◆ calculateBeats() [2/2]

void TempoTrackV2::calculateBeats ( const vector< double > & df,
const vector< double > & beatPeriod,
vector< double > & beats,
double alpha,
double tightness )

Definition at line 441 of file TempoTrackV2.cpp.

References get_max_ind(), and get_max_val().

◆ adapt_thresh()

void TempoTrackV2::adapt_thresh ( d_vec_t & df)
private

◆ mean_array()

double TempoTrackV2::mean_array ( const d_vec_t & dfin,
int start,
int end )
private

◆ filter_df()

void TempoTrackV2::filter_df ( d_vec_t & df)
private

Definition at line 31 of file TempoTrackV2.cpp.

◆ get_rcf()

void TempoTrackV2::get_rcf ( const d_vec_t & dfframe,
const d_vec_t & wv,
d_vec_t & rcf )
private

Definition at line 186 of file TempoTrackV2.cpp.

References MathUtilities::adaptiveThreshold(), and EPS.

Referenced by calculateBeatPeriod().

◆ viterbi_decode()

void TempoTrackV2::viterbi_decode ( const d_mat_t & rcfmat,
const d_vec_t & wv,
d_vec_t & bp,
d_vec_t & tempi )
private

Definition at line 246 of file TempoTrackV2.cpp.

References EPS, get_max_ind(), get_max_val(), m_increment, and m_rate.

Referenced by calculateBeatPeriod().

◆ get_max_val()

double TempoTrackV2::get_max_val ( const d_vec_t & df)
private

Definition at line 390 of file TempoTrackV2.cpp.

Referenced by calculateBeats(), and viterbi_decode().

◆ get_max_ind()

int TempoTrackV2::get_max_ind ( const d_vec_t & df)
private

Definition at line 405 of file TempoTrackV2.cpp.

Referenced by calculateBeats(), and viterbi_decode().

◆ normalise_vec()

void TempoTrackV2::normalise_vec ( d_vec_t & df)
private

Definition at line 422 of file TempoTrackV2.cpp.

References EPS.

Member Data Documentation

◆ m_rate

float TempoTrackV2::m_rate
private

Definition at line 78 of file TempoTrackV2.h.

Referenced by TempoTrackV2(), and viterbi_decode().

◆ m_increment

size_t TempoTrackV2::m_increment
private

Definition at line 79 of file TempoTrackV2.h.

Referenced by TempoTrackV2(), and viterbi_decode().


The documentation for this class was generated from the following files: