systemshock
systemshock copied to clipboard
Refactor MIDI library inclusion
Current situation:
- ADLMIDI and Fluidsynth-lite are bundled in with the code
- Native MIDI support was added after the two
- ADLMIDI mostly sounds like crap
- Fluidsynth quality depends on soundfont; there's a really good one in the works over at https://www.systemshock.org/index.php?topic=10927 but the download clocks in at 350MB+
Target situation:
- Native MIDI is the baseline
- Fluidsynth is an optional nice-to-have for customization purposes
- ADLMIDI is the fallback if all else fails
Comments welcome as to which MIDI libraries should be included and how.
I don't have any strong opinions on this, but here are some thoughts as the person who contributed native MIDI support:
- The upshot of ADLMIDI is that it works for everyone out of the box, even if it sounds the worst.
- Windows has a General MIDI software synthesizer built-in that the native MIDI support will use by default on that platform.
- Linux native MIDI support was only tested in a VM, and it takes some effort to set up a software synthesizer that works with it.
- I wasn't able to attempt native MIDI support for Mac, so it's not even an option there unless someone else added it.
- Ideally they should probably all be optional, and the game should figure out which ones got compiled in.