Then recently I found Beat Hazard, which is pretty much exactly the 'feel' I was aiming for with my game, but works as an old arena-style shooter instead of a sideways shooter.
I read a brief interview with the author, who mentioned using beats in the music to increase counters instead of acting on them directly, which is a pretty cool idea. This made me go digging through AudioGame's code and see what happened if I implemented that technique myself. The results were pretty awesome, instead of huge waves of enemies, they appeared in spots and starts with a sort-of time to the music.
Unfortunately all the old issues are still prevalent. The memory leak I'm at a total loss for, I can't even remember what code I added just before it turned up. I have it set up so the enemies have no maximum speed as the "don't go faster than this" code is broken somehow. It's actually so broken that it has a habit of sending enemy ships shooting off at odd angles when I've only written code to have them move right to left.
This all leaves me with a bit of a conundrum. I could take this game all the way if I fixed the bugs. That tip from the Beat Hazard guy (btw, I strongly suggest buying the game, it's a lot of fun) essentially fixed the biggest problem I was having, which was how to make things work to the music. But the bugs are obscure and may take a long time to fix that isn't proportionate to the issues they cause. The memory leak for example isn't the "keep eating memory forever" sort, it's the "you didn't clean up properly when closing" sort, which is a non-issue for a user but annoying for a coder.
I may re-pick it up as part of the game-a-month stuff and make a prototype, maybe even in C# and OpenTK instead of C++. I may not and just let it rest.