views:

592

answers:

2

Hi,

I am currently looking around for a good allround beat detection library / source code in C++ since I found it really hard to achieve satisfying results with the beat detection code I wrote myself using this tutorial: http://www.gamedev.net/reference/programming/features/beatdetection/

It's especially really hard if you want to make it work with any kind of music so I was wondering if there is something usable out there allready?

Thanks!

A: 

I may be missing something but I can't see why you can't use the GNU Scientific Library's FFT routine (or any other like those included in BOOST)?

dangerstat
I am looking for a Beat detection, which uses FFT as input and detects wheather there is a new beat in a certain range or not. The libs you provided are "just" FFT routines if I am not mistaken?
To detect a "beat" or basically a periodic spike then all you need is the FFT?
dangerstat
yes, in all beat detection implementations I saw until now you basically compare the FFT with the one of the frame before and maybe run some smoothing functions on it to dismiss any kind of noise. then if the difference is over a certain dynamic threshold you have a beat.
Exactly. What your looking at should be the periodogram, spikes suggest "beats". It's easy to do, but using the FFT routines in BOOST or GNU GSL is the starting point.
dangerstat
yeah, basically thats what I do allready even though I use FFTW. Anyways the problem is that its really hard to make it work in a general manner so I was wondering if there is something finished allready which might work better. thanks for your help anyways!
+2  A: 

Look at the Vamp Plugin system and its available plugins ( http://vamp-plugins.org/ ).

(from the website) Vamp is an audio processing plugin system for plugins that extract descriptive information from audio data

The QM Plugin set seems especially relevant ( http://vamp-plugins.org/plugin-doc/qm-vamp-plugins.html ).

Taybin
Yep, these are designed exactly for it.
James Morris