Hack/Study: MIDI device
Thursday, March 9th, 2006Musical Instrument Digital Interface, or MIDI, is an industry-standard electronic communications protocol that defines each musical note in an electronic musical instrument such as a synthesizer, precisely and concisely, allowing electronic musical instruments and computers to exchange data, or “talk”, with each other. MIDI does not transmit audio - it simply transmits digital information about a music performance. (from Wikipedia entry)
Many may know that I’m a keen musician with some sound engineering experience. This project is to combine music and geekery interests and see what comes out of the mix. Yesturday I completed my first MIDI device. It is just a test of concept really; the first step in hopefully some more advanced MIDI/sound manipulation.
I use a PIC16F84 chip at 4Mhz to directly talk to whatever MIDI device the circuit is connected to. The homebrewed MIDI transmit code was taken from Ross Bencina’s site on MIDI development with PIC and Basic Stamp which, if you are interested, is a great resource.
Here is some of the technical material to help you get started quickly on your own MIDI project:
- My rejigged source code for 4Mhz operation (I also add turning on the “Okay” LED)
- Link to annotated circuit schematic
- PIC16F84 Datasheet (comprehensive programming information and specs)
Edit: If you are experimenting at all with MIDI output devices, you will probably benifit from a computer based MIDI monitoring program. This lets you examine the raw MIDI data being sent by your device, and helps greatly in troubleshooting. I am currently using the aptly titled MIDI Monitor found at OBD Software as it is free and does a fine job.
Edit: I’ve recently completed a remote automation project that lets you turn 110-240vac devices on and off via the a webpage or WAP on a mobile phone. It’s a very fun project!
If you’d be interested in a write-up (schematics, code, etc) then leave a comment here, and I’ll get writing!




