ADLMIDI Player

ru.wohlsoft.adlmidiplayer
by Zapstore _@zapstore.dev

Republished from GitHub / F-Droid by the Zapstore main account.

It's a small and simple MIDI player with OPL3 (Yamaha YMF262) FM synthesis. The player can play any MIDI, MUS, XMI, or IMF file you will have on your device. Player has 76 embedded banks from various DOS games, musical software, and some other timbre banks you can choose to get the different sounding of your music. At the same time, you can use external timbre bank file in WOPL format. # Key features of the libADLMIDI synthesizer: * OPL3 emulation with four-operator mode support * Embedded 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 * Stereo sound * Number of simulated OPL3 chips can be specified as 1-100 (maximum channels 1800!) * Pan (binary panning, i.e. left/right side on/off) * Pitch-bender with adjustable range * Vibrato that responds to RPN/NRPN parameters * Sustain (a.k.a. Pedal hold) and Sostenuto enable/disable * MIDI and RMI file support * Real-Time MIDI API support * loopStart / loopEnd tag support (Final Fantasy VII) * 111'th controller based loop start (RPG-Maker) * 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 playing Id-software Music File format (IMF) * Support for custom banks of WOPL format (Specification of it can be found here: https://github.com/Wohlstand/OPL3BankEditor/blob/master/Specifications/WOPL-and-OPLI-Specification.txt) * 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 (works for emulators only) # Links * The source code of player: https://github.com/Wohlstand/ADLMIDI-Player-Java * The source code of libADLMIDI: https://github.com/Wohlstand/libADLMIDI * The OPL3 bank editor which allows you to create or modify WOPL timbre bank files: https://github.com/Wohlstand/OPL3BankEditor/

First release: Sep 21, 2025, 2 total releases.

Most recent release: Aug 24, 2026.

Repo

Appears in 0 app stacks.

0 sats / 0 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Aug 24, 2026 1.6.2
    - Updated target Android SDK to API 37. - Added infinite loop toggling. - Added the Apogee EMIDI mode (to correctly play music designed for games based on Apogee/3D Realms' Audio library "Apogee Sound System"). - Updated libADLMIDI: * Fixed the random stuck problem in the DOS version of the ADLMIDI player. * Added support for HMI and HMP files! * Added support for in-track (local) loops. * Optimized work with chip instruments. * The panic will be always triggered on attempt to switch the bank. * Improved sounding accuracy at DMX banks.
    More…
    * Added MS Adlib driver's for Win3x volume model. * Added IMF Creator's volume model. * Added Jammie O'Connel's FM Synth volume model. * Added support for DMX OP2's Fixed Note feature for melodic instruments. * Fixed the unexpected playback distortion while playing IMF/CMF/KLM files using DosBox OPL3 emulator. * Fixed unexpected non-GM instruments from embedded bank appears when loading custom GM-only bank. * Added `adl_rt_rawOPL3()` public API to send raw OPL3 register writes to a specific chip, reusing the same internal routing used by IMF/KLM playback. Allows callers to render raw-OPL formats alongside MIDI playback on the same chip. * Added `adl_reserveChipChannels()` / `adl_getReservedChipChannels()` public API for per-chip bitmask reservation of chip channels, so the MIDI voice allocator will skip them and leave them free for raw OPL writes. * The Nuked OPL3 v1.8 got been slightly updated to sync with the mainstream to have all recent envelope generator fixes. * The old Nuked OPL3 v1.7 emulator is replaced with an optimised alternative fork by tgies. * Added Nuked CQM emulator (Emulator of the Creative's OPL3 clone chip known as Creative Quadratic Modulation). * Fixed the silence problem at the MIDI channel after playing too many notes without Note OFF event. * Fixed the work of the DOS-built MIDI player under Windows 9x without the dead freeze. * Added `adl_setDeviceFilterMask()` public API to assign the device filter mask for the HMI/HMP/EMIDI tracks disabling/enabling. * Added handling of music files designed for the EMIDI standard from the Apogee Sound System. This feature must be enabled manually to avoid heuristics and possible conflicts. * Added `adl_setModeEMIDI()` public API to enable handling EMIDI specification events without conflicts to other formats. * Added an ability to run the DosBox emulator in OPL2 mode.
  • Sep 21, 2025 1.6.1
    - Enabled RAM page size support for 16 KB. - Updated libADLMIDI to 1.6.1: * WinMM: Fixed random crash on waveOutOpen initialisation because of incorrect initialisation structure usage. * Fixed crash when playing too many notes at the same channel. * Fixed an unexpected loud noise sounding after switching bank from the 4-op only to 2-op on the fly. * WinMM: Fixed sound damange when switching between banks while playing some music streams. * Fixed the crash when playing some files with Auto-Arpeggio enabled. * Added support for KLM music files from the Wacky Wheels game. * Fixed buffered data corruption that leads a noisy output at some emulators (primarily at the LLE-OPL3).