Dan Ellis : Research :

[beattrack image] Music Audio Tempo Estimation and Beat Tracking


Identifying the beat times in music audio is a useful precursor for other operations, since the beats define the most relevant "time base" for things like feature extraction and structure discovery. This page presents information on our beat tracking / tempo extraction tools, which are based on a simple dynamic-programming approach.


Code

Note: The beat-tracking code is also distributed as part of our cover song detection system. It has also been ported to Java as part of MEAPsoft.

Main routines

You might also be interested in beatsimple.m, the stripped-down dynamic programming routine references in the JNMR paper below, and beatdyn.m, a modified routine that attempts to track time-varying tempo (at the expense of global optimality for any single tempo).

Example Usage

Here's an example of beat-tracking a music sample, then playing it along with its extracted click-track:

>> % Load a song
>> [d,sr] = wavread('train/train2.wav');
>> % Calculate the beat times
>> b = beat2(d,sr);
>> % Resynthesize a blip-track of the same length
>> db = mkblips(b,sr,length(d))
>> % Listen to them mixed together
>> soundsc(d+db,sr);

Papers

D. Ellis (2007)
Beat Tracking by Dynamic Programming
J. New Music Research, Special Issue on Beat and Tempo Extraction, vol. 36 no. 1, March 2007, pp. 51-60. (10pp)
DOI: 10.1080/09298210701653344

Data

We developed this code using the really nice human tapping data collected by Martin McKinney and Dirk Moelants at Philips Research. This was the development data for the 2006 MIREX Beat Tracking evaluation. You can download this data from here as mirex06train.zip (62 MB).

Acknowledgment

This material is based in part upon work supported by the National Science Foundation under Grants Nos. IIS-0238301 and IIS-0713334. Any opinions, findings and conclusions or recomendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation (NSF).

This work was also supported by the Columbia Academic Quality Fund.


Valid HTML 4.0! Last updated: $Date: 2007/02/06 03:36:03 $
Dan Ellis <[email protected]>