我想用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编译的?
答案 0 :(得分: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允许您创建和路由几乎任何类型的可想象的流程链,并且可以免费用于个人和专有用途:)
答案 1 :(得分:1)
libsndfile可能会帮助你