Я рассматриваю RTAudio + RTMidi и PortAudio + PortMidi для новый проект, который требует обработки аудио и midi в реальном времени. Может ли кто-нибудь с опытом использования обеих библиотек рекомендовать друг друга? Зачем? Я предпочитаю С++ API через API C, но этого недостаточно для принятия решения.
RtAudio или PortAudio, какой из них использовать?
Ответ 1
Я завязывался для идеального матча с этой потребностью довольно долгое время. На данный момент я предпочитаю
-
порт аудио:
- (+) также работает с wasapi (! rt audio is not)
- (+) очень активный проект, и некоторые хорошие гуру его развивают).
- (+), используемый многими очень успешными приложениями + С++ не является родным, но есть привязка, которая интегрирована в основную ветку (с прошлого года, я думаю)
- (+) Он действительно надежный с libsdnfile (что отлично)
- (-) Это не родной С++
- (-) проекты, настройка, интеграция довольно раздражает.
- (-) работает хорошо для multipateforme (debian, osx, seven: мой собственный опыт)
-
rt audio
- (+) native С++,
- (+) действительно легко попасть в него
- (-) no wasapi
- (-) не так активно
другие решения:
-
Qt:
- (-) тяжелый, не совсем то, что я ищу.
- (-) поддержка аудио в реальном времени является последней и нестабильной.
- (+) прост в использовании, если вы используете QtCreator (и меньше, если используете QtAddon с визуальным и меньше с xcode)
- (+) midi интегрированный
-
Джюс:
- java как дизайн
- тяжелый, не совсем то, что я ищу
- прост и работает довольно хорошо (используется профессиональный звук)
- midi интегрированный, чтение файла aiff и wave и flac
Обновление (10-04-2014): RtAudio v4.1.0 теперь поддерживает wasapi.
Ответ 2
Вот соответствующая тема, которая появилась в списке аудиодекодеров Linux. Подход, который я возьму для своих новых приложений, - это код для разъема и выполнить всю мою отладку в linux + jack, а затем использовать RTAudio для портов, которые я в конечном итоге освобождаю.
Салюд!
Получение частоты дискретизации и буферизации с помощью portaudio
Ответ 3
Связи Java PortAudio упрощены. Например, вы не можете установить эксклюзивный режим или общий режим доступа к устройству, что является позором, поскольку он эффективно крадет у вас 7 мс меньшей задержки, особенно если вы снимаете вход микрофона (где обычно не требуется общий доступ) в Windows 10. Если вы рассчитываете на выходе, вы теряете RTT на 14 мс для мониторинга вашего микрофона/материала.
RtAudio, похоже, поддерживает WASAPI, но я не уверен, что это лучше, чем PortAudio. Но есть ли привязки Java? Я не знал этого вопроса, но все же...:)
Другой, скорее новый проект XtAudio. Он предоставляет эксклюзивный и общий доступ к устройствам, поскольку различные наборы устройств для интерфейса и, как правило, имеют лучшую поддержку API. Не думайте, что он поддерживает MIDI tho.