xaudio2 has the get peak level expression, but it's twitchy and unsuitable for anything more than a visualization. You can play around with the RMS and peak level expressions to get raw sound data and try to program something out of that. My Shmup 'Bit Fortress' in the your creations forum was planning on using this method. It requires alot of patience and tweaking to get right however, and the sounds you use have to be tweaked like crazy, sometimes returning unpredictable results. As rich said, the best would be a custom c++ algorithm/plugin. The Xaudio 2 expressions can only do so much. You're better off using those OSU text files for complex functions, because those expressions are only a single bar.