2.4 音乐合成和MIDI
数字音频实际上是一种数字式录音/重放的过程,它需要很大的数据量。在多媒体系统中,除了用数字音频的方式之外,还可以用采样合成的方式产生音乐。音乐合成的方式是根据一定的协议标准,采用音乐符号记录方法来记录和解释乐谱,并合成相应的音乐信号,这也就是MIDI(Musical Instrument Digital Interface)方式。MIDI是乐器数字接口的缩写,泛指数字音乐的国际标准,它是音乐与计算机结合的产物。MIDI不是把音乐的波形进行数字化采样和编码,而是将数字式电子乐器弹奏过程记录下来,如按了哪一个键、力度多大、时间多长等。当需要播放这首乐曲时,系统根据记录的乐谱指令,通过音乐合成器生成音乐声波,经放大后由扬声器播出。
音乐合成器生成的音乐采用MIDI文件存储。MIDI文件是用来记录音乐的一种文件格式,文件后缀是“.mid”或者“.midi”。这种文件格式非常特殊,其中记录的不是音频数据,而是演奏音乐的指令,不同的指令与不同的乐器对应,就像乐队演奏交响曲一样,每一种乐器发出不同的声音,合在一起组成听众听到的音乐。MIDI文件的这种特殊结构方便了音乐创作人,他们不用学习计算机中音频数据的编码原理,用他们熟悉的传统的音乐创作方式就能创作出数字音乐。同时这种特殊结构还使MIDI文件非常小,同一首音乐,保存为WAV文件需要几兆字节,保存为MIDI文件可能只需要几百字节,这就是很多手机铃声都是MIDI文件格式的原因。当然这种特殊结构也限制了MIDI的使用范围,由于演奏指令与乐器对应,因此,MIDI通常被用来记录纯音乐,而不用于表示一般的声音,如人声、自然界发出的声音等。
一个MIDI文件包括一个头块和若干个轨迹块。每个轨迹块可以包含若干个指令,每个指令的基本格式是一样的,在基本格式的基础上各个指令有所差别,指令可以用来记录一个声音、一个系统命令等。
2.4.1 计算机上合成音乐的产生过程
MIDI音乐的产生过程如图2.12所示。MIDI电子乐器通过MIDI接口与计算机相连。这样,计算机可通过音序器软件来采集MIDI电子乐器发出的一系列指令。这一系列指令可记录到以.mid被为扩展名的MIDI文件中。在计算机上,音序器可对MIDI文件进行编辑和修改。最后,MIDI指令被送往音乐合成器,由合成器将MIDI指令符号进行解释并产生波形,然后通过声音发生器送往扬声器播放出来。
图2.12 MIDI音乐的产生过程
2.4.2 MIDI音乐合成器
计算机系统把MIDI指令送到合成器,由合成器产生相应的声音。同样的乐谱如果选择不同的乐器播放,会听到不同的音色。MIDI制造商协会制定了普通MIDI规格,一般被称为GM规格。GM规定了128种音色的声音排序,即它支持128种乐器声音。当然还有更为详细的MIDI标准,但普通音频卡只要支持GM规格就可以了。
MIDI标准提供了16个通道。按照所用通道数的不同,合成器又可分成基本型和扩展型两种,如表2.2所示。这两种合成器的差别在于能够同时播放的乐器数不同。
表2.2 两种合成器对应的通道号
MIDI合成的产生方式有两种,即FM(frequency modulation)合成和波形表(wavetable)合成。FM是使高频振荡波的频率按调制信号规律变化的一种调制方式。FM频率调制合成是通过硬件产生正弦信号,再经处理合成音乐。合成的方式是将波形组合在一起。这种方式在理论上有无限多组波形,既可以模拟任何声音,又可以任意修改音色,但实际上是做不到的。目前的音频卡使用最广的FM音源OPL III也只有4个正弦波发生器来模拟音色,所以用FM音源发出GM中的乐器声时,其真实度相当差,因为较高或较低频率的信号失真度很大。
目前较高级的音频卡一般都采用波形表合成方式。波形表的原理是在ROM中已存储了各种实际乐器的声音采样,当需要合成某种乐器的声音时,调用相应的实际声音采样,合成该乐器的乐音。显然,ROM存储器的容量越大,合成的效果越好,但价格也越贵。