fmod Ex 声音系统是为游戏开发者准备的革命性音频引擎。最新版本是Fmod Studio 2.00.07。你也可以在FMOD的官网上下载到FMOD 3。如今采用了FMOD作为音频引擎的游戏包括Far Cry(孤岛惊魂)、Tom Clancy's Ghost Recon(幽灵行动),甚至著名的World Of Warcraft(
魔兽争霸)。
支持平台
Microsoft Windows series. (Win32平台)
Microsoft Windows series 64bit. (AMD64) (Win64平台)
Linux 64bit. (AMD64) (Linux64平台)
Android (安卓智能机平台)
Macintosh. OS8 / 9 / X and OSX for x86. (Mac OS 平台)
Sony PlayStation 2 (
PS2平台)
Nintendo Gamecube (任天堂NGC平台)
Sony Playstation Portable. (PSP平台)
Microsoft Xbox 360. (XBox360平台)
平台特点
简化
以前我们可能会针对采样、流或者CD音频使用不同的API,但到2013年,这一切都被一个“Sound”函数所取代,例如mod、midi、wav等都可以被API平滑地
调用。
虚拟频道
虚拟频道允许在有限的软硬件条件下使用数以千计的声道。声音可以根据3D距离和彼此优先级进行切换。
插件设计
新的音频格式、输出模式和编码器都将以
DLL文件提供给用户下载和添加到系统中。其中也包括了对
VST(Virtual Studio Technology)
效果器和Winamp DSP(Digital Singnal Processor)插件的支持。//就是说,它的扩展性很好
数字回放
数字CDDA回放时允许使用DSP特效(dsp effects)、
频谱分析(spectrum analysis)和音轨抓取(
ripping)等,就好像回放一个PCM(Pulse Code Modulation:脉码调制录音,
模拟信号——脉冲——数字信号1、0)文件一样。
多个声卡
初始化多个“System”对象就行了。
多路输出
如今Fmod已经完全成为一个
多声道混音器(a full multichannel mixer)。2D声音可以用5.1甚至7.1的形式播放。声音可以交换彼此分配到的声道,举个例子,一个3D立体声的左右声道可以相互交换、混音或是全都通过左扬声器播放出来。Fmod可以实现这一特性是由于它支持pan matrices(声像矩阵)。任何输入声音频道都可以被重定向到任意输出扬声器,并且支持紧接着的这个百分比层,因此可以说没有一个绝对的扬声器分配方案。这句话我不是很理解,原文是:The way this is available is FMOD supports pan matrices. Any input sound channel can be redirected to any output speaker,and on top of this percentages/fractional levels are supported,so there are no absolute speaker assignments.
为了满足高端音效设备,FMod借助
ASIO(Audio Stream Input Output,
音频设备零延迟)功能,支持16个输出通道的多通话线路输出(multichannel output)。
多路输入
例如Fmod支持多波段
wav(multichannel wavs)、
ogg和FSB文件的5.1音乐播放。
延迟录音
FMOD Ex 如今支持相当低延迟的录音,通过一种新型录音引擎来进行这些处理和输出。通过
ASIO实现的“录音->DSP->回放”延迟可以降低到1-3ms。这对于录音的
实时处理和回放都有莫大好处。
网络特性
网络
音频流。包括自定义网络流编码,它能够无缝支持Shout and Broadcast、Icecast(网络流式广播服务器/网络电台服务器)和HTTP流。
◆下载能力。Fmod中支持网络文件的组件有另一个功能就是支持下载。甚至可以从互联网上装载静态采样(static samples)。
◆语音交谈。在以后的版本中,将为网络实时语音会话提供服务器到客户端语音聊天支持。
支持类型
文件格式。
-- DLS - (DownLoadable Sound format可作为midi回放,也可以单独使用。)
-- M3U、
ASX、WAX、PLS (playlist,播放列表格式,记录了许多到其他音频文件的链接。使用FMOD EX的标记API获取文件。)
-- AIFF - (Audio Interchange File Format)
-- ASF - (Advanced Streaming format,同时也支持视频流中的音频轨迹。)
-- FLAC - (Lossless compression codec,
无损压缩编解码器)
-- FSB - (用FSBank和FMOD设计工具生成的FMOD采样库:FMOD Sample Bank)
-- IT - (Impulse tracker sequencedmodformat. FMOD Ex also fully supports resonant filters in .IT files,and the per channel or per instrument echo effect send,that can be enabled in ModPlug Tracker. This is cross platform effect support and does not require DirectX like other libraries do.)
-- MOD - (Protracker / Fasttracker and others sequencedmodformat)
-- MP2 - (MPEG I/Ⅱ Layer 2)
-- MP3 - (MPEG I/Ⅱ Layer 3,including VBR support)
-- OGG - (Ogg Vorbis format)
-- RAW - (Raw file format support. 用户可以指定频道数量、bitdepth和所用格式等。)
-- S3M - (ScreamTracker 3 sequencedmodformat)
-- WAV - (Microsoft Wave files,inlcluding compressed wavs. PCM,MP3 and IMA ADPCM compressed wav files are supported across all platforms in FMOD Ex,and other compression formats are supported via windows codecs on that platform).
-- WMA - (Windows Media Audio format)
-- XM - (FastTracker 2 sequenced format)
-- VAG - (PS2 / PSP only)
-- XMA - (Xbox 360 only)
因为Fmod支持新文件格式的插件,所以可以认为Fmod能够支持的文件格式是无限的。注意,FMOD Ex不支持ACC,因为ACC所需的唯一引用文件是
GPL,但FMOD Ex中没有GPL保护代码。为了支持这种格式,用户需要自行添加插件。
◆声音写输出
所有的输出都可以写入
wav文件。如果使用编码
插件,它还能够实时地编码为mp3或者其他文件格式。
◆采样精确寻址
多数系统寻址时采用密集块分界线,例如mp3解码时每次采样块大小为1152。而FMOD Ex支持精确的采样寻址和
译码,比如说你可以一下子准确地找到采样偏移1000000的位置进行解码,也可以精确地对音频的1个采样(?,原文是:1 sample of audio)进行解码。
◆增强的流引擎
一种新型的低延迟流解码器能够在运行时将解码负担分散开去,而不是doing it in chunks (cpu spikes!)/*看不懂……*/。这意味着游戏将拥有更平滑的帧频。
◆增强的采样格式支持
包括对24位、32位整型和32位IEEE浮点采样支持,还有对超立体声的支持(more than stereo support)。
Wav、
ogg或者用户自创的超立体声采样可以获得相应支持。8个声道以上的声音都可以自然地播放。
◆增强的混音引擎
--增强了输出声道支持
多数系统仅支持混音输出到单声道(mono)或是立体声(stereo)。FMOD Ex允许混音输出到任意数量的声道。例如,6声道输出(带低音)可以用5.1或是杜比数码(Dolby digital,多通道音频格式)方式进行3D音效实时输出。立体声和5.1都被优化为特殊快速通道格式(special case fast-path)。
--基于混音引擎的完全DSP网络数据流
新的混音程序分隔开重采样、混音和特效库(resample/mix/effects stages)。它是个基于多输入/输出DSP引擎的异常复杂节点。它支持子混音、爆破音和更高级的发声者定位和选择操作。
--高质量混音
All mixing is floating point with full 32bit interpolation.
o No interpolation(无样条)
o Linear interpolation(线性样条)
o Cubic interpolation(三次样条)
o 5 point spline interpolation!(5点样条插值)
All resampling is done with true 32bit precision using a 32bit fractional,it is not downscaled or compromised in any way.
--音量倾斜(Volume ramping)
音量倾斜作为一个标准存在系统中。立体音量倾斜支持在无“click”杂音的情况下自然调节。(Cubic volume ramps may be supported for crisper volume changes without clicks.)
--增强的3D音效
几何API. 音频实现中一个革命性的进步是FMOD Ex对用户几何引擎的支持。因此几何场景可以加入到FMOD中,而FMOD可以自动计算用户在世界中行动时遇到的障碍和闭塞(obstraction/occlusion)。
支持多个监听,包括为了分隔场景引入的多个3D监听。
--真实音速(Real speed of sound)将调节远方的声音传到你耳中的延迟时间。它可以根据用户喜好进行开关。(即将实现)
--为软件混合的3D声音提供ITD(Inter-aural Time Delay,耳间时间延迟)(例如
左声道和右声道的声音将各自延迟以制造空间感)
--立体声采样或者多声道采样可以在3D中定位,它们的组成声道也可以在3D空间中定位,并由用户自行配置。
◆自定义回放延迟
可以使用“setDelay”函数设定声音将在启动后多长时间才开始播放(samples or ms)。可以在初始化和启动声道的时候调用它。
◆MIDI支持
FMOD Ex拥有它自己的软件midi回放功能,因此midi回放是跨平台工作的。
Patch sets / DLS banks have to currently be provided with the song,or FMOD Ex will take advantage of any found in the operating system.
◆Stitching / sentencing (无缝接合?)
Seamless stitching,for sounds allows one sound to end then another starts immediately afterwards without gaps. This is great for commentary or interactive music.
◆基于特效的软件(Built in software based special effects.)
FMOD Ex提供了一整套特效,并且可以用于任何FMOD所支持的操作系统。下列是默认提供的一些特效,更多的效果可以通过插件来添加。
Oscillators(振荡器)- sine,square,saw up,saw down,triangle and noise wave oscillators.
2 Low-pass(
低通滤波器) with resonance filters.
High-pass with resonance.
2 Echo filters.
Flange.
Distortion.(扭曲)
Normalizer. (标准化)
Parametric EQ.
Realtime pitch shifter (changes pitch not playback speed)
Chorus. (合唱)
◆频道组和子混音(Channel groups and submixing)
频道组可以创建多声道组并把声道分配到这些组。因此各种命令可以传递给整个组,例如音量控制、弱音(mute)、频率、暂停等。你可以使用频道组来控制主音量,多频道组可以用于多主音量控制,因此对于游戏中GUI相关音量的控制,或是采用了特效的音乐都很有帮助。这一特性使得允许音频层次控制拥有良好的扩展性(flexibility)。
子混音可以针对某个频道组进行特效处理,而不影响其他频道。这个优势可以大大降低CPU的使用率,或是在一些声音使用了DSP效果的时候,隔离出其他声音来。(keeping some sounds dry)
◆增强的回叫信号(callback)支持
为回放设计了“latency adjusted”和“real-time”标记。这样你就可以在混音或是audible的时候调用回放。这两者是不同的,取决于混音缓冲区大小决定的时间长度。(This means you can get a callback at mix time,or audible time)
sample accurate user timer callbacks (ms or sample based) for global or per channel
相关评测
优点
免费: 如果你不打算用你的游戏或程序来赚钱,那么FMod是免费的。
卓越的支持: FMod布告版上的资源很多,提出的问题也能很快得到解答。
专业开发工具: FMod作为一个专业产品被使用了好多年,因此它的库文件是稳定和成熟的。
文件支持: FMod提供了对所有通用音频文件的良好支持。这意味着你可以方便地添加声音文件到你的应用中,而不需要考虑手工解码的问题。
缺点
许可证费用: 随着FMod的使用程度增加,所需支付的许可证费用也飞速增长。在使用FMod以前要仔细考虑好你需要为使用这个产品支付多少许可证费用。
只有官方版本: FMod不是开源软件,这意味着对一个开发者来说,你只能等待下一个SDK的发行来修正现有产品的Bug。
(介绍翻译by 猫人Lara)
使用许可
只要不是用于商业用途就可以免费使用FMod(其实这是个很聪明的做法),但如果是商业用途则有不同的付费方式。就如FMod-DmWiki上的评论所说——“FMod has a more complicated licensing structure than other API's due to its professional nature.(介于FMod的专业特性,FMod比其他API应用拥有更为复杂的许可证制度)”。
假如你的最终应用程序售价低于每份5美元,那么需要支付“$100 per title,per platform”,也就是说,无论你的程序卖出多少份,只需要针对每个平台支付100美金。然而随着开发者的专业化程度提高,所需支付的FMod版权费也跟着上升。别忘了,100美金只是针对5美元的小Case,一般的大型游戏需要为使用Fmod支付1000到4000美金“per platform,per title”的费用。实际上,假如你决定使用FMod Ex作为你的大型应用的音频引擎,无论平台是什么,都要支付4000美金。
另外有一点你要知道,无论购买了什么样的License,你的应用中总有一个地方要注明FMod的版权信息
函数名
功 能:计算x对y的模,即x/y的求余运算 (参见百科词条mod中的“求余函数” 条目),若y是0,则返回NaN。
用 法:double fmod(double x,double y);
结果符号与被除数(x)一致(编译器c-free 5.0);
国内公司
FMOD游戏音频技术在国内是新技术,国内能提供完整技术支持的不多;
能提供FMOD EX,FMOD EVENT SYSTEM的公司有:
MOD和
Wwise是客户端游戏和
Unity3D页游的常用音频引擎,团队拥有的数名资深音频设计师,熟练掌握FMOD和Wwise,可提供全套FMOD设计、音频事件制作、测试外派等服务,同时与FMOD开发公司澳大利亚Firelight有着良好的合作关系,后者为团队提供强大的FMOD技术支持,并定期在中国联合举办FMOD相应技术讲座。