0

我想在 C++ 中开始一个项目,这将允许我使用诸如float y = sin(2 * PI * f * t);FM 合成和其他更复杂的算法之类的功能来创建声音。我在 Mac OS X Lion 上使用 Xcode 4,但希望最终将软件移植到 Windows 平台。我已经尝试过库 SFML 1.6 和 2.0、RTAudio 和 PortAudio,但我无法使用 Xcode 4 编译任何程序。窗口图形库和 MIDI 支持将是额外的好处,但我不需要它。

你有没有成功的库和方法?如果前面提到的任何库对您有用,您是如何使用 Xcode 4 编译的?

4

2 回答 2

3

我为 Windows 和 Mac 创建了一个名为“Crosstalk”的 C++ 音频库。

它是一个实时 C++ 音频引擎,可让您实时创建和路由音频系统。基本上,引擎负责所有音频路由,并为您提供一个简单的平台来创建系统组件(例如,连接到“低通滤波器”的“FM Synth”组件连接到“音频设备”和“文件记录器”) .

它非常易于使用。以下是如何播放 mp3 文件的示例(这些组件随引擎提供):

XtSystem system;
XtMp3Decoder mp3Decoder;
XtAudioDevice audioDevice;

long md = system.addComponent(&mp3Decoder);
long ad = system.addComponent(&audioDevice);

system.connOutToIn(md,0,ad,0);
system.connOutToIn(md,1,ad,1);

mp3Decoder.loadFile("../05 Tchaikovski-Swan Lake-Scene.mp3");
mp3Decoder.play();

Crosstalk 包括示例 Xcode 和 Visual Studio 项目。

您可以在此处下载 Crosstalk 并查看 API 文档和许可详细信息:http: //www.adaptaudio.com/Crosstalk

编辑(01-12-2012):

Crosstalk 已被一个名为“ DSPatch ”的开源项目所取代。DSPatch 本质上是 Crosstalk 背后路由引擎的升级版本,不再局限于音频处理。DSPatch 允许您创建和路由几乎任何可以想象的类型的流程链,并且免费供个人和专有使用:)

于 2012-05-11T18:11:49.260 回答
1

libsndfile 或许能帮到你

http://www.mega-nerd.com/libsndfile/

于 2011-11-14T05:52:47.603 回答