* Remove opl_sample_rate variable since it has no practical effect
* Deactivate idle OPL chips
Allocate free OPL voices from active chips before inactive ones
* Add comments for new constants
* Ensure OPL chip LFOs are kept in sync after dormancy
* Check for chip activations before sample generation to preserve sync
* Use correct OPL3 channel polarity by default
* Support multiple OPL3 chips
* Use native OPL sample rate and allow OpenAL to resample it
* Bind DMX OPL stereo correction to a config variable; default to vanilla
* Consolidate num_opl_chips variables; remove menu item
Use BETWEEN macro for mix clamping
* Disable upper register banks when dmx is in OPL2 mode
* Forward declaration of structures in headers where possible
* Use M_snprinf instead of sprintf
* Remove D_INTMAX D_INTMIN
* Don't change libtextscreen files
* Add miniz and win32 include directories
* switch to OpeanAl for sound mixing
* Rewrote Load_SNDFile() to use float format. Made libsndfile mandatory.
* update main.yml workflow
* implement OpeanAl music streaming
* remove i_sdlmusic.c and SDL_Mixer dependecy
* enable mpeg support in libsndfile
* require SndFile 1.1.0
* check SF_FORMAT_MPEG_LAYER_III symbol
* use AL_GAIN for opl_gain
* crude OPL volume gain
* replace SDL_MixAudioFormat with MixAudioFormat with added gain
* remove unnecessary code path, set default gain = 2
* fix gain calculation
* apply gain only to `src1`
* cosmetic changes
* hot swap of music modules
* get a list of Windows MIDI devices
* move "MIDI Player" menu item only on Windows build
* increase MAX_MIDI_PLAYERS, index fixes
* fix hot swapping with UMAPINFO music, init OPL on song change
* initialize OPL only when necessary
* call I_ShutdownMusic in exit sequence
* don't send SysEx reset for MS GS Synth
* introduce `I_DeviceList` function, rearrange code
* `midi_player_strings` must be NULL at the end
* add OPL emulation from Chocolate Doom
* get rid of detect_voices
* split the SDL music backend into a separate source file
* add post-realloc() check
* add OPL emulation copyright holders
* add some minimal comments
* add config variable and menu item
* sacrifice PCX format screenshot menu entry