MIDI channels are communication pathways between MIDI devices. There are 16 MIDI channels available and each can be assigned to a different MIDI device. Channel assignments allow MIDI devices to be arranged in combinations so that each device responds only to the information intended for it. MIDI is a versatile way of recording notes, chords, and drum beats—to be played by MIDI instruments—in the form of MIDI tracks. Several MIDI tracks can come together to form a MIDI song.
In this article we’ll look at:
- How many MIDI channels are there and what information do they carry?
- MIDI channel assignments
- MIDI channels vs MIDI tracks
How many MIDI channels are there and what information do they carry?
MIDI channels are independent paths over which communication can occur between MIDI devices.
There are 16 MIDI channels available for this purpose.
By assigning channels to particular MIDI devices or MIDI-enabled sound generators within devices, those individual devices or generators can be independently controlled via MIDI data.
MIDI devices communicate through MIDI messages, and these messages travel between devices on MIDI channels.
MIDI messages carry the specific instructions and data intended for the device that’s at the receiving end of a MIDI channel. They typically contain two to three bytes of information, including channel-specific (with the channel number) and system-specific information.
The channel-specific information includes both voice and mode information.
MIDI voice information carries performance data, such as which notes to play, how long to hold them, and how hard to press the keys.
MIDI mode information carries instructions on how the receiving device should use the performance data that’s being received by it.
Mode information includes instructions on whether to respond to data on any channel or only a single channel, and whether to play notes polyphonically (several notes at a time) or monophonically (only one note at a time).
MIDI system-specific information includes general system, synchronization, and other system-related data.
MIDI voice information usually makes up the majority of traffic in a MIDI data stream.
As mentioned, this information carries performance data—also referred to as MIDI commands.
There are eight groups of MIDI commands:
- Note OFF
- Note ON
- Polyphonic key pressure
- Control change
- Program change
- Monophonic key pressure
- Pitch bend
- System exclusive (ie. global commands that can affect the entire device)
As the name suggests, MIDI commands are designed to convey an action to a receiving device, such as play a note, change the sound (MIDI program change), or turn off a note.
MIDI channel assignments
Channel assignments are the way in which a MIDI device can control the way it interacts with other MIDI devices.
Through MIDI channel assignments you can, for instance, use one device to send MIDI performance data to a variety of other devices, and specify which device receives what type of data.
Let’s look at an example to see how MIDI channel assignments work.
How to use MIDI channels
Consider the MIDI connections (setup) shown in the diagram below:
The above setup shows a master MIDI synth/sequencer connected to a synth module, and in turn, the synth module is connected to a drum module.
The MIDI ports on each of the devices are connected as follows:
- MIDI (master) synth/sequencer to synth module—MIDI out to MIDI in
- Synth module to drum module—MIDI thru to MIDI in
This setup describes a system where one MIDI device (the master) controls, ie. sends MIDI information, to two receiving MIDI devices (the synth module and the drum module).
But in this example, the master device is actually made up of two components—a sequencer and a synth.
Having an in-built sequencer is not unusual for many MIDI devices, although in recent years many people prefer to use the sequencers available in computer software (ie. digital audio workstations or DAWs) as they offer more versatility and flexibility.
The synth module is connected directly to the master device. The drum module, however, is connected only to the synth module and not directly to the master device.
So, how can the master device control the drum module?
This is achieved by using the MIDI thru port on the synth module—this port passes all of the information received at the MIDI in port. Hence, MIDI information sent by the master devices passes through the synth module and reaches the drum module.
As we’ll see, by assigning different MIDI channel numbers to the synth module and drum module, although they are both receiving the same information (due to the MIDI thru connection), they will only act on the information intended for them.
MIDI channel numbers
For each of the receiving devices in the example set up, you can assign MIDI channel numbers according to how you want each device to operate.
Let’s assume the following channel assignments apply:
- Channel 5—Master synth
- Channel 3—Synth module
- Channel 10—Sampler module
Let’s say that you record a bass track on the MIDI sequencer using Channel 5, a melody track on the sequencer using Channel 3, and finally a drum track on Channel 10.
Incidentally, many synths are pre-assigned to output drums and percussion on MIDI Channel 10.
If you record on the (master) sequencer using the above channels, then when you play back the sequencer each module in the setup will only respond with the instruments that match the channel assignments.
So, for instance, the synth component of the master device will respond with a bass track (assigned to Channel 5), the synth module will respond with a melody track (assigned to Channel 3), and the drum module will respond with a drum track (assigned to Chanel 10).
Keep in mind that this arrangement will only work properly if you select the correct MIDI mode—you would need to ensure that an Omni Off mode is selected, otherwise, the channel assignments would be ignored. (Learn more about how MIDI modes operate)
The above example shows how MIDI channel assignments can be used to match the channel numbers between devices that are intended to pair.
MIDI channels vs MIDI tracks
One area of confusion that often arises relates to the difference between MIDI channels and MIDI tracks.
MIDI channels, as we’ve seen, are the pathways of communication between MIDI devices. MIDI channels are used to convey MIDI messages between devices based on their channel assignments.
MIDI tracks, on the other hand, refer to MIDI sequencing data that contains information about the notes, chords, melodies, and drum beats (in MIDI format) that are to be played by designated MIDI devices.
In our earlier example, the sequencer module in the master device stored MIDI tracks. The bass, melody, and drum sequences that you recorded each represented a MIDI track.
A MIDI song would essentially be stored as a series of MIDI tracks in a MIDI sequencer.
MIDI tracks work in a similar manner to audio tracks, but the information contained in a MIDI track is simply a set of MIDI instructions about which notes, chords, and drum beats to play (that can trigger designated MIDI devices)—it is not actual audio data. (Learn more about the difference between MIDI and digital audio data)
MIDI channels are pathways for communication between MIDI devices.
There are 16 MIDI channels available to work with.
MIDI channels convey information in the form of MIDI messages.
MIDI messages contain MIDI performance data—in the form of MIDI commands—and MIDI mode data, both of which help MIDI devices to know what to play and how to respond to the MIDI information that they receive.
By using channel assignments, you can control how MIDI devices respond to the MIDI information that they receive based on the channels they’re assigned to.
MIDI channel assignments, therefore, allow arrangements of several MIDI instruments to work together, each producing their own sound.
MIDI tracks contain sequences of MIDI notes, chords, and drum beats that come together to form a MIDI song. MIDI data of this type represents performance information that triggers which notes to play and when to play them on a MIDI device—it does not represent actual audio information.