top of page

Build your own MIDI-controller

During their concept research phase, Platform Project 2 took a deep dive into exploring sound. It started off with experimenting through circuit bending old children’s toys. From there, the team tinkered further on and ended up building a MIDI-controller, using Arduino and Ableton. On this page, we will elaborate on the different steps on how to build your own MIDI-controller. 

Start building!

Sem aan de slag_edited_edited.jpg
  • Arduino uno board

  • 4 potentiometers

  • Arduino joystick

  • Laptop

  • Cable from Arduino to laptop

  • Soldering kit

  • Cables

Materials

01

Gather materials

Before you start, make sure to obtain everything from the materials list. Also, download the latest versions of Arduino and Ableton.

02

Potentiometer & soldering

  1. Connect three wires to the potentiometer by soldering it

  2. Make sure the + and – is routed correctly so the voltage changes in the right direction

  3. Middle wire goes to analogue inputs

  4. Outer wires are for power

  5. Parallel connected

Schermafbeelding 2024-05-17 162618.png
Afbeelding van WhatsApp op 2024-05-17 om 16.52.13_359414bb.jpg

03

Joystick

  1. Connect power to the joystick: 5V to 5V GND to GND

  2. Connect X and Y axis to their own separate analogue inputs

  3. Connect parallel

  4. By changing the voltage, you change the analogue signal that is received

04

Downloading libraries

Schermafbeelding 2024-05-31 160802.png
Schermafbeelding 2024-05-31 155101.png
Schermafbeelding 2024-05-31 155115.png

05

Installing software

An Arduino can receive and give out a signal that is 0-1023 bits, whereas a MIDI controller can only do 0-127 (8 times less). To translate the Arduino signal into the right MIDI signal, two programs need to be installed:​
 

  1. Hair Less MIDI Bridge: This is needed to make the translation from an Arduino signal to a MIDI signal.
    https://projectgus.github.io/hairless-midiserial/ 

  2. LoopMIDI: This is needed for the Arduino to be recognized by Ableton as a MIDI controller. https://www.tobias-erichsen.de/software/loopmidi.html

06

Coding

This code was inspired by a code online that was meant for a specific MIDI controller with four potentiometers, 2 slider resistors and 12 buttons. Instead of sliding resistors, I connected the joysticks’ x and y axis to be read as the sliders.​

That code can be found here:

https://www.instructables.com/Arduino-MIDI-Controller/

The final code can be retrieved here:

https://drive.google.com/file/d/1SiM5XGd9T_CGDbEnKMHP_UCT9GINu-St/view?usp=sharing

Arduino Code.png
Arduino Circuit1 (1)_edited.png

Final result

The final result should look like the image on the left. Two take-aways were:

  1. Analogue inputs are read by an Arduino as the difference of voltage levels within 0-5V. This variation can be caused by anything that emits an electric current.

  2. Be careful with wiring, for you might fry your Arduino and/or other electronics.

bottom of page