MIDI channels (which range in number from 1 to 16) allow MIDI messages to be sent to specific devices within a MIDI network. Any connected MIDI device can be set to receive a specific channel; the device then responds only to MIDI messages specified for that channel. Other devices not set to that channel do not respond to those messages. For example, consider a synthesizer set to channel 5. It plays notes when it receives Note On messages for channel 5. It does not play notes when it receives Note On messages for channel 7 or any channels other than channel 5.
Today's synthesizers may combine the features of several polyphonic synthesizers into one device. As a result, one synthesizer can now listen to several MIDI channels simultaneously and devote many voices to each channel. The voices dedicated to a single channel all play using a single program, so they have the same timbre and sound like a single instrument. Each channel can be set to a different program, so the net result can be, on a single MIDI device, one instrument sound (a program) playing for each channel.
(The unfortunate MIDI term "program" seems designed to confuse, with different meanings for a programmer, who knows it as a piece of software, or for a classical musician, who knows it as a collection of musical pieces. In the world of MIDI, a program is a preprogrammed sound design, the equivalent of an instrument template in the Audio folio. A better word for program is "patch," but it is not commonly used in the world of MIDI, so "program" is used in this chapter.)
The Portfolio Music library sets up 3DO audio to act as a virtual MIDI device. This device is capable of receiving messages on many different MIDI channels, and can play using a different Audio folio instrument template (a different program) for the notes of each channel. It is useful to think of each channel specified within a sequence as a collection of notes to be played using a distinct instrument template. For example, channel 1 notes can be played using a sampled guitar template, while channel 2 notes can be played using a sawtooth wave template. The instrument template used by the channel can be changed at any time. For example, channel 1 can change from a sampled guitar template to a sampled piano template or to any other available instrument template.
A MIDI score in playback is controlled by a series of MIDI timing clock messages sent to a sequencer that stores the score. The sequencer counts the MIDI clocks it receives and sends out the appropriate MIDI messages when it perceives the right amount of time has passed. For example, consider a sequence with a series of quarter notes. The sequencer plays the first quarter note when it receives the first MIDI timing clock message. Twenty-four timing clocks later, it plays the next quarter note. Twenty-four timing clocks after that, it plays the next quarter note. And so on, until there are no more notes left to play.
Because timing clocks are a completely relative time unit, the rate of the timing clocks sent to the sequencer controls the tempo of the score playback. Send clocks at a faster rate, and the score plays faster. Send clocks at a slower rate, and the score plays slower.