Miles Sound System

Miles SDK Features

Miles Sound System为高品质音效和音乐表演的需要贡献了一个通用的强大的方案。 Miles 提供了各种音频回放资源,以适应那些甚至最难以满足要求的多媒体和娱乐应用的需要,包括一个出色的特性组合,这是其他任何PC声音系统所无法匹敌的。 从在1991年它的简陋出生开始,Miles Sound System SDK在计算机游戏互动音频和教育软件产品方面已经确立了一个业界范围的标准。 Miles已经将声音和音乐带入全球成千上万的PC和Console游戏玩家的生活之中。

要对Miles所能达到的深度和广度有一个认识,最好的方式是查看一下这个SDK的主要功能性简介。 如果您有任何问题,请随时发邮件给我们,或者给我们来电 425.893.4300.

Miles有非常多的特性,因此我们将这页分成一下几个部分:高级声音创作, 高级试音, 数字音频支持, Bink Audio 支持, MP3 支持, 3D 音频支持, DSP 数字过滤器支持, 平台支持, and 源代码细节.

高级声音创作

Miles 9 具有高级创作工具,它为尽可能快地将声音加入到游戏而设计。要将声音准备好播放,在从explorer拖曳一个wav后只需要几次点击。 多选操作允许您一次性为巨量的声音设置属性,而且一个完全undo堆栈让您有信心做各种尝试。

一个声音听起了怎么样的各个方面都暴露出来并可在Miles Studio里进行细小的微调。 从混响,到DSP过滤器,到空间化 - 将游戏完全按您所想的发出声音变得从未有过的容易。

高级试音

全新加入到Miles 9的是试音。现在您的游戏可以连到Miles Studio,发送所有的声音事件来进行再检查。 不仅仅是重新检查,您能够一遍一遍重放所录制的部分,调整声音和参数让那部分声音听起来完全正确。 所录制的声音能够保存下来,以后还可以再加载进来进行声音复原测试。

还有更多!您也能够发送这些微调回去游戏,让游戏使用更新过的声音而 无需重新启动游戏!没有什么比暂停游戏,调整声音,然后用新数据继续游戏这样更让人开心的了。

数字音频支持

Miles Sound System包含了前所未有的数字音频支持。在有数字音频支持后,有太多重要的事情您会想通过MSS API来做了。

Miles的核心超快,汇编级优化(x86, MMX, and PPC)的软件混合器。. 为所有可能的混合状态,这个模块包含了许多不同的混合器核心,比如 8 或 16-bit 输入, 立体声或单声道输入, 立体声或单声道输出, 用可选的过滤进行向上采样和向下采样, 音量调节和声道反转,还有更多。 每个这些功能都被特别优化,让它尽可能的快速运行。

一个提升是Miles缓冲层。 该层将当前播放采样地址,循环点,和压缩格式(MP3, Bink Audio Ogg Vorbis, ADPCM 或其它),以及 数字过滤器 设置放入通路(account), 用被解压和/或过滤后的合适数据呼叫底层混合器。 这意味着Miles不在您的内存缓冲区播放 -- 这很好因为您不需要复制内存,保持缓冲区锁,或者任何类似的事情。 只需要加载您的声音数据到内存,然后告诉Miles播放它就行了。

缓冲区层的最高一级位于Miles Digital Audio API (优秀,干净和快速),高级流API,和任何3D audio 提供者。我们的流API是跨平台层,它使数据从一个磁盘文件流化简单到只需3次调用。 从MSS版本7开始,我们的硬件3D提供者(包括EAX和DirectSound3D)可以通过相同的API访问,标准2D和分立的多声道构造使用。您不再需要妥协您的游戏音频功能来支持一个特定的3D硬件标准。

您会爱上Miles的数字音频API:音量(丰富而响亮),回放率,全景调整,效果和低通等级(low-pass levels),流和组块循环(subblock looping),5种不同类型的回调,以及多得多的特性都由您控制。

Bink Audio 支持

在Miles 8, 我们已经加入Bink Audio支持。Bink Audio是一个内嵌于Bink Video解码器的编解码器,它最多可以比MP3或Ogg快30%以上,同时提供类似的压缩比率! 它甚至使用更少的运行时内存。我们期待大多数的Miles用户会转而使用这个新的编解码器 - 它对游戏非常完美!

MP3 支持

Miles Sound System 免费提供一个Thomson专利授权的可分发的MP3解码器! 这意味着您能够在您的游戏中使用MP3文件,就像使用普通的PCM数字音频一样。

以前,一个MP3压缩不利的地方是,事实上两家海外公司(Fraunhofer and Thomson) 拥有MP3压缩和解压算法的专利权。那意味着如果您想添加MP3到您的商业产品中,您将不得不经历漫长的令人头疼的谈判来获得一个昂贵的授权。 更糟的是,您只是简单为专利权付费 - 您还是不得不编写MP3的解码器。

使用Miles,我们已经和Fraunhofer Institute 及 Thomson Multimedia 谈妥来提供 Thomson授权专利给我们的客户,无需附加的费用! (请留意,MP3的专利授权仍然在某种程度上有点含糊的, 但是一般都相信Fraunhofer/Thomson拥有MP3格式的法律控制权。) 您必须签署一份额外的MPEG授权附录 (随附的一件小事是需要您在游戏中为Fraunhofer和Thomson添加一点信用), 但除此之外,您能够使用MP3解压,就像我们已经内建的ADPCM解压一样。

3D 音频支持

"3D audio" 从根本上说是一种分配3D坐标到一个特定声音的方式。在一个完美的世界,每个人都会有一个分立的多音箱的声音系统,它会允许任何声音的真3D方位。 我们做了一个非常棒的工作来支持这些高端客户,他们很多人将他们的PC和Console连接到他们的家庭影院接收器上,期望在游戏里有电影院品质的环绕立体声效果。 然而很多用户仍然只用简单的随PC而来的老立体声喇叭来玩游戏。这并不令人惊讶,无需大量的定制编码和开发端测试就能让你的游戏在大多数这些不同种类的喇叭面前表现良好,这是很重要的。 Miles数字音频API通过不断跟踪您的声源和发射体对象的3D位置和方向来让这个工作变得简单。我们确保用户可体验到在相应硬件下可信的空间位置效果,它在所拥有的硬件配置情况的品质等级是适当的。

我们的 3D 输出层包括:

  • 单声道输出: 传统的单声道 (单喇叭) 声音。
  • 立体声输出: 传统的立体声声音。Miles的3D位置数学假定两个(左和右)喇叭在听者正前方45度角的位置。
  • 耳机输出: 类似于立体声输出,但是Miles假定喇叭直接位于听者的两侧。
  • SRS Logo 6.1通道环绕声输出: SRS Circle Surround(r) 是一个双通道矩阵格式,它能够被认为是Dolby Surround的改良升级版。 它和支持Dolby的消费者接收机兼容,并在原生的Circle Surround(r)兼容设备上提供6.1逻辑通道(前左,前右,前中,重低音,后左,后右,后中)。Circle Surround(r) 相比Dolby Surround不好的地方最主要是它增加了CPU的负担。它同时也在Nintendo Wii上使用!
  • Dolby Logo 3 通道 Dolby ProLogic 1 输出: 这个选项假定用户连接一个Dolby 环绕功能接收器到他们(双通道)声卡。 它和Miles早前版本的Dolby Surround M3D 提供者是一致的。因为DVD音轨混合为模拟Dolby环绕比较糟糕,这已不再是PC声音的一个流行的选项。 Dolby Surround提供3个逻辑通道(前左,前右,和中后)。常用在Nintendo Wii。
  • 4 通道输出: 这个选项假定4个喇叭(前左,前右,后左,后右)连接在一个四声道立体声的分离配置,它没有中间的喇叭或者5.1典型配置里的后中。 除了一些顽固的很久没升级过的Led Zeppelin粉丝外,这不是一个尤其常见的声道配置。
  • 5.1 通道输出: 使用这个选项来支持当前家庭音响的 '甜点(sweet spot)', 5.1通道分立配置。再一次,这是一个DVD导致的现象。今天有很多的硬件能够支持5.1音频!
  • 4.0 通道DTS输出: 在Sony PS2上有效。这个选项通过S/PDIF端口提供4通道分离DTS编码。从内存和编码负载成本的角度,它比DTS 5.1更有效,但缺乏对LFE和中间通道的支持。 如4通道输出选项,它假定至少4个喇叭(前左,前右,后左,后右)是有效的。
  • 5.1 通道DTS输出: 在Sony PS2上有效,这个选项通过S/PDIF端口提供真5通道分离DTS编码。DTS在PS2上令人惊讶的高效,听起来非常好,对于能够忽略大约5%的CPU占用的应用程序而言,高度推荐使用。
  • 6.1 通道输出: 和5.1类似,但是有一个后中喇叭。
  • 7.1 通道输出: 和5.1类似,但是有边环绕。这是多声道声音硬件普遍支持的格式,但是用户不倾向于有空间来摆放这么多的喇叭。
  • 8.1 通道输出: 和5.1类似,但是有双边环绕和一个中后喇叭。
  • DirectX Logo DirectSound3D 硬件: 使用 DirectSound3D输出,忽略Miles内部混合器。
  • EAX Logo EAX 2: 添加硬件加速环境混响效果,occlusion, obstruction,和每样本湿/干混合控制(per-sample wet/dry mix control)到DirectSound3D。
  • EAX 3: 添加了exclusion 和几个其它的属性和偏爱选择到EAX 2特性集。
  • EAX 4: 更高品质效果和新的控制项(看EAX4EXAM.CPP 范例程序),当前只在Creative Labs'最高端的硬件中才有效。

请记住,您能够同时使用超过1个数字音频配置!这让您能够使用硬件加速在挑剔的声音上,并在硬件声音资源用完后回到软件处理。

DSP数字音频过滤器(Digital Audio)支持

过滤器处理器是外置插件,在回放的过程中它能动态操作数字采样数据。Miles当前包含了14个不同的过滤器。 可以使用或“堆叠”最多8个在一个给定的声音上,无论是2D控制的(2D-controlled)还是3D定位的(3D-positioned)声音。

  • EAX 混响模拟过滤器(Reverb Emulation Filter): 这个过滤器建在Miles混合器里,提供软件里的很棒的EAX模拟。它是高度优化过的,几乎没有任何CPU负载
  • 低通过滤器(Low-Pass Filter): this filter is also built right into the Miles mixer. It only allows frequencies below the cutoff frequency to pass. This effect is ideal for simulating object occlusion (because only the low frequencies can be heard - like thumps in another room). It is also highly optimized and uses almost no CPU at all.
  • 高通过滤器(High-Pass Filter): this filter only allows frequencies above the cutoff frequency to pass.
  • 带通过滤器(Band-Pass Filter): this filter only allows frequencies around the center frequency to pass. This effect is useful for simulating things like telephone calls.
  • 共振腔过滤器(Resonator Filter): this filter provides a resonant filter that allows frequencies around the center to pass. The advantage of this filter is that you can "slide" the center and achieve some interesting effects.
  • 压缩机过滤器(Compressor Filter): this filter "compresses" the dynamic range of a signal by making quiet signals louder and loud signals a bit quieter.
  • 延迟过滤器(Delay Filter): this filter provides a simple delay effect.
  • 相位器过滤器(Phaser Filter): this filter creates a sweeping effect by modulating a narrow notch signal filter. Many different types of sounds can be achieved with this effect (such as underwater effects). A phase shifter works by applying a narrow signal filter to a sound source. This causes various amounts of canceling of frequency components in the original signal. The filter's output is mixed back in with the original source audio signal. To get the sweeping effect, a low frequency oscillator is used to slowly move the frequency center of the notch filter. Blending the altered signal back into the signal path (called "regeneration" or "feedback") intensifies the effect.
  • 参数均衡器过滤器(Parametric Equalizer Filter): this filter allows you to select a frequency range and boost or cut the signal in that range. The boost or cut amount is smoothly ramped down in either direction in a bell curve.
  • 坡型均衡器过滤器(Shelving Equalizer Filter): this filter is boosts or cuts the frequencies under the low frequency by the low gain and monotonically increases the gain with the frequency. It is useful for controlling the bass and treble in a sample.
  • 环形/振幅调制器过滤器(Ring/Amplitude Modulator Filter): this filter uses a sine wave to modulate (change) the signal. You can create "robot" type voices or underwater type effects with lots of motion with this filter.
  • 合唱过滤器(Chorus Filter): this filter is used to add a swirling property to a sound that it is applied to, thickening the sound. An audio signal that is to be processed with chorus is first delayed by a small amount. (Typical delay times are small, in the range of 5 to 40 milliseconds.) This produces a doubling effect. Each delayed signal is then sent to a low frequency osclilator. The LFO takes the delayed signal and moves its pitch up and down, changing the tuning from sharp to flat. (The oscillator moves in the range of 1-20 cycles per seconds to get the effect.) The LFO usually runs at a slow speed; 1 to 20 oscillations per second are typical. The output of the delayed and pitch-altered signal is then mixed in with the original audio. This blending completes the chorusing effect.
  • 法兰过滤器(Flange Filter): this filter is also used to to produce a swirling effect on a sound. The filter delays a copy of the sample data, but uses a low frequency oscillator to vary the speed of the copy's playback. (The oscillator moves in the range of 1-20 cycles per seconds to get the effect.) Feeding the processed signal back into the device to be processed again can get a more intense effect.
  • 捕获过滤器(Capture Filter): this filter will record the final mixed output of the Miles 2D digital audio system to a wave file. This is great for recording demos or tracking down bugs. Just set the filename and then apply the filter to the digital driver to begin recording.

平台支持

  • 所有版本的Windows,32-bit/64-bit
  • Nintendo Wii
  • Ninetendo 3DS
  • Microsoft Xbox 360
  • Sony Playstation Portable (PSP)
  • Sony PS Vita (NGP)
  • Sony Playstation 2
  • Sony Playstation 3
  • MacOS X (CoreAudio)
  • Apple iPhone
  • Linux (OpenAL)

源代码细节

Miles Sound System包含完整的源代码。如果您对某部分功能是如何工作还有疑问 - 去查看一下代码! Miles是用干净的C和C++编写的,使用平台特别装备的模块。