This is a pie in the sky idea, but folks, DMX is becoming a pain in the tuchus to support. I've ran into bugs with it in the original DMX implementation, the DMX OPL code is unforgiving to MIDI files that dare to go outside of the MUS parameters, and it doesn't support a lot of features like modulation and loop points. ADLMIDI supports pretty much every MIDI command ever made + custom ones like Duke3D and Square loop point support. It also sounds much better as it handles note cuts much more competently than simple "voice channel priority".
There is even support for multiple drumkits and GS/XG instruments, which I will be working on in my project next year for version 3 of DMXOPL. I've asked for this in GZDoom previously using a config file, but that shouldn't even be GZDoom's job.
Custom banks are loadable, in a format called WOPL. All FM banks can be converted to WOPL with a tool, which means that Doom/Doom2 GENMIDI will work, as well as any custom patches - as long as they're in WOPL format.
The limitations right now:
- Only one OPL3 core can be selected at compile time: DOSBOX or Nuked. the former is much faster but can be distorted at times, and Nuked is more accurate but slower. Much slower.
- Since OPL3 output is pure on this library, there is no highpass filter to fix the terrible offsets, resulting in clipping and other issues. Only a problem on a few MIDI files.
- It's constantly under development, although this really isn't a limitation, it's more of an inconvenience on having to update the code.
- The options can be a bit confusing if you don't know what you're doing.