More visualizing music today.
I started off getting the music synced to the rendering. This wasn't too difficult, but I need to read ahead quite a large amount of the audio file to "fill up" the data buffer before the music starts.
Then, I spent most of the rest of the day playing around with different settings to see if I could find something I like, and that will work for multiple different music files.
Mostly, I want to detect the current peaks in the frequency data, and detect when beats occur. This is a little bit difficult, as frequency data is kind of messy and noisy, but maintaining a running average for each frequency and seeing when the current level is above the average, seems to work reasonably well. There is a little bit of magic scaling going on to produce more or fewer peaks, and it seems to be difficult to pick a value that works nicely for all files. I suspect I can probably automatically tweak it to gradually move towards a target number of peaks-per-second.
Now, to figure out what to do with that. There is a game in here just waiting to get out, I can feel it. :)