172 lines
8.7 KiB
Plaintext
172 lines
8.7 KiB
Plaintext
|
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.
|
||
|
|
||
|
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.
|
||
|
|
||
|
1100cccc 0ppppppp Program Change.
|
||
|
This message 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 do not
|
||
|
support polyphonic after-touch. Use this
|
||
|
message to send the single greatest velocity
|
||
|
(of all te current depressed keys).
|
||
|
(ccccccc) is the channel number.
|
||
|
|
||
|
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.
|
||
|
-------------------------------------------------------------------------
|
||
|
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
|
||
|
|
||
|
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)
|
||
|
.pa
|
||
|
-------------------------------------------------------------------------
|
||
|
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.)
|
||
|
|
||
|
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.
|
||
|
|
||
|
11110111 End of Exclusive.
|
||
|
Used to terminate a System Exclusive
|
||
|
dump (see above).
|
||
|
.pa
|
||
|
-------------------------------------------------------------------------
|
||
|
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.
|
||
|
|
||
|
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.
|
||
|
|
||
|
-- Greg, lee@uhccux.uhcc.hawaii.edu
|