by Maximilian Marcoll


Control Issues is a series of pieces for MIDI controllers. While MIDI control devices are mostly used to send data to control software programs, the Control Issues reverse this process: Data is sent from the software to control the MIDI devices. Accordingly, these pieces work best on MIDI control devices equipped with motorised faders, rotary knobs and buttons with LEDs. The more there is to control, the better.

All pieces of the series can be run on your own MIDI hardware directly from this website. If you have a suitable MIDI controller connected, and as long as your browser supports the Web MIDI API (which unfortunately only Chrome, Edge and Opera do at the time of this writing) you can have Control Issues running on your own hardware right away.


To connect your MIDI control device, this website will first listen to incoming MIDI data and then make all the necessary connections automatically. The "learning" process has to be done separately for faders, rotary knobs and buttons, respecitvely. If your device happens to be a Mackie MCU (or configured to emulate MCU behaviour), there is a standard configuration already made for you. Skip the following steps and proceed to the output device & stored connections section below to load the MCU preset.

To use the midi learn function proceed to the connect section below. For each of the three categories of control elements you might want to connect (faders and/or rotary knobs and/or buttons) execute the following steps:

1. Click on "LEARN <...>" (FADERS / BUTTONS / KNOBS) and move all the control elements of the respective category that you want to use.

2. The number of control elements that have already been successfully registered is being displayed during the process.

3. Once all your control elements have been registered, click on "STOP".


Overly sensitive controllers might turn out to be problematic. In case your device is equipped with touch sensitive controls, it might send two seperate MIDI messages per control element. You can easily remove unnecessary controller IDs using the drop down menues and buttons for linking and removing controllers afterwards.


While registering control elements, the order in which you move or push them is not significant. Sorting will be done automatically once the "learning" has been stopped. Control elements will be sorted by MIDI channel and controller ID. The only (but important) assumption that has been made is that your control elements will send data with relative IDs corresponding to their physical layout: Controllers on the right of the device sending on IDs/Note Numbers/Channels higher than controllers on the left.


While it is possible to configure hardware controllers to mix MIDI message types within uniform sets of control elements (e.g. some buttons sending CC, some other buttons sending Note messages), mixed messages are not supported by Control Issues.


Most MIDI devices with a lot of control elements have them arranged in multiple rows. You might for instance have two or more rows of buttons on your hardware control surface. It is possible (and recommended) to link control elements of the same kind by layout columns. The result of linking two or more controllers will be a controller chain. It is possible to manually link individual control elements and/or multiple sets at the same time using the corresponding drop down menues and buttons below.


The hardware configuration settings can be stored within your browser. Check out the output device & stored connections section below. You can store one configuration for each output port available. These configurations will be kept within your browser even if the designated output port might not be available at some point. Of course by clearing your browser's internal storage, connection data will be lost.






No Fader Chains Registered

Remove / Unlink Single:

Remove Range: -

Link Every Nth:

Link Manually: &


No Button Chains Registered

Remove / Unlink Single:

Remove Range: -

Link Every Nth:

Link Manually: &


No Knob Chains Registered

Remove / Unlink Single:

Remove Range: -

Link Every Nth:

Link Manually: &


This implementation of the Control Issues has been developed during an Artist Residency at the IEM in Graz, Austria during the autumn of 2020. I would like to thank Marko Ciciliani, Robert Höldrich, Brigitte Bergner and Stefan Warum for their continuous and kind support.

v 1.0.1, Nov 5th 2020