RtAudio或PortAudio,哪一个使用?

时间:2011-03-02 22:35:30

标签: audio portaudio

我正在考虑RTAudio + RTMidiPortAudio + PortMidi来处理需要实时音频和midi处理的新项目。任何有使用这两个图书馆经验的人都能推荐一个吗?为什么? 我更喜欢C ++ API而不是C API,但这还不足以让我做出决定。

3 个答案:

答案 0 :(得分:13)

在很长一段时间里,我一直忙着与这种需求完美匹配。 现在我更喜欢

  • 端口音频:

    • (+)也使用wasapi(!rt audio not not)
    • (+)非常活跃的项目,一些优秀的大师正在开发它。)
    • (+)被许多非常成功的应用程序使用+ C ++不是原生的,但有一个绑定集成到主分支(自去年以来我认为)
    • (+)libsdnfile(很棒)
    • 真的很可靠
    • ( - )它不是原生的c ++
    • ( - )项目,配置,集成非常烦人
    • ( - )适用于多层板(debian,osx,七:我自己的经验)
  • rt audio

    • (+)native c ++,
    • (+)真的很容易进入它
    • ( - )no wasapi
    • ( - )没那么活跃

其他解决方案:

  • Qt:

    • ( - )重,不完全是我正在寻找的
    • ( - )实时音频支持最近且不稳定
    • (+)如果您使用QtCreator则易于使用(如果将QtAddon与视觉使用相比较少,则使用较少,而使用xcode则较少)
    • (+)midi integrated
  • JUCE:

    • java like design
    • 沉重,不完全是我正在寻找的
    • 简单,工作得很好(使用专业音频)
    • midi集成,文件读取aiff和wave,以及flac

更新(10-04-2014):RtAudio v4.1.0现在支持wasapi。

答案 1 :(得分:2)

这是Linux音频开发列表中出现的相关主题。我将为我的新应用程序采用的方法是编写插孔代码并在linux + jack中完成所有调试,然后使用RTAudio作为我最终发布的端口。

每期!

Getting jack sample rate and buffersize with portaudio

答案 2 :(得分:2)

PortAudio Java绑定过于简单。例如,您无法为设备访问设置独占模式或共享模式,这是一种耻辱,因为它可以有效地减少7ms的延迟 - 特别是如果您在Windows 10下捕获麦克风输入(通常不需要共享访问)。如果计算输出,那么你将失去14毫秒的RTT来监听你的麦克风/东西。

RtAudio似乎现在支持WASAPI,但我不确定它是否比PortAudio更好。但是有Java绑定吗?我知道,在问题中没有被问到,但仍然......:)

另一个相当新的项目是XtAudio。它将对设备的独占和共享访问暴露为前端的不同设备集,并且通常似乎具有更好的API支持。不要认为它支持MIDI tho。