DMXOPL is a custom GENMIDI WAD lump created by ConSiGno containing custom instrument data for the DMX sound library to use in OPL synthesis, either through emulation, or a real FM chip. Given an *.OP2 extension, it can be used in a variety of utilities that support the DMX format. The current DMX-compatible version is v2.11d, released on January 1, 2018. An improved version specifically for source ports was released on March 23, 2018 as v2.12.
Beginning development in 2011 as a potential GENMIDI lump replacement for Freedoom, DMXOPL is the third custom GENMIDI replacement to be released: the first being by Joe Veldhuis, and the second being of The Fat Man's 2op FM patch by Dan L'Ecuyer. DMXOPL is under constant development, with many contributions from the FM synthesis community.
Doom's music was written with the Sound Canvas in mind, so DMXOPL's instrument set aims to mimic the Roland Sound Canvas, most notably the SC-55 and SC-88 models. DMXOPL freely exploits the "double voice" flag of DMX, along with the "fine tuning" value (adjusting the pitch of the second voice relative to the first) to create chorus, resonance, and "pseudo-4op" effects. This can be achieved even on an OPL2 chip.
GENMIDI support is usually seen as a "last resort" for source ports, with all the negative connotations that come along with it. DMXOPL aims to make this fallback mode sound more pleasant to the player. Additionally, DMXOPL can be used in standalone projects that cannot ship with copyrighted soundfonts, or used for platforms with no native MIDI support. Vanilla Doom can also run the patch without having to modify the IWAD.
One double voice note requires two channels of the OPL3 chip, out of a maximum of 18. in OPL2 mode, that value drops to 9. Therefore, the number of voices one double voiced instrument can play is 9, before DMX begins to drop the second voice to relieve channel pressure. DMXOPL's instruments are designed with the fundamental voice first to mask this behavior.
Originally, only the first 4 waveforms of the OPL3 are used, due to the (incorrect) belief that vanilla Doom could only support OPL2 waveforms. This was addressed with the DMXOPL v2.x series, which uses OPL3 waveforms. For compatibility, the last release of DMXOPL v1.x is included as DMXOPL2.WAD.
Due to Yamaha FM synthesis enforcing ADSR envelopes, some music sequences may play back incorrectly due to note lengths being too short for the voices to play fully. This is most evident in percussion instruments, such as crash cymbals and snare drums.
A special version of DMXOPL is included in GZDoom 3.3.0 and higher with the introduction of the libADLMIDI music library. This version features improved timbre and dynamics at the expense of vanilla Doom compatibility. Support for additional voices and drum kits is planned.