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?
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:
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.
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.