libADLMIDI - is a software MIDI synthesizer based on OPL3 chips emulation. It is the one of software synthesizers offered by ZDoom which does not use sound fonts. It's similar to OPL synth emulation synthesizer, however, it has a different base and workflow algorithm. It doesn't support using of OP2 lumps from WAD files as OPL synth emulation does. It has the own set of embedded GM banks are taken from various games and musical software or was built by various people. Together with embedded banks, it has a support of custom banks in WOPL format which gives ability to build a complete GS or XG compatible bank that has more than 128 melodic and 80 percussion instruments. In GZDoom, OPL-specific options can be edited from the advanced sound options menu.
- OPL3 emulation with four-operator mode support
- FM patches from a number of known PC games, copied from files typical to AIL = Miles Sound System / DMX / HMI = Human Machine Interfaces / Creative IBK.
- Pitch-bender with adjustable range
- Vibrato that responds to RPN/NRPN parameters
- Sustain (a.k.a. Pedal hold) and Sostenuto enable/disable
- Use automatic arpeggio with chords to relieve channel pressure
- Support for multiple concurrent MIDI synthesizers (per-track device/port select FF 09 message), can be used to overcome 16 channel limit
- Support for custom banks of WOPL format
- Partial support for GS and XG standards (having more instruments than in one 128:128 GM set and ability to use multiple channels for percussion purposes, and a support for some GS/XG exclusive controllers)
- CC74 "Brightness" affects a modulator scale (to simulate frequency cut-off on WT synths)
- Portamento support (CC5, CC37, and CC65)
- SysEx support that supports some generic, GS, and XG features
- Full-panning stereo option
The OPL core emulates a number of OPL chips. ZDoom extends them with features that did not exist on the emulated hardware, notably full MIDI stereo panning (OPL2 is normally mono, and OPL3 limited to 3 panning positions), though such enhancements can be turned off from the advanced sound options menu. There are three different cores available:
- DOSBox OPL3
- This OPL3 core comes from the DOSBox project. This is the only emulator affected by the "Run at PCM rate" feature which allows running the emulation with fewer cycles to reduce CPU usage on slow machines.
- Nuked OPL3
- This OPL3 core was contributed by Alexey Khokholov.
- Nuked OPL3 v1.7
- The older version of Nuked OPL3, but slightly optimized and works a bit faster than Nuked OPL3 1.8.
- Opal OPL3
- This OPL3 core comes from the Reality AdLib Tracker project. It's an incomplete OPL3-only emulator that lacks some features like OPL2 and rhythm mode. It is in the Public Domain.
- Java OPL3
- This OPL3 core is a C++ port of "That Vintage Tone", Robson Cozendey's OPL emulator written in Java.
- OPL3 Bank Editor - a utility that allows the creation of custom WOPL banks are can be used with this synthesizer.
- libADLMIDI - GitHub page that contains latest source code of this synthesizer and related documentation.
- WOPL format specification - A complete specification of WOPL bank format used by this synthesizer.
- DOSBox project