libOPNMIDI - is a software MIDI synthesizer based on OPN2 and OPNA 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 and does use of different FM chip than OPL3). It's an alternative FM based MIDI synthesizer which introduces the usage of a chip notable by Sega Megadrive game console which was never used for MIDI. It has one default embedded bank with a partial XG set and has a support of custom banks in WOPN format which gives the ability to build a complete GS or XG compatible bank that has more than 128 melodic and 80 percussion instruments. In GZDoom, OPN2-specific options can be edited from the advanced sound options menu.
- OPN2 and OPNA emulation
- Customizable bank of FM patches (You have to use the bank editor to create own timbre banks)
- 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
- 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 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 OPN2/OPNA core emulates a number of OPN2/OPNA chips. GZDoom extends them with features that did not exist on the emulated hardware, notably full MIDI stereo panning (OPN2 limited to 3 panning positions), though such enhancements can be turned off from the advanced sound options menu. There are three different cores available:
- Nuked OPN2
- This OPN2 core was contributed by Alexey Khokholov. Note that it is much heavier than the Nuked OPL3 emulator and may cause lag on slow systems when you have used more than three virtual chips.
- GENS 2.10
- This OPN2 core comes from the GENS project of the Sega Genesis emulator. This core is the fastest but very inaccurate and lacks the support of SSG-EG.
- Neko Project II Kai OPNA
- This OPNA core comes from the Neko Project II Kai project of NEC PC98 Japanese computers emulator. This core is one of the fastest, it is more accurate than GENS include the support of SSG-EG with minor incorrectness. It is available under the MIT License.
- PMDWin OPNA
- This OPNA core comes from the PMDWinS036 project. This core is one of the fastest, it gives some distortions of resulted sound while releasing notes.
- OPN2 Bank Editor - a utility that allows the creation of custom WOPN banks are can be used with this synthesizer.
- libOPNMIDI - GitHub page that contains latest source code of this synthesizer and related documentation.
- WOPN format specification - A complete specification of WOPN bank format used by this synthesizer.