У меня нет опыта в аудиопрограмме, а C++ - это язык с низким уровнем, поэтому у меня есть небольшие проблемы с ним. Я работаю с ASIO SDK 2.3, загруженным с http://www.steinberg.net/en/company/developers.html.C++ ASIO, доступ к буферам
Я пишу свой собственный хост на основе примера внутри SDK.
На данный момент мне удалось пройти весь образец, и похоже, что он работает. У меня есть внешняя звуковая карта, подключенная к компьютеру. Я успешно загрузил драйвер для этого устройства, настроил его, обработал обратные вызовы, литые данные с аналогового на цифровой и т. Д.
И часть, где я застрял сейчас: Когда я воспроизвожу какую-то дорожку через свое устройство, я вижу полосы, перемещающиеся в микшере (программное обеспечение устройства). Таким образом, устройство подключено правильно. В моем коде я выбрал входы и выходы с именами баров, которые перемещаются в микшере. Я также использовал ASIOCreateBuffers() для создания буфера для каждого ввода/вывода.
Теперь исправьте меня, если я ошибаюсь: Когда ASIOStart() вызывается и водитель находится в рабочем состоянии, когда входной звуковой сигнал для моего внешнего устройства я считаю, что буферы заполняются данными, не так ли?
Я читаю документацию, но я немного потерял - как я могу получить доступ к данным, отправляемым устройством в приложение, хранящимся в буферах INPUT? Или сигнал? Мне нужно это для анализа сигналов или, возможно, записи в будущем.
EDIT: Если бы я сделал это сложным, то в двух словах мой вопрос: как я могу получить доступ к данным потока ввода из кода? Я не вижу никаких объектов/обратных вызовов, позволяющих мне делать это в документации.
Я считаю, что тег 'boost-asio' не применим к этому вопросу, вы спрашиваете об SDK, связанном с аудио, а не о асинхронном модуле io. –
Вы правы, я отредактировал его, спасибо. – F1sher