我正在考虑将RTAudio + RTMidi和PortAudio + PortMidi用于需要实时音频和 midi 处理的新项目。任何有使用这两个库经验的人都可以推荐一个吗?为什么?我更喜欢 C++ API 而不是 C API,但这还不足以让我做出决定。
问问题
13344 次
3 回答
15
很长一段时间以来,我一直在锁定与这种需求的完美匹配。现在我更喜欢
端口音频:
- (+) 在 Windows 上,支持 asio、DirectSound、MME、WASAPI(头疼)
- (+) 在 Linux 上,支持 ALSA、OSS、Pulse、JACK
- (+) 在 Mac 上,支持 Core Audio
- (+) 非常活跃的项目,一些优秀的大师正在开发它)。
- (+) 被许多非常成功的应用程序使用 + C++ 不是本机的,但有一个绑定到主分支(我认为是从去年开始)
- (+) 使用 libsdnfile 真的很可靠(很棒)
- (-) 它不是原生 c++
- (-) 项目、配置、集成很烦人
- (-) 适用于多个平台(debian、osx、七:我自己的经验)
- (-) 大部分文档都很糟糕,而且在谷歌搜索答案时大多已经过时且相互矛盾
rt音频
- (+) 在 Windows 上,支持 asio、DirectSound、WASAPI(截至 10-04-2014)
- (+) 在 Linux 上,支持 ALSA、OSS、Pulse、JACK
- (+) 在 Mac 上,支持 Core Audio
- (+) 本机 C++,
- (+) 真的很容易进入
- (-) 不太活跃
- (-) 大部分文档都很糟糕,而且在谷歌搜索答案时大多已经过时且相互矛盾
其他解决方案:
qt:
- (-) 很重,不是我要找的
- (-) 实时音频支持是最新的并且不稳定
- (+) 如果您使用 QtCreator,则易于使用(如果将 QtAddon 与 Visual 一起使用,则更容易使用,而与 xcode 一起使用则更少)
- (+) MIDI 集成
朱:
- 类似java的设计
- 沉重,不完全是我要找的
- 简单,并且工作得很好(使用专业音频)
- midi集成,aiff和wave文件读取,flac
于 2011-05-04T22:04:25.313 回答
2
这是 Linux 音频开发列表中出现的相关线程。我将为我的新应用程序采用的方法是为 jack 编写代码并在 linux+jack 中进行所有调试,然后将 RTAudio 用于我最终发布的端口。
萨鲁德!
于 2012-03-19T12:59:54.497 回答
2
PortAudio Java 绑定过于简单。例如,您不能为设备访问设置独占模式或共享模式,这是一种耻辱,因为它有效地从您那里窃取了 7 毫秒的延迟 - 特别是如果您在 Windows 10 下捕获麦克风输入(通常不需要共享访问)。如果你计算输出,你会失去 14 毫秒 RTT 来监控你的麦克风/东西。
RtAudio 现在似乎支持 WASAPI,但我不确定它是否比 PortAudio 更好。但是有 Java 绑定吗?我知道,问题中没有被问到,但仍然...... :)
另一个相当新的项目是XtAudio。它将设备的独占和共享访问作为不同的设备集暴露给前端,并且通常似乎具有更好的 API 支持。不要认为它支持 MIDI。
于 2017-05-01T11:29:28.883 回答