adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: BTrack - A Real-Time Beat Tracker: BTrack Class Reference adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
adamstark@23:
BTrack - A Real-Time Beat Tracker adamstark@23:
adamstark@23:
adamstark@23:
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
adamstark@24:  All Classes Files Functions Enumerations Pages
adamstark@23: adamstark@23: adamstark@23:
adamstark@23: adamstark@23:
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23:
adamstark@23: Public Member Functions | adamstark@23: Static Public Member Functions | adamstark@23: List of all members
adamstark@23:
adamstark@23:
BTrack Class Reference
adamstark@23:
adamstark@23:
adamstark@23: adamstark@23:

#include <BTrack.h>

adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@28: adamstark@28: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:

adamstark@23: Public Member Functions

 BTrack ()
 
 BTrack (int hopSize_)
 
 BTrack (int hopSize_, int frameSize_)
 
void updateHopAndFrameSize (int hopSize_, int frameSize_)
 
void processAudioFrame (double *frame)
 
void processOnsetDetectionFunctionSample (double sample)
 
int getHopSize ()
 
bool beatDueInCurrentFrame ()
 
double getCurrentTempoEstimate ()
 
double getLatestCumulativeScoreValue ()
 
void setTempo (double tempo)
 
void fixTempo (double tempo)
 
void doNotFixTempo ()
 
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:

adamstark@23: Static Public Member Functions

static double getBeatTimeInSeconds (long frameNumber, int hopSize, int fs)
 
static double getBeatTimeInSeconds (int frameNumber, int hopSize, int fs)
 
adamstark@23:

Detailed Description

adamstark@23:

The main beat tracking class and the interface to the BTrack beat tracking algorithm. The algorithm can process either audio frames or onset detection function samples and also contains some static functions for calculating beat times in seconds

adamstark@23:

Constructor & Destructor Documentation

adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
BTrack::BTrack ()
adamstark@23:
adamstark@28:

Constructor assuming hop size of 512 and frame size of 1024

adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
BTrack::BTrack (int hopSize_)
adamstark@23:
adamstark@28:

Constructor assuming frame size will be double the hopSize

adamstark@23:
Parameters
adamstark@23: adamstark@23: adamstark@23:
hopSizethe hop size in audio samples
adamstark@23:
adamstark@23:
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
BTrack::BTrack (int hopSize_,
int frameSize_ 
)
adamstark@23:
adamstark@28:

Constructor taking both hopSize and frameSize

adamstark@23:
Parameters
adamstark@23: adamstark@23: adamstark@23: adamstark@23:
hopSizethe hop size in audio samples
frameSizethe frame size in audio samples
adamstark@23:
adamstark@23:
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23:

Member Function Documentation

adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
bool BTrack::beatDueInCurrentFrame ()
adamstark@23:
adamstark@23:
Returns
true if a beat should occur in the current audio frame
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
void BTrack::doNotFixTempo ()
adamstark@23:
adamstark@28:

Tell the algorithm to not fix the tempo anymore

adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
void BTrack::fixTempo (double tempo)
adamstark@23:
adamstark@28:

Fix tempo to roughly around some value, so that the algorithm will only try to track tempi around the given tempo

adamstark@23:
Parameters
adamstark@23: adamstark@23: adamstark@23:
tempothe tempo in beats per minute (bpm)
adamstark@23:
adamstark@23:
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
double BTrack::getBeatTimeInSeconds (long frameNumber,
int hopSize,
int fs 
)
adamstark@23:
adamstark@23: static
adamstark@23:
adamstark@28:

Calculates a beat time in seconds, given the frame number, hop size and sampling frequency. This version uses a long to represent the frame number

adamstark@23:
Parameters
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
frameNumberthe index of the current frame
hopSizethe hop size in audio samples
fsthe sampling frequency in Hz
adamstark@23:
adamstark@23:
adamstark@23:
Returns
a beat time in seconds
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
double BTrack::getBeatTimeInSeconds (int frameNumber,
int hopSize,
int fs 
)
adamstark@23:
adamstark@23: static
adamstark@23:
adamstark@28:

Calculates a beat time in seconds, given the frame number, hop size and sampling frequency. This version uses an int to represent the frame number

adamstark@23:
Parameters
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
frameNumberthe index of the current frame
hopSizethe hop size in audio samples
fsthe sampling frequency in Hz
adamstark@23:
adamstark@23:
adamstark@23:
Returns
a beat time in seconds
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
double BTrack::getCurrentTempoEstimate ()
adamstark@23:
adamstark@23:
Returns
the current tempo estimate being used by the beat tracker
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
int BTrack::getHopSize ()
adamstark@23:
adamstark@23:
Returns
the current hop size being used by the beat tracker
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
double BTrack::getLatestCumulativeScoreValue ()
adamstark@23:
adamstark@23:
Returns
the most recent value of the cumulative score function
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
void BTrack::processAudioFrame (double * frame)
adamstark@23:
adamstark@23:

Process a single audio frame

adamstark@23:
Parameters
adamstark@23: adamstark@23: adamstark@23:
framea pointer to an array containing an audio frame. The number of samples should match the frame size that the algorithm was initialised with.
adamstark@23:
adamstark@23:
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
void BTrack::processOnsetDetectionFunctionSample (double sample)
adamstark@23:
adamstark@23:

Add new onset detection function sample to buffer and apply beat tracking

adamstark@23:
Parameters
adamstark@23: adamstark@23: adamstark@23:
samplean onset detection function sample
adamstark@23:
adamstark@23:
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23:
adamstark@23:
adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23: adamstark@23:
void BTrack::setTempo (double tempo)
adamstark@23:
adamstark@23:

Set the tempo of the beat tracker

adamstark@23:
Parameters
adamstark@23: adamstark@23: adamstark@23:
tempothe tempo in beats per minute (bpm)
adamstark@23:
adamstark@23:
adamstark@23: adamstark@23:
adamstark@23:
adamstark@28: adamstark@28:
adamstark@28:
adamstark@28: adamstark@28: adamstark@28: adamstark@28: adamstark@28: adamstark@28: adamstark@28: adamstark@28: adamstark@28: adamstark@28: adamstark@28: adamstark@28: adamstark@28: adamstark@28: adamstark@28: adamstark@28: adamstark@28: adamstark@28: adamstark@28:
void BTrack::updateHopAndFrameSize (int hopSize_,
int frameSize_ 
)
adamstark@28:
adamstark@28:

Updates the hop and frame size used by the beat tracker

adamstark@28:
Parameters
adamstark@28: adamstark@28: adamstark@28: adamstark@28:
hopSizethe hop size in audio samples
frameSizethe frame size in audio samples
adamstark@28:
adamstark@28:
adamstark@28: adamstark@28:
adamstark@28:
adamstark@23:
The documentation for this class was generated from the following files: adamstark@23:
adamstark@23: adamstark@23: adamstark@23: adamstark@23: