Midi message formats

13
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!)

description

 

Transcript of Midi message formats

Page 1: Midi message formats

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!)

Page 2: Midi message formats

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

Page 3: Midi message formats

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

Page 4: Midi message formats

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

Page 5: Midi message formats

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.

Page 6: Midi message formats

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

Page 7: Midi message formats

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……...

Page 8: Midi message formats

Program Changes

00111100

11000000

MIDI OUT

MIDI IN

STATUS BYTE FORPGM. CHANGE MESSAGE

DATA BYTE INDICATING PRESET PROGRAM NUMBER

Page 9: Midi message formats

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.

Page 10: Midi message formats

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

Page 11: Midi message formats

Example of Daisy Chain

IN THRU OUT

IN THRU OUT

IN THRU OUT

Keyboard

Keyboard

Module

Page 12: Midi message formats

Example of Daisy Chain

IN THRU OUT

IN THRU OUT

IN THRU OUT

Keyboard

Keyboard

Module

Page 13: Midi message formats

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