7

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!

user240137
  • 693
  • 4
  • 10
  • 15

5 Answers5

5

You could try Aubio: http://aubio.org/

It does not seem to work (at least for me, today) in windows, but it does work in OS/X

user1804862
  • 51
  • 1
  • 2
2

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
  • 31
  • 3
0

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
  • 487
  • 2
  • 10
  • 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? – user240137 Feb 14 '10 at 12:55
  • 1
    To detect a "beat" or basically a periodic spike then all you need is the FFT? – dangerstat Feb 14 '10 at 12:58
  • 1
    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. – user240137 Feb 14 '10 at 13:00
  • 2
    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 Feb 14 '10 at 13:06
  • 1
    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! – user240137 Feb 14 '10 at 13:48
0

OnsetsDS - real time musical onset detection C/C++ library http://onsetsds.sourceforge.net/

dasar
  • 5,321
  • 4
  • 24
  • 36
0

Ah, Vamp. If only the interesting ones worked real-time.

user240137, I don't know if you're really all that into "accepting answers", but after looking into Vamp I found Aubio (aubio.org) and have found it easier to hack its functions into my projects to do real-time work (if that's what you're after).

Last: if you really want to handle your own FFT, use kissFFT as an easier alternative to FFTW.

buildsucceeded
  • 4,203
  • 4
  • 34
  • 72