Skip to content

Implementation of beat tracking by dynamic programming - Ellis 2007.

Notifications You must be signed in to change notification settings

ruarim/beat_tracker

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Beat Tracking by Dynamic Programming.

Given an audio file, the beat tracker uses a dynamic programming algorithm to compute an estimated sequence of beat times[1].

The system is made up of three distinct phases.

  • First, perceptually weighted spectral flux analysis extracts an onset strength envelope (OSE) from an audio file.

full_ose_Albums-Commitments-10

  • This OSE is then used to estimate a tempo period for the audio via a perceptually weighted auto-correlation.

5secs_weighted_ac_Albums-Commitments-10

  • Finally, a dynamic programming algorithm is used to identify the most likely sequence of beats based on the OSE and estimated tempo period.

10sec_to_20sec_estimated_beats_Albums-Commitments-10

dynamic_programming_visualisation

The system was evaluated using a mean f-measure score across ~700 Ballroom dance music recordings.

f_measure_with_trim_resample_tps

  • Find the audio dataset here.
  • Find the associated beat annotations here.

Due to Dynamic Programming, this algorithm is particularly efficient and can process and evaluate performance on the full Ballroom dance dataset in ~2-3 minutes.

[1] D. P. W. Ellis, ‘Beat Tracking by Dynamic Programming’, Journal of New Music Research, vol. 36, no. 1, pp. 51–60, Mar. 2007.

About

Implementation of beat tracking by dynamic programming - Ellis 2007.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published