RtAudio или PortAudio, какой из них использовать?

Я считаю кодек rtaudio + RTMidi и PortAudio + PortMidi для нового проекта, который требует аудио в реальном времени и midi procesing. Может ли кто-нибудь с опытом использования обеих библиотек рекомендовать одну над другой? почему? Я предпочитаю C++ API над C API, но этого недостаточно для меня, чтобы принять решение.

3 ответов


Я был лоокинг для идеального матча с этой необходимостью в течение довольно долгого времени. Сейчас я предпочитаю

  • порт аудио:

    • (+) также работает с wasapi (!rt audio нет)
    • (+) очень активный проект,и гуру разработки).
    • (+) используется очень многих успешных приложений на C++ не родной, но есть привязка, которая интегрирована в основную ветку (с прошлого года)
    • (+) Это действительно надежный с libsdnfile (что здорово)
    • ( -) это не родной c++
    • ( -) проекты, настройка, интеграция довольно раздражает
    • ( -) хорошо работает для multiplateforme (debian, osx, seven : мой собственный опыт)
  • rt audio

    • (+) родной c++,
    • (+) очень легко попасть в нее
    • (-) нет wasapi
    • (-) не так много активный

других решений :

  • Qt:

    • (-) тяжелый, не совсем то, что я ищу
    • ( -) поддержка аудио в реальном времени является недавним и не стабильным
    • (+) прост в использовании, если вы используете QtCreator (и меньше, если используете QtAddon с visual, и меньше с xcode)
    • (+) встроенным миди
  • Джюс:

    • java нравится дизайн
    • тяжелый, не совсем то, что я ищу
    • простой, и работает довольно хорошо (используется профессиональная аудио)
    • Midi интегрированный, чтение файлов aiff и wave, и flac

обновление (10-04-2014): RtAudio v4.1.0 теперь поддерживает wasapi.


вот соответствующий поток, который появился в списке Linux audio devel. Подход, который я возьму для моего нового приложения(ов), - это код для jack и выполнить всю отладку в linux+jack, а затем использовать RTAudio для портов, которые я в конечном итоге выпускаю.

Салюд!

получение частоты дискретизации и буферизации jack с помощью portaudio


привязки Java PortAudio упрощены. Например, вы не можете установить эксклюзивный режим или общий режим для доступа к устройству, что позор, потому что он эффективно крадет 7 мс с меньшей задержкой от вас-особенно если вы захватываете вход микрофона (где обычно нет общего доступа не требуется) под Windows 10. Если вы рассчитываете на выход, вы теряете 14 мс RTT для мониторинга вашего микрофона / материала.

RtAudio, похоже, теперь поддерживает WASAPI, но я не уверен, что это лучше, чем Портаудио. Но есть ли привязки Java? Не был задан вопрос, я знаю, но все же ... :)

еще один, довольно новый проект XtAudio. Он предоставляет эксклюзивный и общий доступ к устройствам в качестве различных наборов устройств для интерфейса и в целом, похоже, имеет лучшую поддержку API. Не думаю, что он поддерживает MIDI tho.