I created my own sound system for BasicC, more interesting than SDL_mixer in my opinion. Only 250 lines of code, after small changes it can be used in pure SDL, although I recommend BasicC :).
Custom multi-channel mixer, should be faster than SDL_mixer. In addition, the ability to change the frequency of played sounds, generator of synthesized sounds and a simple sequencer.
I made a demo playing a randomly generated melody… here’s a demo on Youtube (mono):
I read .OGG files with truncated STB_vorbis, .MOD files with micromod - I don’t want to read .XM, I don’t know why… I couldn’t handle MIDI… maybe some separate small player…