I've been doing some more work on the sound subsystem, as there have been a few outstanding items with it. What I'm hoping that you will be able to do is:
- Specify a sampling rate on the command-line using -sndspeed; 11, 11025, 22, 22050, 44, 44100, 48 and 48000 will all be supported values (the lower figures are just bumped up to the higher ones to let you use whichever method you prefer).
- Change it at runtime using the s_khz cvar (name chosen because that's what Quake II uses) using the same values - this can happen even while a map is running.
- Restart the sound subsystem at any time using the snd_restart command. May be useful if sound goes screwy on you. It will auto-restart if s_khz changes (this is a very fast operation).
- Have a menu option for this too (possibly).
One thing that does happen is that - because sounds need memory allocated for them - we have a little extra overhead from the old discarded sounds until the map is either changed or reloaded. In practice it won't affect anything, but I do however think that I might change the memory handling for sounds to prevent this. I also want to change a few other things in relation to how DirectQ handles sounds in general, as the default ID implementation is now becoming quite clunky and awkward to work with.
Overall though I'm thinking that I'm going to put a good run at this one, as I'm overdue a decent batch of work, and this seems a nice cure for renderer burn-out.