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

问题描述:

正如我已经说过in another thread,我的工作有关的实时图形化编程,用于音频的项目(像纯粹的数据,最大/ MSP,Reaktor的) 。我对互联网做了一整天的研究,寻找一个良好的(维护的,有据可查的和高度可移植的)C++库,用于与音频和MIDI的低级交互,但是我仍然无法对图书馆下定决心。音频/ MIDI C++库的实时应用

我考虑PortAudio + PortMIDI(PortMedia),但他们缺乏文件(特别是PortMIDI),并没有正式的社区,只是一个邮件列表(我认为论坛社区是非常重要的!),相同(或最坏的情况)RTAudioRTMidi库。

我也给一个尝试:

  • STK,我dodn't喜欢它的文件组织。
  • Juce,我认为它确实太多了,我只需要一个简单的硬件整合
  • OpenAL,我不明白它的建筑,它依赖于ASIO/ALSA/CoreAudio的......?我可以访问MIDI端口吗?

所以...我的问题是:你有任何实时音频/ MIDI的经验吗?你推荐我哪个图书馆?

感谢

我用两个PortAudio/PortMidi和JUCE有两个很大的成效
+1

您可能会考虑只是音频功能并分别实现MIDI。 MIDI不是太复杂,而且延迟已经很低了。 – Brad 2011-04-10 16:50:00

+0

当涉及到多平台时,OpenAL非常好。它没有MIDI,但使用仅用于MIDI的独立库应该没有问题。 – 2011-04-10 17:21:26

+0

仅供参考Portaudio社区通过他们的邮件列表非常活跃,他们也非常开放,反馈和问题。 – 2012-04-08 02:32:51

。我在从PortMidi到JUCE,在切换项目的过程中,因为我使用所有其他应用程序框架的东西最终是非常有用的(在我的经验,这是坚如磐石的。)。因人而异。

我也推荐openFramworks:http://www.openframeworks.cc/这意味着适用于各种媒体,交互......,它有一个非常易于使用/理解的API,它也有很好的文档记录。只要按照上面的链接,并检查出来。

祝你好运,Audiodroid

我已经创建了一个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

EDIT(2012年1月12日):

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

+0

哇!这是一个伟大的图书馆!我唯一关心的是它的支持和维护。这似乎是非常普遍的目的,它可能是一个专业和一个缺点。无论如何伟大的工作! – 2013-10-06 08:44:25

this tutorial series有一篇关于reacting to MIDI data的文章。它还涵盖其他主题,例如合成等。

+0

伟大的VST/AU开发教程!其实我的问题与另一个话题有关......无论如何非常感谢,它似乎非常有趣,写得很好! – 2013-10-06 08:38:14