MP3 to MIDI Channel Mode Messages: The Eight Numbers That Do Not Play a Note

Controller numbers 120 to 127 are the channel mode messages, and a file uses them to change how a device listens rather than what it plays. Only two are required for General MIDI Level 1, the specification's prose documents six of the eight, and one of those six carries two opposite names.

The eight numbers, answered

  • Eight numbers, no message type of their own. Every one begins 1011nnnn, the status byte an ordinary control change begins with, so the file never marks a mode message as a mode message.
  • The prose documents six of the eight. The Channel Mode Messages section enumerates 122 to 127. The controller table assigns 120 to 127. The two the prose omits are All Sound Off and Reset All Controllers.
  • Number 126 carries two opposite names. The prose calls it Mono Mode On (Poly Off); the table calls it Poly mode on/off. The two lists also read a value of zero differently.
  • Only 121 and 123 are mandatory. The footnote requiring General MIDI Level 1 response marks nine of the 128 controller rows, and just two of them sit in this range.

Eight numbers with no message type of their own

All eight begin 1011nnnn, the status byte an ordinary control change begins with, and the specification says so: this is the same code as the control change, implementing mode control by using reserved controller numbers. So the number in the second byte is the whole signal. They are the top eight of the 128-value controller field, immediately after 102 through 119, which the table leaves undefined.

The two lists in one document disagree

The document keeps two lists of the same range, and they do not match. The Channel Mode Messages section enumerates six numbers: 122, 123, 124, 125, 126 and 127. The controller table assigns eight. The two the prose never mentions are 120 All Sound Off and 121 Reset All Controllers. All Sound Off is the sharper case: those three words appear once in the specification, as a table row, and no sentence says what it does.

One number, two names, two readings of zero

Number 126 is listed twice under opposite names. The prose gives it as Mono Mode On (Poly Off); the table gives it as Poly mode on/off.

A value of zero is read two ways. The prose reads it as the number of channels when the device is in omni off, or zero when it is in omni on. The table's footnote says the value equals the number of channels, or zero if the number of channels equals the number of voices in the receiver. Omni on and a voice count are not the same condition.

Only two of the eight are required

The asterisk footnote under the controller table states that equipment must respond in order to comply with General MIDI level 1. It marks nine of the 128 rows: controllers 1, 7, 10, 11, 64, 100, 101, 121 and 123. Two of the nine are in this range, Reset All Controllers and All Notes Off. The other six are not required of a Level 1 device. Number 126 is also the only row carrying a double asterisk, and that footnote is not the General MIDI one.

Six take the value zero, and four stop notes

Six of the eight show one fixed value, zero: 120, 121, 123, 124, 125 and 127. Number 122 is a switch, zero for off and 127 for on. Number 126 takes a channel count. Four also do more than their names say: 124, 125, 126 and 127 all cause notes off, and the table repeats that on all four rows. So the receive mode cannot be changed without silencing the channel, and the two numbers General MIDI requires are the ones that stop sound rather than configure it.

A file holding no message numbered 120 to 127 holds only notes, per-note velocity and ordinary controller writes.

Related