MIDI Theremin

MIDI Theremin

Even though I’m not the best musician, I’ve always enjoyed experimenting with music. Since I’ve been learning electronics recently I got excited when I realized that it would now be easy to build MIDI capable hardware! I bought a MIDI Breakout board from Sparkfun and decided to build my ideal instrument. Now, you might be thinking that my idea instrument is a Theremin, but that’s not the case. I just wired up the the MIDI board and I needed to test it. I happened to have an Ultrasonic Ping Sensor (distance sensor) laying around so I decided to test my new gear by throwing together a MIDI compatible Theremin! With this project I learned how to send MIDI signals in just an hour or so. Quite fun. My IDEAL instrument will be announced in a future post. 😉

For those who might not know, MIDI stands for Musical Instrument Digital Interface, and has been a standard protocol since 1983. Many people are surprised to learn that it doesn’t actually send any sound over the wire! In fact, MIDI is a serial protocol. Instead of sound, it sends abstract notes, and other data like key pressure, pitch bend and more. MIDI cables are typically hooked up to a MIDI capable synthesizer, which reads the NOTE-ON / NOTE-OFF (and more) messages and turns them into actual sounds. These days physical synthesizers are being replaced by personal computers running synthesizer software. Luckily it’s easy to get a MIDI-to-USB cable and use MIDI devices with modern synthesis techniques.

This project uses an Arduino micro controller to speak the MIDI serial data protocol. My MIDI-to-USB cable coverts the MIDI into something my PC understands, and I can synthesizes the notes. You might think it’s round about to use MIDI if the data is going to be converted to USB anyway, and Arduino already supports USB. But my reasoning is two-fold. First, making it MIDI  means it would work with old and new hardware, and some classic hardware is still very desirable these days. MIDI is an extremely common format in the music world, and being able to make MIDI devices appeals to me. Second, even if I were to use the Arduino’s USB to send MIDI, I would have to write or hack together a driver for Windows, Mac and Linux to support my hardware. Yuck. By using a MIDI port, anyone can use their MIDI-to-USB cable that should already be configured with their PC, and their favorite music applications.

Below is a diagram of how I set up the circuit, pretty simple stuff. There are a couple different types of Ping Sensors, but I used an HC-SR04. The software I used to make the diagram didn’t have the proper MIDI Breakout Board, so I used the MIDI Arduino Shield and tweaked the drawing a little bit. The wires are correct, but the drawing looks a little off. Basically, it should be the breakout board and not the sheild version. Either way, the the wiring is correct. Make sure to check out the video afterward to see it in action!

UPDATE: I added the code! http://gmiller.net/assets/Midi_Theremin.zip

MIDI Theremin Diagram


September 6, 2014 at 12:21 pm | Music Articles, Other Projects, Video


Add Comment

* Required information
(never displayed)
Bold Italic Underline Strike Superscript Subscript Code PHP Quote Line Bullet Numeric Link Email Image Video
Smile Sad Huh Laugh Mad Tongue Crying Grin Wink Scared Cool Sleep Blush Unsure Shocked
Notify me of new comments via email.
Powered by Commentics

Comments (1)

Christopher Rockman says...
I am trying to make the midi theremin and Im a total n00b at the code stuff, I\'m having an error in arduino:

Midi_Theremin.ino:9:18: fatal error: time.h: No such file or directory

Could you please help explain to me How do I set up the code?
17th March 2015 3:52am
© Greg Miller, 2009-2024