I am working on a guitar hero like game prototype. and now I am looking for a tool that is able to extract the key beats of a song in addition to the height of the tune. is there something like this?
4 Answers
To do this, you can invert the signal and then add them together. This extracts most vocal elements. Then use EQ to filter any remaining artifacts. This is usually effective in stripping it down to the beat. You'll have the hardest time maintaining the integrity of the extreme high's in hi-hats using this method, but it'll still sound good.
Here are more details:
- 845
-
I suspect you know what you're doing, but this description doesn't make sense. A+(-A)=0, no? Perhaps you could be a little more precise. – dmckee --- ex-moderator kitten Sep 26 '09 at 17:09
-
-
1Aha. Stereo folding, which means it works with many but not all tracks. Very good. – dmckee --- ex-moderator kitten Sep 26 '09 at 17:17
-
rockbox.org 'karaoke' mode does exactly this on my sansa mp3 player. It removes the 'shared' waveforms between the left and right stereo sound, because 'most' song mixes have vocals in the center. – ericslaw Sep 27 '09 at 03:55
-
You mean "invert one channel of a stereo sound file", and this doesn't remove "vocal elements", it removes anything that's common to both channels. And it's a very poor way to estimate the beat. – endolith Oct 11 '09 at 15:27
If you use Audacity, you should be able to see what you want.

If you are talking about actual integrating this into your program, your question would be better on Stack Overflow.
- 18,809
- 116,736
-
thanks! well what i want is to redirect the output to some datafile that can be used by my program. – clamp Sep 26 '09 at 13:44
-
2The picture doesn't help because it doesn't tell how to accomplish the task. The link is just a link to software. It is like a guy asking how to build a house and being handed a hammer. He is going to need it, but it doesn't answer the question. – Joshua K Sep 26 '09 at 17:18
-
Well, thanks a lot for that... I did not know exactly what he wanted from his original question and I thought he just wanted to visualise it and then build a program around it... for example, I can clearly see where the peaks are with relation to time. – William Hilsum Sep 26 '09 at 17:36
You should look at The Echo Nest's Analyze API. It's pretty easy to get an API key, and then you can just call the get_beats API. (Disclaimer: I've worked on the Analyze API for The Echo Nest).
If you are looking for code that you can run locally and modify, you might want to check out Marsyas.
- 3,291
Just use the BeatBox - Drum replacer http://mda.smartelectronix.com/ you can feed it audio, help it identify the different drum components via sliders and then map your drum sounds to the beat you just ripped. easy.
Also, as far as beat extraction, look at ReCycle by Propellerheads and the beatslicer included in FruityLoops. I'm sure there are open source analogs.
– Joshua K Sep 26 '09 at 17:24