C++ 音频/MIDI C++;用于实时应用程序的库

C++ 音频/MIDI C++;用于实时应用程序的库,c++,audio,real-time,midi,openal,C++,Audio,Real Time,Midi,Openal,正如我已经说过的,我正在从事一个与音频实时图形编程相关的项目(比如Pure Data、Max/MSP、Reaktor) 我在互联网上做了一天的研究,寻找一个良好的(保持的、文档化的、高度可移植的)C++库,用于与音频和MIDI进行低级交互,但我仍然无法确定库。 我正在考虑+(PortMedia),但它们缺乏文档(尤其是PortMIDI),并且没有官方社区,只有邮件列表(我认为论坛社区非常重要!),与和库的情况相同(或最坏) 我还尝试: ,我不喜欢它的文件组织 ,我认为它对我来说太多了,我只需要

正如我已经说过的,我正在从事一个与音频实时图形编程相关的项目(比如Pure Data、Max/MSP、Reaktor)

我在互联网上做了一天的研究,寻找一个良好的(保持的、文档化的、高度可移植的)C++库,用于与音频和MIDI进行低级交互,但我仍然无法确定库。

我正在考虑+(PortMedia),但它们缺乏文档(尤其是PortMIDI),并且没有官方社区,只有邮件列表(我认为论坛社区非常重要!),与和库的情况相同(或最坏)

我还尝试:

  • ,我不喜欢它的文件组织
  • ,我认为它对我来说太多了,我只需要一个简单的硬件集成
  • ,我不了解它的架构,它依赖于ASIO/ALSA/CoreAudio。。。?我可以访问MIDI端口吗
所以。。。我的问题是:你有实时音频/MIDI的经验吗?你推荐我去哪个图书馆


谢谢

我使用了PortAudio/PortMidi和Juce,在这两个方面都取得了很好的效果。我正在将一个项目从PortMidi切换到Juce,因为对于我的使用来说,所有其他应用程序框架的东西最终都非常有用(以我的经验,它是坚如磐石的)。YMMV.

我还推荐openFramworks:它适用于各种媒体、交互。。。它有一个非常易于使用/理解的API,它也有很好的文档记录。只需按照上面的链接进行查看


<好运>,AdodiDoo[4],P> >我创建了一个C++音频库,叫做“串音”。

串扰是一种实时C++音频引擎,它允许你实时地创建和路由音频系统(几乎是你试图实现的图形),而且它非常容易使用。 以下是如何播放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();
您可以在此处查看API文档和许可详细信息:

编辑(01-12-2012):


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

中有一篇关于。它还涉及其他主题,如合成等。

你可以单独考虑音频特性并实现MIDI。MIDI并不太复杂,延迟已经很低了。OpenAL在多平台方面非常好。它没有MIDI,但是使用一个独特的库来进行MIDI应该没有问题。仅供参考,Portaudio社区通过他们的邮件列表非常活跃,他们也非常开放反馈和问题。非常适合VST/AU开发的教程!实际上我的问题和另一个话题有关。。。无论如何,非常感谢,它看起来非常有趣而且写得很好!