The Arduino is a perfect device for making MIDI controllers - analog inputs, digital inputs, and serial connections allow for flexible design. We've seen a few Arduino MIDI controllers in the past, but this Arcade Button MIDI Controller just oozes quality.

Taking a load of inspiration from the DJ MIDI Fighter by DJ Techtools, this DIY controller features 12 arcade style buttons for bashing out your next track. The buttons can be mapped to anything you can control in your DAW, but there's something satisfying about smashing out drum parts using those buttons. They aren't velocity sensitive, so there's no dynamics, but the feel of the buttons almost make it feel like a game; like you're busting a combo out as Eddy Gordo. Alongside the buttons are 4 knob and 2 slide style potentiometers. Again these can be mapped to anything you like, to control effects, filters, volume etc..

The wiring is relatively simple, yet the result is amazing
The wiring is relatively simple, yet the result is amazing

The design of the hardware is pretty simple using all the available pins on an Arduino Uno, meaning that you don't have to start involving complex multiplexed inputs. There are more than enough controls to do some modest live performance work. MIDI data is sent from the device over serial as standard MIDI messages. The only snag is that the Uno cannot show up as a USB MIDI controller natively. The workaround for this is to use the infamous MIDIYoke to create a virtual MIDI port, and another app to send the detail from the serial line to the new MIDI port.

This project is aimed at getting beginners off the ground, making a full project from start to finish. As most beginners use an Uno, it's a simple project to get going. If you're a little more interested, you can switch the Uno for a board that can function as a class-compliant USB MIDI device. The Teensy is a tiny board that can do this, and you can always update your Uno's firmware to function as a HID using HIDuino if you're brave enough!

You can grab the code, and the full build details form the Instructables page if you want to make your own.