Midi系列文章第一辑
图2-13 使用PC机构成的MIDI系统[6]
使用PC机构造MIDI系统可以有不同的方案。例如,可把MIDI接口和MIDI声音模块组合在PC添加卡上。多媒体个人计算机MPC(Multimedia PC)规范就要求PC添加卡上必须有这样的声音模块,称为合成器(synthesizer)。通过已有的电子波形来产生声音的合成器称为FM合成器(FM synthesis),而通过存储的乐音样本来产生声音的合成器称为波表合成器(wave table synthesis)。
MPC(Multimedia PC)规格需要声音卡的合成器是多音色(muti-timbral)和多音调(polyphonic)的合成器。多音色是指合成器能够同时播放几种不同乐器的声音,在英文文献里常看到用voices和patches来表示,音色就是把一个人说话(或一种乐器)的声音与另一个人说话(或另一种乐器)的声音区分开来的音品;多音调是指合成器一次能够播放的音符(note)数。MPC规格定义了两种音乐合成器:基本合成器(Base-level synthesizer)和扩展合成器(Extended synthesizer),基本合成器和扩展合成器之间的差别如表01所示。
表2-04 基本合成器和扩展合成器之间的差别
基本合成器必须具有同时播放3种旋律音色和3种打击音色(鼓乐)的能力,而且还必须具有同时播放6个旋律音符和3个打击音符的能力,因此,基本合成器具有9种音调;扩展合成器要能够同时播放9种旋律音色和8种打击音色。
MIDI消息
MIDI设备使用的一系列MIDI音符,可被认为是告诉音乐合成器如何播放一小段音乐的指令。因为MIDI数据是一套音乐符号的定义,而不是实际的音乐声音,因此MIDI文件的内容被称为MIDI消息(MIDI messages)。一个MIDI消息由1个8位的状态字节并通常跟着2个数据字节组成。在状态字节中,最高有效位设置成“1”,低4位用来表示这个MIDI消息是属于哪个通道,4位可表示16个可能的通道,其余3位的设置表示这个MIDI消息是什么类型的消息。MIDI消息可分成通道消息(Channel Messages)和系统消息(System Messages)两大类,如图12-14所示。
MIDI通道消息可分成通道声源消息(Voice Messages)�携带的演奏数据,和通道方式消息(Mode Messages)—表示合成器响应MIDI数据的方式;MIDI系统消息分成公共消息(Common Messages)—标识在系统中的所有接收器、实时消息(Real Time Messages)—用于MIDI部件之间的同步和独占消息(Exclusive Messages)—厂商的标识代码。
MIDI音序器和标准MIDI文件
MIDI合成器实时接收和处理MIDI消息(MIDI messages)。当合成器接收到一个“note on (乐音开)”MIDI消息时就演奏相应的声音,当接收到一个“note off (乐音关)”MIDI消息时就停止演奏。如果MIDI数据源是乐器键盘,“note on”消息就实时产生,在像这样的实时应用中,就无需与MIDI消息一起发送一个定时信息。如果MIDI数据存储成数据文件,或者使用音序器编辑的数据文件,MIDI消息就需要某种形式的定时标记(time-stamping)。
国际MIDI协会(International MIDI Association)出版了标准MIDI文件(Standard MIDI Files)规范,该标准说明了处理定时标记MIDI数据的一种标准化方法。这种方法适合各种应用软件共享MIDI数据文件,这些软件包括音序器、乐谱软件包和多媒体演示软件。
标准MIDI文件(Standard MIDI File)规范定义了3种MIDI文件格式,MIDI音序器能够管理文件标准规定的多个MIDI数据流,即声轨(tracks)。MIDI文件格式0(Format 0)规定所有MIDI音序数据(MIDI sequence data)必须存储在单个声轨上,它仅用于简单的单声轨设备;MIDI文件格式1(Format 1)规定数据以一个声轨集的方式存储;MIDI文件格式2(Format 2)可用几个独立模式存储数据。
合成器的多音调和多音色
合成器或者声音发生器的多音调(polyphony)是一次演奏多个音符(note)的能力。大多数早期的音乐合成器是单音调的,即一次仅演奏一个音符。如果在装配有单音调合成器(monophonic synthesizer)的键盘上同时按下5个键,只能听到一个音符的声音;如果在装配有能支持4个音调的合成器的键盘上同时按下5个键,可产生4个音符的声音。许多现代的声音模块有16,24或者32个音符的复调音。
合成器或者声音发生器能够产生的不同声音一般用配音(patche)、指令(program)、算法(algorithm)、声音(sound)或者音色(timbre)来表示。现代合成器通常使用指令号(program number)来表示它们产生的不同声音。使用指令号(program number)或者配音号(patch number)来指定想要获得的声音(sound)。例如,一个声音模块可使用配音#1(patch number 1)来产生钢琴声,配音#36(patch number 36)产生低音弦乐器声。配音号和声音之间的对关系称为配音映射(patch map)。一个MIDI Program Change(MIDI指令变化)消息可用来告诉在给定通道上正在接收消息的设备要使用新的乐器声。例如,使用指令号36的数据字节(见附录1:General MIDI program number)并通过发送一个MIDI Program Change消息,音序器可在通道4上设置演奏低音弦乐器声(fretless bass sounds)。
如果一个合成器或者声音发生器能够同时产生2个或者2个以上的不同乐音,就说这个合成器或者声音发生器是多音色(multi-timbral)的。例如,如果一个合成器能够同时演奏5个音调(notes),就说它是多音调的(polyphonic);如果一个合成器也能够同时产生钢琴声(piano sound)和低音(bass sound),就说它是一个多音色(multi-timbral)合成器。如果有24个音调(同时播放24个音符)并且是6种音色(同时产生6 种不同音色)的一种合成器或者声音模块,它可合成6种管弦乐队的声音。音序器可把钢琴部分的MIDI消息发送给通道1,低音部分的MIDI消息发送给通道2,萨克斯管部分的MIDI消息发送给通道3,鼓声部分的MIDI消息发送给通道10,等。一个多音色合成器(multi-timbral synthesizer)的多音调(polyphony)通常是动态分配的。在上面的例子中,例如5种声源可用于钢琴,2个声源用于低音,一个用于萨克斯管,6个声源用于鼓乐,剩下10没有使用。
通用MIDI(GM)
通用MIDI规范(General MIDI Specification)是由国际MIDI协会(International MIDI Association)颁布的,用于通用MIDI乐器(General MIDI Instruments)。该规范包括通用MIDI声音集(General MIDI Sound Set)即配音映射(patch map)、通用MIDI打击乐音集(General MIDI Percussion Set)即打击乐音与音符号之间的映射、以及一套通用MIDI演奏(General MIDI Performance)能力,包括声音数目和MIDI消息类型等。
通用MIDI系统规定MIDI通道1~9和11~16用于旋律乐器声,而通道10用于以键盘为基础的打击乐器声。
【打印此页】【返回首页】 |