您当前所在的位置:首页 » 中音技术 » 嵌入式合成器

嵌入式合成器

Peter Eggleston, Jennifer Hruska, John Teele原著  金毓镇译

摘要

    随着多媒体功能的日益扩展,消费者对于手持产品如无线设备、便携电脑、游戏机、软件应用和音乐合成器等设备的高保真音频也提出了更高的要求,希望更多的消费设备能够回放出动人的高品质音乐。为满足这一市场需求,设计师和生产厂商必需兼顾CPU处理能力、存储器和耗电等来自硬件的限制,尽力优化功能和用户选项。本文将就此问题展开讨论,讲述最流行的音频合成形式和系统构成。同时涉及有关标准,设计思路等内容。

背景

    与播放音乐或语言的音频回放设备不同,音频合成器(以下简称合成器)是从无到有地创建音乐声音,通过一个或更多算法模拟现实(或非现实)的乐器声音,因此经常把它们归入乐器一类。

    早期的合成器使用模拟或数字硬件实现这一功能,而当今速度足够快的处理器已经可以完全依赖数字信号处理(Digital Signal Processing,简称DSP)软件完成工作,因此有时也被称作“软件合成器”。它们通常输出用数字表述的波形,再经过D/A转换器转变成实际的音频。最常见的合成器输出数字波形使用脉冲编码调制(Pulse-code modulatio,简称PCM)编码,采样信号具有相同的比特数目和固定的长度间隔。PCM业已成为电脑和消费音频设备的数字音频标准。

    合成器需要接收指令告诉它演奏什么音符,使用哪种调制(诸如音高、幅度、滤波器等),音符需奏多长。通常还有为了创建声音所需的乐器及合成设置等。相对于同样一段音乐的实际录音,这些指令非常短小,因此音频合成技术在存储空间非常有限的便携式消费设备上广为使用。例如一段24秒的立体声音乐,44.1KHz采样率,作为.wav格式的文件输出要占用5.63MB存储空间;压缩为高质量的mp3格式可使容量下降到384KB;但是用MIDI格式仅需5KB空间。音频合成技术在手机电话复音铃声方面的广泛流行正是依靠了这项优势。同样,音频合成可以使游戏机和儿童玩具的音响使用远少于传统音频回放的存储器,因此大大降低了这些产品的成本。

MIDI

    MIDI(Musical Instrument Digital Interface)是控制音乐设备之间通讯的工业标准。MIDI数据不是音乐,而是告诉MIDI合成器如何发生音乐的指令。MIDI数据基本由以下成分构成:程序变化(Program change,即音色变化)事件定义哪件乐器被演奏;音符(Note)事件决定被演奏音符的音高相当于钢琴上哪个键,还附带这些音符的力度(击键力度大小);琴键被按下到抬起之间的时间即是音符的长度,同样被记录在MIDI文件内。通道化的这些数据允许在同一条MIDI线路内同时演奏16个不同的乐器声部。其他MIDI数据传达演奏家对合成器各种旋钮、按键的操作以及标准音调整,主音量控制等信息,以及其他有关系统功能的规定。

    由于MIDI标准创建于1980年代初期,不可能预料到日后的飞速发展。在以后的20多年里又根据市场和需要推出了更多规定。例如General MIDI(简称GM,通用MIDI)使合成器具有相同的规格和乐器音色排列,便于相互通用。General MIDI 2.0则在GM 1.0的基础上增添了更多功能和乐器。不久前推出的“可变规格的复音MIDI”(Scalable Polyphony MIDI,简称SP-MIDI)主要迎合手机电话复音铃声的特殊需要。

    对于把MIDI嵌入到到其它软件中的编程序者来说,最感兴趣的MIDI格式就是SMF和SP-MIDI。SMF(Standard MIDI File,标准MIDI文件)可以把有序的MIDI数据(通常称作“音序”)从一个软件或设备传送到其他软件或设备,不论它们使用什么操作系统平台。如今市场上许多MIDI乐曲都使用了标准MIDI文件格式。常见的SMF又分为格式0和格式1两种形式,格式0文件将各通道数据混合在一起按时间顺序串行排列成单比特数据流,便于实时播放。而格式1文件中各通道数据分别存放,因此在播放之前须将整个文件读进内存,再组织成播放数据流。许多嵌入式的合成器为了尽可能压缩内存,设计成只能读格式0文件,遇到格式1文件则要求在送到合成器播放之前转换成格式0文件。SP-MIDI规定提供了一套办法,让作者决定当播放MIDI文件遇到复音数目不够用的设备时舍弃哪些声部。具体做法是在MIDI文件中插入一段系统专用信息,定义各声部的优先权,播放时根据合成器的复音数(同时发音的数目)作出取舍。使用这套办法,MIDI音乐的制作者得以规定他的音乐播放怎样适应不同的设备。多方案的可操作性对开发者和最终用户都很重要:开发者可以使他的作品支持市场上尽可能多的设备;最终用户购买一套音乐即可以用于各种同类产品。

MIDI波表合成基础

    以波表为基础的MIDI合成是用数字采样回放模拟真实乐器最简单的手段。音频采样或称作“波形”存放在一个叫做“波表”的阵列中。为了充分节省存储空间,并不对每件乐器的每一个音符进行采样,每件乐器仅存储少量音符,而且有些采样数据可供多种乐器共享。为了能在任意音高上回放,合成器必须频繁改变存储的采样。常用的手法是以不同的速率读出采样数据――实际上是进行音频的再采样。用不同于原始采样的速率读出数据时必然要使用一个插值,或者用它创建一个新样本(获得较低的音高),或者用它取代原样本(获得较高的音高)。应用的插值算法经常要兼顾精度和噪声。精度更高的插值噪声较少,但需要加重处理器的负担。因此许多嵌入式的合成器使用线性插值,根据线性增量推算出两个邻近采样之间的插值。

    在“拿到”适当的采样之后,振荡器输出给低通滤波器和幅度调制器使声音成型。低通滤波器(LPF)确定样本的频率响应,经常使用2阶(非0)带谐振的滤波器,可以控制截止频率和谐振(Q值)。截止频率决定样本声音明亮或暗哑;谐振参数决定滤波器截止频率边界上的幅度大小,高的Q值让合成器发出类似老模拟合成器扫频特色的声音。有些嵌入式合成器省略了低通滤波器以减轻处理器负担,但是这样做需要加大波表的容量,储存更多波形。

    低通滤波器的输出送往数字控制的放大器,控制样本随时间而变化的音量。实际乐器的音量总是在变化中,例如鼓声开头非常响,但很快衰退下来。吉它声开头也比较响,慢慢衰退到最小。弦乐和铜管能始终维持它们的音量。许多合成音色有柔和的开始,演奏中逐渐变响。采样数据如果包含这些变化必然占据太多空间,合成器通常依靠包络发生器(Envelope Generator简称EG)来处理。典型的包络发生器含有起音、衰减、保持、释音四个阶段(Attack, Decay, Sustain, Release经常简写为ADSR),一般每件乐器有自己的包络,也有些合成器仅有一个共用的包络。

    合成器内的放大部分除了控制各件乐器的音量外,同时控制其它有关幅度的功能如MIDI声像、MIDI总音量、MIDI表情等。

    放大模块之后通常还有效果发生器,再经过D/A变换输出。常用的效果有:

●混响――建立房间的空间感。
●合唱――建立更宽、更厚的声音输出。
●激励/图形均衡器――增加对音色的调制,对回放硬件和较低的采样率进行补偿。
●3维激励器――增加声源的立体声宽度。

    其它经常伴随音频合成器出现的组件是MIDI分析器或播放器。MIDI播放器处理输入的MIDI文件,向合成器提供所需的控制信息和重建音乐使用的MIDI数据。

    插图:软件合成器的基本成分


 
发声控制

    为了对已经发声的样本进行音高、音量和音色等方面的调制,音频合成器通常至少有一个低频振荡器(LFO),两个包络发生器(EG1和EG2)。低频振荡器发生周期性的波形,用来调制幅度和振荡器的音高等,产生颤音或振音的效果。它的参数记载在波表的发声部分。包络发生器控制音量、音高和滤波器的作用已经在前面讲过。

    包络发生器,低频振荡器和低通滤波器的设计都需要服从MIDI规定。例如“可下载的声音格式1”(DLS1)要求使用由Attack, Decay, Sustain, Release组成的四段包络,EG1控制幅度,EG2控制振荡器的音高和低通滤波器的谐振频率,甚至LFO使用的波形也有规定。

复音

    给每一个“音符开”(Note On)指令分配一个合成器声音似乎是最起码的要求,但是因为受到CPU处理能力和存储器容量的限制,合成器不一定时刻都能满足这个要求,几乎所有的电子乐器都有一个复音数目(同时发音数目)的指标。如果接收到“音符开”指令时全部合成器声音都已经被分配了音符,合成器又不能“违抗”MIDI指令,此时它只好自行决定悄悄关断某个音符,为新到的音符腾出声音。这种行为有个不大光彩的名称:“窃取”(Stealing)。

    设计合成器时需要好好考虑如何对声音行窃,因为窃取的过程显然能被听见,而且不同的行窃算法或多或少地占用处理器资源。也有一些规定如SP-MIDI对于如何实施声音窃取作出了要求。

创建波表

    因为建立在采样基础上的音频合成的核心是记录有声音的波表,用它来驱动振荡器,所以创建这样的合成器的第一步也是最关键的一步就是获得所需的乐器采样。否则即使有最美好的设计,但样本的质量差,整体声音也就糟糕。样本必须避免任何来自背景和演奏者的杂音,具有适当的动态范围,所有音符的响度和音色必须统一。因此需要高度熟练的音乐家和最高品质的录音设备来保证波表的统一、平衡和干净。仅仅一件乐器拥有平衡的音阶是远远不够的,全部乐器都应拥有平衡的音阶,它们才能够在一起合奏乐曲。这里提出了高于工程技巧的要求,这项工作经常由受过专业训练,具有高分辨能力耳朵的音乐家承担。

    为合成器创建波表的一个明确目标就是获取最好的原始录音,尽可能减少样本的后期处理。虽然这样做会在录音阶段消耗更多经费和时间,但它的作用将体现在最终的可信度和音乐性结果上。

    声音设计从选择专业音乐家和声音最优秀的乐器开始,同时处理好录音的版权问题。录音过程中,乐器应安排在最自然的位置和状态。例如录套鼓时应把全部鼓摆放好并放置好麦克风,但是每次只录一件鼓。这样安排有利于音乐家在自然的状态下演奏,录出最可信的声音。

    录音设备要用最高品质的麦克风、前置放大和A/D转换器,信号路径尽可能保持干净,避免用调音台和不需要的均衡器。

    录音时让音乐家演奏单音,乐器能发出的全部音都要录,通常是按半音阶进行。考虑到身体疲劳的因素,铜、木管乐器也可以先录高、低音区。不同的力度(轻或响)要分别录音。其它如不同的拾音位置、不同的鼓槌、哨片、弱音器等也要考虑到。总之一件乐器能够发出的所有声音都要录下来。

    完成录音以后要做琴键映射,从成百上千个采样音符中挑选最好、最有用的放进波表。这项工作必须由非常有经验的声音设计师来做,他们知道怎样挑选。此时可能还要顺便做一些样本的后期处理如去除杂音、做循环、偶而为个别音符做均衡,以便与邻近的音符匹配。全部处理应当在24或32比特的精度下进行,尽量不露痕迹,尽可能保持原始录音的品质。

    做完琴键映射以后要给这些样本加上合成器控制,包括音乐的考虑和播放时的修饰,使这些录音最终成为合成器的音色。需要做的工作如:加上随时间和力度变化的滤波器;幅度包络控制整个发音时间的音量;音高调制;声音的布局等。为了让最后完成的波表能够正确回放MIDI文件,仔细观察各件乐器间的音量平衡,使多音色混合播放时表现最佳。

    制作为消费设备用的小型波表还有另外一项重要任务,就是在保证高品质输出的同时使用一些技术减小波表的尺寸。这里可能要用上音高和时间的压缩技术,特别的循环和采样率降低,均衡和其它手段。

音频品质和性能的考虑

    MIDI合成器的音频品质决定于多种因素,包括波表品质、合成引擎品质和结合具体硬件实施设计方案时的折衷考虑等。

    波表的品质主要取决于容量大小(一般总是容量大的波表声音更好)、被录音的乐器品质、负责创建波表的声音设计师的经验和熟练程度。如上所述,人的因素在波表设计中举足轻重,对于小型波表更加重要。

    决定波表尺寸的3个主要因素是:采样率,采样精度和采样长度。其中最直接影响到品质的是采样率,根据奈奎斯特原理,采样率决定采样录音的最高频率,采样率应该选择在最高录音频率的两倍以上。

    低于22050Hz的采样率一般认为是低品质,采样率高于44100Hz也没有必要,因为44100Hz已经是CD品质。较低的采样率少占CPU资源,当然也少用存储器,所以往往被CPU资源和存储器很有限的设备采用。不过也有优秀的声音设计师和杰出的合成器设计让低采样率产生明亮的声音。

    比特精度(bit depth,即采样精度)。存储音频采样的字长(存储精度)和合成器进行内部处理的字长(内部处理精度)都将影响到回放品质。虽然16比特的波表具有与CD一样的品质和噪声性能,但如果录音和处理非常完美,8比特的波表仅用一半存储量也能得到优秀、低噪声的音频结果。同时因为8比特的波表减少了CPU对存储器的访问,也可以减轻CPU负担。

    采样长度经常成为波表声音是否真实可信的决定因素。如果小型波表使用44100Hz采样率和16比特采样精度规格,但是将采样长度缩到很短,结果会使采样缺乏真实感。相反,如果使用22050Hz采样率和8比特采样精度,同样的存储空间可以放下4倍长的采样,乐器声音听起来会更加真实。

    除波表之外影响到合成器音频输出品质的因素还有复音数,数据修改速度和效果器等。如果MIDI音序器要求合成器发出比标称复音数更多的声音,智能化的声音窃取设计将掩盖掉出现的问题。此外灵巧的合成器设计可以缩减每个声音所需的指令,全力产生更高品质的声音。

    合成器内部的数据修改速率影响到多种与时间密切相关的部件如LFO,包络和音符开始等。软件合成器的设计必须找到性能和效益之间的最佳折衷方案。小一些的数据修改间隔将使声音更好,但是要增加CPU负担。较长的数据修改间隔会影响音质,甚至出现“颗粒”感。

    用数字合成原理工作的合成器,尽力减少量化噪声同样是一个重要的设计课题。例如再次采样技术被用来改变存储样本的音高,但同时产生的量化噪声限制了音高的变化范围,泛音接近采样率的样本受影响更加严重。在插值之后使用低通滤波器有助于消除量化噪声,但是真正的专业滤波器用在软件中造价不菲。此外使用超采样有助于消除量化噪声,但将使波表尺寸变大。

(完)

 

相关产品

Copyright ©2013 Centrmus. All Rights Reserved. Privacy Policy/Your China Privacy 中音公司版权所有,未经允许不得转载,
地址:北京朝阳区建国路88号SOHO现代城D座0712室 电话: 01085801115 传真: 01085801114 邮编:100022