Программирование аудио низкого уровня - PullRequest
1 голос
/ 14 ноября 2010

Интересно;использует ли аудио-программное обеспечение, такое как Cubase и Audacity, вызовы PlaySound ??

Где я могу узнать о низкоуровневом программировании звука?Насколько я нашел информацию в Интернете, MCI, кажется, самый низкий уровень аудио API в Windows ...

Спасибо

Редактировать : Я неЗапросить информацию, относящуюся только к Windows.

Ответы [ 3 ]

6 голосов
/ 14 ноября 2010

Есть несколько аудио API для выбора. Самым старым и наиболее широко поддерживаемым является API waveOut - ищите функции, начинающиеся с waveOut в MSDN. Немного новее - DirectSound, который больше ориентирован на игры, но его основной особенностью по сравнению с waveOut является позиционный 3D-звук, который не использует профессиональное звуковое программное обеспечение (он также должен был иметь более низкую задержку, чем waveOut, но так и не реализовался). Для аудио с низкой задержкой есть ASIO . Профессиональные аудиоприложения поддерживают этот API, но не все драйверы поддерживают его (это стандартная функция в профессиональных звуковых картах, но не в игровом или встроенном оборудовании). ASIO может обеспечить намного меньшую задержку, чем waveOut или DirectSound. Наконец, есть потоковый интерфейс ядра, который является аудиоинтерфейсом самого низкого уровня, все еще доступным из кода пользовательского режима. Это прямой канал во внутренний микшер Windows, который объединяет выходные данные всех приложений, воспроизводящих звук, с сигналом, который передается на звуковую карту. Это едва ли документировано, хотя. Существует драйвер под названием ASIO4ALL (просто Google), который обеспечивает поддержку ASIO на звуковых картах без драйверов ASIO за счет реализации API ASIO поверх потокового интерфейса ядра.

1 голос
/ 19 октября 2015

Я немного опоздал к игре, но на прошлой неделе я опубликовал историю Windows API, которая может добавить немного больше контекста. Выбор API действительно зависит от ваших потребностей. Если вы хотите избежать сторонних библиотек, то в действительности это касается только MME, XAudio2 и Core Audio (WASAPI).

Краткая история API-интерфейсов Windows Audio

Надеюсь, это поможет!

1 голос
/ 20 сентября 2015

На самом деле, если вы ищете не только поддержку вывода только для Windows, то лучше всего начать с обзора PortAudio Фила Берка, доступного на момент написания статьи http://www.portaudio.com/.

ASIO - это интерфейс хорошего качества, но он проприетарный и принадлежит Steinberg.

Существует много низкоуровневых интерфейсов для вывода звука, чем MCI в современной Windows. К ним относятся, по крайней мере, DirectSound , XAudio и WASAPI .

Я рекомендую по возможности избегать API-интерфейсов Windows и изучать PortAudio.

...