I made a MIDI (Musical Instrument Digital Interface) Controller that can be used to send MIDI data to my computer. My computer can then interpret the signal and use it to add a sound or play a virtual instrument on my computer (without needing to have the actual instrument).
Engineer | School | Area of Interest | Grade |
---|---|---|---|
Abigail | Lynbrook High School | Computer Science Engineering | Incoming Junior |
My final milestone was adding in all of my buttons and potentiometers and putting everything into a box to make it look like a MIDI controller. The main issue I ran into here was that the wires on the potentiometers kept falling off, so I decided to hot glue them on before putting them in the box. Luckily, I tested everything out before setting it in the box, so I found out that my potentiometers weren’t working because the hot glue was interfering with the circuit. As a solution, I removed the hot glue and instead soldered the wires on. Another, smaller, issue that occured was that my sliders kept falling because the hot glue didn’t work well with the felt-like texture on top of the sliders, so I used two pieces of cardboard inside the box to prop the sliders up against the top of the box; I also glued clay onto the top of the sliders so that it looked like a slidable knob and not just a small piece of metal sticking out. Finally, I cut a flap into the side of the box so that I could connect the cable between my computer and Arduino without having to keep the box open.
My second milestone was adding a linear potentiometer (a slider) to my breadboard, and also getting my computer to recognize my Arduino as a MIDI controller. A minor issue I ran into was that my linear potentiometers would heat up a lot when I plugged my Arduino in, whereas the rotary potentiometers and buttons were just fine. To fix that, I added resistors for the linear potentiometers, but the resistance couldn’t be too high or low, because it’d affect the performance of the sliders, so I had to test a few resistors to find the best fit. I struggled more with the second half, because I have a Mac, and most of the software I found was geared towards Windows or Linux users. After spending most of this week on trying to make my computer work with that software, I decided to try finding software that would work with my computer instead. I ended up using the Standard Firmata example on my Arduino, and downloading a connection kit for Ableton Live, the audio software used in this project. The two combined allow my Arduino to communicate with Ableton Live as a MIDI Controller, and also allowed me to connect each digital and analog pin on my Arduino to corresponding functions in Ableton Live. For example, digital pins would be connected to binary functions like turning the instrument on and off, and analog pins would be connected to analog functions, like adjusting the volume or gain of the instrument.
My first milestone was figuring out how to wire a rotary potentiometer (a knob) and a button to my Arudino board, because going into this project, I felt that wiring seemed the most intimidating and I wanted to figure that out first. I used a red wire in the positive column on the side of the breadboard to connect to the 5V pin on my Arduino, and a blue wire in the negative column to connect to the GND pin. Then, I connected the knob and button, each to one LED and to the two columns on the side so they’d form a circuit with my Arduino board. I also paired each LED with a resistor so they wouldn’t burn out. When I was connecting the button to the LED, I accidentally formed a circle between the LED and the button, cutting out the Arduino, so the LED didn’t light up properly. I fixed this by moving the longer leg of the LED so that it was connected to the ground wire of the button and that the button’s other wire connected to the column on the side. This way, it formed a circuit with the Arduino, and when the button was pressed down, it completed the circuit, allowing the LED to light up.