Introduction to Computer Music: Volume One

1. How does the MIDI system work? Page 8

System Common and System Real Time Messages

System messages do not include channel numbers and are intended to address all devices in a system.

There are only a few system common messages that deal primarily with instrument's on-board sequencers or drum machines, which may have pre-recorded MIDI sequences. system common messages have both a status byte begining with 11110001 (240) and one or more data bytes.

A song position pointer is a register that holds the number of MIDI beats since the start of a song (sequence). Other system common messages select which song to play and also a 'tune request' for analog synthesizers to tune their oscillators (those we the days...). Because of the potentially large number of beats, the song position pointer uses two data bytes for a 14-bit message.

System real time messages include a timing clock, which sends 24 'clocks' per quarter note (note that this depends on the tempo setting and so is 'relative' time). Timing clocks of an instrument's internal sequencer can also control the rates of LFO's and other patch parameters (for example, on the Kurzweil K2xxx series, if the clock source is left on internal, the A Clock and B Clock parameters will use the sequencer tempo).

Real time messages can also send a START and STOP messages to an on-board sequencer. "Active sensing" was an optional message that sent a status byte every 300 ms. when there was no other MIDI activity. More recent instruments seem to have dropped this, but our yamah DX7 sent active sensing which was recorded on our sequencing software, making for larger files. The last real time message is a system reset, which should return the condition of the receiver to the start-up condition. System Real Time messages begin with 11111000 (248) and have no data bytes.

Below is a chart of the implemented system common and system real time messages.

Status Byte Data Byte 1 Data Byte 2 Description
system commom
11110010 0lllllll 0hhhhhhh Song Position Pointer (l=least significant bit, h=most significant bit)
11110011 0sssssss   Song Select (s=song number)
11110110 none   Tune Request
11110111 none   EOX (end of system exclusive mssage)
system real time

11111000 none   Timing Clock
11111010 none   Start (song)
11111011 none   Stop
11111110 none   Active Sensing
11111111 none   System Reset

1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14

| Jacobs School of Music | Center for Electronic and Computer Music | Contact Us | ©2017-18 Prof. Jeffrey Hass