17 #ifndef TEMPOTRACKV2_H 18 #define TEMPOTRACKV2_H 44 vector<double> &beatPeriod,
45 vector<double> &tempi) {
46 calculateBeatPeriod(df, beatPeriod, tempi, 120.0,
false);
52 void calculateBeatPeriod(
const vector<double> &df,
53 vector<double> &beatPeriod,
54 vector<double> &tempi,
55 double inputtempo,
bool constraintempo);
59 const vector<double> &beatPeriod,
60 vector<double> &beats) {
61 calculateBeats(df, beatPeriod, beats, 0.9, 4.0);
67 void calculateBeats(
const vector<double> &df,
68 const vector<double> &beatPeriod,
69 vector<double> &beats,
70 double alpha,
double tightness);
81 void adapt_thresh(d_vec_t &df);
82 double mean_array(
const d_vec_t &dfin,
int start,
int end);
83 void filter_df(d_vec_t &df);
84 void get_rcf(
const d_vec_t &dfframe,
const d_vec_t &wv, d_vec_t &rcf);
85 void viterbi_decode(
const d_mat_t &rcfmat,
const d_vec_t &wv,
86 d_vec_t &bp, d_vec_t &tempi);
87 double get_max_val(
const d_vec_t &df);
88 int get_max_ind(
const d_vec_t &df);
89 void normalise_vec(d_vec_t &df);
!! Question: how far is this actually sample rate dependent? I
vector< vector< int > > i_mat_t
void calculateBeats(const vector< double > &df, const vector< double > &beatPeriod, vector< double > &beats)
vector< vector< double > > d_mat_t
void calculateBeatPeriod(const vector< double > &df, vector< double > &beatPeriod, vector< double > &tempi)