RtAudio или PortAudio, какой использовать? - PullRequest
18 голосов
/ 03 марта 2011

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

Ответы [ 3 ]

13 голосов
/ 05 мая 2011

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

  • порт аудио:

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

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

другие решения:

  • Qt:

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

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

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

2 голосов
/ 01 мая 2017

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

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

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

2 голосов
/ 19 марта 2012

Вот соответствующая тема, появившаяся в списке аудиоустройств Linux.Подход, который я выберу для своего нового приложения, состоит в том, чтобы написать код для jack и выполнить всю мою отладку в linux + jack, а затем использовать RTAudio для портов, которые я в итоге освобождаю.

Salud!

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

...