brainstate

Wohlstand/ADLMIDI-Player-Java · source

Snapshot 0 · 2026-11-04T12:47:24Z · C++ · MIT

Content fingerprint137997d2fc2ceadd46f8ea24ae12cd16ba51bf4c509043edcc72c42318bc4672

GitHub description at capture

Simple MIDI-player for Android based on libADLMIDI library

README at capture

# ADLMIDI-Player-Java
Implementation of ADLMIDI based MIDI-player for Android

It's a MIDI-player based on emulator of a Frequency Modulation chip Yamaha OPL3. This small MIDI-player made with using of [libADLMIDI](https://github.com/Wohlstand/libADLMIDI/) library - a fork of original ADLMIDI a console program implementation.

# Key features

* 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.
* 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](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 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 (works for emulators only)

# Download latest binary

https://github.com/Wohlstand/ADLMIDI-Player-Java/releases

# System requirements

* Recommended to have powerful CPU: Emulation of OPL3 chip is a sound generation by formulas which requires requires operations. For example, application works almost fine on Samsung GT-I9300 which has quad-core Exynos 4212 CPU with 1400 Mhz. On slow CPUs it may lag, for example, on LG-E612 with MSM7225A Cortex A5 with 800 Mhz.
* 4 MB free space

# How to install

* Put APK to your Android device
* Check in settings that custom applications installations are allowed
* Open APK via any file manager and confirm installation
* Allow external storage reading (needed to open MIDI-files from phone memory and SD Card)

# How to use

* Use "Open" button to open file dialog and select any MIDI, RMI, KAR or IMF (Wolfinstein 3D) file
* Setup any preferences (bank, tremolo, vibrato, number of emulated chips, etc.)
* Press "Play/Pause" to start playing or press again to pause or resume
* Press "Restart" to begin playing of music from begin (needed to apply changes of some settings)
* Use "Open" again to select any other music file
* You can switch another application or lock screen, music playing will work in background.

# Tips

* This application audio playback may lag on various devices, therefore you can reduce number of emulated chips
* If you are using "4-operators" banks, you can increase number of 4-op channels into number of chips multiped to 6 (each OPL3 chip supports maximum 6 four-operator channels). Or simply use "<Auto>" mode which will automatically choose count of necessary 4-operator channels in dependence on a bank.
* Set number of four-operator channels into zero if you are using 2-operator banks (most of banks are 4-operators. Pseudo-four-operator banks are 2-operator banks with double-voice support)

More detailed about playing MIDI with this application you also can find on [libADLMIDI library repo](https://github.com/Wohlstand/libADLMIDI/)