midi message formats
DESCRIPTION
TRANSCRIPT
MIDI Messages: general concepts
The MIDI protocol is made up of a series of messages of 8-bit bytes.
The first byte of the message is the status byte, residing in the range 128-255.
The remaining bytes of the message (called data bytes) will be in the range 0-127.
The first bit of a status byte is always a 1; the first bit of a data byte is always a 0.
There is 1 start bit, 8 data bits, and 1 stop bit, for a period of 320 microseconds per serial byte or 3,125 bytes per second.
MIDI transmits a variety of messages used to express different musical attributes and performance functions.
(…….this is important!)
Note OnQ. Who’s on first?
A. Status byte = kind of event or function…..Data byte(s) follow(s) with the details.
0100000000111100
10010000
MIDI OUT
MIDI IN
STATUS BYTE FORNOTE ON MESSAGE
DATA BYTE INDICATING KEY #60 = MIDDLE C
DATA BYTE INDICATING KEY VELOCITY = 64
Note off
01000000
00111100
10010000
MIDI OUT
MIDI IN
STATUS BYTE FORNOTE ON MESSAGE
DATA BYTE KEY #60 = MIDDLE C
DATA BYTE INDICATING KEY VELOCITY = 64
00000000 00111100
DATA BYTE INDICATING KEY VELOCITY = 0
Transmitting a C+ chord in root position Note On/Note Off/Velocity
01000000
0011110010010000
MIDI OUT
MIDI IN
STATUS BYTE FORNOTE ON MESSAGE
DATA BYTE KEY #60 = MIDDLE C
DATA BYTE KEY VELOCITY = 64
01000000
01000100
01000011
00111111
00111100
000000000100000000000000
0100001100000000
DATA BYTE KEY #64 = E above mid. C
DATA BYTE KEY #64 = G above mid. C
DATA BYTE E KEY VELOCITY = 68
DATA BYTE G KEY VELOCITY = 63
ControllersMIDI allows for up to 121 devices that transmit Control Change Messages between values of 0 – 127.Standard MIDI Controller #s. 0 - 63 designate continuous message devices i.e. 1 = mod. wheel, 4 = foot pedal, 7 = volume pedal.Controllers 64 - 120 designate switch devices with values 64 - 127 = On. Pitch change messages provide 16,384 steps of resolution to accommodate the ear’s acute sensitivity to pitch.Excessive use of controllers in a dense musical arrangement can lead to an overload of MIDI’s transmission capacity.
Example of Continuous Data Controller
010000000011110010010000
MIDI OUT
MIDI IN
STATUS BYTE FORNOTE ON MESSAGE
10110000
00000010
01000011
00000110
00000111
000010100000011100010001
0100001100000000
DATA BYTE KEY #64 = G above mid. C
DATA BYTE BREATH CTLR. = 2
STATUS BYTE FORCTL. CHANGE MESSAGE
Pitch Bend
010000000011110010010000
MIDI OUT
MIDI IN
STATUS BYTE FORNOTE ON MESSAGE
11100000
00000000
00000110MOST SIGNIFICANTDATA BYTE
LEAST SIGNIFICANTDATA BYTE
STATUS BYTE FORPITCH CHANGE MESSAGE
ETC……...
Program Changes
00111100
11000000
MIDI OUT
MIDI IN
STATUS BYTE FORPGM. CHANGE MESSAGE
DATA BYTE INDICATING PRESET PROGRAM NUMBER
Channels and Modes
MIDI allows for up to 16 channels/cable port utilizing 4 possible modes to create elaborate multi instrumental arrangements.
2nd nibble of a status byte is used to represent numbers 1 – 16.
Four possible combinations of Omni On/Off and Poly/Mono are used to configure synths to respond or ignore channel messages, or to operate in a poly- or monophonic mode.
Omni-On/Poly, Omni-On/Mono, Omni-Off/Poly, Omni-Off/Mono.
Synthesizers have a limited number of available voices.
Practical Assignments: Set up the following examples of Daisy Chains.Test MIDI program change messages and channel assignments.Test MIDI data flow from one device to the next.
IN THRU OUT
Keyboard*
Computer/Sequencer
IN THRU OUT
* Omni-On (Off)/Poly Mode
Example of Daisy Chain
IN THRU OUT
IN THRU OUT
IN THRU OUT
Keyboard
Keyboard
Module
Example of Daisy Chain
IN THRU OUT
IN THRU OUT
IN THRU OUT
Keyboard
Keyboard
Module
Example of Daisy Chain
IN THRU OUT
IN THRU OUT
IN THRU OUT
Keyboard*
Keyboard
Module
Computer
IN THRU OUT
*CTL.TYPE SET TO BOTH/THRU???