迄今为止,我已经讨论了两条MIDI讯息,第一条是Note On:
90 kk vv
其中,kk是键号(0到127),v v是速度(0到127)。0速度表示Note Off命令。第二条是Program Change:
C0 pp
其中,pp的范围是从0到127。这些是典型的MIDI讯息。第一个位元组称作「状态」位元组。根据位元组的状态,它通常後跟0、1或2位元组的「资料」(我即将说明的「系统专有」讯息除外)。从资料位元组中分辨出状态位元组很容易:高位总是1用于状态位元组,0用于资料位元组。
然而,我还没有讨论过这两个讯息的普通格式。Note On讯息的普通格式如下:
9n kk vv
而Program Change是:
Cn pp
在这两种情况下,n表示状态位元组的低四位元,其变化范围是0到15。这就是MIDI「通道」。通道一般从1开始编号,因此,如果n为0,则代表通道1。
使用16个不同通道允许一条MIDI电缆传输16种不同声音的讯息。通常,您将发现MIDI讯息的特殊字串以Program Change讯息开始,为所用的不同通道设定声音,而字串的後面是多条Note On和Note Off命令。再後面可能是其他的Program Change命令。但任何时候,每个通道都只与一种声音联系。
让我们作一个简单范例:假定我已经讨论过的键盘控制能够同时产生用于两条不同通道-通道1和通道2-的MIDI讯息。透过按下键盘上的按钮将两条Program Change讯息发送给合成器:
C0 01
C1 05
现在设定通道1用于程式2,并设定通道2用于程式6(回忆通道代号和程式代号都是基于1的,但讯息中的编码是基于0的)。现在按下键盘上的键时,就发送两条Note On讯息,一条用于一个通道:
90 kk vv
91 kk vv
这就允许您和谐地同时播放两种乐器的声音。
另一种方法是「分开」键盘。低键可以在通道1上产生Note On讯息,高键可以在通道2上产生Note On讯息。这就允许您在一个键盘上独立播放两种乐器的声音。
当您考虑PC上的MIDI编曲软体时,使用16个通道将更为有利。每个通道都代表不同的乐器。如果有能够独立播放16种不同乐器的合成器,那么您就可以编写用于16个波段的管弦乐曲,而且只使用一条MIDI电缆将MIDI卡与合成器连结起来。