Midi message formats

Preview:

DESCRIPTION

 

Citation preview

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???

Recommended