adamstark@114: adamstark@114: adamstark@60: adamstark@60: adamstark@114: adamstark@114: adamstark@114: adamstark@60: BTrack - A Real-Time Beat Tracker: BTrack Class Reference adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@114: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60:
adamstark@60:
adamstark@60: adamstark@60: adamstark@114: adamstark@114: adamstark@60: adamstark@60: adamstark@60:
adamstark@60:
BTrack - A Real-Time Beat Tracker adamstark@60:
adamstark@60:
adamstark@60:
adamstark@60: adamstark@114: adamstark@60: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@60: adamstark@60:
adamstark@114:
adamstark@60: adamstark@60: adamstark@60:
adamstark@114:
adamstark@114:
adamstark@114:
adamstark@114:
adamstark@114:
Loading...
adamstark@114:
Searching...
adamstark@114:
No Matches
adamstark@114:
adamstark@114:
adamstark@114:
adamstark@60:
adamstark@60: adamstark@60:
adamstark@60:
adamstark@60:
adamstark@60: Public Member Functions | adamstark@60: Static Public Member Functions | adamstark@60: List of all members
adamstark@114:
BTrack Class Reference
adamstark@60:
adamstark@60:
adamstark@60: adamstark@60:

#include <BTrack.h>

adamstark@60: adamstark@114: adamstark@60: adamstark@60: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60:

adamstark@60: Public Member Functions

 BTrack ()
 
 BTrack (int hopSize)
 
 BTrack (int hopSize, int frameSize)
 
 ~BTrack ()
 
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@114: adamstark@60: adamstark@60: adamstark@60:

adamstark@60: Static Public Member Functions

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

Detailed Description

adamstark@60:

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@60:

Constructor & Destructor Documentation

adamstark@114: adamstark@114:

◆ BTrack() [1/3]

adamstark@114: adamstark@60:
adamstark@60:
adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60:
BTrack::BTrack ()
adamstark@60:
adamstark@65:

Constructor assuming hop size of 512 and frame size of 1024

adamstark@60: adamstark@60:
adamstark@60:
adamstark@114: adamstark@114:

◆ BTrack() [2/3]

adamstark@114: adamstark@60:
adamstark@60:
adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@114: adamstark@60: adamstark@60: adamstark@60:
BTrack::BTrack (int hopSize)
adamstark@60:
adamstark@114:

Constructor assuming frame size will be double the hopSize

Parameters
adamstark@60: adamstark@60: adamstark@60:
hopSizethe hop size in audio samples
adamstark@60:
adamstark@60:
adamstark@60: adamstark@60:
adamstark@60:
adamstark@114: adamstark@114:

◆ BTrack() [3/3]

adamstark@114: adamstark@60:
adamstark@60:
adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@114: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@114: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60:
BTrack::BTrack (int hopSize,
int frameSize 
)
adamstark@60:
adamstark@114:

Constructor taking both hopSize and frameSize

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

◆ ~BTrack()

adamstark@114: adamstark@114:
adamstark@114:
adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114: adamstark@114:
BTrack::~BTrack ()
adamstark@114:
adamstark@114:

Destructor

adamstark@114: adamstark@114:
adamstark@114:
adamstark@60:

Member Function Documentation

adamstark@114: adamstark@114:

◆ beatDueInCurrentFrame()

adamstark@114: adamstark@60:
adamstark@60:
adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60:
bool BTrack::beatDueInCurrentFrame ()
adamstark@60:
adamstark@60:
Returns
true if a beat should occur in the current audio frame
adamstark@60: adamstark@60:
adamstark@60:
adamstark@114: adamstark@114:

◆ doNotFixTempo()

adamstark@114: adamstark@60:
adamstark@60:
adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60:
void BTrack::doNotFixTempo ()
adamstark@60:
adamstark@65:

Tell the algorithm to not fix the tempo anymore

adamstark@60: adamstark@60:
adamstark@60:
adamstark@114: adamstark@114:

◆ fixTempo()

adamstark@114: adamstark@60:
adamstark@60:
adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60:
void BTrack::fixTempo (double tempo)
adamstark@60:
adamstark@114:

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

Parameters
adamstark@60: adamstark@60: adamstark@60:
tempothe tempo in beats per minute (bpm)
adamstark@60:
adamstark@60:
adamstark@60: adamstark@60:
adamstark@60:
adamstark@114: adamstark@114:

◆ getBeatTimeInSeconds()

adamstark@114: adamstark@60:
adamstark@60:
adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60:
adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60:
double BTrack::getBeatTimeInSeconds (long frameNumber,
int hopSize,
int fs 
)
adamstark@60:
adamstark@60: static
adamstark@60:
adamstark@114:

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

Parameters
adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60:
frameNumberthe index of the current frame
hopSizethe hop size in audio samples
fsthe sampling frequency in Hz
adamstark@60:
adamstark@60:
adamstark@60:
Returns
a beat time in seconds
adamstark@60: adamstark@60:
adamstark@60:
adamstark@114: adamstark@114:

◆ getCurrentTempoEstimate()

adamstark@60: adamstark@60:
adamstark@60:
adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60:
double BTrack::getCurrentTempoEstimate ()
adamstark@60:
adamstark@60:
Returns
the current tempo estimate being used by the beat tracker
adamstark@60: adamstark@60:
adamstark@60:
adamstark@114: adamstark@114:

◆ getHopSize()

adamstark@114: adamstark@60:
adamstark@60:
adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60:
int BTrack::getHopSize ()
adamstark@60:
adamstark@60:
Returns
the current hop size being used by the beat tracker
adamstark@60: adamstark@60:
adamstark@60:
adamstark@114: adamstark@114:

◆ getLatestCumulativeScoreValue()

adamstark@114: adamstark@60:
adamstark@60:
adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60:
double BTrack::getLatestCumulativeScoreValue ()
adamstark@60:
adamstark@60:
Returns
the most recent value of the cumulative score function
adamstark@60: adamstark@60:
adamstark@60:
adamstark@114: adamstark@114:

◆ processAudioFrame()

adamstark@114: adamstark@60:
adamstark@60:
adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60:
void BTrack::processAudioFrame (double * frame)
adamstark@60:
adamstark@114:

Process a single audio frame

Parameters
adamstark@60: adamstark@60: adamstark@60:
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@60:
adamstark@60:
adamstark@60: adamstark@60:
adamstark@60:
adamstark@114: adamstark@114:

◆ processOnsetDetectionFunctionSample()

adamstark@114: adamstark@60:
adamstark@60:
adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60:
void BTrack::processOnsetDetectionFunctionSample (double sample)
adamstark@60:
adamstark@114:

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

Parameters
adamstark@60: adamstark@60: adamstark@60:
samplean onset detection function sample
adamstark@60:
adamstark@60:
adamstark@60: adamstark@60:
adamstark@60:
adamstark@114: adamstark@114:

◆ setTempo()

adamstark@114: adamstark@60:
adamstark@60:
adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60: adamstark@60:
void BTrack::setTempo (double tempo)
adamstark@60:
adamstark@114:

Set the tempo of the beat tracker

Parameters
adamstark@60: adamstark@60: adamstark@60:
tempothe tempo in beats per minute (bpm)
adamstark@60:
adamstark@60:
adamstark@60: adamstark@60:
adamstark@60:
adamstark@114: adamstark@114:

◆ updateHopAndFrameSize()

adamstark@114: adamstark@65:
adamstark@65:
adamstark@65: adamstark@65: adamstark@65: adamstark@65: adamstark@65: adamstark@114: adamstark@65: adamstark@65: adamstark@65: adamstark@65: adamstark@65: adamstark@114: adamstark@65: adamstark@65: adamstark@65: adamstark@65: adamstark@65: adamstark@65: adamstark@65:
void BTrack::updateHopAndFrameSize (int hopSize,
int frameSize 
)
adamstark@65:
adamstark@114:

Updates the hop and frame size used by the beat tracker

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