Skip to content
OPL3/OPN2 synthesizer using ADLMIDI and OPNMIDI, for Jack and cross-platform audio
Branch: master
Clone or download
Latest commit 007b5ab Mar 19, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
resources Update May 11, 2018
sources update libraries and emulator search method Mar 8, 2019
CMakeLists.txt add the midi player for Haiku Oct 23, 2018
CPackLists.txt add installed DLL summary May 25, 2018


OPL3/OPN2 synthesizer using ADLMIDI and OPNMIDI

This is a standalone synthesizer for ADLMIDI and OPNMIDI on the text console. It is based on libADLMIDI and libOPNMIDI.

  • adljack is the version for the Jack audio system.
  • adlrt is the portable version for Linux, Windows and Mac.


Feature list

  • Real time, low latency FM synthesizer
  • Support of multiple FM chip emulators
  • Support of multiple chips for extended polyphony
  • Loading instrument banks in WOPL and WOPN formats
  • General MIDI level 1 and 2
  • Multi-channel MIDI playback
  • Automatic bank reloading when the file changes on disk
  • User interface for the terminal with dynamic controls
  • Session management with the NSM protocol (adljack only)


This is how you use adljack in the console.

  • -h: Show a help message, and lists available players and emulators
  • -p [player]: Selects the player. (ADLMIDI, OPNMIDI)
  • -n [chips]: Defines the number of chips.
  • -b [bank]: Loads the indicated bank file.
  • -e [emulator]: Selects the emulator. (by number, as listed in -h)
  • -L [latency]: (adlrt only) Defines the audio latency. The unit is milliseconds. Default 20ms.

Development builds

Build Status

Find automatic builds of the development branch here (Windows).

Build instructions

Installed required dependencies:

  • a C++ compiler for the 2011 standard
  • at least one development package for audio, and one for MIDI: ALSA, PulseAudio, Jack
  • either: (n)curses for a terminal interface, or SDL2 for a PDCurses pseudo-terminal (needed on Windows)


git clone --recursive
mkdir adljack/build
cd adljack/build
cmake -DCMAKE_BUILD_TYPE=Release ..
cmake --build .


sudo cmake --build . --target install


Why are the colors odd-looking in a X11 terminal?

The default terminal setting may prevent the program from being able to define its own colors. In the initialization of your shell, try setting a 256-color terminal type: test "$TERM" = "xterm" && export TERM=xterm-256color

Change Log

Version 1.2.0

  • support of new emulators
  • support of MIDI portamento
  • support of OPN2 soft panning
  • resolved a possible crash occurring on the PDCurses build

Version 1.1.0

  • ability to connect audio ports automatically using the option -a

Version 1.1.0-rc.1

  • fidelity improvement of DosBox, MAME and Gens emulators by processing at native sample rate
  • update of the DosBox OPL emulator
  • support of MIDI aftertouch
  • fixed issues with pitch bend and pitch bend sensitivity
  • support of Roland SC-55 sysex: text insert
  • improved computation of the optimal 4 operator channel setting for OPL3
  • fixed long notes cutting prematurely
  • translation support on Windows
  • various fixes

Version 1.0.0

This is the initial release.

You can’t perform that action at this time.