andrei-drexler / ironwail

High-performance QuakeSpasm fork
GNU General Public License v2.0
530 stars 49 forks source link

[Feature Request] Sound quality settings #169

Open victorator opened 1 year ago

victorator commented 1 year ago

I couldn't find sound quality settings in the menu, a simple switch for sndspeed between 11025 and 48000 would be nice.

drHyperion451 commented 5 months ago

I was working on a solution to this since the remaster version has some new 48kHz sfx that sounds much better than the old 11kHz one. It turns out the engine loads the enhanced versions but applies a low pass filter to 11kHz for "optimizations". Idk if it's just legacy code borrowed from old quake engines.

It's as easy as editing the snd_mix.c file, S_ApplyFilter() function and mostly bypass any filtering operation and simply copy the input data to the output data without alteration.

I've already edited the file and compiled the engine successfully and the remaster just sounds much better. The code is incredibly barebones and just removes the filter, so a conditional + ui changes should be added as well. Also I haven't checked out some performance tests.

I could work on this on my spare time but no promises.

Also I would like to hear from the maintainer if it's a good idea or not.

drHyperion451 commented 5 months ago

Okay, there's a hidden cvar you can enable with the current ironwail release 0.7

Set sndspeed 44100 to enable the better quality setting. Set it to sndspeed 11025 to revert it back