English Version French Version

MIDIbox FM User Manual

This User Manual is relevant for all people who are interested in extending their MIDIbox FM by a control surface. Users who are planning to build the low-cost solution (MBHP_CORE+MBHP_OPL3 only) will find some informations about the available sound parameters (which alternatively can be changed via SysEx by using the JSynthLib based editor) in the menu descriptions at the end of this page.

The MIDIbox FM Control surface provides a similar user interface like the well established MIDIbox SID CS with some small modifications which consider the special features of the FM synth. More than 450 parameters are accessible from the menus, which are held in "flat hierarchies" to avoid that click-doubleclick-tripleclick horror known (and disregarded) from common rack synth modules.

The huge number of parameters restricts the flexibility in possible configurations. E.g., the use of a 2x40 LCD is strongly recommended so that the patch names of all instruments are visible on the main screen. In some submenus the parameters are arranged in a way which makes a quick access to relevant values only possible if eight values are visible (and selectable via soft-buttons) at once - example: the EG5 envelope page with the parameters Attack - AttackLevel - Decay1 - DecayLevel - Decay2 - Sustain - Release - Curve -..." in the leftmost view, and all depths in the rightmost view of the page. With a 2x16 display only three menu entries are visible, with a 2x20 display only four. A double-2x40 solution is not supported since two LCDs would affect the performance of the synth engine too much.

At least one rotary encoder for the "data dial" is required to change the currently selected parameter. Four additional encoders are used as V-Pots for quick access to the most important parameters. Analog pots cannot be connected since they don't allow a jumpless free handling when switching between the instruments/operators/V-Pot views. Also the oftenly requested "mega-pot programmer solution" with dedicated pots for each operator value doesn't really improve the handling (even with a so called soft-overtake function) - unfortunately most people only understand this once they are starting to change between different patches. ;-)

The V-Pot view can be changed with the "selection matrix", which consists of 6x4 LEDs and 6+4 buttons. Each time a matrix button is pressed, the LED of the appr. selected V-Pot view will be lit and the LCD will change immediately to the menu which matches with the selection (the menu switching can be optionally disabled from the CFG menu if it disturbs the personal workflow). This handling has two advantages: it gives a fast access to the menu pages, and it allows to change the most important parameters in a different manner (e.g. access to the volume of all four operators at the same time without selecting the OP before). The User views can be customized in the source code (cs_menu_tables.inc) for own needs.

Fast access between the operators is possible with the four OP select buttons at the left side. These buttons behave like "radio buttons" if only one is pressed for a quick change between the OP pages. It's also possible to select multiple operators by holding one, and pushing the additional OP buttons - in this case every parameter change affects all selected operators at once.

The same selection handling is provided for the four instruments. It's even possible to set a parameter of four OPs and four instruments to the same value at the same time (nice for quick changes on stacked sounds).

The Instr/OP button toggles between Instrument/Operator selection (this saves four additional buttons)

Main Screen

This page is displayed after power-on, it shows the ensemble bank/number, the selected instrument (multi-selections are only displayed by LEDs), the patch bank/number, the full patch name, the MIDI channel, and the assigned audio channels (an OR operation between the OP12 and OP34 assignments).
The data dial changes the selected patch(es) in this menu, each soft button has the same function: switching to the top of the menu structure

This is an alternative view (called "full view") which can be selected within the CFG menu page. This view shows the patch names of the four instruments (partly, since a patch name consists of 16 characters, but only 9 characters are displayed here), the appr. bank and patch numbers and the MIDI channels. The '*' marker indicates which instruments are selected.

Menu Top

10 Menu entries are selectable here. The AOUT and USER item will get visible when you scroll the page to the right with the data dial. Each soft button selects the submenus, which are described below.

ENS (Ensemble) Page

From now on some LCD pages are demonstrated in a small font to improve the readability of this manual. In reality never more than 8 items are visible at the screen, the "page view" can be scrolled with the data dial. If an item is selected with a soft button, the data dial is used to modify the parameter value instead. If the ESC button is pressed, the page can be scrolled again. If the ESC button is pressed once more, the previous menu will be activated.

In the ensemble page some general instrument parameters can be edited which are saved in the environment setup and not in the patches.

  • EBnk: the BankStick in which the environment setup is stored
  • Ens.: the environment number
  • Inst: selects the instruments which should be modified, but it's normaly faster to use the appr. select buttons of the control surface for that.
  • IBnk and Ptch: the bank and patch number of the instrument.
  • Name: selects a special edit mode for the patch name
  • Chan: the MIDI Channel of the instrument
  • SPLw/SPUp: defines the lower and upper keyboard limit in between the instrument can be played. By changing the limits (and the transpose value) it's possible to realize split points, so that different instruments can be played on a single channel independent from each other.
  • Vol.: the main volume which affects all carrier volumes. With Vol=64 the carrier volumes won't be affected, with Vol<64 the volumes will be damped, with Vol>64 they will be amplified.
  • Vel.: the velocity sensitivity (Flat/Hard/Soft) which also influences the resulting carrier volumes
  • Tran: transpose the voices by -64 .. 63 semitones
  • Uni.: Unisono - a very special feature which spreads the stereo spectrum by playing two voices slightly detuned at different audio channels. The value defines how much the voices are detuned. The negative detuned voice will be played at channel 1 and/or 3 (depends on which channels are activated), the positive detuned voice at channel 2 and/or 4.
  • OP12: selects the audio channels to which the first operator pair (output of the first carrier) will be routed
  • OP34: selects the audio channels to which the second operator pair (output of the second carrier) will be routed

INS (Instrument) Page

In the instrument page all general instrument parameters can be edited which are saved in the patch memory and not part of the operators.

  • Inst: selects the instruments which should be modified, but it's normaly faster to use the appr. select buttons of the control surface for that.
  • Play: selects the play mode: Mono (always a single voice will be played), Legato (like Mono, but the gate won't be retriggered if more than one note is played), Poly up to 6 voices can be played at once.
  • Con.: the connections between the operators, also known as "algorithms". The OPL3 provides (only) 4 algorithms:
    F*F 1+F
    F+F AFA
  • Fdbk: it's possible to feedback the output of OP1 to its input. Only a value range of 0-7 is provided (OPL3 limitation)
  • PRng: the pitchrange which defines at how much semitones the pitchwheel can transpose a note. It also defines the range of the Finetune parameter
  • Fine: allows to detune the voice frequency slightly. Especially nice on stacked sounds to make it fat.
  • Port: portamento effect (slide)
  • SusK: SusKey - if enabled, the portamento will only be activated if more than one note is played
  • MSyn: MIDI Synchronization, allows to synchronize the wavetable sequencer (W), the LFOs (L) and/or the EG5 envelope (E) to the incoming MIDI clock
  • VCC, MCC, ACC: it is possible to assign a CC to the velocity/modulation wheel/aftertouch intensity. The CC target is defined here
  • VIni, MIni, AIni: The initial value which is taken when the modulation source is at the lowest level has to be defined here. The initial value is normaly set to 0 if depth > 0, or to the maximum value of the CC parameter if the depth is < 0
  • VDep, MDep, ADep: the depth which the modulation source applies to the CC target is defined here (-64..63)

OP (Operator) Page

In this page all parameters which relate to the operators can be modified:

  • OP: selects the operator(s) which should be modified, but it's normaly faster to use the appr. select buttons of the control surface for that.
  • Wave: selects the waveform of the operator:
    1 2 3 4
    4 5 6 7
  • Vol: if the operator is acting as a modulator, the volume level controls the modulation intensity. For carriers it sets the amplitude.
  • Mult: the multiplier (1-16) which is applied on the operator frequency:
    MULT0123456789101112131415
    Multiplier0.5123456789101012121515
  • Atck: the Attack rate of the envelope (0-15)
  • Atck: the Decay rate of the envelope (0-15)
  • Sust: the Sustain level of the envelope (0-15)
  • Rel.: the Release rate of the envelope (0-15)
  • Trem: turns tremolo on for the voice (amplitude modulation). The frequency is fixed to 3.7 Hz --- this is an OPL3 internal feature, the LFO of the MBFM sound engine allows more flexible effects
  • Vibr: turns vibrato on for the voice (low frequency modulation). The frequency is fixed to 6.1 Hz --- this is an OPL3 internal feature, the LFO of the MBFM sound engine allows more flexible effects
  • EGT: if enabled, the envelope will be sustained until the gate is turned off. If disabled, the sustain phase of the envelope will be ommited - the envelope continues with the release phase immediately while the gate is active.
  • KSR: the Key Scale Rate - if enabled, the attack/decay becomes faster as the pitch increases.
  • KSL: the Key Scale Level - if >0 db, the volume decreases as the pitch increases.

LFO (Low-Frequency-Oscillator) Page

In this page the parameters of the two LFOs can be modified. The LFOs are not part of the OPL3 chip, but "emulated" by the mighty MIDIbox FM sound engine. Each of the 6 voices has its dedicated LFOs (makes 12 LFOs in total which are handled in parallel):

  • LFO: selects LFO1 or LFO2
  • Wave: selects the waveform of the LFO: Sine, Tri, Saw, Pulse, Random. 2 additional waveforms are reserved for future use
  • Sync: if enabled, the LFO will be reset with the gate
  • Phase: the reset value of the LFO waveform which will be taken on sync (0-127)
  • Rate: the LFO rate. See the midibox_fm_cc_voice.txt for the selectable frequencies.
  • DepP: the LFO depth which is applied on the pitch (voice frequency). The value range of all depths goes from -64..64. A negative depth results into an inverted waveform.
  • DVo1/DVo2/DVo3/DVo4: the LFO depth which is applied on the operator volumes (-64..63)
  • DepL: LFO1 can modulate the Rate of LFO2, LFO2 can modulate the Rate of LFO1 (-64..63)
  • DepA: the LFO depth which is applied to the assigned AOUT (-64..63)

EG5 (Envelope Generator #5) Page

In this page the parameters of the fith envelope generator can be modified. The EG5 is not part of the OPL3 chip, but "emulated" by the mighty MIDIbox FM sound engine. In difference to the common EGs, it provides 5 phases. Each of the 6 voices has its dedicated EG5 (makes 6 EG5s in total which are handled in parallel):

  • Atck: the Attack Rate (0-127)
  • ALvl: the Attack Level (0-127)
  • Dec1: the Decay Rate of the first decay phase (0-127)
  • DLvl: the Decay Level of the first decay phase (0-127)
  • Dec2: the Decay Rate of the second decay phase (0-127)
  • Sust: the Sustain Level (0-127)
  • Rel.: the Release Level (0-127)
  • Curv: an non-linear curve can be applied to the rates (-64..63)
  • CAs: this setting defines during which phases the non-linear curve is used (Attack/Decay1/Decay2/Release)
  • DepP: the EG5 depth which is applied on the pitch (voice frequency). The value range of all depths goes from -64..64. A negative depth results into an inverted waveform.
  • DVo1/DVo2/DVo3/DVo4: the EG5 depth which is applied on the operator volumes (-64..63)
  • DepL: EG5 can modulate the Rate of LFO1 (-64..63)
  • DepA: the EG5 depth which is applied to the assigned AOUT (-64..63)

WT (Wavetable Sequencer) Page

In this page the parameters of the wavetable sequencer can be modified. The wavetable consists of up to 32 steps and 3 tracks. Each track can modify a CC parameter with a speed of up to 500 Hz. The available CC parameters are listed in midibox_fm_cc_voice.txt.

  • Step: the wavetable step 0-31
  • Mode: -- (ignore this step), Play (play this step), Jump (jump to the step specified in #1), End (stop sequence)
  • #1, #2, #3: the values which will be forwarded to the CCs. It's possible to specify absolute and relative values. On relative values the current CC will be read, the constant will be added or subtracted, thereafter the CC will be written back - this allows progressive sequence flows
  • Rate: the speed at which the wavetable sequence will be played
  • Sync: Note sequencer reset with each new note, Step sequencer will be stepped one forward with each new note, Free wavetable sequencer won't be synced (freerunning mode)
  • CC#1, CC#2, CC#3: the CC's which are controlled by the sequencer

DRUM Page

MIDIbox FM provides a separate FM percussion unit which is handled in parallel to the 4 instruments. Each percussion element has its own voice, so that the 6 instrument voices are not affected by heavy drum solos :-)
Up to 16 Drumsets can be stored in each BankStick, makes 8*16 = 128 Drumsets in total if 8 BankSticks are connected. The drumset can be selected with the data dial inside this drum menu..

DRUM -> BD Page

The Bass Drum consists of a modulator and carrier pair. Optionally the carrier can be used standalone without modulation (AM mode):

  • OP: selects modulator/carrier
  • Vol.: sets the modulation level / amplitude
  • Mult: the multiplier (1-16) which is applied on the operator frequency (see description of OP page)
  • Wave: selects the waveform of the operator (see description of OP page)
  • Atck, Dec., Sust, Rel.: controls the envelope of the operator
  • Fdbk: it's possible to feedback the output of the modulator to its input. Only a value range of 0-7 is provided (OPL3 limitation)
  • CON: FM: a modulator/carrier pair is used, AM the carrier is used without modulator

DRUM -> SD Page

The Snare Drum:

  • Vol.: sets the amplitude
  • Mult: the multiplier (1-16) which is applied --- this is the only way to change the SD frequency
  • Wave: selects the waveform of the operator (see description of OP page)
  • Atck, Dec., Sust, Rel.: controls the envelope of the operator

DRUM -> TOM Page

The Toms:

  • Vol.: sets the amplitude
  • Mult: the multiplier (1-16) which is applied on the Tom frequency
  • Wave: selects the waveform of the operator (see description of OP page)
  • Atck, Dec., Sust, Rel.: controls the envelope of the operator

DRUM -> HH Page

Two HiHat parameters can be defined, one for "open", another for "closed" HiHat. The parameters are copied into the appr. OPL3 registers depending on the MIDI note which is triggered:

  • HH: switches between Open/Closed HiHat
  • Vol.: sets the amplitude
  • Mult: the multiplier (1-16) which is applied on the HiHat frequency
  • Wave: selects the waveform of the operator (see description of OP page)
  • Atck, Dec., Sust, Rel.: controls the envelope of the operator

DRUM -> CYM Page

The Cymbal:

  • Vol.: sets the amplitude
  • Mult: the multiplier (1-16) which is applied on the Cymbal frequency
  • Wave: selects the waveform of the operator (see description of OP page)
  • Atck, Dec., Sust, Rel.: controls the envelope of the operator

DRUM -> FRQ Page

This submenu allows to change the frequencies of the drum sounds. Due to OPL3 limitations it isn't possible to use independent frequencies on HiHat/Tom/Cymbal (Bass Drum has it's own frequency and the base frequency of the Snare Drum is static and can only be multiplied). This sounds like a big limitation, but in fact the results are very interesting and unique once the frequencies are modulated by the Decr. parameter. This parameter decreases the frequency until it reaches zero on each note trigger

DRUM -> OUT Page

This submenu maps the percussion instruments to the four audio outputs. Due to OPL3 limitations Snare/HiHat and Tom/Cymbal are using the same audio path.

DRUM -> MIDI Page

In this submenu the MIDI channel and the keyboard ranges for the percussion instruments can be modified. If more than one seminote is allocated by a drum voice, the frequency will be increased with every semitone (especially useful for Toms)

SAVE Page

This page allows to store the parameter setups into the connected BankSticks:

  • Type: switches between Patch/Drumset/Ensemble
  • Bank: selects BankStick A-H
  • Slot: selects the Patch/Drumset/Ensemble number. Note: if no BankStick is connected, only one Patch, one Drumset and one Ensemble can be saved into the internal EEPROM. Wavetables are only stored in BankSticks (they are not working without)
  • do!: saves your creation

AOUT Page

The AOUT page allows to assign the modulation sources of an instrument to an AOUT channel. Note that analog (CV) outputs are an optional feature which require a MBHP_AOUT, MBHP_AOUT_LC or MBHP_AOUT_NG module.

  • AOUT: selects the AOUT channel which should be configured (1-8)
  • Inst: assigns an instrument to the AOUT channel (1-4)
  • Assg: assigns one or more modulation sources to the AOUT channel (L: first LFO, L: second LFO, E: envelope generator EG5) -- the modulation depth has to be adjusted separately in the LFO/EG5 menu page and is saved with the instrument patch
  • Offs: adds an offset to the modulation sources (-64..63)

USER Page

This page contains a parameter set which can be customized in cs_menu_tables.inc for own needs. The first four parameter groups are selected with the USER1/2/3/4 button of the V-Pot selection matrix. Here the default setup:

  • I1Vl, I2Vl, I3Vl, I4Vl: direct access to the instrument volumes
  • I1Tr, I2Tr, I3Tr, I4Tr: direct access to the transpose values of the instruments
  • L1Rt, L2Rt, L1DP, L2DP: direct access to the LFO1/2 Rate and LFO1/2 Pitch Depth parameter
  • BD V, SD V, HHOV, HHCV: direct access to the volumes of Bass Drum, Snare Drum, Open and Closed HiHat

CFG Page (not selectable from menu structure)

With the CFG button a special page will be displayed which allows to enable/disable system specific functions and which provide a quick save.

  • Merger: enables/disables the MIDI merger
  • CC: enables/disables the CC send mode (useful for recording parameter changes with a sequencer)
  • MJmp: enables/disables automatic menu changes on matrix button selections
  • SyxD: sends a SysEx dump depending on the current context. At the main page and within the ENS menu the ensemble will be dumped, in the drum menus the Drumset will be dumped, in all other menus the current instrument patch will be dumped.
  • PSav: saves the current patch (only)
  • DSav: saves the current drumset
  • ESav: saves the current ensemble
  • View: toggles between "instrument view" and "full view" in the main page

Preparation

Once MIOS and the MIDIbox FM application have been uploaded to the Core module, an E-Piano sound can be played over MIDI channel 1/2/3/4, and drums an be played over MIDI Channel 16.

Without a BankStick only one internal patch, one internal drumset and one internal ensemble is available. Therefore at least one BankStick should be connected to increase the number of available patches to 128 (+16 drumsets +32 ensembles).

A blank BankStick has to be formatted first. This will be done automatically by the application once a new BankStick has been detected (after power-on or during runtime). Note that the formatting procedure takes some time (ca. 2-3 Minutes), during this time no sound can be played. This could be confusing, especially if no LCD is connected, therefore please do your first tests without a BankStick.

After the BankStick has been formatted, the preset patches can be uploaded. These patches are available in the MIDIbox FM download section. The README contains some useful informations about tools which simplify the upload of these .syx files.



Last update: 2024-05-08

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