用于游戏中声音效果的开源库

时间:2010-03-08 08:36:55

标签: c++ open-source

是否有人知道C ++中的开源声音库或其他一些流行语言,可以在开源游戏中用于重现声音,特别是在赛车游戏中重新创建引擎声音?

由于

7 个答案:

答案 0 :(得分:5)

很久以前,有OpenAL并且在Linux上取得了一定的成功。

这很简单,以OpenGL库原理为基础。

答案 1 :(得分:2)

虽然你得到了一些关于如何输出声音的答案,但我相信这不是你的问题。

如果我的问题正确无误,我认为“声音合成”就是你要找的。

你需要的只是一堆发生器(例如Sine,Sawtooth,Noise) 和过滤器(低,高,带);并结合这些。

下一步是添加LFO(低频振荡器)来调制发生器和滤波器的参数。

我知道这不是你所寻找的完整答案,但声音合成本身就是一门科学,而上述关键词可以让你开始走上正轨。

用于游戏的SFX的实时合成。简单回答: 不要这样做!

这是浪费资源而且 - 除非你有非常严格的尺寸限制 - 用于SFX的样本大小不会杀死你。

对于我们当前的游戏,平均样本的(磁盘上)大小约为7KB。 (我们大部分时间都使用16KHz,单声道,ADPCM。)

答案 2 :(得分:1)

我只是习惯性地讨论它,但SDL是一个非常流行的,跨平台的C ++游戏开发库。它包括对图形,声音,输入的支持。

我还记得它非常模块化。也就是说,与其他解决方案相比,它不像是框架,而是更多的库。看看吧。

答案 3 :(得分:1)

是否有特定原因需要开源,或“源可用”是否足够好?一个流行的是fmod http://www.fmod.org

非商业产品免费,并根据许可证提供源代码。它非常受欢迎,并在许多知名游戏中使用。

答案 4 :(得分:1)

irrKlang声音引擎是非常受欢迎的独立开发者。它是免费的非商业用途,如果你想开始在你的游戏中赚钱,它仍然非常便宜。

它支持所有主要平台(Windows,Linux,Mac),并具有C ++和.Net语言的API。

答案 5 :(得分:1)

我知道这是一个老问题,但我认为SFML需要在这里展示。 SFML提供C ++,C,.Net(C#,VB.Net,C ++ / CLI等),Python,D和Ruby,并且设计得小而快。

Features特定于音频

  • 尽可能使用硬件加速
  • 可以加载和保存标准声音格式:ogg,wav,flac,aiff,au,raw,paf,svx,nist,voc,ircam,w64,mat4,mat5 pvf,htk,sds,avr,sd2,caf, wve,mpc2k,rf64
  • 可以直接从内存中的文件加载所有音频资源
  • 3D声音空间化
  • 轻松捕捉音频的界面
  • 有效管理内存,这样您就不必担心资源的生命周期或存储
  • 支持大文件的流媒体;您甚至可以为任何来源(网络,......)编写自定义流媒体类
  • 支持多声道格式(单声道,立体声,4.0,5.1,6.1,7.1)

对于重新创建引擎声音的具体问题,通常游戏会采用单个循环声音并调整音高。一个非常好的开源游戏是VDrift

答案 6 :(得分:0)

SDL是图形/声音的好选择

QT框架工作也对声音和图形有很好的支持

PortAudio也是不错的选择