Home
The Radio Drum
Applications 
Chopper Circuit 
MAX/MSP 
MIDI
Progress Report 1
Progress Report 2
Final Report
Contact Us

MIDI stands for Musical Instrument Digital Interface and is a protocol and hardware standard for communication between devices.  The devices are usually electronic musical instruments that interact with each other.  The Radio Drum uses the analog signals from the drumsticks and sends them to a host computer, which will process the signals and eventually convert the acquired data into MIDI to produce music. 

MIDI information will tell a synthesizer to perform basic manipulation of music.  It can be used to inform the synthesizer when to turn a note on or off, to change volume, sounds, or modulation devices.  MIDI communicates musical information between two devices much the same way that a modem communicates between two computers. 

MIDI commands are contained in a 10-bit frame.  Each MIDI command has a specific frame sequence.  The beginning bit is the status bit, followed by eight data bits and finally a stop bit.  Encoded in the status bit is the MIDI channel and the status bit tells the MIDI device what function to perform.  Operation in MIDI happens in 16 different channels and the MIDI channel is only encoded in the status bit. 

MIDI hardware is comprised of a conductor cable to connect the synthesizer ports.  Pins 1 and 3 of the DIN female connectors do not carry active signals; Pin 2 is shielded and connected to ground.  Pins 4 and 5 carry the data through the cables.  Every MIDI unit has 3 of the 5-pin ports; the ports are IN, OUT and THRU and control all the information routing.  The OUT port sends MIDI data to the rest of the setup, the IN port accepts MIDI data and the THRU port outputs an exact copy of the data received at the IN port.  The THRU port allows for daisy chaining of MIDI devices.

adapted from "MIDI by the Numbers" by D. Valenti, Elec Musician mag 2/88
 

            STATUS BYTE                        |          DATA BYTES
------------------------------------------------------------------------------
   1st Byte Value |  Function                  |    2nd        |    3rd
 - - - - - - - - -|                            |    Byte       |    Byte
  Binary |Hex| Dec|                            |               |
 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
 10000000= 80= 128| Chan 1      Note off       |  Note Number  | Note Velocity
 10000001= 81= 129| Chan 2         "           |   (0-127)     |   (0-127)
 10000010= 82= 130| Chan 3         "           |     see       |      "
 10000011= 83= 131| Chan 4         "           |    Table      |      "
 10000100= 84= 132| Chan 5         "           |      2        |      "
 10000101= 85= 133| Chan 6         "           |      "        |      "
 10000110= 86= 134| Chan 7         "           |      "        |      "
 10000111= 87= 135| Chan 8         "           |      "        |      "
 10001000= 88= 136| Chan 9         "           |      "        |      "
 10001001= 89= 137| Chan 10        "           |      "        |      "
 10001010= 8A= 138| Chan 11        "           |      "        |      "
 10001011= 8B= 139| Chan 12        "           |      "        |      "
 10001100= 8C= 140| Chan 13        "           |      "        |      "
 10001101= 8D= 141| Chan 14        "           |      "        |      "
 10001110= 8E= 142| Chan 15        "           |      "        |      "
 10001111= 8F= 143| Chan 16        "           |      "        |      "
 10010000= 90= 144| Chan 1      Note on        |      "        |      "
 10010001= 91= 145| Chan 2         "           |      "        |      "
 10010010= 92= 146| Chan 3         "           |      "        |      "
 10010011= 93= 147| Chan 4         "           |      "        |      "
 10010100= 94= 148| Chan 5         "           |      "        |      "
 10010101= 95= 149| Chan 6         "           |      "        |      "
 10010110= 96= 150| Chan 7         "           |      "        |      "
 10010111= 97= 151| Chan 8         "           |      "        |      "
 10011000= 98= 152| Chan 9         "           |      "        |      "
 10011001= 99= 153| Chan 10        "           |      "        |      "
 10011010= 9A= 154| Chan 11        "           |      "        |      "
 10011011= 9B= 155| Chan 12        "           |      "        |      "
 10011100= 9C= 156| Chan 13        "           |      "        |      "
 10011101= 9D= 157| Chan 14        "           |      "        |      "
 10011110= 9E= 158| Chan 15        "           |      "        |      "
 10011111= 9F= 159| Chan 16        "           |      "        |      "
 10100000= A0= 160| Chan 1     Polyphonic      |      "        |  Aftertouch
 10100001= A1= 161| Chan 2     aftertouch      |      "        |   pressure
 10100010= A2= 162| Chan 3         "           |      "        |    (0-127)
 10100011= A3= 163| Chan 4         "           |      "        |      "
 10100100= A4= 164| Chan 5         "           |      "        |      "
 10100101= A5= 165| Chan 6         "           |      "        |      "
 10100110= A6= 166| Chan 7         "           |      "        |      "
 10100111= A7= 167| Chan 8         "           |      "        |      "
 10101000= A8= 168| Chan 9         "           |      "        |      "
 10101001= A9= 169| Chan 10        "           |      "        |      "
 10101010= AA= 170| Chan 11        "           |      "        |      "
 10101011= AB= 171| Chan 12        "           |      "        |      "
 10101100= AC= 172| Chan 13        "           |      "        |      "
 10101101= AD= 173| Chan 14        "           |      "        |      "
 10101110= AE= 174| Chan 15        "           |      "        |      "
 10101111= AF= 175| Chan 16        "           |      "        |      "
 10110000= B0= 176| Chan 1      Control/       |     See       |     See
 10110001= B1= 177| Chan 2     Mode change     |    Table      |    Table
 10110010= B2= 178| Chan 3         "           |    three      |    three
 10110011= B3= 179| Chan 4         "           |      "        |      "
 10110100= B4= 180| Chan 5         "           |      "        |      "
 10110101= B5= 181| Chan 6         "           |      "        |      "
 10110110= B6= 182| Chan 7         "           |      "        |      "
 10110111= B7= 183| Chan 8         "           |      "        |      "
 10111000= B8= 184| Chan 9         "           |      "        |      "
 10111001= B9= 185| Chan 10        "           |      "        |      "
 10111010= BA= 186| Chan 11        "           |      "        |      "
 10111011= BB= 187| Chan 12        "           |      "        |      "
 10111100= BC= 188| Chan 13        "           |      "        |      "
 10111101= BD= 189| Chan 14        "           |      "        |      "
 10111110= BE= 190| Chan 15        "           |      "        |      "
 10111111= BF= 191| Chan 16        "           |      "        |      "
 11000000= C0= 192| Chan 1      Program        |  Program #    |     NONE
 11000001= C1= 193| Chan 2       change        |   (0-127)     |      "
 11000010= C2= 194| Chan 3         "           |      "        |      "
 11000011= C3= 195| Chan 4         "           |      "        |      "
 11000100= C4= 196| Chan 5         "           |      "        |      "
 11000101= C5= 197| Chan 6         "           |      "        |      "
 11000110= C6= 198| Chan 7         "           |      "        |      "
 11000111= C7= 199| Chan 8         "           |      "        |      "
 11001000= C8= 200| Chan 9         "           |      "        |      "
 11001001= C9= 201| Chan 10        "           |      "        |      "
 11001010= CA= 202| Chan 11        "           |      "        |      "
 11001011= CB= 203| Chan 12        "           |      "        |      "
 11001100= CC= 204| Chan 13        "           |      "        |      "
 11001101= CD= 205| Chan 14        "           |      "        |      "
 11001110= CE= 206| Chan 15        "           |      "        |      "
 11001111= CF= 207| Chan 16        "           |      "        |      "
 11010000= D0= 208| Chan 1      Channel        |  Aftertouch   |      "
 11010001= D1= 209| Chan 2     aftertouch      |   pressure    |      "
 11010010= D2= 210| Chan 3         "           |   (0-127)     |      "
 11010011= D3= 211| Chan 4         "           |      "        |      "
 11010100= D4= 212| Chan 5         "           |      "        |      "
 11010101= D5= 213| Chan 6         "           |      "        |      "
 11010110= D6= 214| Chan 7         "           |      "        |      "
 11010111= D7= 215| Chan 8         "           |      "        |      "
 11011000= D8= 216| Chan 9         "           |      "        |      "
 11011001= D9= 217| Chan 10        "           |      "        |      "
 11011010= DA= 218| Chan 11        "           |      "        |      "
 11011011= DB= 219| Chan 12        "           |      "        |      "
 11011100= DC= 220| Chan 13        "           |      "        |      "
 11011101= DD= 221| Chan 14        "           |      "        |      "
 11011110= DE= 222| Chan 15        "           |      "        |      "
 11011111= DF= 223| Chan 16        "           |      "        |      "
 11100000= E0= 224| Chan 1       Pitch         |    Pitch      |    Pitch
 11100001= E1= 225| Chan 2       wheel         |    wheel      |    wheel
 11100010= E2= 226| Chan 3       range         |     LSB       |     MSB
 11100011= E3= 227| Chan 4         "           |   (0-127)     |   (0-127)
 11100100= E4= 228| Chan 5         "           |      "        |      "
 11100101= E5= 229| Chan 6         "           |      "        |      "
 11100110= E6= 230| Chan 7         "           |      "        |      "
 11100111= E7= 231| Chan 8         "           |      "        |      "
 11101000= E8= 232| Chan 9         "           |      "        |      "
 11101001= E9= 233| Chan 10        "           |      "        |      "
 11101010= EA= 234| Chan 11        "           |      "        |      "
 11101011= EB= 235| Chan 12        "           |      "        |      "
 11101100= EC= 236| Chan 13        "           |      "        |      "
 11101101= ED= 237| Chan 14        "           |      "        |      "
 11101110= EE= 238| Chan 15        "           |      "        |      "
 11101111= EF= 239| Chan 16        "           |      "        |      "
 11110000= F0= 240| System Exclusive           |      **       |      **
 11110001= F1= 241| System Common - undefined  |      ?        |      ?
 11110010= F2= 242| Sys Com Song Position Pntr |     LSB       |     MSB
 11110011= F3= 243| Sys Com Song Select(Song #)|   (0-127)     |     NONE
 11110100= F4= 244| System Common - undefined  |      ?        |      ?
 11110101= F5= 245| System Common - undefined  |      ?        |      ?
 11110110= F6= 246| Sys Com tune request       |     NONE      |     NONE
 11110111= F7= 247| Sys Com-end of SysEx (EOX) |      "        |      "
 11111000= F8= 248| Sys real time timing clock |      "        |      "
 11111001= F9= 249| Sys real time undefined    |      "        |      "
 11111010= FA= 250| Sys real time start        |      "        |      "
 11111011= FB= 251| Sys real time continue     |      "        |      "
 11111100= FC= 252| Sys real time stop         |      "        |      "
 11111101= FD= 253| Sys real time undefined    |      "        |      "
 11111110= FE= 254| Sys real time active sensing|     "        |      "
 11111111= FF= 255| Sys real time sys reset    |      "        |      "

** Note: System Exclusive (data dump) 2nd byte= Vendor ID followed by more data bytes and ending with EOX.