Midi系列文章第一辑
MIDI简介
MIDI是Musical Instrument Digital Interface的首写字母组合词,可译成“电子乐器数字接口”。用于在音乐合成器(music synthesizers)、乐器(musical instruments)和计算机之间交换音乐信息的一种标准协议。从20世纪80年代初期开始,MIDI已经逐步被音乐家和作曲家广泛接受和使用。MIDI是乐器和计算机使用的标准语言,是一套指令(即命令的约定),它指示乐器即MIDI设备要做什么,怎么做,如演奏音符、加大音量、生成音响效果等。MIDI不是声音信号,在MIDI电缆上传送的不是声音,而是发给MIDI设备或其它装置让它产生声音或执行某个动作的指令。
MIDI标准之所以受到欢迎,主要是它有下列几个优点:生成的文件比较小,因为MIDI文件存储的是命令,而不是声音波形;容易编辑,因为编辑命令比编辑声音波形要容易得多;可以作背景音乐,因为MIDI音乐可以和其它的媒体,如数字电视、图形、动画、话音等一起播放,这样可以加强演示效果。
产生MIDI乐音的方法很多,现在用得较多的方法有两种:一种是(frequency modulation,FM)合成法,另一种是乐音样本合成法,也称为波形表(Wavetable)合成法。这两种方法目前主要用来生成音乐。在介绍MIDI之前先简单介绍FM合成法,然后介绍乐音样本合成法,再介绍MIDI系统。
FM合成声音
音乐合成器的先驱Robert Moog采用了模拟电子器件生成了复杂的乐音。20世纪80年代初,美国斯坦福大学(Stanford University)的一名叫John Chowning的研究生发明了一种产生乐音的新方法,这种方法称为数字式频率调制合成法(digital frequency modulation synthesis),简称为FM合成器。他把几种乐音的波形用数字来表达,并且用数字计算机而不是用模拟电子器件把它们组合起来,通过数模转换器(digital to analog convertor,DAC)来生成乐音。斯坦福大学得到了发明专利,并且把专利权授给Yamaha公司,该公司把这种技术做在集成电路芯片里,成了世界市场上的热门产品。FM合成法的发明使合成音乐工业发生了一次革命。
FM合成器生成乐音的基本原理如图2-07所示。它由5个基本模块组成:数字载波器、调制器、声音包络发生器、数字运算器和模数转换器。数字载波器用了3个参数:音调(pitch)、音量(volume)和各种波形(wave);调制器用了6个参数:频率(frequency)、调制深度(depth)、波形的类型(type)、反馈量(feedback)、颤音(vibrato)和音效(effect);乐器声音除了有它自己的波形参数外,还有它自己的比较典型的声音包络线,声音包络发生器用来调制声音的电平,这个过程也称为幅度调制(amplitude modulation),并且作为数字式音量控制旋钮,它的4个参数写成ADSR,这条包络线也称为音量升降维持静音包络线(Attack,decay,sustain,release,ADSR)包络线。
图2-07 FM声音合成器的工作原理
在乐音合成器中,数字载波波形和调制波形有很多种,不同型号的FM合成器所选用的波形也不同。图2-08是Yamaha OPL-III数字式FM合成器采用的波形。
图2-08 声音合成器的波形
各种不同乐音的产生是通过组合各种波形和各种波形参数并采用各种不同的方法实现的。用什么样的波形作为数字载波波形、用什么样的波形作为调制波形、用什么样的波形参数去组合才能产生所希望的乐音,这就是FM合成器的算法。
通过改变图2-07中所示的参数,可以生成不同的乐音,例如:
改变数字载波频率可以改变乐音的音调,改变它的幅度可以改变它的音量。
改变波形的类型,如用正弦波、半正弦波或其它波形,会影响基本音调的完整性。
快速改变调制波形的频率(即音调周期)可以改变颤音的特性。
改变反馈量,就会改变正常的音调,产生刺耳的声音。
选择的算法不同,载波器和调制器的相互作用也不同,生成的音色也不同。
在多媒体计算机中,图2-07中的13个声音参数和算法共14个控制参数以字节的形式存储在声音卡的ROM中。播放某种乐音时,计算机就发送一个信号,这个信号被转换成ROM的地址,从该地址中取出的数据就是用于产生乐音的数据。FM合成器利用这些数据产生的乐音是否真实,它的真实程度有多高,这就取决于可用的波形源的数目、算法和波形的类型。
乐音样本合成声音
使用FM合成法来产生各种逼真的乐音是相当困难的,有些乐音几乎不能产生,因此很自然地就转向乐音样本合成法。这种方法就是把真实乐器发出的声音以数字的形式记录下来,播放时改变播放速度,从而改变音调周期,生成各种音阶的音符。
乐音样本的采集相对比较直观。音乐家在真实乐器上演奏不同的音符,选择44.1 kHz的采样频率、16位的乐音样本,这相当于CD-DA的质量,把不同音符的真实声音记录下来,这就完成了乐音样本的采集。
乐音样本通常放在ROM芯片上,ROM是超大规模集成电路(very large scale integrated,VLSI)芯片。使用乐音样本合成器的原理框图如图2-09所示。
图2-09 乐音样本合成器的工作原理
乐音样本合成器所需要的输入控制参数比较少,可控的数字音效也不多,大多数采用这种合成方法的声音设备都可以控制声音包络的ADSR参数,产生的声音质量比FM合成方法产生的声音质量要高。
电子乐器数字接口(MIDI)系统
MIDI协议提供了一种标准的和有效的方法,用来把演奏信息转换成电子数据。MIDI信息是以“MIDI messages”传输的,它可以被认为是告诉音乐合成器(music synthesizer)如何演奏一小段音乐的一种指令,而合成器把接收到的MIDI数据转换成声音。国际MIDI协会(International MIDI Association)出版的MIDI 1.0规范对MIDI协议作了完整的说明。
MIDI数据流是单向异步的数据位流(bit stream),其速率为31.25 kbps,每个字节为10位(1位开始位,8位数据位和1位停止位)。MIDI乐器上的MIDI接口通常包含3种不同的MIDI连接器,用IN(输入), OUT(输出)和THRU(穿越)。MIDI数据流通常由MIDI控制器(MIDI controller)产生,如乐器键盘(musical instrument keyboard),或者由MIDI音序器(MIDI sequencer)产生。MIDI控制器是当作乐器使用的一种设备,在播放时把演奏转换成实时的MIDI数据流,MIDI音序器是一种装置,允许MIDI数据被捕获、存储、编辑、组合和重奏。来自MIDI控制器或者音序器的MIDI数据输出通过该装置的MIDI OUT连接器传输。
通常,MIDI数据流的接收设备是MIDI声音发生器(MIDI sound generator)或者MIDI声音模块(MIDI sound module),它们在MIDI IN端口接收MIDI信息(MIDI messages),然后播放声音。图2-10表示的是一个简单的MIDI系统,它由一个MIDI键盘控制器和一个MIDI声音模块组成。许多MIDI键盘乐器在其内部既包含键盘控制器,又包含MIDI声音模块功能。在这些单元中,键盘控制器和声音模块之间已经有内部链接,这个链接可以通过该设备中的控制功能(local control)对链接打开(ON)或者关闭(OFF)。
图2-10 简单的MIDI系统
单个物理MIDI通道(MIDI channel)分成16个逻辑通道,每个逻辑通道可指定一种乐器,如图2-11所示。在MIDI信息(MIDI messages)中,用4个二进制位来表示这16个逻辑通道。音乐键盘可设置在这16个通道之中的任何一个,而MIDI声源或者声音模块可被设置在指定的MIDI通道上接收。
图2-11 MIDI的通道概念[6]
在一个MIDI设备上的MIDI IN连接器接收到的信息可通过MIDI THRU连接器输出到另一个MIDI设备,并可以菊花链的方式连接多个MIDI设备,这样就组成了一个复杂的MIDI系统,如图2-12所示。在这个例子中,MIDI键盘控制器对MIDI音序器(MIDI sequencer)来说是一个输入设备,而音序器的MIDI OUT端口连接了几个声音模块。作曲家可使用这样的系统来创作几种不同乐音组成的曲子,每次在键盘上演奏单独的曲子。这些单独曲子由音序器记录下来,然后音序器通过几个声音模块一起播放。每一曲子在不同的MIDI通道上播放,而声音模块可分别设置成接收不同的曲子。例如,声音模块#1可设置成播放钢琴声并在通道1接收信息,模块2设置成播放低音并在通道5接收信息,而模块2设置成播放鼓乐器并在通道10上接收消息等。在图2-12中使用了多个声音模块同时分别播放不同的声音信息。这些模块也可以做在一起构成一个叫做多音色(multitimbral)的声音模块,它同样可以起到同时接收和播放多种声音的作用。
图2-12 复杂MIDI系统[6]
图2-13是用PC机构造的MIDI系统,该系统使用的声音模块就是这样一种单独的多音色声音模块。在这个系统中,PC机使用内置的MIDI接口卡,用来把MIDI数据发送到外部的多音色MIDI合成器模块。像多媒体演示程序、教育软件或者游戏等应用软件,它们把信息通过PC总线发送到MIDI接口卡。MIDI接口卡把信息转换成MIDI消息(MIDI messages),然后送到多音色声音模块同时播放出许多不同的乐音,例如钢琴声、低音和鼓声。使用安装在PC机上的高级的MIDI音序器软件,用户可把MIDI键盘控制器(MIDI keyboard controller)连接到MIDI接口卡的MIDI IN端口,也可以有相同的音乐创作功能。
【打印此页】【返回首页】 |