Beat Detection Code

GDL component used in IHBB

This is a very poor implimentation of a beat detection algorithm I wrote in ~10 hours for IHBB. I'm releasing it under the "don't be a dick" licence. Essentially use it, and if you improve on it, please mail me with the improvements so I can share them. This uses FMod

The code makes a few calls to my Game Development Library, but I don't think it makes the code unreadable, (or maybe it does?)

FModAudioProcessor.cc - The actual code to detect beats
FModAudioProcessor.h - Header
FModSoundInput.cc - Ripped directly from a tutorial, basically loops input into output through a channel group so you can directly read that channel group seperate from the rest of the audio. (The wav out code is useless, but I have it in there becase I may need it at some point, and I'm too lazy to take it out).
FModSoundInput.h - Header
FModSystem.cc - RSBLSB GDL's sound manager... stores the spectrum and other data (I think, I can't really remember now
FModSystem.h - header

I wrote it using this as reference. Some of the code makes sense with the article, some other stuff I improvised on, some stuff just doesn't work. Basically the statistical variance doesn't work, I actually think I used standard deviation instead of the article's suggested variance, but even that is kinda sketchy in terms of necessity. The sub-bands are a little fuckery too. I split the subbands into 3 groups: bass, mid, high. nb, nm, nh are number of subbands per group. If nb/2+1 bands have a peak > mean for the suband then a beat is registered in that group. It's not ideal, but it works =).

If you improve on it, (especially for GAMMA), then I'd love to see the fixes!