A rudimentary MIDI Device based around the PIC16F84

Note: This is an old, old project for implementing a MIDI interface using the PIC16F84 chip in assembly.  It’s now much much easier to do this sort of thing using an Arduino.

Musical 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)

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:

Edit: If you are experimenting at all with MIDI output devices, you will probably benefit 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 #2: 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!