aubio

Keeping it groovy

example of tempogram

Tempogram for Havana Cultura: New Cuba Sound, a 45:31 minutes mix by Gilles Peterson

At the latest ISMIR conference, Peter Grosche and Meinard Müller presented a paper called A Mid-Level Representation for Capturing Dominant Tempo and Pulse Information in Music Recordings. I was told to give it a look, as Meinard Müller gave an impressive presentation with several sound examples of difficult but successful beat tracking.

The method they describe is somewhat intuitive: build an onset detection function, or novelty function, detect the pitch, or fundamental period, on this function, and synthesise the result using an overlap-add technique. The approach is elegant, efficient, and present several advantages over existing methods, such as the one currently implemented in aubio: versatile, computationally efficient, it does not depend of previous context, is easy to implement, and can be easily configured for different situations, with independent tempo and time resolutions.

Last week-end I gave a shot at implementing this algorithm and got pretty impressive results right at the first attempts. I managed to get 82% of correct tempo (BPM) over my test database; not bad compared to the 72% reached with the latest aubio version ‒ the database, constructed by Stephen W. Hainsworth, consists of 222 musical extracts of various genres.

I thought about titling this post "Harder, better, faster, stronger", but that sounded a bit déjà-vu, and the musicians from Cuba are much harder to follow than the famous French duo. The figure above shows a tempogram of a 45 minutes long mix by the amazing Gilles Peterson.

There is more than tatums and tactus coming out of these tempograms: some interesting patterns emerge, describing the rhythmic structure of the sound. More about this later, as soon as I find time to complete my implementation, adding the precise beat locations so they can be played.

Thu, 26 Nov 2009, 01:53. trackback - view/add comments

Responses to this post

Hi,

I'm also interested in an implementation of that technique and I am wondering your implementation is already available in aubio? Or are you implementing it separately from aubio? I checked the git log, but didn't find any references to the technique.

best,

Stefaan Lippens

Posted by Stefaan Lippens at Thu Dec 10 15:42:39 2009

Hi Stefaan,

I didn't push the code yet, as it still needs ironing. I will publish it ASAP, hopefully this week-end.

Best, piem

Posted by piem at Fri Dec 11 20:18:45 2009

I'm Just a dropping a line here. I was just curious about the state of this code. Will it be made available in some form soon?

Posted by Phillip Whelan at Fri Feb 5 09:24:18 2010

Leave your own comment

  Name (required)

  E-mail (not published)

  Website

© 2003-2017 the aubio team | cc-by-sa