                    Complete MIDI 1.0 Specification:




Status       Data Byte(s)           Description
D7----D0     D7----D0
-------------------------------------------------------------------------
Channel Voice Messages
-------------------------------------------------------------------------


1000cccc     0nnnnnnn               Note Off event.
             0vvvvvvv               This message is sent when a
                                    note is released (ended).
                                    (nnnnnnn) is the note number.
                                    (vvvvvvv) is the velocity.

1001cccc     0nnnnnnn               Note On event.
             0vvvvvvv               This message is sent when a
                                    note is depressed (start).
                                    (nnnnnnn) is the note number.
                                    (vvvvvvv) is the velocity.

Status       Data Byte(s)           Description
D7----D0     D7----D0
-------------------------------------------------------------------------
Channel Voice Messages
-------------------------------------------------------------------------


1010cccc     0nnnnnnn               Polyphonic Key Pressure (After-touch).
             0vvvvvvv               This message is sent when the
                                    pressure (velocity) of a previously
                                    triggered note changes.
                                    (nnnnnnn) is the note number.
                                    (vvvvvvv) is the new velocity.

1011cccc     0ccccccc               Control Change.
             0vvvvvvv               This message is sent when a controller
                                    value changes.  Controllers include devices
                                    such as pedals and levers.
                                    Certain controller numbers are reserved
                                    for specific purposes.  See Channel Mode
                                    Messages.
                                    (ccccccc) is the controller number.
                                    (vvvvvvv) is the new value.

Status       Data Byte(s)           Description
D7----D0     D7----D0
-------------------------------------------------------------------------
Channel Voice Messages
-------------------------------------------------------------------------
1100cccc     0ppppppp               Program Change.
                                    This message is sent when the patch number
                                    changes.
                                    (ppppppp) is the new program number.

1101nnnn     0ccccccc               Channel Pressure (After-touch).
                                    This message is sent when the channel
                                    pressure changes.  Some velocity-sensing
                                    keyboards not supporting polyphonic
                                    after-touch use this message to send
                                    the single greatest velocity (of all
                                    depressed keys).
                                    (ccccccc) is the channel number.






Status       Data Byte(s)           Description
D7----D0     D7----D0
-------------------------------------------------------------------------
Channel Voice Messages
-------------------------------------------------------------------------
1110nnnn     0lllllll               Pitch Wheel Change.
             0mmmmmmm               This message is sent to indicate a change
                                    in the pitch wheel.  The pitch wheel is
                                    measured by a fourteen bit value.  Center
                                    (no pitch change) is 2000H.  Sensitivity
                                    is a function of the transmitter.
                                    (llllll) are the least significant 7 bits.
                                    (mmmmmm) are the most significant 7 bits.











Status       Data Byte(s)           Description
D7----D0     D7----D0
-------------------------------------------------------------------------
Channel Mode Messages  (See also Control Change, above)
-------------------------------------------------------------------------
1011nnnn     0ccccccc               Channel Mode Messages.
             0vvvvvvv               This the same code as the Control
                                    Change (above), but implements Mode
                                    control by using reserved controller
                                    numbers.  The numbers are:

                                    Local Control.
                                    When Local Control is Off, all devices
                                    on a given channel will respond only to
                                    data received over MIDI.  Played data, etc.
                                    will be ignored.  Local Control On
                                    restores the functions of the normal
                                    controllers.
                                     c = 122, v =   0: Local Control Off
                                     c = 122, v = 127: Local Control On




Status       Data Byte(s)           Description
D7----D0     D7----D0
-------------------------------------------------------------------------
Channel Mode Messages  (See also Control Change, above)
-------------------------------------------------------------------------
                                    All Notes Off.
                                    When an All Notes Off is received,
                                    all oscillators will turn off.
                                     c = 123, v =   0: All Notes Off

                                    (See text for description of actual
                                     mode commands.)
                                     c = 124, v =   0: Omni Mode Off
                                     c = 125, v =   0: Omni Mode On
                                     c = 126, v =   M: Mono Mode On (Poly Off)
                                        where M is the number of channels
                                        (Omni Off) or 0 (Omni On)
                                     c = 127, v =   0: Poly Mode On (Mono Off)
                                     (Note: These four messages also cause
                                            All Notes Off)




Status       Data Byte(s)           Description
D7----D0     D7----D0
-------------------------------------------------------------------------
System Common Messages
-------------------------------------------------------------------------
11110000     0iiiiiii               System Exclusive.
             0ddddddd               This message makes up for all that MIDI
                ..                  doesn't support.  (iiiiiii) is a seven
                ..                  bit Manufacturer's I.D. code.  If the
             0ddddddd               synthesizer recognizes the I.D. code as
             11110111               its own, it will listen to the rest of
                                    the message (ddddddd).  Otherwise, the
                                    message will be ignored.  System Exclusive
                                    is used to send bulk dumps such as patch
                                    parameters and other non-spec data.
                                    (Note: Real-Time messages ONLY may be
                                     interleaved with a System Exclusive.)







Status       Data Byte(s)           Description
D7----D0     D7----D0
-------------------------------------------------------------------------
System Common Messages
-------------------------------------------------------------------------
11110001                            Undefined.

11110010     0lllllll               Song Position Pointer.
             0mmmmmmm               This is an internal 14 bit register that
                                    holds the number of MIDI beats (1 beat=
                                    six MIDI clocks) since the start of
                                    the song.  l is the LSB, m the MSB.

11110011     0sssssss               Song Select.
                                    The Song Select specifies which sequence 
                                    or song is to be played.

11110100                            Undefined.

11110101                            Undefined.

11110110                            Tune Request.
                                    Upon receiving a Tune Request, all analog
                                    sythesizers should tune their oscillators.
Status       Data Byte(s)           Description
D7----D0     D7----D0
-------------------------------------------------------------------------
System Common Messages
-------------------------------------------------------------------------
11110111                            End of Exclusive.
                                    Used to terminate a System Exclusive
                                    dump (see above).
















Status       Data Byte(s)           Description
D7----D0     D7----D0
-------------------------------------------------------------------------
System Real-Time Messages
-------------------------------------------------------------------------
11111000                            Timing Clock.
                                    Sent 24 times per quarter note when
                                    synchronization is required (see text).

11111001                            Undefined.

11111010                            Start.
                                    Start the current sequence playing.
                                    (This message will be followed with
                                     Timing Clocks).

11111011                            Continue.
                                    Continue at the point the sequence was
                                    Stopped.

11111100                            Stop.
                                    Stop the current sequence.

11111101                            Undefined.
Status       Data Byte(s)           Description
D7----D0     D7----D0
-------------------------------------------------------------------------
System Real-Time Messages
-------------------------------------------------------------------------
11111110                            Active Sensing.

                                    Use of this message is optional.  When
                                    initially sent, the receiver will expect
                                    to receive another Active Sensing message
                                    each 300ms (max), or it will be assume
                                    that the connection has been terminated.
                                    At termination, the receiver will turn off
                                    all voices and return to normal (non-
                                    active sensing) operation.

11111111                            Reset.
                                    Reset all receivers in the system to
                                    power-up status.  This should be used
                                    sparingly, preferably under manual
                                    control.  In particular, it should not
                                    be sent on power-up.
