Лучшая кроссплатформенная аудио библиотека для синхронизации воспроизведения аудио - PullRequest
1 голос
/ 25 января 2010

Я пишу кроссплатформенную программу, которая включает в себя прокрутку осциллограммы и воспроизведение несжатого wav / aiff аудио. Низкая задержка и точность очень важны. Какая библиотека кроссплатформенного звука лучше всего подходит для воспроизведения звука при синхронизации с внешними часами? Под этим я подразумеваю, что я хотел бы иметь возможность писать код воспроизведения, чтобы он отправлял события слушателю много раз в секунду, который включает в себя «кадр слуха» в момент уведомления. Это все, что мне нужно сделать. Нет записи, нет микширования, нет 3D-аудио, ничего. Просто воспроизводите с наилучшими возможными уведомлениями о кадрах слуха.

Сейчас я рассматриваю RTAudio и PortAudio, в основном, первые, поскольку он использует ALSA. Целевые платформы в порядке важности: Mac OSX 10.5 / 6, Ubuntu 10.11, Windows XP / 7. C / C ++ оба в порядке.

Спасибо за вашу помощь!

Ответы [ 2 ]

3 голосов
/ 27 января 2010

Лучшей кроссплатформенной библиотекой для этого является jack. При правильной настройке jack в Linux может легко превзойти Windows asio (с точки зрения обработки с малой задержкой без выпадений). Но вы не можете ожидать, что обычные пользователи будут использовать jack (демон должен быть запущен пользователем до запуска приложения, и его может быть немного сложно настроить). Если вы делаете приложение специально для про-аудио, я очень рекомендую заглянуть в разъем.

Edit:

Portaudio не так высокопроизводителен, но намного проще для пользователя (в отличие от разъема, на его конце не требуется никакой специальной конфигурации). Большинство кроссплатформенных аудиопрограмм с открытым исходным кодом, которые я использовал, используют portaudio (гораздо больше, чем openal), но в отличие от jack я не использовал его лично. Он основан на обратном вызове и выглядит довольно просто.

1 голос
/ 25 января 2010

OpenAL может быть вариант для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...