BTrack - A Real-Time Beat Tracker
 All Classes Files Functions Enumerations Pages
BTrack - A Real-Time Beat Tracker

A real-time beat tracker, implemented in C++.

Written by Adam Stark, Matthew Davies and Mark Plumbley.

License

BTrack is made available under the GNU General Public License, version 3. Please see the included LICENSE.txt for more details.

Usage - C++

STEP 1

Include the BTrack header file as follows:

    #include "BTrack.h"

STEP 2

Instantiate the algorithm by one of the following:

// to use the default 512 hop size and 1024 frame size
BTrack b; 

or:

// to specify a hop size (e.g. 512) and have a frame size of 2 x the hop size
BTrack b(512); 

or:

// to specify both the hop size and frame size
BTrack b(512,1024);

STEP 3.1 - Audio Input

In the processing loop, fill a double precision array with one frame of audio samples (as determined in step 2):

double *frame; 

// !
// do something here to fill the frame with audio samples
// !

and then call:

b.processAudioFrame(frame);

and to check for beats, simply call:

if (b.beatDueInCurrentFrame())
{
    // do something on the beat
}

STEP 3.2 - Onset Detection Function Input

The algorithm can process onset detection function samples. Given a double precision onset detection function sample called 'newSamples', at each step, call:

b.processOnsetDetectionFunctionSample(newSample);

and then check for beats with:

if (b.beatDueInCurrentFrame())
{
    // do something on the beat
}

For any questions, please email Adam Stark (email at http://www.adamstark.co.uk).