图14:各种流行的API技术
现在让我们讨论音频引擎中API编程的应用。可供选择的选项并不多:Windows Multimedia, Direct Sound, OpenAL, Aureal A3D。
不幸的是,Aureal A3D 的驱动仍旧臭虫(bug)连篇,在目前最流行的Windows 2000和XP操作系统,它工作效率的稳定性仍然非常差。
视窗媒体系统(Windows Multimedia system)是从早期的Windows 3.1继承而来的最基本的声音再现系统。它较大的缓冲会造成比较大的延迟,所以在游戏中很少有应用;但是,某些准职业声卡使用的WinMM为WDM驱动作了特别的优化。
OpenAL是Loki Entertaiment公司的跨平台API解决方案,与OpenGL类似。它被Creative推动作为Direct Sound可供选择之一。该主意是很好的,但现实却是残酷的,因为它的效果比较差。此外,Loki Entertaiment在最近已经宣布了破产。我们希望新的可供选择的声音API尽快出现,因为OpenAL对程序员们来说是简直就是恶梦。然而,NVIDIA在最近发布了它nForce 芯片组里支持的OpenAL硬件驱动,效果让人好到不相信。
Direct Sound 和 Direct Sound 3D 是目前最优秀的API。它们现在还没有势均力敌的对手,它有点自命不凡;毕竟,它能够在没有任何辅助的前提下,能够真实地重现声音的效果。
这些硬件API(拥有硬件驱动程序的API,而非通过DirectSound或者WinMM来模拟声音的再现),它们被称为包装(使用准备好的软-硬接口程序,来创建它们自己的应用程序接口)。
作为规则,每个游戏都有它自己打包好的应用程序接口。目前有很多这类型的API组件包(它们没有真正的硬件支持):Miles Sound System, RenderWare Audio, GameCoda, FMOD, Galaxy, BASS, SEAL。
MilesSS是其中最著名之一 - 2700种游戏完全使用了该组件包。 它获得了Intel RSX技术的许可,现在能够作为软件3D Sound的可选选项择之一。该技术有很多可供选择的功能,但这不足以弥补它的缺陷:它仅能够应用在Win32和Mac平台,并且需要极昂贵的授权费用。
Galaxy Audio原被开发为用于虚幻,现在它使用在所有基于虚幻引擎的游戏上;但Unreal 2却是基于OpenAL,这就是为什么我们可以认为Galaxy已经死了的原因。
Game coda和RenderWare Audio 分别来自Sensaura 和Renderware,它们具有几乎相同的大小,都支持PC,PS2,GameCube,XBOX还有其它很多的特性,但它的授权费用也是非常的昂贵。
FMOD,最近引入的技术,它具有广泛的功能选择和对API技术的完美支持,它占据了目前的领导地位。
EAX(环境音效果扩展)
EAX全名为Environmental Audio Extension,这是创新公司在推出SB Live声卡时所推出的API插槽标准,主要是针对一些特定环境,如音乐厅、走廊、房间、洞窟等,作成声音效果器,当电脑需要特殊音效时,可以透过DirectX和驱动程序让声卡处理,可以展现出不同声音在不同环境下的反应,并且通过多件式音箱的方式,达到立体的声音效果。EAX在刚推出时为1.0版,目前是4.0版,目前许多游戏都支持此项规格。
EAX Advanced HD (高品质音频及3D音频技术)
在2001年,Creative宣布了Audigy声卡和新的称为EAX Advanced HD的EAX函数。它包括听众可以精确进行调整的25个参数和18个用于源的参数(其中两个用于新的封闭效果)。
图15:EAX Advanced HD 模式
。
● 用户可选的设置,可针对耳机、2、4 或 5.1 音箱系统及外接A/V功放系统进行优化
● Dolby 数码音频解码以模拟或数字模式输出至5.1音箱
● 可升级的 3D 音频架构
● 游戏中硬件加速EAX ADVANCED HD
● Creative 多音箱环绕 (CMSS) 技术可将任意的单声道或立体声音源处理为 360 度的音效
● EAX预置效果-用户可选、模拟声学环境的 DSP 模式
● 高级的时间缩放技术在不改变声音频率的情况下调节曲目播放的速度
● 音频去噪功能去除录音磁带的背景噪声及CD光盘爆音
这些效果并不是典型的真实效果。它们用于创建情绪的波动,例如,如果你感到晕眩,兴奋等等。我们还有可以调制的深度(0....1)和调制的时间(0.4....4秒)。
EAX4 (EAX Advanced HD 版本4)
2003年3月,Creative 发布了EAX Advanced HD 版本 4,预计将在4月份底或者5月初开始开始正式提供。可惜的是,Creative 并没有对它的技术细节进行详细的描述。EAX3与EAX4的区别也只是概念上的。
EAX Advanced HD 版本4具有以下的新元素:
-
工作室质量效果(Studio quality effects )
-
多效果插槽(Multiple effect slots)
-
多环境和区域效果(Multiple Environments and Zoned effects)
工作室质量效果
EAX4 提供11种工作室质量效果。你能够在2D和3D源中选择以下的效果。
-
AGC Compressor(压缩) - 自动调节音源音量的水平
-
Auto-Wah - 自动调节Wah pedal的版本
-
Chorus(和音) - 使单个乐器能够发出多个乐器的声音
-
Distortion (失真)- 模拟“过度”,结它放大器
-
Echo - 带入运动和扩展源的音频空间
-
Equalizer(均衡器) - 4-波段均衡器
-
Flanger - 产生呼啸的效果
-
Frequency Shifter(移频器):用于输入信号
-
Vocal Morpher(声音元素)
-
Pitch Shifter (定调移位)
-
Ring Modulator (环形调制器)
-
Environment Reverb - EAX的基本组件
多效果插槽
你可以加入多种的效果。例如,你能够同时听到几个环境的声音,或者增加失真到环境的渐变效果。
图17:EAX Advanced HD v3的特定情节
在EAX4中,每个源和听众都有它们自己的环境;从源传过来的声音在它自己和听众的环境都在扩散;封闭,障碍和排斥同时在源和听众上应用。因此我们能够获得环境和听众之间声音的互相干扰作用。
区域效果
区域的概念与房间或者环境的非常类似。
区域效果是我们最理想的技术,但是它的实现应用要远比理论困难。目前面临的主要困难是,要找出源的位置,修正装载每个源的最近区域和跟踪每个源的扩散、封闭、障碍参数。当然,我们并不需要使用EAX4提供的所有效果;我们仅需要使用现实工作中需要的效果就可以了。