A few months ago I published post on how to make a MIDI Ribbon Controller withArduinoIn the meantime I had a few ideas to improve both hardware and software and also felt the need to change many parameters without having toreprogram every time ArduinoFinally I placed the controller in a casethanks to Laurawho built itSo this is version 2.0 of my MIDI Ribbon Controller, which finally becomes a much more practical tool.

NOTEI am not an electronics expert so if you decide to implement this project I am not responsible for any damage to computershouses, people and animals that mayarise I do not exclude that there are some errors in this article, eventually I will try to correct.

UPDATE: For those interested in MIDI ribbon controllers take a look to the  new MIDIRibbon controller with USB and audio by EowaveIt includes a small theremin type synth,  a CV/Gate controller, a control area for the effects and it’s gorgeous. The price is affordable (199 € +vat)So for many the Eowave controller may be a better option.

This is the parts list for our Coagula MIDI Ribbon Controller:

This is the schematic:

In the diagram I useed the image of a ptentiometer for the position sensor because I have not found that of the Spectrsymbol SoftPot.

The two sensors are attached to each other, putting the force sensor beneath and the position sensor aboveThe pressure sensor is  a few inches longer and you can safelycut off the excess. The force sensor has only two terminals and no polarity so there is norisk of failing, but for the position sensor be very careful: with wrong connections may burnIt happened to meunfortunately!

Note that you cannot solder the sensor directly but you need to use a connector. I used an half socket for integrated circuit.

I added a  Hitachi HD44780 compatible LCD display and 4 buttons to operate a menuthrough which you can choose between two different control modesset differentMIDI parametersand recalibrate the pressure sensor when needed.

These are the functions of the 4 buttons:

  • pin8 = Up
  • pin9 = Down
  • pin10 = Esc
  • pin11 = Enter

 All setup values ??are stored on the flash memory of Arduino.


Playing Mode 2 is the same as that used in the original version of the controller. Pressingthe sensor the controller sends a Note On command and moving your finger sendsControl Change commandThe note off is sent only when you release the sensor.

In the Playing mode 1 by pressing the sensor sends a Note On command and movingyour finger you play other notes, like when you scroll through the keys of a piano.

In both modes are also sent Control Change values  under the pressure applied on the sensor.

Through the menu you can set the number of control change associated with theposition sensor (used only for the Playing mode 2), the control change associated with the force sensorthe lowest note and the highest that can be sentthe MIDI channel .You can also launch a   “MIDI Teach mode”  that is used to send some values for the control changes set for the sensors  using the twobuttons  that are normally used to browse the menuThis  MIDI Teach mode is useful for use in conjunction with the “MIDILearn” mode that you can find in a lot of music software and hardware modulesin factpressing the sensorsit would be impossible to send these control changeindividually and without also send MIDI Notes.

Finally, by the menu you can also launch the calibration of the force sensorwhichanyway is done automatically the first time you start Arduino.


Here you can download the complete codeYou also need the library MIDILIBRARYwhich can be downloaded directly from Sourceforgeand for the  Alexander  Brevig  Menubackend library  download the  1.4 version and modify it slightly by addingatline 195 of file MenuBackend.h immediately before the line that says “private” thismethod:
    void toRoot() {
setCurrent( &getRoot() );
} 
This method is able to return easily to the root of the menuIn the sketch you have toimport the
 Menubackend library the Midilibrary and the LiquidCrystal library .

For more details on the management of the menu you can see my other post on how to manage menu with Arduino.

If you build this project or if you modify it I would be happy to see the results.

Here is a short demo of the “MIDI Ribbon Controller“.

I used Ableton Live and Reaktor with the Grobian ensemble and the Daft presetTheparameter HTR has been associated with the Control Change fot the force sensorI tried to get an effect similar to Trent Reznor Swarmatron.

Creative Commons License

Coagula MIDI Ribbon Controller 2.0 by Giuseppe Di Cillo – Coagula.org is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.
Permissions beyond the scope of this license may be available at http://www.coagula.org