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

nlejzf6q  于 2023-01-28  发布在  其他
关注(0)|答案(4)|浏览(129)

正如我已经说过的in another thread,我正在从事一个与音频实时图形编程有关的项目(类似于Pure Data、Max/MSP、Reaktor)。
我做了一天的研究在互联网上,寻找一个良好的(维护,良好的文档和高度可移植)C++库的低层次互动与音频和MIDI,但我仍然不能下定决心约一个库。
我正在考虑PortAudio + PortMIDI(PortMedia),但他们缺乏文档(尤其是PortMIDI),也没有官方社区,只有一个邮件列表(我认为论坛社区非常重要!),RTAudioRTMidi库的情况相同(或最糟糕)。
我也给予着:

  • STK,我不喜欢它的文件组织。
  • Juce,我认为它对我来说太重要了,我只需要一个 * 简单 * 的硬件集成
  • OpenAL,我不了解它的架构,它依赖于ASIO/ALSA/CoreAudio......?我可以访问MIDI端口吗?

所以...我的问题是:你有实时音频/MIDI的经验吗?你推荐哪个库?
谢谢

q3qa4bjr

q3qa4bjr1#

我用过PortAudio/PortMidi和Juce,效果都很好。我正在把一个项目从PortMidi切换到Juce,因为对我来说,所有其他应用框架的东西最终都非常有用(根据我的经验,它坚如磐石)。YMMV。

ie3xauqp

ie3xauqp2#

我已经创建了一个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文档和许可详情:http://www.adaptaudio.com/Crosstalk

编辑日期(2012年1月12日):

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

7dl7o3gd

7dl7o3gd3#

我还推荐openFramworks:http://www.openframeworks.cc/它适用于各种媒体、交互......它有一个非常容易使用/理解的API,这也是非常好的文档。
祝你好运,音响机器人

zqdjd7g9

zqdjd7g94#

this tutorial series中有一篇关于对MIDI数据做出React的文章。它还涉及到其他主题,如合成等。

相关问题