coelckers / prboom-plus

This is a cleaned up copy of the PrBoom+ SVN repository as a courtesy for those interested in forking that port
290 stars 117 forks source link

PortMidi: Update volume after "reset all controllers" event #571

Closed ceski-1 closed 1 year ago

ceski-1 commented 1 year ago

This is a workaround for a bug that appears when using PortMidi, Windows, and the default Windows MIDI synth (Microsoft GS Wavetable Synth). When the MS GS Synth receives a "reset all controllers" event it also resets the channel volume, deviating from MIDI spec. As a result, in certain cases the channel can be audible even if the music volume slider is set to zero. The workaround is to always update the volume after a "reset all controllers" event.

Test wad: reset_all_ctrls_test.zip