English Version Spanish Version French Version

MIDIbox64E Tutorial V2.x

MIDIbox64E is built, the power supply is switched on, the MIDI cable is connected - and now? This lesson shows you, how to operate with the Box.

For a first test you should get a MIDI monitor with MIDI Thru function for the PC to look for the incoming MIDI signals. Most MIDI monitors provide the possibility to forward MIDI data to another MIDI device like your soundcard or software synthesizer. I recommend the MIDI-OX tool from Jamie O'Connell and Jerry Jorgenrud which is really great!



Menu Exec/Right/Left: Navigation through the menus, can be optionally disabled so that the buttons are available as MIDI triggers if the menu functions are not required for your box.


Snapshot/Special Function Button: Press it shortly to recall the last settings, press it long to save the current pot and button settings.
The purpose of this button alternates in some submenus:
In Bank menu: Format Bank
In MIDI Learn menu: set button mode
In Morphing menu: select morph group
In Edit menus: set cursor
In Copy menu: copy bank
In MIDI config menu: switch between MIDI and MIDIbox-to-COM interface
In SysEx menu: Send SysEx Dump

(5, 7)

SFB and MIDI Trigger Buttons: to trigger MIDI events like Note On/Off, Controller, Program Change and to exec special functions which are described here... free assignable via MIDI Learn, on-screen editor or SysEx Dump
In Bank Select and Copy Menu: used to select one of 8 banks quickly (requires BankStick)
Note that MIOS allows to connect up to 128 buttons, but the MIDIbox64E application only handles with 64 buttons maximum to keep the SysEx dump compatible with the old PIC16F implementation.
By default the four blue buttons are assigned to following special functions:
F1: FF 08 41 - select group and bank
F2: FF 08 40 - select one of 128 parameters
F3: FF 08 11 - all encoders in fast mode
F4: FF 08 21 - all encoders in slow mode
(7) not shown here: up to 64 buttons and 64 LEDs can be handled by the MIDIbox64E like known from the MIDIbox64


Encoders with LED rings: Up to 64 rotary encoders can be connected, 64 optional LED rings with up to 16 LEDs for each are also supported.


LC Display: for the visualization of pot values and for the configuration. Any display which is supported by MIOS can be used, some examples are listed at the MBHP_LCD page, but also a self-written driver can be used. The screen layout can be customized in cs_m_display.inc


Bankstick: optional, exchangable memory extension

After switching on the box the MIDI monitor should show the controller messages like this: bn 07 XX (E=pot 0-16, XX=value). If not: check the circuit, the cable, your Wintendo installation. If this doesnt help, curse Wintendo and your soundcard!
A Debug HowTo can be found here.

Menu Handling

The menu handling is quite simple. The menu page is selected by the Menu-Left/Right Button, and with the Menu-Exec Button the submenu can be invoked and leaved. Below an introduction of the different submenus:


Display Submenu

In this submenu three different display pages are selectable by the Menu-Left/Right buttons:

Display Page 1/1

The first page shows the current bank (here: INT=Internal) and the encoder group (with 16 encoders: group 1-8 = 128 virtual knobs). It shows also the last sent MIDI event. The format (label and number) of a encoder event can be customized for every single encoder, button events are only displayed in standard format.

Display Page 1/2

Display Page 2

The second page shows an overview of the encoder and button row from where the last event has been sent.

Display Page 3/1

The third page is a mix between the first and the second page: encoder and button events are only displayed in short hex format, the encoder/button row status is displayed at the second line.

Display Page 3/2


Bank Submenu

The MIDIboxes are the worldwide first MIDI controllers with an exchangable, hot plug&playable bank storage device: the BankStick. If you find commercial controllers with the same feature in some years, you know from where the idea comes from.
Every BankStick is capable of storing 8 different setups. Since a standard 32k IIC EEPROM is used, these sweet little things are really cheap (about 5 EUR). So just take one stick for Reaktor, one for Logic (or Cubase/Cakewalk/Sonar/Ableton of course), some for your Synthesizers, etc... :)
The simple circuit diagramm for the BankStick can be found here.

The BankStick

An opened BankStick case. I'm using 9 pol SubD plugs, but you can also decide to use another type of plug with at least 4 pins.

No Stick found

An asterisk (*) is added to the bank number if no BankStick is available. The MIDIbox switches automatically to the internal bank.

Stick found

The asterisk (*) disappears immediately as soon as you plug the BankStick into the socket. Now you are able to select the bank with the Left/Right Menu buttons.

Bank LED

One of 16 LED lights up, depending on the selected bank.

Manual Select

You are also able to select a bank directly with the lower MIDI Trigger Buttons - only in this menu.

BankStick Format

By pressing the snapshot button for 2 seconds the BankStick will be formated.

BankStick Format

The formatting procedure copies the internal bank into the external bank

Multiple BankSticks

Note that with V2.x up to 8 BankSticks can be connected to the MIDIbox, so that up to 64 Banks are available.
A bank can also be selected via MIDI (-> Program Change command)


Global Channel Submenu

Global Channel --

When -- is displayed, all events will be sent over the predefined channels which are stored in the Bank.

Global Channel 3

Use the Cursor Left/Right button to select a global MIDI channel which will be used for all encoder and button events instead of the predefined channels.

MIDI Learn

MIDI Learn Submenu

The MIDI Learn function allows to customize the encoders and buttons for your own needs. How does it work: plug a MIDI cable from the MIDI IN port of the MIDIbox to the MIDI Out port of your keyboard or PC. Enter the MIDI Learn Mode. Now, the box waits for a message from MIDI IN:

MIDI Learn 0

Send a controller to the MIDIbox (just use your Synth or MIDI-OX for this). The MIDIbox regogninzes all MIDI events and displays the last received one:

MIDI Learn 1

If you want to assign the event to a encoder, just rotate it shortly. If a button should learn the event, just push the button.

"Learn Single" means, that the controller will be learned from one Encoder or Button, only. But sometimes, it is usefull to assign all encoders or buttons with the same controller but for different channels. MIDIbox offers a special function for this, just select it with the menu buttons:

MIDI Learn 2

It is also possible to increment the controller value automatically. This is favorable, if all encoders or buttons should be quickly assigned to unique numbers:

MIDI Learn 3

A special feature is implemented for the buttons: the behaviour of every button can be specified with the Snapshot Button before a event will be assigned to it:

MIDI Learn 4

Send learned value when button pressed, send zero when button released.

MIDI Learn 5

Send learned value only when button pressed, don't send a zero value when button released.

MIDI Learn 6

Send learned value with the first keypress, send zero value with the second keypress.

Beside of controller events, Note On/Off, Program Change, PitchBender, ... can be learned:

MIDI Learn 7 MIDI Learn 8 MIDI Learn 9 MIDI Learn 10 MIDI Learn 11 MIDI Learn 12

Morphing Fun

Morhphing Function

The morphing function allows you to fade smoothly between two encoder scenes - between the current position of the encoders and the position which are saved in a bank - with a single encoder.

Once you enter this menu, the encoders will change their purpose. The 8 first encoders are used to fade between 8 groups, every group exists of 16 parameters (virtual knobs).


Just play with the encoders and check the MIDI output (note: MIDI-Ox comes with a nice MIDI status screen which gives you the best overview).


Use the 9th encoder to fade all 128 parameters at once

Morph Bank Select

By pressing one of the 16 bank select buttons you can morph between different setups which are saved in the BankStick. By holding the bank select button for 2 seconds, the current pot positions will overtaken to realize jumpless parameter moves.

Encoder Mode

Encoder Mode


First of all you have to turn the encoder which should be configured (here: entry #128: last encoder of group 8
The appr. setting appears: "absolute" values. Absolute means, that the encoder will send a MIDI command which contains a value between min and max (normaly 0 and 127). Most MIDI equipment only works with such events. Disadvantage: merely a 7bit value range is possible and a feedback connection is required for jumpless parameterchanges in case that a parameter is not only controlled by the MIDIbox64E, but also by the target device (e.g a synthesizer which changes his internal parameters on program changes).


Press the "Right" button to change the mode. Here "40 +/- speed" is selected. In all relative modes the MIDIbox64E doesn't know the absolute value anymore (*), it only sends the commands which increment or decrement the value on the target device. All known variants are available: here 40 +/- speed, which can be handled by software synthesizers from Native Instruments.
(*) LED-Rings can still be updated by incoming MIDI events which contain the absolute value. See Reaktor configuration example below.


00 +/- speed can be handled by Steinberg products.


40 +/- 1 can be selected if the target device cannot handle with the speed value. That means: in this mode the encoder sends 3F for decrementing and 41 for incrementing, with a speed setting it could also send 3D or 43 if you turn the encoder very fast.


Similar, but with 00 +/- 1. The encoder will send 7F for decrementing and 01 for incrementing.


A special relative mode which sends increment/decrement events like described in the MIDI specification: Bn 60 xx for incrementing and Bn 61 xx for decrementing (n = channel number, xx = parameter number).

Encoder Speed

Encoder Speed


Turn the encoder to select an entry, thereafter change the speed with the cursor left/right buttons. In normal speed mode an encoder will send the values from 00 to 7F on a 360 revolution.


In slow mode an encoder will increment/decrement a value on every 8th step only.


In fast mode an encoder will increment/descrement with higher values, so that you can sweep from the minimum to the maximum value about 4 times faster.

Note: the speed of all encoders can also be varied at once by assigning the special functions ""FF 08 00", "FF 08 10" and "FF 08 20" to buttons, see the SFB table.

LED Patterns

LED Patterns

LED Pattern

Turn the encoder to select 1 of 4 LED patterns for each entry separately. The pattern will be displayed on the LEDring, and it will be "sweeped" automatically from the minimum to the maximum position. Note: the patterns can be customized by using the mk_syx script or Serge's MIDIbox64E editor.

Edit Bankname

Integrated bankname editor

In this menu page the bankname of the current selected bank can be edited. Use the left/right button to change the character and use the snapshot button to move the cursor.
Edit Bankname

Edit Events

Integrated MIDI event editor

In this menu page the MIDI events assigned to the encoders and buttons can be edited directly. Select the encoder or button by moving (touching) it, use the left/right button to change the value and use the snapshot button to move the cursor.
Edit Encoder Event Edit Button Event

Edit Lable

Integrated encoder label editor

In this menu page the labels and number formats can be edited for every single encoder. Select the encoder by moving it, use the left/right button to change the characters/number format and use the snapshot button to move the cursor.
Edit Label

Copy Bank

Copy submenu

In this menu the current bank can be copied to another bank.

Copy select

The target bank can either be select with the left/right buttons...

Copy Buttons

...or with the bank select buttons.

Copy start

Hold the snapshot button for 2 seconds to start the copy procedure.


MIDI Config. submenu


The MIDI merger allows you to plug the MIDIbox and a keyboard to a computer w/o the need for a second MIDI In interface. Just plug the MIDI Out of your keyboard to the MIDI In of MIDIbox and the MIDI Out of the MIDIbox to the MIDI In of your computer.


If you connect the MIDI In of the MIDIbox with MIDI Out of your computer, you should disable the MIDI merger in order to avoid endless feedback loops.


If multiple MIDIboxes should be cascaded based on the MIDIbox Link concept, all MIDIboxes have to be declared as MIDIbox Link Forwarding Point...


except for the last MIDIbox which has to be declared as MIDIbox Link Endpoint.

Note: In this menu, you are also able to enable the MIDIbox-to-COM option with the snapshot button (4). Find more informations at the MIDIbox-to-COM Interface Page!


SysEx submenu

In this submenu the device ID can be selected, and a SysEx dump can be triggered manually by using the Snapshot button.
SysEx menu
See also the SysEx HowTo for further informations.


Change Parameter

When you press a button which is assigned to SFB "FF 08 40", you are able to change the mapping of the 128 parameters (which are predefined in the the 8 groups). This enables you to exceed the group borders and to change the parameters on-the-fly without changing the whole bank setup.
Following example demonstrates, how to work with the parameter selection mode - the sample/midibox64e_sid.ini setup of the mk_syx archive is used here to control the MIDIbox SID:


The "Select" button is pressed and the display shows: Map 1 (Group 1) . 1 (Encoder 1), -> (is assigned to), 1 (Parameter #1). Below the parameter name and value is displayed "Transpose V1 00"


While the last encoder E16 is turned the new parameter will be selected - this encoder will control the "ENV1 Depth" of the MIDIbox SID.


Encoder E15 will control the "Filter Resonance"


Encoder E14" the "Filter CutOff" frequency.
Release the Select Button - ready!

Result: with this feature you can assemble your bank setup quickly for temporary use. There are a lot of thinkable usemodels:

  • use only one group with the most important settings like Volume, Panorama, EQs, and use the last encoder as variable control element for all the other Fx parameters
  • assign 16 parameters from different banks to the 16 encoders just to get access over it without bankswitching during your synthesizer session. This saves your from the tiresome SysEx configuration procedure.
  • Built a MIDIbox64E with only 1 LCD, 8 buttons and 1 encoder to get access over up to 128 parameters - it works! :)

Remark: this feature requires a LCD!


Select Group/Bank

Some Special Function Buttons are available to switch between different groups and banks.

Once you press on such a button, the bank info screen will pop up which displays your selection

Think about the best solution for your personal workflow before starting with building a MIDIbox64E, here some examples:

  • the minimal solution: use one "group increment" button only to switch between the 8 groups. It works, but the handling will be slowed down once you miss the group you tried to select (SFB "FF 01 13")
  • the better solution: use one "group increment" and one "group decrement" button (SFB "FF 01 12" and "FF 01 10")
  • the preferred solution: use 8 "group select" buttons to access the groups with a single touch (SFB "FF 01 00" to "FF 01 07")
  • the superb solution: use 8 "group select" and 8 "bank select" buttons to select also the banks with a single touch (SFB "FF 01 00" to "FF 01 07" and "FF 02 00" to "FF 02 07")
  • the deluxe solution: use 2 * 8 additional LEDs and map the appr. DOUT shift registers to the group and bank number.
  • the extraordinary solution: use SFB "FF 08 41" to select the group and the bank with the first two encoders so long as the button is pressed

Configuration via SysEx Dump

See the SysEx HowTo for further informations. Note that some features like Min/Max values for the encoders, or patterns for the LEDs, ... can only be configured via SysEx.

Configuration example for Reaktor (or any other software synthesizer by NI)

MIDI In/Out should be connected to the MIDI Out/In of your computer. Now you have two possibilities to control Reaktor:

  • Encoders in absolute mode: best choice if you control the virtual instruments not only with MIDIbox64E, but also with MIDIbox64 or any other MIDI controller which sends absolute values. The parameter "SubOsc" is assigned to Controller Bn 10 xx (10 hex = 16 dec), Remote is enabled, panel to remote is also enabled for the feedback, so that the absolute value will be updated when you move the fader with the mouse.
    Reaktor Absolute Mode
  • Encoders in relative mode (40 +/- speed): best choice if you control the virtual instruments with MIDIbox64E only. Remote, Incremental and Panel to MIDI enabled, Remote to MIDI is also enabled to get back the absolute value of the changed parameter in order to update the LED ring.
    Reaktor Relative Mode

FAQ, Tips & Tricks

Please find the collected knowledge in the MIDIbox Wiki and at the MIDIbox Forum

Last update: 2017-10-06

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