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.