From ZDoom Wiki
(Redirected from LibOPN)
Jump to navigation Jump to search

libOPNMIDI - is a software MIDI synthesizer based on MiniWikipediaLogoIcon.pngOPN2 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 MiniWikipediaLogoIcon.pngOPL3). It's an alternative FM based MIDI synthesizer which introduces the usage of a chip notable by MiniWikipediaLogoIcon.pngSega 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 emulation
  • Customizable bank of FM patches (You have to use the bank editor to create own sound bank)
  • 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 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

OPN2 cores

The OPN2 core emulates a number of OPN2 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:

This OPN2 core comes from the MiniWikipediaLogoIcon.pngMAME project. It is available under the MiniWikipediaLogoIcon.pngGNU GPL.
Nuked OPN2
This OPN2 core was contributed by Alexey Khokholov. Note that it is much heavier than 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 Sega Genesis emulator. This core is the fastest but very inaccurate and lacks the support of SSG-EG.

See also

External links

  • 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.
  • MAME
  • GENS