English Version French Version


Created 2004/2005

MIDIbox FM utilizies the Yamaha YMF262 sound chip (also known as OPL3) for generating the famous FM sounds known from Soundblaster (compatible) soundcards of the early 90s. In addition to the OPL3 specific features (6 four-operator voices, 5 percussion instruments) some software implemented modulation sources have been added to allow more expressive and very experimental sound creations.

Sound Architecture

A single operator provides:

  • 8 different waveforms
  • an adjustable output level with 6-bit resolution which affects the output amplitude (carrier) or the modulation index (modulator)
  • a frequency multiplier with 4-bit resolution
  • a simple envelope generator (ADSR), each parameter with 4-bit resolution. Sustain phase can be omitted
  • key scaling (0 db/oct, 1.5dB/oct, 3.0dB/oct, 6.0dB/oct)
  • envelope scaling (higher notes are shorter then lower notes)
  • Vibrato and Tremolo (fixed frequency)
  • Feedback with 3-bit resolution (only the first OP)

A single voice consists of 4 operators and provides:

  • only a single pitch for all 4 operators (frequency detuning between the operators of one voice not possible)
  • 4 different OP connection modes (algorithms)
  • 2 software implemented LFOs which can be assigned to the operator volumes and to the pitch
  • 1 software implemented envelope generator which can be assigned to the operator volumes and to the pitch

A single instrument can control one or more voices (up to 6), it provides:

  • mono/legato/poly play mode
  • automatic voice assignment (longest note will be killed first)
  • adjustable pitch bender range and finetune
  • portamento (optionally with "Sus-Key" playing behaviour)
  • Velocity can be assigned to any CC sound parameter
  • Modulation Wheel can be assigned to any CC sound parameter
  • Aftertouch can be assigned to any CC sound parameter
  • A 32-step wavetable sequencer with up to 500 Hz play rate which can be assigned to 3 CC sound parameters
  • LFOs/EG5/WT sequencer can be synchronized to MIDI clock

A LFO provides:

  • 5 waveforms
  • rate from 0.032 Hz to 45 Hz
  • key sync and start phase (0-360)
  • the LFO signal can control: the pitch depth of a voice, the four operator volumes, the frequency of the co-LFO, the amplitude of an AOUT (CV) output
  • separate depth parameters for all modulation targets

The EG5 provides:

  • an attack-decay1-decay2-sustain-release curve (7 parameters). Rates from 2 mS to 27 seconds
  • an assignable non-linear curve function for attack/decay/release
  • the EG5 signal can control: the pitch depth of a voice, the four operator volumes, the frequency of LFO1, the amplitude of a CV output
  • separate depth parameters for all modulation targets

The wavetable sequencer provides:

  • 3 assignable CC parameters
  • 32 steps
  • absolute (0-127) or relative (-64..63) control
  • 3 play modes (note, note step, freerunning)
  • frequency rate from 2 Hz..500 Hz

An ensemble consists of 4 instruments and provides:

  • the patch and bank number (8 * 128 patches can be stored in 8 BankSticks)
  • a separate MIDI channel for each instrument
  • keyboard split zone
  • overall volume
  • velocity curve (Flat/Hard/Soft
  • Semitones Transpose function
  • Unisono function (allocates two detuned voices)
  • separate routing of the OP1/2 and OP3/4 outputs to the 4 audio channels

The separate percussion channel provides:

  • 2-OP Bass Drum
  • 1-OP Snare
  • 1-OP Tom
  • 1-OP HiHat (open and closed)
  • 1-OP Cymbal
  • Adjustable frequencies (BD: independent, Tom/HiHat/Cymbal: coupled)
  • separate keyboard zones for each drum

Additional features

  • realtime editing of all sound parameters via CC, SysEx or control surface
  • control surface with 2x40 LCD, 5 rotary encoders, 24 buttons, 34 LEDs (see also the MIDIbox FM manual)
  • each BankStick can store 128 sound patches, 16 drumsets and 32 ensembles.
  • up to 8 BankSticks can be connected
  • 8 optional CV outputs which can be assigned to the LFOs and EG5s for controlling analog filters, VCAs, effects, etc...

MIDIbox FM Demo Samples

Most of these samples don't reflect the typical OPL3 sound, but should demonstrate the possibilites of the MIDIbox FM in conjunction with external Fx gear.

The very first demo song. 4 voices are playing an E-Piano like sound, the morphed arpeggio sequence is played live with the MIDIbox SEQ. From 0:00-0:32 you will hear the raw sound output of the OPL3, at 0:34 it has been enriched with a chorus and delay effect.
The second demo song was recorded after the FM drums were working. The background noise will disappear once the LM314 OPA has been replaced by a high quality TL074
This is a collection of some nice sounds and tunes which have been created during development of the sound engine, mostly to test functions like portamento, envelopes and LFOs
A FM drum groove with an external echo effect. Sound parameters are tweaked during the drums are playing to demonstrate some possible variations
The 16 MIDIbox FM drumset presets
Some random patches which have been created with the mk_fm_random.pl script - they demonstrate the possibilities of the mighty MIDIbox FM sound engine. The stereo effects are realized by playing the same patch with four instruments. If the wavetable sequencer or the LFOs are in freerunning mode, the output of each instrument sounds (very) different. The outputs are routed to separate audio channels, which are placed at different panorama positions in the stereo sum. An external delay effect has also been added to improve the results.
This demo demonstrates the possibilities of the AOUT module - an external Moog filter (Schematic from Rick Jansen) has been added and is controlled from one of the eight CV outputs. Since I only own one filter, the different sounds have been recorded one after another via overdub. The song stops at 1:29 (no download error)
Are you able to realize the same sounds with a common FM synth? ;-)
A demo which uses MIDIbox FM + 4 MBHP_AOUT_LC modules + 4 CEM3378 filters - my current setup. See also this forum article.
Burypio created some tunes with OPL3 typical sounds, see this forum article.

SysEx Editor

A Ctrlr based SysEx Editor has been created which gives you access over all engines remotely from your computer.

Here some teasing snapshots:

Ctrlr works standalone, but also as AU and VST plug-in under MacOS, Windows and Linux!

The panel is part of the the Device Data Base, so that it can be downloaded directly from Ctrlr (or from this webpage)

Please follow this forum article for the latest informations.

Hardware costs

MIDIbox FM can be extended successively from a simple synth module without LCD and control elements to a complete rack (or desktop) unit with control surface.

Sounds can be played once the MBHP_OPL3 module has been connected to the MBHP_CORE. All parameters can be edited with the SysEx editor in realtime from a Windows/Mac/Linux computer. A BankStick is highly recommended, otherwise only one patch, one ensemble and one drumset can be stored in the internal memory. Wavetables can only be stored in BankSticks. Note also that up to eight BankSticks can be connected - the large storage is especially useful if fast access to the preset banks is desired. Each BankStick can store 128 Soundpatches, 16 Drumsets and 32 Ensembles.

The next extension step is the use of one 2x40 LCD + eight softbuttons + one ESC button + one CFG button + four Instr/OP select buttons + 10 LEDs + one data dial (rotary encoder) - this enables you to edit all sound parameters directly on the device. One MBHP_DINX4 module and one MBHP_DOUTX4 module is required to interface these parts to the core.

The last extension step is the use of four V-Pots + the 6+4 buttons and 6*4 LEDs of the selection matrix. No additional DINX4 or DOUTX4 module is required for this extension.

Please read also the MIDIbox FM Manual which discusses the details of the user interface!

Below a list of the complete "MIDIbox FM" - costs can be reduced by choosing cheaper buttons, a cheaper case/panel and by organizing collective orders in the MIDIbox Forum!

Note that premade PCBs can be purchased at www.mikes-elektronikseite.de or http://mbhp.coinoptech.com. SmashTV also purchases complete kits of the CORE/DINX4 and DOUTX4 modules!!!

Prices and ordering numbers are from Reichelt if not specified. A list of alternative electronic shops outside germany can be found at the WhereToOrder page.

Minimal requirements
Part Description Price
the brain of MIDIbox FM Parts: ca. 20 EUR
PCB: ca. 6 EUR
when the core is the brain, this is the mouth! :-) Parts: ca. 8 EUR
PCB: ca. 6 EUR
1 YMF262
1 or 2 YAC512
The Yamaha OPL3 chip and DAC(s) re-use from second hand vintage soundcard(s) (e.g. Soundblaster Pro)
PSU 5V Wall adapter (Power supply) 9V / 500 mA "MW 17-GS/6" ca. 6 EUR
PSU +/- 12V Any hint? I'm using a 2x12V transformer which was really cheap, but tinkering with high voltages is only suggested for electronic experts! Please inform me about cheap alternatives! ???
BankStick 1 x 24C256, Part #ST 24C256 BN6 from Reichelt. Note: the Atmel EEPROM has only two chip select lines, this means that only 4 BankSticks can operate in parallel (see also BankStick page) ca. 2 EUR
Casing + optional control surface
digital inputs for buttons and encoders Parts: ca. 5 EUR
PCBs: ca. 5 EUR
digital outputs for LEDs and 4 matrix buttons Parts: ca. 3 EUR
PCB: ca. 5 EUR
LCD one 2x40 Displaytech "LCD 402A LED" ca. 25 EUR
24 buttons for example 14 x "DT 6 colour" (colour = BL, GN, GR, RT, SW) (big buttons) and 10 x "TASTER 3301D" ca. 11 EUR
4 diodes for the button matrix, you can take 4*1N4148 ca. 0.10 EUR
34 LEDs for example "LED 3mm St colour" ca. 2 EUR
5 encoders for example M-SW-ROT from Voti or the Bourns encoders from SmashTV's Shop ca. 6 EUR
5 Knobs 5 x "DK13-164 black-soft" from Albs ca. 5 EUR
2 vectorboards for mounting the Buttons/Encoders/LEDs: "H25PR200" ca. 4 EUR
Case 19" 2U rack #460 018 from Pollin ca. 30 EUR
Panel mbfm_front_v1.fpd from Schaeffer Apparatebau ca. 60 EUR


Schematics & PCBs
File Size Description
MBHP LINK see MIDIbox Hardware Platform. A CORE and a OPL3 module is required, for the (optional) control surface a 2x40 LCD, one DINX4 and DOUTX4 module
mbfm_din_default.pdf 12k Button/Encoder Wiring
mbfm_dout_default.pdf 12k LED Wiring
Pictures LINK Some pictures of the inner life of MIDIbox FM
mbfm_front_v1.fpd 3k Panel which can be edited with the Frontpanel Designer of Schaeffer Apparatebau
mbfm_back_v1.fpd 3k The backpanel
MIOS Download LINK MIOS based firmware for PIC18F devices with source code
ChangeLog LINK MIDIbox FM ChangeLog
Manual LINK User Manual
midibox_fm_cc_voice.txt 28k all available voice parameters
midibox_fm_cc_drums.txt 9k all available drum parameters
midibox_fm_par_ensemble.txt 5k all available ensemble parameters
midibox_fm_sysex_implementation.txt 5k the SysEx format
Preset Patches
preset_patches_20050212.zip 775k 128 Preset Patches for MIDIbox FM + 4096 Random Patches + Random Generator. Please read the README.txt for further informations
Ctrlr LINK The Device Database of Ctrlr contains a SysEx editor for MIDIbox FM
www.automatic-brain.de/midibox LINK TL's MIDIbox FM Patch Manager for Windows
MIDIbox Wiki LINK A lot of additional informations on MIDIbox, MIOS and MIDIbox FM
MIDIbox Forum LINK Support at the MIDIbox Forum

Construction examples

Inside the original MIDIbox FM - more pictures can be found here.


This project is a DIY project licensed under TAPR NCL. A commercial release is neither planned, nor allowed! But the license allows you to build and sell up to 10 units per year (e.g. to friends) as long as the given constraints of the license are not violated.

Last update: 2024-05-08

Copyright 1998-2023, Thorsten Klose. All rights reserved.