How Does MIDI Work Anyway ?
I did some MIDI research today. It turns out that the MIDI clock protocol is quite simple. All messages I’m interested in are a single byte only. These are the ones I will be using:
| NAME | HEX | BINARY |
|---|---|---|
| Start | 0xFA | 11111010 |
| Stop | 0xFC | 11111100 |
| MIDI Clock | 0xF8 | 11111000 |
The ‘MIDI Clock’ message should be sent 24 times per beat. So at 120bpm, it will need to be sent 48 times per second.
I’ve decided to support ‘MIDI Stop’ as well as ‘MIDI Start’ so I’ve altered the design to include a smaller STOP button beneath the big fat START button.
I’ve also found a schematic for a really simple interface so I can program the PIC from the PC’s printer port (try to say that three times fast!).
