Got the audio redesign done and working. All audio is currently driven from an interrupt. I think that long term I want to split out the critical audio processing and do that in the interrupt, then have the interrupt set a flag to do the normal processing. I think that's a cleaner design, but I don't think that's going to happen until after this haloween. Right now I'm doing enough processing in the interrupt that I'm very slightly concerned about missing the next interrupt. Not that dropping a millisecond of audio is that big a deal, but hey. Also need to investigate why trying to print a double is causing a hardfault.