Do a MIDI Controller Yourself

by DIY GUY Chris in Circuits > Arduino

2927 Views, 40 Favorites, 0 Comments

Do a MIDI Controller Yourself

illustration.png

Hey guys! are you ready for a new instructable! just let's get to make some noise then..

As usual I made this tutorial to guide you step by step while making this kind of super amazing low cost electronic projects which is the "Midi Controller".

During the making of this project, we tried to make sure that this instructable will be the best guide for you in order to help you if you want to make your own MIDI controller, so we hope that this instructable contains the needed documents. This project is so handy to make specially after getting the customized circuit board. Also there is enough documents and codes in this guide that allows you to create your MIDI controller easily.

We've made this project in just 3 days only, just three days to get all the needed parts and finish the hardware making and the assemble, then we have prepared the code to suit our project. Before starting let’s see first

What you will learn from this instructable:

  1. Making the right hardware selection for your project depending on its functionalities.
  2. Prepare the circuit diagram to connect all the chosen components.
  3. Assemble all the project parts (mechanical and electronic assembly).
  4. Setup the appropriate software for the midi controller.
  5. Start your own MIDI display.

What Is a MIDI Controller

d1.png
d2.png

I was searching for this kind of instruments or a music related devices and I found some details about it across the internet regarding the description in Wikipedia "is a technical standard that describes a communications protocol, digital interface, and electrical connectors that connect a wide variety of electronic musical instruments, computers, and related audio devices for playing, editing and recording music."

In addition, this kind of music device is based on two main parts which are the controller as a hardware and the music instruments player as a software and these parts should be connected somehow so each press on the hardware part should display a specific or a configured musical instrument note.

The Hardware Part

d3.jpg
d5.jpg
d6.jpg
d7.jpg

In this tutorial we will take in charge the hardware part and we will create a Controller keyboard which has 12 push buttons for digital control and 6 potentiometers for an analog control so it is obvious that all the buttons will be used to display the notes and the potentiometers will control things like sound volume tone etc.

We have all these controllers connected to an Arduino Nano board which has all the necessary I/O pins to hold these inputs together, and through its USB connector it will be easy to send instructions from the controller to the software side. For sure in order to make a better appearance for our MIDI controller, I have designed this box considering the size for the push buttons and the potentiometers and through a CNC laser cutting process I can produced the designed parts for my project.

Circuit Diagram

Schematic_Master Project for 1st half 2018_2021-11-10.png

The heart of our Controller is an arduino Nano Dev board that will control the software part through some MIDI instructions, these instructions will be sent depending on the Inputs press. As I wrote in the project description section, we will use 12 arcade push buttons and 6 potentiometers, all these will be connected to Arduino considering the functionality of each controller.

The above circuit diagram show how to connect each controller to the board and there is a needed 1KOhm resistor out there for pull up so do not forget to use one, and I advice you to get back to this schematic while soldering all these components together to avoid any miss.

The Circuit Board Making

d7.jpg
d10.png
d11.png
d12.png
FI3F022JTMd9STULK.jpg

Talking electronics

After making the circuit diagram I transformed it into a PCB design to produce it, in order to produce the circuit board, I set some parameters like the PCB thickness color and quantity.

As you can see in the pictures above the PCB is very well manufactured and I’ve got the same PCB design that we’ve made for our main board and all the labels and logos are there to guide me during the soldering steps.

Ingredients

FZQHIHMJTMSTX67.jpg

Now let’s review the necessary components that we need for this project, I'm using an Arduino Nano as mentioned above, it will be the heart of our Device. You will find below some recommended amazon links for the appropriate items

In order to create this kind of projects we will need :

★☆★ The necessary components ★☆★

Electronics Assembly

F3SW17VJTMSTXZC.jpg
FFX6YTQJTMSTYBY.jpg
FSEKOKXJTMSTY9N.jpg
FVHMUHUJTMSTY6I.jpg

Now everything is ready so let’s start soldering our electronic components to the PCB and to do so we need a soldering iron and a solder core wire.

Safety first

Soldering Iron

  • Never touch the element of the soldering iron....400°C!
  • Hold wires to be heated with tweezers or clamps.
  • Keep the cleaning sponge wet during use.
  • Always return the soldering iron to its stand when not in use.
  • Never put it down on the workbench.
  • Turn unit off and unplug when not in use.

As you can see, using this PCB is so easy without forgetting the labels that will guide you guys while soldering each component because you will find on the top silk layer a label of each component indicating its placement on the board and this way you will be 100% sure that you will not make any soldering mistakes.

I’ve soldered each component to its placement and you can use both sides of the PCB to solder your electronic components.

Hardware Assembly

F0PKJQ9JTMSU5YJ.jpg
F8DOL3WJTMSU5XE.jpg
F8TL9DHJTMSU5XC.jpg
F74R70EJTMSU5WD.jpg
FDUITF5JTMSU5Y5.jpg
FNHSAVKJTMSU5XF.jpg
FNMZTAPJTMSU5WI.jpg
FOX2GK9JTMSU5VL.jpg
FQQKLOWJTMSU5UV.jpg
FRUIVH7JTMSU5WL.jpg
FWB2TKXJTMSU5YF.jpg
FWP74UPJTMSU5WJ.jpg

Now we have the PCB ready and all the components soldered very well, Now we need to place the push buttons each one to its placement in the top side of the bow, it will be so handy placing these push buttons. After that we screw the slider potentiometers and the same for the rotary potentiometers too, and do not forget to put the potentiometers cavers so using theme will be easier for you.

After that we need to solder some wires in order to connect these controllers to the board. In case you faced any difficulties while soldering these wires, just get back to the circuit diagram where it is clear how to place these wires, It is not that much hard sure if you follow the same circuit diagram, you will have in the end all the push buttons input wires just screw them to them header connectors on the board and do the same for the potentiometers, last but no least we take the lower base of our box and we screw the PCB in it. Ok so after placing the board in its placement all what we need to do now is finishing the assembly of the box and we finished the hardware part.

Software Part

F5X3R5IJTMSU06N.png
F27IPKYJTMSU0CI.png
F40TZKCJTMSU6ES.jpg
FL41E7SJTMSU0E3.jpg
FU7MVZTJTMSU0BI.png
FY8Z7ABJTMSU0CG.png

Let’s move to the software part, the first thing you need is the Arduino code that has a full midi library for Arduino so just download it for free from the link down below and upload it to your Arduino.

About the music editor, I use Ableton software, but how to link this software to the Arduino instructions that will be sent through the serial port! It is easy since I use loopMidi sotware to create the Midi port in which our Arduino is connected, and another software which is hairless-midiserial which will receive the arduino instructions and convert theme to midi instructions and then send them to Ableton.

So first things first we run loop midi and we create a new midi port by giving it a new name.

Then we move to hairless-midiserial and we select the com port of our Arduino, and as you see once you select the right com port the Arduino start sending serial commands, in the other side we select the midi port that we have created, then we move to Ableton’s settings and under preferences we activate the external input controller device.

The last step is mapping the controller functionalities, by selecting what each button should control, it is so simple, just select the function in Ableton and press the desired button in your controller and it will be mapped.

And once you finish that, you can start playing with your new MIDI controller.

As you can see guys, this project is so easy to make and an amazing one but still some other improvements to perform in order to make it much more butter, that’s why I will be waiting for your suggestions to improve this MIDI controller.