Phil Rees on MIDI channels, voices, patches and Modes

Excellent technical description of MIDI sound module voice allocation [LINK - to CSF MIDI processor]MIDI!
MIDI channel MIDI voice MIDI timbre MIDI mode MIDI program MIDI sequencer

MIDI channels, voices, timbres and Modes

Chanel! This web page starts off with an introduction to MIDI channels, including the special role of the Basic Channel. This is followed by a description of polyphony and voices, which explains the terms polyphonic and monophonic. The subsequent section covers the subject of programs and timbres; a timbre is also known as a patch, and in MIDI roughly corresponds to a Program. The same section explains the term multitimbral (or multi-timbral).

The subject of MIDI Modes is introduced in the section about voice allocation and Channel Modes. MIDI Modes are instigated by special MIDI Channel Mode messages, which are individually described. The description starts with the four ancillary Mode commands: this is followed by the four proper Mode commands, Omni Off, Omni On, Mono On, and Poly On, The subsequent section describes the MIDI Modes themselves: that is, the four "true" MIDI Modes (Mode 1, Mode 2, Mode 3 and Mode 4) and the real world of Multi Mode.

A discussion of sequencer tracks is included in this document mainly to make clear the distinction between tracks and MIDI channels. There is also a brief discussion of some issues related to how sequencers handle MIDI channels.

MIDI channels

A channel is very generally a route of communication or access. In the sphere of electronic music, however, the term MIDI channel has a quite specific meaning, and does not normally refer to a MIDI hardware link. The MIDI commands designed to control sound-generating voices (including, for example, Note on and Note off) are called Channel Voice messages. All Channel Voice messages are tagged with a MIDI Channel number, so that one MIDI link can, seemingly simultaneously, carry up to sixteen independent parts or lines of musical performance. One MIDI hardware link, therefore, is able to carry sixteen MIDI channels.

For MIDI reception, a sound-generating subsystem (roughly equivalent to one instrument in a band) may usually be set to attend to performance messages on any one of the sixteen MIDI channels. The MIDI channel select function is comparable to tuning a radio or television set to the desired channel.

The corresponding master instrument or sequencer track should have been set to the same channel as the receiving subsystem. It is usually possible to set the transmit MIDI channel on a MIDI master instrument. Where such a facility has been omitted, it is most likely that you will find its Channel Voice messages on MIDI channel one. Many instruments, especially MIDI organs and home keyboards, have fixed MIDI channel assignments on receive or transmit. For example, a particular organ manual (keyboard) may only be able to transmit on MIDI channel three, while a drum sound-generating subsystem may be fixed to receive on MIDI channel ten; this means it will not be possible to use the organ manual to play the drum sounds via a simple MIDI link. There exist hardware gadgets (for example, our CSF MIDI Processor) which may help overcome the interfacing problems caused by a mismatch of fixed channel assignments.

Unlike sequencer tracks, the number of MIDI channels is fixed by the MIDI specification. For each MIDI channel, there is one active MIDI Program number (set by the most recent Program change message on the MIDI channel in question). The Program number selection normally corresponds to a particular timbre or patch. The MIDI Program number system can provide access to 128 different timbres, and an extension called Bank Select expands this to 2 097 152. To make use of all these would require a sound-generating device with a large patch memory capacity.

[Screenshot: Voyetra SP1

One MIDI hardware link can only carry sixteen MIDI channels. Generally, the only way to increase the number of MIDI channels is to fit the sequencer (or computer) with one or more additional independent MIDI Out ports. These additional outputs must be compatible with the hardware and software of the sequencer system. The ability to address more than on MIDI out port is commonplace on modern sequencers.

If you feel that sixteen channels is not enough, remember that several drum kit or similar non-melodic sequencer tracks may often be assigned to a single MIDI channel - different Note numbers being used to select the target instrument. Often, multiple sequencer tracks for overdubs of the same instrument can all share one MIDI channel. In-line Program change messages may be inserted into a sequence in order to redeploy the MIDI channel capacity. Musically, sixteen parts active at any one time is actually quite a lot!

Devices using MIDI Mono Mode and those which can render several timbres (patches) at once require to be able to attend to several MIDI channels at once. The MIDI specification requires that certain messages (Channel Mode messages) must only be honoured when received on the Basic (some people say Base) Channel of the device. For this reason, such devices must allow the user to specify a Basic Channel. If the device conforms to the what is called the MIDI Mono Mode, the Basic Channel should be the same as the lowest MIDI channel to which the device is set to respond. Some devices implement special System Exclusive messages to choose the Basic Channel. System Exclusive messages are not Channel messages and so don't usually have to be assigned to the active Basic Channel.

[ bit7 = 1; bits 6, 5, 4 = status identifier; bots 3, 2, 1, 0 = channel tag } The performance information in a MIDI datastream is carried by Channel Voice messages. On a note of technical detail, all Channel Voice messages and the Channel Mode messages include the channel tag. The Channel number is encoded an plain binary within the message as the least significant four bits of its first byte (known as the status byte) of the message. The other four bits indicate that the byte is a 'status' byte, and identify the message type (for example, 'Note On', 'Control Change' or 'Program Change')

From time to time silly people call MIDI channels one to sixteen by the wrong names. This is usually because they translate the binary coded value of the MIDI channel tag bits directly.

Polyphony and voices

Polyphony is properly a close synonym for counterpoint, which refers to music in which the different parts or voices play different melodic lines.

[Photo: analog monosynth} The noun polyphony and related adjective polyphonic are mildly abused in electronic music to describe the capacity of a sound-generating device to render more than one note at the same time. Each note requires one resource entity (for example a block of electronic hardware or a time-slot in a Digital Signal Processor program) capable of generating a single tone, and this is what sensible people know as one "voice". Polyphony is conventionally quantified as the number of available voices, and a sound-generating device with six voices may be described as being, for example, six-voice polyphonic (alternatively, six-note polyphonic). In the early days of electronic musical instruments, most synthesisers only had the capacity the render one note at a time. These instruments are said to be monophonic and are sometimes called monosynths.

If the number of notes to be rendered (keys held down and notes still sounding in release) at one time exceeds the number of voices available, something has to give. The re-allocation of voices to new notes is often called note stealing. Notes in release will usually be stolen first, with those which have been in release longest getting stolen first. The highest and/or lowest notes may be protected, as their loss tends to be noticeable. Quiet voices and those with a pitch close to the new note may be stolen before others. Multitimbral systems with dynamic voice allocation may have extra intelligent stealing schemes.

On some devices, some timbres (or patches) may use up more than one resource entity (or voice) to render a single note. Such arrangements will effectively diminish the degree of available polyphony from the sound-generating system.

[Photo: pc soundcard} On a monosynth, only one voice can sound, even if you hold down ten keyboard keys at the same time. On an instrument that is six-voice polyphonic, no more than six voices will sound, even if you hold down ten keys at the same time. On a typical modern instrument (perhaps a sound module or computer sound card), which may have 32 or 64 voices, all ten notes can be rendered if you hold down ten keys at the same time.

Programs and timbres

The tone quality which distinguishes a sound from others of the same pitch, volume and duration is called the timbre. In electronic music technology timbre is the most precise term for the settings of a voice to produce a tone of a certain shape and colour. To illustrate, examples of names for timbres are Bright Acoustic Piano, Synth Brass 1 and New-Age Pad.

A timbre is sometimes loosely referred to as a sound or an instrument. The MIDI messages used to select timbre are called Program Change messages, so in this technical sense, a timbre may also be referred to as a Program. A particular timbre generated by a synthesiser is also popularly known as a patch, after the arrangements of "patch cables" used in analogue electronic synthesis. Regrettably, some sad people attempt to confuse us by calling a timbre a "voice"; please avoid this usage.

The adjective multitimbral applies the capacity of a sound-generating device to render more than one timbre at the same time. So, for example, while a synth is polyphonic if it is able to render six notes at the same time; it qualifies as multi-timbral if it can simultaneously create an organ sound and a trumpet sound. As an example, synth which could reproduce four different patches at the same time would be described as being four-part multitimbral. Roughly speaking, it would take a sound-generating device which was sixteen-voice polyphonic and four-part multitimbral to emulate a four-piece band.

Also, please note the distinction between the number of multitimbral parts (the number of timbres which may be simultaneously active under the voice allocation scheme of the device) and the capacity of the patch memory (the total number of timbres or Programs held available in the device). The number of multitimbral parts will not usually exceed the number of voices of polyphony, although it could. Broadly, for a device with a single MIDI input as its only source of performance commands, no more than sixteen (the number MIDI channels) multitimbral parts are necessary. The capacity of the patch memory represents the number of timbres available, but not simultaneously; this is likely to be much larger than the number of parts, and the MIDI spec provides for lots of timbres in the extended Program number system with Bank Select.

An algorithm is a step-by-step computational procedure. As such procedures are used in digital sound synthesis, a particular Digital Signal Processor routine or a particular arrangement of elements (for example, operators and interconnections) within a voice generating sub-system may be referred to as an algorithm. In this sense, algorithm is not a synonym for Program or timbre.

A preset (or factory preset) is a preprogrammed timbre or control setup on a sound-generating device. A distinction is made between such settings and those subsequently created by the user, and which may be referred to by terms such as user patch. As with so may of these terms, some usage of the word "preset" can be rather imprecise or inconsistent.

Voice allocation and Channel Modes

Voice allocation is a term used in the MIDI spec. It refers to the method used by a sound-generating device to share out its voice resources among the active timbres (patches), MIDI channels and notes. Various schemes for voce allocation are described in the spec as Channel Modes, they are also often referred to as simply MIDI Modes

I am very grateful to the authors of the MIDI specification for all the wise judgements which have made the standard such an undoubted success. However, the system of MIDI Modes does not strike me as rational, and it seems to be a largely purposeless complication. Many users certainly find it confusing, but the system exists and may have to be understood. MIDI Modes most reasonably apply to receiving (slave) devices, as these have voices which need to be allocated to MIDI Channels and notes. The MIDI spec implies that there should be MIDI Modes for transmitting (master) devices, but this makes rather less sense, and is usually best ignored! The sole exception is, perhaps, the channel-group version of Mono Mode as used for MIDI lead guitar.

The MIDI spec makes the strange admission that " a single instrument may function as multiple "virtual" instruments" and speaks of instruments functioning in "Multi Mode".. Even so, the original authors seem to have assumed that MIDI voicing devices would be either monophonic-and-multitimbral or polyphonic-and-monotimbral. Furthermore, the MIDI spec explicitly lays down that a MIDI receiver (or transmitter) operates under only one Channel Mode at a time. Modern equipment generally uses sophisticated (multitimbral and polyphonic) operating modes that are not included in the formal system of Modes given in the MIDI specification. Fortunately, this means that the silly old Modes have become less important as time has gone on. However, if you understand Modes, you just may be able to use them for some creative ends.

Although few respectable sound-generating devices have ever confined themselves to the official MIDI modes, earlier devices did employ fixed voice allocation. This required the user to decide in advance how many voices would be used for each timbre or MIDI channel. More advanced devices almost always offer dynamic voice allocation.

Channel Mode messages

The MIDI specification describes eight types of Channel Mode message, though four of these don't relate to the actual MIDI (or Channel) Mode. The start of this section contains a brief technical description of the four ancillary Mode messages, for the sake of comprehensiveness.

The final four types of Channel Mode message are the actual commands which set up actual voice-allocation MIDI Modes. They are called Omni Off, Omni On, Mono On and Poly On. They should all also behave as All Notes Off commands, which is a logical thing to do. The spec says that these commands should be observed by a slave device if received on its Basic Channel.

In terms of their format, the Mode messages are members of the class called Control Change (or Controller). The MIDI spec describes the Control Change class of message as being "used for modifying tones with a controller other than a keyboard key".

All Sound Off

The first type of Mode message (for your information, Control Change number 120 decimal with a value of zero) is All Sound Off, added to the MIDI spec in 1993. This should cut all pertinent sounds dead instantly; the MIDI spec says "their volume envelopes are set to zero as soon as possible" (this is the correct description of All Sound Off).

Reset All Controllers

The second type (Control Change number 121 decimal with a value of zero) is called Reset All Controllers. The function of this command is to tell the receiving device to reset all its controllers (including Pitchbend) to "what it considers an ideal initial state". This command is supposed to be ignored by devices in Omni mode. The MIDI spec also suggests that sequencers may "wish" to accommodate devices on which this command is not implemented, by first resetting each controller separately.

Local Control

The third type of Channel Mode message is called Local Control. Unlike the other Mode messages, Local Control behaves like a regular switching controller: Local Control Off uses Control Change number 122 with a value of zero and Local Control On uses the same number 122 with a value of 127. Local Control Off breaks the internal control path between the keyboard (or equivalent) and sound-generating circuitry of a MIDI instrument. Local Control On makes the same path.

All Notes Off

The fourth type of Channel Mode Message (for your information, Control Change number 123 with a value of zero) is All Notes Off. This should end all pertinent active notes neatly, allowing them to release normally; it should not terminate the sound abruptly (this is the main difference between this command and the newer All Sound Off). Originally, this was not stipulated unambiguously in the MIDI spec, so some awkward buggers interpreted this command by cutting all sounds dead immediately. Others, notably Roland, felt at liberty to issue this command whenever all the keyboard keys were released. The result was an unholy collapse of compatibility! All Notes Off should not override the sustain controllers, but it should turn off the underlying note(s). This command is supposed to be ignored by devices in Omni mode.

Because of the above issues, it may be desirable to strip a MIDI datastream of All-Notes-Off messages. This is one of the functions available in our versatile CSF MIDI Processor.

Omni Off

The appellation Omni is originally derived from the Latin word omnis, meaning all. The Omni Off message is assigned to Control Change number 124 with a value of zero.

The creators of the original MIDI spec seem to have worried that, if a transmitting device and receiving device powered up using different MIDI channels, they would seem not to be working. I think they feared this would upset potential customers trying out gear in shops. To deal with this they invented the worse-than-useless Omni mode and made the regrettable stipulation that the recommended start up condition was Omni Mode On! The Omni Off message is one way of getting out of horrid Omni Mode, but it was decided that the message would have to be sent on the slave device's Basic Channel. As there is no way for the master device to know which channel this is, the MIDI spec recommends that you should always be able to turn Omni Off by means of front panel controls.

In an Omni Off state, a MIDI sound-generating device should only respond to those Channel Voice messages with selected MIDI channel tags. It is necessary to turn Omni Off in order to benefit from the system of MIDI channels.

Omni On

The Omni On message undoes the good work of the Omni Off message. This command uses Control Change number 125 with a value of zero.

In an Omni On state, a MIDI slave device responds to all 16 MIDI channels, as if they were one channel. This means that you lose all the benefits of the system of MIDI channels, including keyboard splits. It is not likely that anyone in their right mind would choose to use the Omni On command.

In the unlikely case that you wished to take advantage of Omni-style response from a device which did not include this feature, you could employ our CSF MIDI Processor.

Mono On

The appellation mono is short for monophonic; the prefix mono originally came from the Greek monos, meaning single. The Mono or Mono On message is the same thing as a Poly Off message.

The Mono On Mode message uses Control Change number 126 with a value, which specifies the the number of channels in which Monophonic Voice messages are to be sent. This value applies when setting up receiver Mode 4 (the lead guitar Mode) but is ignored for the trivial Mode 2.

In a Mono On state, the sound-generating subsystem for a particular MIDI channel will only use one voice, and so will only render one note at a time.

The most important purpose for setting a Mono On state is to emulate the behaviour of those instruments which are themselves inherently monophonic. These are instruments which have only a single voicing element, so that a new note must snub any prior note which may still be sounding. Examples of such monophonic instruments include most brass, woodwind and the classic analogue synthesisers. The glide effect known as portamento makes most sense when used within a monophonic line. The channel-group version of MIDI Mode 4 extends Mono Mode to emulate instruments like the guitar or violin, which have a finite set of monophonic voicing elements.

Poly On

The appellation poly is short for polyphonic; the prefix poly comes from the Greek polus, meaning many. Poly On equals Mono Off. The Poly On (also kown simply as Poly) message uses Control Change number 127 with a value of zero.

In a Poly On state, a sound-generating device should render several simultaneous overlapping notes on a particular MIDI channel. Therefore, for example, it can play chords on that channel. The Poly On state is able to emulate the behaviour of instruments such as the piano or organ.

The MIDI Channel Modes

The MIDI spec describes four voice assignment Channel Modes which can be set by using combinations of the Channel Mode messages. Modes 1 and 2 are Omni Modes, while Modes 3 and 4 are more fortunate. Modes 2 and 4 are Mono Modes, while Modes 1 and 3 are Poly.

The MIDI spec says a good deal about Modes which are not implemented in a receiver, but this is largely academic as most real world sound-generators use a more versatile special Multi Mode. This fact is fleetingly mentioned in later versions of the MIDI spec, which describe Multi Mode as not a true MIDI Mode.

Mode 1 - Omni On / Poly

This mode is sometimes called simply Omni Mode. It is selected with a combination of the Omni On and Poly On Channel Mode messages.

In this Mode, a receiving device will play voice commands from any MIDI channel in a polyphonic manner - as if it was all on one channel.

In the diagram above, the disk with a sum sign (capital sigma) in the diagram above is intended to indicate that all MIDI Channel Voice messages are merged, regardless of MIDI Channel tags. The resultant stream is then rendered by all the available voices.

Mode 2 - Omni On / Mono

This Mode has no alternative name. It would be set up with a combination of the Omni On and Mono On Channel Mode messages.

The MIDI spec says, "Voice messages are received from all voice channels, and control only one voice, monophonically". It is difficult for me to imagine any potential use for this arrangement, but at least it doesn't need a lot of explanation. This Mode is often not even implemented.

The diagram above should explain this Mode at a glance: Voice messages from any received MIDI channel are all directed to the same single voice.

Mode 3 - Omni Off / Poly

This mode is sometimes called simply Poly Mode. It is selected with a combination of the Omni Off and Poly On Channel Mode messages.

This would be the sensible operating mode for a monotimbral polyphonic sound-generating device. In this Mode, the device renders polyphonically voice messages on a single selected MIDI channel. This is a useful mode, but take care of devices fixed to receive only on MIDI channel one.

In the diagram above, the slave device is tuned to MIDI Channel six. MIDI Channel messages received with a corresponding channel tag may be rendered polyphonically using up to all eight available voices.

Mode 4 - Omni Off / Mono

This mode is sometimes called simply Mono Mode. You may be able to set a receiving device into this Mode either from its control panel or via MIDI. The relevant MIDI commands are the Omni On and Mono On messages sent on the Basic channel of the receiving device. This is the only official Mode which seems to have anything to do with multi-timbrality. Therefore, from time to time, people have interpreted this Mode as the multi-timbral mode - and not a monophonic mode at all! The official version of Mode 4 allocates one voice to one channel, and allows channels to be allocated to voices in groups. I seem to remember that early versions of the MIDI spec allocated the channel below the base channel for global control of the channel-group - but there is no mention of this any more!

When setting up Mode 4, the Mono On message includes a value which determines how many MIDI channels should be assigned to a channel-group. If the value is set to one, the sound-generating system will act as a simple monophonic instrument. If the value is set to, say, six, then a the sound-generating system would take up a block of six MIDI channels. If the value is set to zero, then a the sound-generating system is supposed to take up as many MIDI channels as it has voices. For example, on an eight-voice polyphonic synth, the group would consist of eight MIDI Channels; normally, each channel would render just one note at a time.

The diagram above shows an arrangement of the channel-group version of Mode 4. It was set up on MIDI channel 6 as the Basic channel. The value attached to the Mono On message was six, so six voices (out of the eight available) have been allocated to six MIDI channels - numbers six through eleven. An example application for this arrangement would be the MIDI guitar system as shown below.

An important application of the channel-group version of Mode 4 is the MIDI guitar. Each of the six strings is assigned a separate monophonic MIDI channel, so that controller effects, especially portamento (glide) and pitchbend, can be properly assigned separately to each string, and new notes will correctly snub prior notes on each single string. This arrangement also ensures that it is possible for two strings to play the same pitch; this can be played on a guitar, unlike on an organ or piano. Each string could also be assigned a different timbre, but that would not usually be the case.

Multi Mode

Terms like Multi Mode, MultiTimbral Mode and Supermode are applied to the actual reasonable operating modes generally used by the majority of real-world sound-generating devices. While the authors of the MIDI spec wrote of "multiple virtual instruments", they mainly seem to have ignored the need for a proper operating Mode which was both polyphonic and multitimbral.

Because the other official Modes do not seem to want to be multi-timbral, many commentators suggest that Multi Mode is an extension of Mode 4 (Mono Mode). Multi-timbral mode has sometimes even been implemented in the place of Mode 4. As I understand things, however, the proper monophonic channel-group version of Mode 4 is the only Mode which amounts to more than a trivial sub-set of Multi Mode!

Early MIDI sound-generating devices tended to use "fixed Voice allocation". "Fixed Voice allocation" needs the user to decide, up front, how many voices to allocate to each channel or timbre - if a channel subsequently requires more voice resources, then notes will have to be stolen from within said channel's quota, even if other voices are still free.

The polyphony of a modern multitimbral sound-generating device is usually allocated dynamically among the different parts (timbres) as and when they are needed. Once all the voices are occupied, note-stealing will be necessary (but as the whole pool of voices is available this is made less likely). As usual, voices in release (after note-off) will probably be taken over first; voices on the same timbre or with similar pitch may be stolen soon, while quiet voices or those late in release are obvious candidates for stealing. Particular channels or timbres may be given priority protection from stealing; for example, the drums (often on channel 10) and low-number channels may be given high priority. Some advanced systems let the user reserve a minimum voice allocation for each channel.

Sequencer Tracks

[Screenshot: Sweet 16]

Most sequencers and sequencer programs use the "multi-track tape recorder" paradigm. Tracks are a part of the sequencer design, rather than of the MIDI specification. Tracks are just named linear time memories for a series of MIDI events. You are generally free to to allocate MIDI commands to tracks in any way that suits your way of working. The most important limitation is the maximum number of tracks available in a sequencer. Many hardware sequencers and simpler sequencer programs allow for sixteen tracks, equal to the number of MIDI channels. More sophisticated software sequencers may allow for an unlimited number of tracks.

MIDI! to Phil Rees Music Tech home page

to top of this page

1997,1998 Philip Rees
This document is not to be reproduced without permission of the author.
No liability can be accepted for errors and omissions.
All trademarks acknowledged as the property of their owners.