I'm building a rhythm-based game, and facing a lot of problems with rhythm-detection. I receive the current spectrum of a playing song. It looks like a float array with 512 floats. 256 for left and right channel representation. FFT is also available. But I have no idea how to work with that data, I've made some experiments with visualizing, but it gave me very few information. I've googled for some ready algorithms, but there is nothing. Please, can someone help me with, maybe, some references, materials, articles connected with rhythm detection, working with audio spectrum. Code will also be very helpful. Thanks.
Maybe you didn't use the right search-terms. Try to google 'tempo detection' or 'beat detection', together with 'code' or 'algorithm'. There are lots of papers, references, code examples, etc.
Just a few hits:
http://www.cs.princeton.edu/~lieber/cos325/final/
http://www.clear.rice.edu/elec301/Projects01/beat_sync/beatalgo.html
You might want to check out the source and project report for the Dancing Monkeys project. Dancing monkeys automatically generates stepfiles for DDR, and it does so using some rather sophisticated beat detection. It's written in matlab.
You should have a look at the beat spectrum algorithm: http://www.rotorbrain.com/foote/papers/icme2001/icmehtml.htm.
It extracts information about rythm and musical structure by computing the similarity of small samples' spectrograms. It is relatively easy to implement and allows robust information to be retrieved.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With