systemshock icon indicating copy to clipboard operation
systemshock copied to clipboard

Refactor MIDI library inclusion

Open mrikola opened this issue 5 years ago • 1 comments

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.

mrikola avatar Mar 26 '20 18:03 mrikola

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.

HunterZ avatar Mar 27 '20 22:03 HunterZ