Windows directsound или windows wasapi

  • Печать

Страницы: [1] 2  Все   Вниз

Тема: Разница между Directsound и Wasapi Shared  (Прочитано 21686 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Поясните в чём разница между этими двумя выводами, не могу нигде найти внятный ответ. При выборе Wasapi Shared в параметрах есть выбор только 32 бита почему-то! Не могу понять логику, потому как частота дискретизации в параметрах та которую я выбираю в устройствах воспроизведения звука Windows, но разрядность всегда 32 бита. Не понятно вообще с какой разрядностью выводится звук? 32 бита? Но у меня карта не поддерживает 32 бита, токгда получается идёт преобразование 32 в 16 или 24, но это не есть гуд. Поясните.

« Последнее редактирование: Апреля 08, 2016, 16:20:03 от Soolo »


Записан


Wasapi Shared использует тот формат, который указан у вас в настройках ОС. Сколько у вас указано в настройках? 24?
DirectSound смысла использовать нет — все, что вы выберите все равно сведется к тому, что настроено у вас в ОС.

токгда получается идёт преобразование 32 в 16 или 24, но это не есть

Что в этом вас пугает?


Записан


ну вроде как понижение разрядности это не очень хорошо для звука, нет?


Записан


Две статьи на эту тему есть в блоге (не говоря уже про другие статьи в интернете) и всё-равно постоянные вопросы. Гуглом надо пользоваться.
Вот актуальная статья на тему https://www.aimp.ru/blogs/?p=597

Но у меня карта не поддерживает 32 бита, токгда получается идёт преобразование 32 в 16 или 24, но это не есть гуд.

ну вроде как понижение разрядности это не очень хорошо для звука, нет?

Преобразования битности вроде 16>>32>>16,  16>>32>>24,  24>>32>>24 идут без потерь


Записан


ясно! но не понятно тогда что показывает output в плеере? 48000 Hz 32 bit! Это output ЧЕГО? плеера или карты? не понятно просто почему частота дискретизации выбирается в настройках звука windows, а разрядность НЕТ!! смена разрядности производится средствами windows, а передискретизация? и в чём собственно отличие от directsound?


Записан


Две статьи на эту тему есть в блоге (не говоря уже про другие статьи в интернете) и всё-равно постоянные вопросы. Гуглом надо пользоваться.
Вот актуальная статья на тему https://www.aimp.ru/blogs/?p=597
Преобразования битности вроде 16>>32>>16,  16>>32>>24,  24>>32>>24 идут без потерь

да потому что вопрос мой не в этом что вы привели, я не спрашивал про качество звука, а про организацию настроек плеера!! они не понятны и не понятна разница между wasapi shared и directsound в этих настройках, откуда 32 бита взялось? ещё раз — В ЧЁМ РАЗНИЦА МЕЖДУ ЭТИМИ ВЫВОДАМИ? не ЗВУКА, а ОРГАНИЗАЦИИ ВЫВОДА!!


Записан


ясно! но не понятно тогда что показывает output в плеере? 48000 Hz 32 bit!

это то, что отдаёт плеер

не понятно просто почему частота дискретизации выбирается в настройках звука windows, а разрядность НЕТ!!

обычно всё выбирается, прокрутите список вариантов ниже

смена разрядности производится средствами windows, а передискретизация?

смешались кони-люди… (с)
Оба параметра могут менять и плеер и ОС, а может никто не менять, всё зависит от настроек

и в чём собственно отличие от directsound?

забудьте о directsound — в Win7 и новее это не более, чем прослойка для режима WASAPI (сделана для совместимости со старыми программами), об этом я в статье писал, ссылка на статью выше.

ещё раз — В ЧЁМ РАЗНИЦА МЕЖДУ ЭТИМИ ВЫВОДАМИ? не ЗВУКА, а ОРГАНИЗАЦИИ ВЫВОДА!!

Я уже говорил про Гугл, ещё его не заблокировали вроде: http://audiophilesoft.ru/publ/my/win7_sound/11-1-0-84

откуда 32 бита взялось?

ОС запрашивает такую битность, АИМП её выдаёт — оттуда и взялись


Записан


я ничего не смешиваю, я вполне разбираюсь в выводах звука, это у вас в настройках всё смешано! я спрашиваю про конкретный вывод wasapi shared! где производится передискретизация файла 44.1 kHz 16bit, если в параметрах плеера выбрать 48 khz 32 bit? (КРОМЕ 32 там ничего нет) ответьте пожалуйста на этот конкретный вопрос!


Записан


я ничего не смешиваю, я вполне разбираюсь в выводах звука, это у вас в настройках всё смешано! я спрашиваю про конкретный вывод wasapi shared! где производится передискретизация файла 44.1 kHz 16bit, если в параметрах плеера выбрать 48 khz 32 bit? (КРОМЕ 32 там ничего нет) ответьте пожалуйста на этот конкретный вопрос!

Ничего у нас не смешано.
1. Вы указываете для конкретного вывода звука, конкретный формат передачи данных.
2. Список поддерживаемых форматов возвращает драйвер / ОС.
3. Как я уже сказал, зачастую драйвера вместо 24 бит в п.2. выдают 32, просто потому, что с ними проще работать, нежели с 24-битами, а потери в качестве нет.
4. В ту частоту, которую вы указали в ___настройках плеера___, передескритизирует (внезапно) плеер.
5. Будет ли ОС или драйвер передескритизировать полученный поток после плеера — плееру неизвестно.


Записан


я ничего не смешиваю, я вполне разбираюсь в выводах звука, это у вас в настройках всё смешано! я спрашиваю про конкретный вывод wasapi shared! где производится передискретизация файла 44.1 kHz 16bit, если в параметрах плеера выбрать 48 khz 32 bit? (КРОМЕ 32 там ничего нет) ответьте пожалуйста на этот конкретный вопрос!

В режиме WASAPI Shared вообще не может быть выбора параметров
Все параметры задаются исключительно в ОС
Что касается битности, в этом режиме ОС всегда запрашивает 32 бит
Все преобразования в этом режиме делаются АИМПом


Записан


Отвечать на вопрос, чем именно отличается DirectSound от WASAPI не вижу смысла, Soolo уже сказал — первый существует в винде для совместимости с программами для старых ОС. А то, что вы там можете выбрать даже то, что не снилось — это иллюзия, все эти возможности эмулируются на уровне ОС.


Записан


«В режиме WASAPI Shared вообще не может быть выбора параметров
Все параметры задаются исключительно в ОС»

» В ту частоту, которую вы указали в ___настройках плеера___, передескритизирует (внезапно) плеер.»

ну вот как это понимать? это и странно! параметры задаются ОС, но передискретизация производится плеером! по идее windows в данном случае должен делать передискретизацию, так как настройки частоты задаются именно в параметрах звука Windows! К чему тогда фраза «Будет ли ОС или драйвер передескритизировать полученный поток после плеера — плееру неизвестно». Нам-то известно что мы выбрали в настройках windows 48, зачем тогда плеер сам делает передисретизацию? Только разве что ради более хорошего качества, так что ли?

по поводу битности — то есть плеер сам выдаёт в этом режиме 48-32, а система оставляет 48 нетронутым (так как сама настроена на 48), но преобразовывает при этом 32 в то что выбрано в настройках звука windows, так я понимаю? то есть она запрашивает 32, но потом всё равно преобразовывает 32 в то что выбрано в windows?


Записан


ну вот как это понимать? это и странно! параметры задаются ОС, но передискретизация производится плеером! по идее windows в данном случае должен делать передискретизацию, так как настройки частоты задаются именно в параметрах звука Windows!

Нам-то известно что мы выбрали в настройках windows 48, зачем тогда плеер сам делает передисретизацию? Только разве что ради более хорошего качества, так что ли?

Звуковая система ОС работает с некоторыми параметрами. В режиме WASAPI Shared плеер подстраивается под эти параметры. Всё очень просто.


К чему тогда фраза «Будет ли ОС или драйвер передескритизировать полученный поток после плеера — плееру неизвестно».

по поводу битности — то есть плеер сам выдаёт в этом режиме 48-32, а система оставляет 48 нетронутым (так как сама настроена на 48), но преобразовывает при этом 32 в то что выбрано в настройках звука windows, так я понимаю? то есть она запрашивает 32, но потом всё равно преобразовывает 32 в то что выбрано в windows?

Все несоответствия настроек ОС и возможностей железа карты (например 32 бит карты не поддерживают) будут кем-то устраняться. Вероятнее всего это будет ОС, но может быть и драйвер. К примеру для настройки 24 бит зачастую именно драйвер преобразует 32 в 24.

Но по поводу битности вообще можно не париться — преобразование без потерь (кроме случаев вывода 24 битной музыки на карту 16 бит).


Записан


то есть если обобщить — плеер сам делает преобразование 44.1-16 в 48-32, основываясь на выставленной частоте windows и разрядности, которую ОС запросила, а потом система корректирует под железо разрядность и именно в ту разрядность которая также указана в настройках windows (то есть 24 или 16)? правильно?


Записан


ну вот как это понимать? это и странно! параметры задаются ОС, но передискретизация производится плеером! по идее windows в данном случае должен делать передискретизацию, так как настройки частоты задаются именно в параметрах звука Windows!

Да, она может менять сама, если вы используете старый механизм вывода — через DirectSound. В противном случае, плеер должен подготовить сигнал в тот формат, который поддерживается WASAPI, он может использовать собственный ресемплер, а может системный. Но в любом случае, ресемплиться поток будет на стороне плеера.

Нам-то известно что мы выбрали в настройках windows 48, зачем тогда плеер сам делает передисретизацию? Только разве что ради более хорошего качества, так что ли?

Он это делает, если это нужно. Например, у вас исходный файл — 44.1, а WASAPI принимает только 48. Плеер переводит 44.1 в 48. А вот будет ли потом винда/драйвер переводить эти 48 в 96 или 88.2, или еще во что-то — мы не знаем. Да и вы, я уверен, вряд ли знаете.

по поводу битности — то есть плеер сам выдаёт в этом режиме 48-32, а система оставляет 48 нетронутым (так как сама настроена на 48), но преобразовывает при этом 32 в то что выбрано в настройках звука windows, так я понимаю? то есть она запрашивает 32, но потом всё равно преобразовывает 32 в то что выбрано в windows?

Да, как-то так.


Записан


  • Печать

Страницы: [1] 2  Все   Вверх

DirectSound и Windows Audio Session (WASAPI) — две основные технологии для работы с аудио в операционных системах Windows. Обе технологии предоставляют разработчикам интерфейсы для управления воспроизведением и записью звука, но существуют некоторые ключевые отличия между ними.

Одним из основных отличий между DirectSound и WASAPI является уровень доступа к аудио-устройствам. DirectSound предоставляет высокий уровень абстракции, скрывая особенности аудио-устройств и предоставляя простой интерфейс для работы с звуком. С другой стороны, WASAPI предоставляет низкоуровневый доступ к аудио-устройствам, что позволяет более точно контролировать воспроизведение и запись аудио.

Еще одним отличием является поддержка форматов и режимов работы. DirectSound поддерживает большое количество аудио форматов и может работать в разных режимах, таких как эксклюзивный и разделяемый доступ к аудио-устройству. С другой стороны, WASAPI поддерживает более широкий спектр форматов и обеспечивает эксклюзивный доступ к аудио-устройству для достижения наивысшего качества воспроизведения.

В итоге выбор между DirectSound и WASAPI зависит от конкретных потребностей и задач разработчика. Если вам требуется простой и удобный интерфейс для работы со звуком, то DirectSound может быть лучшим вариантом. Если же вам необходимо более точное управление и более высокое качество аудио, то стоит рассмотреть использование WASAPI. В любом случае, обе технологии предоставляют мощный инструментарий для работы с аудио в операционных системах Windows.

Содержание

  1. Преимущества DirectSound и Windows Audio Session
  2. Понимание принципов работы DirectSound
  3. Преимущества Windows Audio Session перед DirectSound

Преимущества DirectSound и Windows Audio Session

Преимущества DirectSound:

  • DirectSound является более старой технологией, которая была представлена в Windows 95. Она имеет широкую совместимость с различными версиями операционной системы Windows.
  • DirectSound поддерживает множество аудио-устройств, включая встроенные звуковые карты, USB-аудио интерфейсы и другие внешние устройства.
  • DirectSound предоставляет богатый набор функций для обработки звука, таких как управление громкостью, позиционирование звука в пространстве и эффекты.
  • DirectSound поддерживает многоканальное аудио и позволяет работать с звуком в режиме реального времени.

Преимущества Windows Audio Session:

  • Windows Audio Session является более современной технологией, представленной в Windows Vista. Она разработана с учетом современных требований к аудио-приложениям и обеспечивает более низкую задержку и лучшую качество звука.
  • Windows Audio Session обеспечивает эксклюзивный доступ к аудио-устройствам, что позволяет работать с ними без конфликтов и прерываний со стороны других приложений.
  • Windows Audio Session поддерживает режимы исключительной и разделяемой работы с аудио-устройствами, что позволяет более гибко управлять использованием ресурсов и звуковых устройств.
  • Windows Audio Session обеспечивает нативную поддержку низколатентных аудиодрайверов, таких как ASIO (Audio Stream Input/Output), что важно для профессиональных аудио-приложений, требующих высокой производительности и качества звука.

В зависимости от конкретных требований и характеристик вашего проекта, выбор между DirectSound и Windows Audio Session может быть разным. Важно учитывать совместимость с версиями операционной системы Windows, тип используемых аудио-устройств, требования к задержке и качеству звука, а также наличие необходимости в эксклюзивном доступе к аудио-устройствам.

Понимание принципов работы DirectSound

Основные принципы работы DirectSound включают следующие элементы:

  1. Audio Buffers: DirectSound работает с аудио данными в виде буферов, которые содержат сырые аудио-сэмплы. Звуковые данные передаются в буферы, которые затем рассматриваются как потоковые данные и воспроизводятся на аудиоустройстве. Буферы могут использоваться для воспроизведения звуков, записи аудио и других операций.
  2. Primary Buffer: Основной буфер используется для управления аудиоустройством и настройками звука. Этот буфер задает параметры воспроизведения, такие как формат аудио данных, частота дискретизации, громкость и общая задержка.
  3. Secondary Buffers: Вспомогательные буферы используются для воспроизведения звуковых эффектов, многоканального звука и других операций. Они могут быть связаны с основным буфером или использоваться независимо.
  4. Notifications: DirectSound поддерживает уведомления о событиях связанных с буфером, например, окончание воспроизведения или заполнение буфера новыми аудио данными. Это позволяет приложениям синхронизировать свою работу с воспроизведением.

Понимание принципов работы DirectSound позволяет разработчикам эффективно использовать данную аудио-технологию для реализации различных задач, связанных с обработкой и воспроизведением звука в операционной системе Windows.

Преимущества Windows Audio Session перед DirectSound

1. Низкая задержка и высокая производительность:

Windows Audio Session обеспечивает более низкую задержку и более высокую производительность по сравнению с DirectSound. Это особенно важно для аудио-приложений, где даже небольшая задержка может вызывать неприятные замедления или отставание воспроизведения.

2. Поддержка эксклюзивного режима воспроизведения:

Windows Audio Session позволяет программе работать в эксклюзивном режиме воспроизведения, что означает, что она имеет полный контроль над устройством воспроизведения. Это полезно для приложений, где требуется высокая степень точности и контроля над аудио-выводом.

3. Лучшая совместимость с новыми версиями Windows:

Windows Audio Session обеспечивает лучшую совместимость с новыми версиями операционной системы Windows. Использование DirectSound может стать проблемой на более новых версиях Windows, где эта технология может быть ограничена или даже удалена.

4. Поддержка более широкого набора форматов:

Windows Audio Session поддерживает более широкий набор аудио-форматов, включая более высокое разрешение, частоту дискретизации и количество каналов. Он также имеет более гибкую систему управления форматами, позволяя программам легко адаптироваться к различным требованиям.

5. Обновления и поддержка:

Windows Audio Session является более новой технологией и активно поддерживается и обновляется Microsoft. Это означает, что разработчики могут рассчитывать на обновления и исправления, а также получить поддержку от Microsoft в случае возникновения проблем.

В целом, Windows Audio Session является более современной и предпочтительной технологией перед устаревшим DirectSound. Он обеспечивает более низкую задержку, более высокую производительность, лучшую совместимость и большую гибкость по сравнению с DirectSound, делая его идеальным выбором для современных аудио-приложений.

Содержание

  1. Блог проекта AIMP
  2. Анонсы / Планы / Заметки
  3. Тестирование методов вывода звука
  4. Тест1: В поисках побитово точного вывода
  5. Тест2: Оставшиеся методы вывода звука
  6. Резюме
  7. Тестирование методов вывода звука : 14 комментариев
  8. Добавить комментарий Отменить ответ
  9. MME, Windows DirectSound или Wasapi
  10. 2 ответов
  11. Зачем нужно WASAPI и как правильно выводить звук в Windows
  12. Что такое WASAPI
  13. В чем отличие Wasapi Exclusive (Event) от Wasapi Exclusive (Push)
  14. В чем разница между Directsound и Wasapi Shared
  15. Что лучше ASIO или WASAPI
  16. Какие операционные системы поддерживают Wasapi
  17. Где скачать драйвер Wasapi
  18. Вывод

Блог проекта AIMP

Анонсы / Планы / Заметки

Тестирование методов вывода звука

Чем отличаются методы вывода звука и какой из них лучше использовать? Попытаемся разобраться…

Подопытные методы вывода звука:

  • DirectSound
  • WASAPI (Shared Mode)
  • WASAPI (Exclusive Mode)
  • ASIO (ASIO4ALL)
  • Kernel Streaming

Конфигурация

  • Подопытный плеер: Foobar v1.1.11
    Он умеет выводить звук через все интересующие нас методы
  • ОС: Windows XP Pro SP3 Rus x86 / Windows 7 Ultimate SP1 Rus x86
    Windows XP добавлена к тестированию поскольку: KernelStreaming не работает на современных версиях ОС; Реализация DirectSound начиная с Windows Vista претерпела серьезные изменения
  • Звуковая карта: Virtual Audio Streaming
    Виртуальная звуковая карта позволяет исключить особенности железа и реализации драйверов к нему. В добавок к этому, нам будет проще списать с нее выходные данные
  • Настройки плеера и ОС: 44.1 кГц, 16 Бит/сэмпл, громкость 100%, эквалайзер и другие эффекты выключены

Методика тестирования
Для замеров я использовал RightMark Audio Analyzer (RMAA). В ней сгенерировал тестовый WAV-файл, со следующими характеристиками: 44.1 кГц, 16 Бит/сэмпл. Далее, воспроизводил этот файл в плеере, выбирая различные методы вывода звука, записывал выходной сигнал напрямую в файл и анализировал с помощью той же RMAA.

Тест1: В поисках побитово точного вывода

Первым делом решил протестировать так называемые «побитово точные» методы вывода — WASAPI Exclusive, Kernel Streaming и ASIO (посредством ASIO4ALL). Ходят мнения, поскольку эти методы обходят микшер Windows, то дают наиболее качественный, чуть ли не идеальный звук. Проверим!

Выходной поток будем сравнивать с входным с помощью RMAA, а так же побитово с помощью утилитки сравнения файлов. Поехали!

Нелинейные искажения + шум (при уровне -3 дБ)

Параметры одинаковые, графики совпали. Вроде можно говорить о побитово точном выводе. Но сравнивая входной и выходной файлы с помощью специальной утилитки — наткнулся на странный факт: для ASIO4ALL файлы абсолютно разные, хотя для WASAPI Exclusive и Kernel Streaming полное совпадение.

Причина оказалась в нелинейной фазочастотной характеристике (ФЧХ), а так же в присутствии фазовых задержек:

ASIO4ALL Фазовая задержка

Выводы
WASAPI Exclusive и Kernel Streaming действительно дают побитово точный вывод звука, а вот при использовании ASIO4ALL, формально, ни о каком побитовом выводе речи быть не может. Да, системный микшер ASIO4ALL обходит, но вносит в сигнал собственные искажения в виде нелинейной ФЧХ и фазовых задержек. С другой стороны — фазовые искажения (если они одинаковы во всех каналах) никак не воспринимаются на слух.

Тест2: Оставшиеся методы вывода звука

Нелинейные искажения + шум (при уровне -3 дБ)

Выводы
Что же мы видим? DirectSound в Windows XP оказался очень крут. Побитовое сравнение входного и выходного файла это подтвердило: файлы одинаковые! Честно говоря, я сам не поверил измерениям, но но два повторных измерения дали тот же результат. DirestSound в Windows XP выдает побитово точный вывод звука! Разумеется, это верно, если микшер не работает (отсутствуют другие системные или программные звуки) и системная громкость установлена на 100%.
Если сравнить Direct Sound Windows 7 и WASAPI — первый немного лучше. Но в общем и целом, оба метода вносят совершенно незначительные искажения в исходный сигнал. Едва ли со среднестатистическим оборудованием эту разницу возможно услышать.

Резюме

Что же мы имеем? А имеем мы вот что: три побитово точных метода вывода звука: DirectSound в (Windows XP), WASAPI Exclusive, Kernel Streaming (последний поддерживается считанными Плеерами). Кроме этого мы имеем ASIO (тот, который настоящий, не ASIO4ALL), который мне протестировать не удалось, да и поддерживается он ограниченным количеством устройств. И ещё мы имеем два метода вывода, которые вносят небольшие искажения в исходный сигнал: DirectSound Windows 7 и WASAPI Shared. Но, подчёркиваю, искажения эти настолько незначительны, что на слух их распознать можно лишь имея отнюдь недешевое оборудование.

Какой же метод вывода включить в Плеере?

  • Windows XP : однозначно DirectSound — отлично работает, не вносит искажений
  • Windows 7 : тут не всё однозначно. Для получения супер-качественного звука можно использовать WASAPI Exclusive или ASIO (при наличии поддержки). Но эти методы блокируют другие звуки в системе, что не всегда удобно. Гораздо удобнее использовать WASAPI или DirectSound.

Kernel Streaming советовать не буду. Пусть этот метод и крут, но его поддержку я встречал лишь у Foobar2000 на уровне «test», и этот метод не работает на ОС начиная с Vista.

Что касается ASIO4ALL : в Windows 7 мы действительно получим небольшое улучшение качества звука (если сравнивать с WASAPI или DirectSound), а вот в Windows XP выгода от использования минимальна: при отсутствии посторонних звуков, идущих на микшер, и 100% системной громкости — местный DirectSound выдает побитово точный звук.

Спасибо за внимание. Надеюсь кому-то данные исследования будут полезны.

Тестирование методов вывода звука : 14 комментариев

А Windows Default это что?

Это вообще не метод вывода, а устройство (наушники или динамики — то, которое вы назначили по умолчанию для вывода звука)

Windows Default — устройство по умолчанию, согласно настройкам ОС. В AIMP-е, для каждого из методов вывода звука (за исключением ASIO), есть свой «Windows Default»

Ну у меня есть выбор или Realtek Hd или DirectSound: Windows Default вот так 🙂 а еще в другом плеере есть DirectSound8 audio slink или это одно и тоже Direct ? 🙂

Покажите лучше скриншоты

А чем можно сделать скриншоты?

Считаю необходимым сделать в AIMP вывод через WSAPI Exclusive. Сейчас для прослушивания lossless использую foobar2000, но один плеер лучше, чем два. Кстати, буду благодарен на ссылку с описанием тракта AIMP3, если таковая информация имеется.

> буду благодарен на ссылку с описанием тракта AIMP3, если таковая информация имеется.
вот http://www.aimp.ru/blogs/?p=88

Попробовал в наушниках послушать FLAC через WSAPI Shared — звук отчётливо чище, особено высокие частоты, но загрузка процессора при этом на уровне 33%, причём 3-е из трёх ядер загружено «в потолок», через DirectSound нагрузка CPU 1-2%. WSAPI Exclusive — к сожалению протестировать не удалось, AIMP виснет, видимо дрова моего SB Audigy для 7-ки не тянут.

Direct Sound однозначно 🙂

Неплохая статья, которая развенчивает многие мифы по поводу суперкачества ASIO

Добавить комментарий Отменить ответ

Для отправки комментария вам необходимо авторизоваться.

Так im с помощью Audacity и было интересно, какое устройство записи / системы я должен использовать для лучшего качества звука? Есть MME, Windows DirectSound и Wasapi.Im на ноутбуке Windows 7, и я попробовал их все, и я не вижу большой разницы между three.By по умолчанию настройки были на MME.

2 ответов

MME часто является выбором по умолчанию, так как он поддерживается большинством ОС Windows (MME был выпущен в 1991). Между DirectSound и WASAPI нет большой разницы, так как DirectSound-это в основном просто интерфейс, связанный с DirectX, для интерфейса Windows Audio Session API (WASAPI). WASAPI имеет самую низкую задержку из всех (по дизайну) и поэтому должен быть предпочтительным для записи (особенно когда дело доходит до многодорожечного).

«MME: это Audacity по умолчанию и наиболее совместим со всеми аудио устройств.

Windows DirectSound: это более свежее, чем MME с потенциально меньшей задержкой.

Windows WASAPI: этот хост является самым последним интерфейсом Windows, который поддерживает Audacity, между приложениями (например, Audacity) и драйвером звуковой карты. WASAPI был впервые официально выпущен в 2007 году в Windows Vista. WASAPI особенно полезен для «loopback» устройства для записи воспроизведения на компьютере. Поддерживает 24-разрядные устройства записи. Воспроизведение эмулируется с помощью этого хоста. В результате ползунок воспроизведения на панели инструментов Mixer будет масштабировать только текущий уровень ползунка воспроизведения системы вверх или вниз, а не непосредственно манипулировать этим системным ползунком.»

все между кавычками произошло непосредственно от Audacity. Похоже, им было много, чтобы сказать о WASAPI.

Зачем нужно WASAPI и как правильно выводить звук в Windows

Windows Audio Session API (WASAPI) позволяет клиентским устройствам управлять потоком аудиоданных между приложением и конечным аудиоустройством. Делает комфортным прослушивание музыкальных композиций и микширование без нежелательных задержек и без потери качества. Удобно wasapi скачать на нашем сайте и установить.

Что такое WASAPI

Каждый аудиопоток, воспроизводимый на устройстве, является участником audio сеанса. С помощью абстракции сеанса клиент WASAPI может идентифицировать аудиопоток как член группы связанных аудиопотоков. Система может управлять всеми потоками в session как единым целым.

Аудиодвижок – это аудиокомпонент пользовательского режима, через который приложения совместно используют доступ к конечному аудиоустройству. Звуковая машина передает аудиоданные между буфером конечной точки и конечным устройством. Для воспроизведения аудиопотока через устройство конечной точки рендеринга приложение периодически записывает аудиоданные в буфер конечной точки рендеринга. Звуковой движок микширует потоки из различных приложений. Чтобы записать аудиопоток с устройства конечной точки захвата, приложение периодически считывает аудиоданные из буфера конечной точки захвата.

WASAPI состоит из нескольких интерфейсов. Первый из них – это интерфейс IAudioClient. Чтобы получить доступ к интерфейсам WASAPI, клиент сначала получает ссылку на интерфейс IAudioClient конечного аудиоустройства, вызывая метод IMMDevice :: Activate с параметром iid, установленным на REFIID IID_IAudioClient. Клиент вызывает метод IAudioClient :: Initialize для инициализации потока на устройстве конечной точки. После инициализации потока клиент может получить ссылки на другие интерфейсы WASAPI, вызвав метод IAudioClient :: GetService.

Многие методы в WASAPI возвращают код ошибки AUDCLNT_E_DEVICE_INVALIDATED, если конечное аудиоустройство, используемое клиентским приложением, становится недействительным. Часто приложение может исправить эту ошибку.

WASAPI реализует следующие интерфейсы в foobar.

  • AudioCaptureClient. Позволяет клиенту читать входные данные из буфера конечной точки захвата и передавать в браузер.
  • AudioClient. Создавать, настроить и инициализировать аудиопоток между аудиоприложением и аудиосистемой или аппаратным буфером конечного аудиоустройства.
  • AudioClock. Отслеживать скорость передачи данных потока и текущую позицию в потоке.
  • AudioRenderClient. Записывать выходные данные в буфер конечной точки рендеринга.
  • AudioSessionControl. Настраивать параметры управления для аудиосеанса и отслеживать события в сеансе, в том числе default.
  • AudioSessionManager. Включить доступ к элементам управления сеансом и элементам управления громкостью как для межпроцессных, так и для конкретных аудиосеансов.
  • AudioStreamVolume. Контролировать и отслеживать уровни громкости для всех каналов в аудиопотоке.
  • ChannelAudioVolume. Управлять уровнями громкости для всех каналов в аудиосеансе, которому принадлежит поток.
  • SimpleAudioVolume. Управлять общим уровнем громкости аудиосеанса.
  • AudioSessionEvents. Предоставляет уведомления о событиях, связанных с сеансом, таких как изменения уровня громкости, отображаемого имени и состояния сеанса. Открывает доступ пользователю данной программы в mode и support.

В чем отличие Wasapi Exclusive (Event) от Wasapi Exclusive (Push)

Если вы решили скачать wasapi exclusive , то есть два варианта на 32 и 64 bite. Есть два основных способа связи с помощью:

  • Wasapi Exclusive (Event).
  • Wasapi Exclusive (Push).

Оба передают одни и те же аудиоданные и звучат одинаково. Отличие заключается, исключительно, в возможности работать с тем или иным оборудованием.

Обратите внимание: начиная с версии «MC 18.0.183», WASAPI теперь используется, как программа по умолчанию. Если ваше аудиоустройство не поддерживает этот режим, его можно отключить в диалоговом окне настроек устройства.

Версии до 18.0.183. В режиме вывода WASAPI данные из Media Center передаются на звуковое устройство. Он работает практически со всем оборудованием.

WASAPI Event Style позволяет звуковому устройству извлекать данные из Media Center. Этот метод поддерживается не всем оборудованием, но рекомендуется, если он поддерживается. Это дает несколько преимуществ:

Это позволяет аудиоподсистеме извлекать данные вместо того, чтобы отправлять данные в систему.

Оборудование (или интерфейс WASAPI) никогда не видит вызовов паузы или сброса. Вместо этого при паузе или сбросе тишина доставляется в цикле pull. Это устраняет необходимость во взломах карт, которые окружают свои буферы при паузе, сбросе и т. Д. (ATI HDMI и т. д.). Это обеспечивает более прямой путь данных к driver/оборудованию. В основном «цикле извлечения» используется круговой буфер без блокировки (система, которую Дж. Ривер построил для ASIO), поэтому выполнение запроса на извлечение выполняется как можно быстрее.

В чем разница между Directsound и Wasapi Shared

Windows – наиболее широко используемая операционная система в мире. люди используют ее для решения повседневных задач, и прослушивание звука – одна из них. Microsoft Windows 7 и выше может воспроизводить звук двумя способами. используя прямую поддержку звука Directx и поддержку WASAPI. большинство приложений Windows используют подход Direct Sound. Windows может воспроизводить несколько потоков из разных приложений при использовании прямого звука. Directsound работает как промежуточный уровень между программным обеспечением и звуковыми драйверами. Он берет звук из другого программного обеспечения, затем передискретизирует весь звуковой поток в один поток, а затем отправляет его в аудиодрайверы. Обратной стороной этого подхода является то, что мы никогда не получаем то, что на самом деле играем. например, если кто-то воспроизводит звуковой файл на 192 кГц, 24 бит. тогда окна, вероятно, преобразуют его в 44 кГц, 16 бит с другим звуком. Прямой звук автоматически передискретизирует звуковой поток до соответствующей частоты дискретизации, которая может поддерживаться аудиооборудованием.

WASAPI предоставляет два режима работы. общий режим и эксклюзивный режим. Общий режим работает так же, как прямой звук, а микшер Win выполняет повторную выборку и микширование. В эксклюзивном режиме WASAPI обходит звуковой микшер Windows, и приложение может напрямую отправлять данные на звуковую карту. в этом режиме приложение может декодировать такие форматы, как DTS, DTS master audio, DOLBY True HD, Dolby digital, Flac и т. д., и отправлять неизмененный поток на звуковую карту.

Кроме различных режимов, важно также, как WASAPI управляет данными между буферами. WASAPI использует подход пуш и PULL для запроса данных, которые необходимо обработать. При использовании метода push приложение помещает данные в буферы и постоянно отслеживает их, и как только видит, что они опустошены, оно заполняет их снова. В подходе PULL, который является современной разработкой, приложение использует два буфера. Аудиодрайверы вызывают приложение, как только оно видит пустой буфер, и начинает использовать данные из другого буфера. тем временем приложения заполняют пустой буфер.

Что лучше ASIO или WASAPI

ASIO был разработан для обхода исходной некорректной аудиоподсистемы Windows, которая заставляла все работать с фиксированной скоростью, смешивала системные звуки и аудиопотоки и имела серьезные проблемы с задержкой. ASIO был разработан для обеспечения интерфейса с малой задержкой для профессиональных аудио вычислений. Wasapi – это разработка Microsoft, устраняющая недостатки на более ранней стадии, и она работает стабильно. Но она меньше поддерживает нестандартные скорости воспроизведения и может не поддерживать dop dsd или более высокие скорости dsd.

ASIO изначально поддерживает все частоты дискретизации, которые может обрабатывать подключенный ЦАП, и не имеет проблем с dsd. Длина буфера в основном зависит от общей загрузки системы, поскольку компьютеру приходится прерывать другие операции для загрузки следующего фрагмента выборок в выходной буфер, поэтому в системах с низким энергопотреблением или более загруженных системах очень короткий или очень длинный буфер может увеличить нагрузку на процессор. Это может спровоцировать нежелательную задержку при воспроизведении музыкальных композиций.

ASIO – это модель аудиоинтерфейса Steinberg, используемая практически во всех профессиональных аудиоприложениях, и обычно это лучший способ работы с очень низкими задержками. Производители профессиональных звуковых карт предоставляют драйверы ASIO. Его единственная слабость заключается в том, что вы можете использовать только один драйвер ASIO за раз, что может вызвать проблемы в будущем, поскольку все больше и больше студийного оборудования, такого как микрофоны, звуковые модули и мониторы (именно так называются динамики в мире профессионального обучения). audio) поставляются с интерфейсами USB, а не с более старой моделью, объединяющей все ваши входы и выходы в единый аудиоинтерфейс.

Многие компании, производящие потребительское аудио, в наши дни производят asio-драйверы для своих ЦАП, поскольку они исключают из уравнения любые вычисления в Windows и обеспечивают более высокие шансы на получение хороших результатов от их продукта.

Какие операционные системы поддерживают Wasapi

Wasapi разработан для операционного семейства Windows и стабильно работает с ОС, начиная от Windows 7 и XP. Wasapi в Windows 10, по мнению большинства пользователей, является наиболее удобной.

Где скачать драйвер Wasapi

Скачать драйвер для Wasapi, а также сопутствующее программное обеспечение можно тут.

Вывод

WASAPI предоставляет два варианта рендеринга звука – общий режим и эксклюзивный режим. В монопольном режиме вы – единственное приложение, которое обращается к рассматриваемой аудио конечной точке – все остальные приложения не могут издавать никакого шума. Это дает наилучшую возможную производительность, как и все профессиональные аудио-приложения, такие как Cubase, SONAR, REAPER, Pro Tools и т. д. Но они не используют WASAPI. Они используют aimp ASIO или Kernel Streaming.

Радиоинженер (по первому высшему образованию). С раннего детства слушаю разнообразную музыку. Всегда интересовался звуковоспроизводящей аппаратурой, которую обновлял множество раз. Я увлеченный любитель и музыка по жизни всегда со мной. Увлекаюсь HI-Fi уже более 20 лет.

Предыдущая статья, посвящённая исследованию методов вывода звука, была опубликована более 3-х лет назад, с тех пор мир немного шагнул вперёд: появились новые операционные системы (ОС) Windows 8, 8.1, 10, AIMP научился выводить звук через WASAPI Exclusive, кроме того, формат High-resolution Audio 192 кГц / 24 бит стал набирать популярность среди обывателей, благодаря появлению более доступных устройств с его поддержкой. Настало время повторить исследования с учётом этих изменений.

Список подопытных

  • ASIO (ASIO4ALL)
  • DirectSound
  • WASAPI (Shared Mode)
  • WASAPI Exclusive (Event)
  • WASAPI Exclusive (Push)

Конфигурация

  • Плеер: AIMP v4.00, build 1678
  • ОС: Windows 10 x64
  • Звуковая карта: Virtual Audio Cable
    Виртуальная звуковая карта позволяет исключить особенности железа и реализации драйверов к нему
  • Звуковой редактор Audacity
    С помощью этого редактора записывался звук
  • Настройки плеера и ОС: 44.1 кГц / 16 бит, 192 кГц / 24 бит, громкость 100%, обработчики звука, эквалайзер и другие эффекты выключены

Методика тестирования

С помощью программы RightMark Audio Analyzer (RMAA) генерируем 2 тестовых файла: 44.1 кГц / 16 бит и 192 кГц / 24 бит. Тестовый сигнал в файлах представляет из себя синусоиду частотой 1 кГц и амплитудой -3 дБ: это тест на величину гармонических искажений. Другие виды искажений, амплитудно-частотная характеристика (АЧХ), динамический диапазон (ДД) так же исследовались, но публиковать результаты их измерения нет смысла, т.к. график АЧХ всегда представлял из себя прямую линию, а все искажения были на уровне гармонических. Далее эти файлы будем воспроизводить в плеере, меняя настройки вывода. Звук снимаем с микрофонного входа карты: в виртуальной карте вход напрямую связан с выходом, минуя преобразование в аналоговый сигнал. Таким образом, мы сможем анализировать тот самый цифровой поток, который в реальной карте отправляется на вход цифро-аналогового преобразователя.

Тест 1:  плеер и ОС 192 кГц / 24 бит

Гармонические искажения методов вывода звука (24 бит)

Рис. 1. Гармонические искажения методов вывода звука (24 бит)

Здесь всё просто и понятно: графики всех сигналов совпали до пикселя, это идеальный случай, когда метод вывода звука никак не влияет на его качество.

Тест 2: плеер и ОС 44.1 кГц / 16 бит

Гармонические искажения методов вывода звука (16 бит)

Рис. 2. Гармонические искажения методов вывода звука (16 бит)

Примечание к картинке: графики ASIO и WASAPI Exclusive полностью совпали с исходным сигналом.

В этом режиме не всё так просто, как в предыдущем. ASIO и WASAPI Exclusive показали 100% точность вывода звука. А вот методы вывода DirectSound и WASAPI (Shared Mode) имеют некий «шум», который на первый взгляд должен портить звучание. Что же это за шум? Ошибка разработчиков, или это было сделано специально? Ответ прост: шум этот, не что иное, как дизеринг. Кратко: дизеринг — это шум минимальной амплитуды, который обычно «подмешивается» к сигналу при понижении глубины дискретизации («битности») записи. Зачем добавлять какой-то шум в сигнал? Давайте узнаем.

Тест 3: плеер 192 кГц / 24 бит, ОС 192 кГц / 16 бит

Примечание: на практике чаще всего используется преобразование записи 192 кГц / 24 бит в 44.1 кГц / 16 бит или 48 кГц / 16 бит: это нужно для карт, которые не поддерживают вывод с более высокими параметрами. Но в данном тесте, чтобы исключить влияние передискретизации, мы будем выводить запись 192 кГц / 24 бит, настроив в звуковой карте 192 кГц / 16 бит. Для этого в AIMP настраивается выход DirectSound 192 кГц, 32(float) бит. 32 бита с плавающей точкой — это та величина, с которой работает звуковой движок AIMP, таким образом сам плеер не будет делать никаких преобразований. Всё, что произойдёт с сигналом, будет «делом рук» ОС. График для сравнения получим с помощью звукового редактора, просто пересохранив файл с уменьшением глубины дискретизации до 16 бит (опцию дизеринга в редакторе, естественно, отключаем).

Гармонические искажения методов вывода звука (16 бит) при обработке 24 битного источника

Рис. 3. Гармонические искажения методов вывода звука (16 бит) при обработке 24 битного источника

Из графика видно, насколько большие искажения получились при простом преобразовании сигнала. А вот сигнал, прошедший «обработку шумом» в недрах DirectSound или WASAPI, напротив, намного «чище». В этом и есть смысл подмешивания шума при выходе 16 бит.

Выводы

Итак, какой же метод вывода звука выбрать?

  1. Если вам важно слышать кроме музыки другие звуки вашего компьютера (уведомления от мессенджеров, звуки игры и т.д.), то нужно использовать WASAPI (Shared Mode) или DirectSound. Эти методы так же можно порекомендовать при воспроизведении 24 битных записей на звуковых картах, не поддерживающих эту разрядность: для этого настраиваем в ОС формат 16 бит. Что касается разницы между WASAPI (Shared Mode) и DirectSound — то она минимальна: вносимые шумы дизеринга на одном уровне. Режим DirectSound «перекочевал» из старых ОС для совместимости со старыми программами.
  2. Поклонники вывода звука «как есть» могут воспользоваться режимами ASIO или WASAPI Exclusive, которые будут глушить все посторонние звуки компьютера, позволяя полностью погрузиться в звучание композиции. Что касается отличий между режимами Event и Push, то разница между ними исключительно техническая, но не звуковая. Отличие состоит в алгоритме буферизации: режим Event предназначен для лучшей совместимости с USB картами, режим Push для остальных случаев. Но исходя из опыта использования, обычно, один из этих алгоритмов работает нестабильно, и это не зависит от интерфейса звуковой карты: в таком случае остаётся выбрать более стабильный режим.
  3. Ну и самый оптимальный вариант, если звуковая карта поддерживает 24 битный режим, — в этом случае любой метод вывода даст идеальный звук: просто не забываем настроить 24 бит в плеере и ОС.

Windows Audio Session API (WASAPI) позволяет клиентским устройствам управлять потоком аудиоданных между приложением и конечным аудиоустройством. Делает комфортным прослушивание музыкальных композиций и микширование без нежелательных задержек и без потери качества. Удобно wasapi скачать на нашем сайте и установить.

Каждый аудиопоток, воспроизводимый на устройстве, является участником audio сеанса. С помощью абстракции сеанса клиент WASAPI может идентифицировать аудиопоток как член группы связанных аудиопотоков. Система может управлять всеми потоками в session как единым целым.

Аудиодвижок – это аудиокомпонент пользовательского режима, через который приложения совместно используют доступ к конечному аудиоустройству. Звуковая машина передает аудиоданные между буфером конечной точки и конечным устройством. Для воспроизведения аудиопотока через устройство конечной точки рендеринга приложение периодически записывает аудиоданные в буфер конечной точки рендеринга. Звуковой движок микширует потоки из различных приложений. Чтобы записать аудиопоток с устройства конечной точки захвата, приложение периодически считывает аудиоданные из буфера конечной точки захвата.

Зачем нужно WASAPI и как правильно выводить звук в Windows

цепочка вывода звука

WASAPI состоит из нескольких интерфейсов. Первый из них – это интерфейс IAudioClient. Чтобы получить доступ к интерфейсам WASAPI, клиент сначала получает ссылку на интерфейс IAudioClient конечного аудиоустройства, вызывая метод IMMDevice :: Activate с параметром iid, установленным на REFIID IID_IAudioClient. Клиент вызывает метод IAudioClient :: Initialize для инициализации потока на устройстве конечной точки. После инициализации потока клиент может получить ссылки на другие интерфейсы WASAPI, вызвав метод IAudioClient :: GetService.

Многие методы в WASAPI возвращают код ошибки AUDCLNT_E_DEVICE_INVALIDATED, если конечное аудиоустройство, используемое клиентским приложением, становится недействительным. Часто приложение может исправить эту ошибку.

WASAPI реализует следующие интерфейсы в foobar.

  • AudioCaptureClient. Позволяет клиенту читать входные данные из буфера конечной точки захвата и передавать в браузер.
  • AudioClient. Создавать, настроить и инициализировать аудиопоток между аудиоприложением и аудиосистемой или аппаратным буфером конечного аудиоустройства.
  • AudioClock. Отслеживать скорость передачи данных потока и текущую позицию в потоке.
  • AudioRenderClient. Записывать выходные данные в буфер конечной точки рендеринга.
  • AudioSessionControl. Настраивать параметры управления для аудиосеанса и отслеживать события в сеансе, в том числе default.
  • AudioSessionManager. Включить доступ к элементам управления сеансом и элементам управления громкостью как для межпроцессных, так и для конкретных аудиосеансов.
  • AudioStreamVolume. Контролировать и отслеживать уровни громкости для всех каналов в аудиопотоке.
  • ChannelAudioVolume. Управлять уровнями громкости для всех каналов в аудиосеансе, которому принадлежит поток.
  • SimpleAudioVolume. Управлять общим уровнем громкости аудиосеанса.
  • AudioSessionEvents. Предоставляет уведомления о событиях, связанных с сеансом, таких как изменения уровня громкости, отображаемого имени и состояния сеанса. Открывает доступ пользователю данной программы в mode и support.

В чем отличие Wasapi Exclusive (Event) от Wasapi Exclusive (Push)

Если вы решили скачать wasapi exclusive , то есть два варианта на 32 и 64 bite. Есть два основных способа связи с помощью:

  • Wasapi Exclusive (Event).
  • Wasapi Exclusive (Push).

Оба передают одни и те же аудиоданные и звучат одинаково. Отличие заключается, исключительно, в возможности работать с тем или иным оборудованием.

Обратите внимание: начиная с версии «MC 18.0.183», WASAPI теперь используется, как программа по умолчанию. Если ваше аудиоустройство не поддерживает этот режим, его можно отключить в диалоговом окне настроек устройства.

Версии до 18.0.183. В режиме вывода WASAPI данные из Media Center передаются на звуковое устройство. Он работает практически со всем оборудованием.

WASAPI Event Style позволяет звуковому устройству извлекать данные из Media Center. Этот метод поддерживается не всем оборудованием, но рекомендуется, если он поддерживается. Это дает несколько преимуществ:

Это позволяет аудиоподсистеме извлекать данные вместо того, чтобы отправлять данные в систему.

Оборудование (или интерфейс WASAPI) никогда не видит вызовов паузы или сброса. Вместо этого при паузе или сбросе тишина доставляется в цикле pull. Это устраняет необходимость во взломах карт, которые окружают свои буферы при паузе, сбросе и т. Д. (ATI HDMI и т. д.). Это обеспечивает более прямой путь данных к driver/оборудованию. В основном «цикле извлечения» используется круговой буфер без блокировки (система, которую Дж. Ривер построил для ASIO), поэтому выполнение запроса на извлечение выполняется как можно быстрее.

В чем разница между Directsound и Wasapi Shared

Windows – наиболее широко используемая операционная система в мире. люди используют ее для решения повседневных задач, и прослушивание звука – одна из них. Microsoft Windows 7 и выше может воспроизводить звук двумя способами. используя прямую поддержку звука Directx и поддержку WASAPI. большинство приложений Windows используют подход Direct Sound. Windows может воспроизводить несколько потоков из разных приложений при использовании прямого звука. Directsound работает как промежуточный уровень между программным обеспечением и звуковыми драйверами. Он берет звук из другого программного обеспечения, затем передискретизирует весь звуковой поток в один поток, а затем отправляет его в аудиодрайверы. Обратной стороной этого подхода является то, что мы никогда не получаем то, что на самом деле играем. например, если кто-то воспроизводит звуковой файл на 192 кГц, 24 бит. тогда окна, вероятно, преобразуют его в 44 кГц, 16 бит с другим звуком. Прямой звук автоматически передискретизирует звуковой поток до соответствующей частоты дискретизации, которая может поддерживаться аудиооборудованием.

WASAPI предоставляет два режима работы. общий режим и эксклюзивный режим. Общий режим работает так же, как прямой звук, а микшер Win выполняет повторную выборку и микширование. В эксклюзивном режиме WASAPI обходит звуковой микшер Windows, и приложение может напрямую отправлять данные на звуковую карту. в этом режиме приложение может декодировать такие форматы, как DTS, DTS master audio, DOLBY True HD, Dolby digital, Flac и т. д., и отправлять неизмененный поток на звуковую карту.

Кроме различных режимов, важно также, как WASAPI управляет данными между буферами. WASAPI использует подход пуш и PULL для запроса данных, которые необходимо обработать. При использовании метода push приложение помещает данные в буферы и постоянно отслеживает их, и как только видит, что они опустошены, оно заполняет их снова. В подходе PULL, который является современной разработкой, приложение использует два буфера. Аудиодрайверы вызывают приложение, как только оно видит пустой буфер, и начинает использовать данные из другого буфера. тем временем приложения заполняют пустой буфер.

Что лучше ASIO или WASAPI

ASIO был разработан для обхода исходной некорректной аудиоподсистемы Windows, которая заставляла все работать с фиксированной скоростью, смешивала системные звуки и аудиопотоки и имела серьезные проблемы с задержкой. ASIO был разработан для обеспечения интерфейса с малой задержкой для профессиональных аудио вычислений. Wasapi – это разработка Microsoft, устраняющая недостатки на более ранней стадии, и она работает стабильно. Но она меньше поддерживает нестандартные скорости воспроизведения и может не поддерживать dop dsd или более высокие скорости dsd.

ASIO изначально поддерживает все частоты дискретизации, которые может обрабатывать подключенный ЦАП, и не имеет проблем с dsd. Длина буфера в основном зависит от общей загрузки системы, поскольку компьютеру приходится прерывать другие операции для загрузки следующего фрагмента выборок в выходной буфер, поэтому в системах с низким энергопотреблением или более загруженных системах очень короткий или очень длинный буфер может увеличить нагрузку на процессор. Это может спровоцировать нежелательную задержку при воспроизведении музыкальных композиций.

ASIO – это модель аудиоинтерфейса Steinberg, используемая практически во всех профессиональных аудиоприложениях, и обычно это лучший способ работы с очень низкими задержками. Производители профессиональных звуковых карт предоставляют драйверы ASIO. Его единственная слабость заключается в том, что вы можете использовать только один драйвер ASIO за раз, что может вызвать проблемы в будущем, поскольку все больше и больше студийного оборудования, такого как микрофоны, звуковые модули и мониторы (именно так называются динамики в мире профессионального обучения). audio) поставляются с интерфейсами USB, а не с более старой моделью, объединяющей все ваши входы и выходы в единый аудиоинтерфейс.

Многие компании, производящие потребительское аудио, в наши дни производят asio-драйверы для своих ЦАП, поскольку они исключают из уравнения любые вычисления в Windows и обеспечивают более высокие шансы на получение хороших результатов от их продукта.

Какие операционные системы поддерживают Wasapi

Wasapi разработан для операционного семейства Windows и стабильно работает с ОС, начиная от Windows 7 и XP. Wasapi в Windows 10, по мнению большинства пользователей, является наиболее удобной.

Где скачать драйвер Wasapi

Скачать драйвер для Wasapi, а также сопутствующее программное обеспечение можно тут.

Вывод

WASAPI предоставляет два варианта рендеринга звука – общий режим и эксклюзивный режим. В монопольном режиме вы – единственное приложение, которое обращается к рассматриваемой аудио конечной точке – все остальные приложения не могут издавать никакого шума. Это дает наилучшую возможную производительность, как и все профессиональные аудио-приложения, такие как Cubase, SONAR, REAPER, Pro Tools и т. д. Но они не используют WASAPI. Они используют aimp ASIO или Kernel Streaming.

Цифра цифрой, но в какой-то момент любители аудио столкнулись с утверждениями, что программные проигрыватели звучат по-разному. Стали субъективно оценивать воспроизведение на foobar2000, jriver, winamp, aimp, aplayer и развеиватели мифов сообщали, что слышат разницу, кому-то один проигрыватель заходил, кому-то другой.

Учитывая проприетарный код многих проигрывателей провести анализ и найти причины такого поведения мы не в силах, но помимо проигрывателя, в воспроизведении аудио участвует и часть операционной системы компьютера. Т.е. это такой компонент, который отвечает за воспроизведение звучания в ОС.

В разных операционных системах аудиосистема разная, и даже в одном семействе операционных систем могут использоваться разные методы взаимодействия с аудио.

Например в Linux изначально использовалась звуковая архитектура OSS (Open Sound System от компании 4Front Technologies),

которая использовалась в профессиональных целях с музыкальным оборудованием — она прекрасно звучала, но здесь произошли коллизии с лицензией — OSS была выпущена тогда под закрытой лицензией, а сообщество требовало GPL. Поэтому разругавшись часть программистов-линуксоидов просто решила написать с нуля аудиосистему и создала ALSA.

Alsa не была лучше (по звучанию даже хуже, по крайней мере на начальном этапе, в настоящий момент не сравнивал), в ней даже нормального микшера не было, пришлось дописать костыль pulseaudio, но были соблюдены GPL-лицензии.

Я помню еще время, когда для лучшего звучания специально выбирал в Linux звуковую архитектуру OSS, чтобы послушать более «вкусное и живое» исполнение в лице Supermax .

На данный момент Alsa доминирует в Linux, а ряд популярных дистрибутивов выпилили OSS даже из ядра, поэтому прикрутить OSS к той же Ubuntu без перекомпиляции ядра просто не получится, а более демократичный Arch Linux вам позволит использовать и OSS. Есть другая небольшая проблема — если раньше все аудиопрограммы были написаны под звуковую архитектуру OSS,  и при появлении alsa они не работали (поэтому был написан модуль совместимости и при его установке OSS программы думают, что работают с OSS, хотя на самом деле с «новой» ALSA посредством aoss из пакета alsa-oss), то теперь наоборот — современные линукс-программы работают только с ALSA и уже их придеться обманывать аналогичным модулем для OSS — они будут думать, что работают с ALSA, а на самом деле с OSS (osspd — OSS Proxy Daemon).

Что мне очень нравилось в звуковом ядре OSS — это истинный юникс вей, т.е. абсолютно юниксовый подход — всё есть файлы, и с любым устройством я могу делать все тоже, что и с обычным файлом, копировать в него, с него, читать, писать.

TrueOS — десктопная BSD-система 

Ваша звуковая карта в Linux — это файл с названием dsp (а так же audio), который лежит в папке /dev.

Чтобы проиграть музыкальный файл (сырой raw или PCM) я могу просто копировать этот файл (или перенаправить просмотр) в устройство dsp и буду слушать музыку вообще без использования проигрывателей.

Например так

cat music.wav > /dev/dsp

или так

cp mucic.wav /dev/dsp

Ну вы поняли это волшебство силы юникс.

Но, чтобы вас добить, я так же скажу, что раз файл dsp это звуковая карта, то я могу на нее же что-то и записать. Если писать с нее, то она является микрофоном (или другим устройством, если вы измените настройки по умолчанию).

Соответственно  я могу вообще без каких либо сторонних программ записать звук с микрофона в файл, вот так например:

cat /dev/dsp > mysound.wav

Вот это все умела OSS. Alsa так не умеет — в ней много костылей, которые  приходиться настраивать между собой во множестве конфигурационных файлов. Зато лицензия GPL (сарказм). На самом деле для Linux OSS теперь тоже GPL, но поезд ушел.

Немного перевода с wikipedia:

Изначально проект OSS был свободным программным обеспечением, но после успеха проекта, Саволайнен заключил контракт с компанией 4Front Technologies и запатентовал поддержку новых звуковых устройств и усовершенствований. В ответ сообщество Linux отказалось от реализации OSS, включенной в ядро, и усилия по разработке переключились на замену Advanced Linux Sound Architecture (ALSA). Некоторые дистрибутивы Linux, такие как Ubuntu, решили отключить поддержку OSS в своих ядрах и игнорировать любые ошибки, связанные с пакетами OSS4 (хотя поддержка OSS может быть повторно включена в Ubuntu).

Несмотря на это, несколько операционных систем, таких как FreeBSD, продолжали распространять предыдущие версии OSS и продолжают поддерживать и улучшать эти версии.

В июле 2007 года 4Front Technologies выпустила исходные коды для OSS под CDDL для OpenSolaris и GPL для Linux. 

В январе 2008 года 4Front Technologies выпустила OSS для FreeBSD (и других систем BSD) под лицензией BSD. 

При этом и OSS и ALSA — это профессиональные и великолепные по качеству аудио архитектуры дающие цифровому звуку прямой доступ к внешнему устройству (сохраняя битперфект разумеется).

Такой идеальный вариант в Windows называется ASIO (Audio Stream Input/Output). И если в Linux архитектура ALSA и в большей части OSS поддерживает все, что у вас выступает в роли аудиокарты, то в Windows на это могут претендовать только устройства со специальными драйверами от производителя, содержащими ASIO (а это далеко не все устройства).

Поэтому прямой кратчайший звук в Linux мы получаем даром, а в Windows не для всех и не всегда, но об этом позже.

OSS в Linux — это не устаревшая система, это современная система, которая и сейчас развивается, последняя версия уже OSS4. Просто в Linux по идейным соображениям (не по звуковым) она задвинута на задний план (смотрите выше).

Но зато в семействе истинно юниксовых операционных систем BSD — FreeBSD, OpenBSD, PC-BSD, TrueOS и тд — OSS единственная звуковая система.

PC-BSD

Кто-то спрашивал на тематическом форуме почему на BSD не портируют ALSA, на что ответили: а зачем, в OSS все есть и без костылей, как в ALSA. Плюс есть конечно и у ALSA — быстрее всего поддержка новых чипов аудио появляется (скорее всего) именно в ней за счет большей поддержки.

Поэтому самый простой путь ощутить прелесть OSS4 — установить ОС на базе BSD .

Аудио опыты с FreeBSD и ее OSS 4.2 я наметил на ближайшее время, а пока вернёмся к WIndows.

В Windows плохой звук?

Для начала неплохо понять о какой Windows вообще речь. Все еще в ходу Windows XP, Windows 7, Windows 8 и тд.

В Windows XP со звуком было все плохо, что у ж говорить, там вы использовали по умолчанию архитектуру DirectSound — очень непрямой путь рассчитанный на добавление игровых эффектов ибо DSound был частью игрового API DirectX.

По картинке мы может увидеть сколь долог путь звука в Windows XP по пути DirectSound. Особенно жестоко портил звук всем знакомый микшер.

Я думаю вы без труда найдете измеренные графики и убедитесь в этом, как сделал я готовясь к написанию этого обзора.

Поэтому было очевидно, что хороший звук можно получить только с ASIO, драйвера на который есть не для любого аудиоустройства.

Но времена XP прошли и настала эпоха Windows Vista/7, которую я тоже не советую сегодня использовать.

Ее схема:

Microsoft пыталась улучшить качество звука результатом чего стала прослойка WASAPI *(Window Audio Service API).

Многие отметили возросшее качество благодаря WASAPI, но стоит отметить, что  WASAPI то же далеко не краткий путь (левая часть картинки), так же обратите внимание на блок с названием KST внутри WASAPI — это KS — kernel stream. В программе foobar2000 есть отдельный модуль для реализации kernel stream — его использование сильно сократит путь цифрового звука до аудиоустройства (будет выкинуто всё, что находиться «до»), а так же, логично, лишит вас возможности управлять например громкостью/микшером.

Мы видим, что KS очень схож с ASIO, но к сожалению его реализации достаточно нестабильны и его можно использовать только если на конкретно вашем компьютере он работает и не глючит.

Путь звука через KS — кратчайший

Так же обратите внимание, что никакого DirectSound на который многие любители аудио ругались за качество, здесь (в Vista, 7 и выше) уже нет.

Вы меня можете разоблачить заглянув в устройства в проигрывателе, где такое название будет присутствовать, но это название, как я понимаю, оставлено для совместимости и на самом деле все работает через  WASAPI в режиме эмуляции DSound.

Кстати, в самом WASAPI присутствует более короткий эксклюзивный режим WASAPI exclusive mod (очень низкие задержи (latency) до 10 ms), активация которого приводит к удалению из пути звука ряда компонентов, т.е. по сути  WASAPI exclusive оставляет на пути только Kernel Stream, т.е. довольствуется меньшей кровью (напомню — отдельный модуль KS нестабилен).

ASIO по-прежнему остается самым кратким, но мы видим, что и Kernel Stream и WASAPI exclusive позволяют нам и без ASIO получить высочайшее качество.

Очень сильно аудиочасть доработана в Windows 10, поэтому именно эту ОС, я бы и посоветовал аудиофилам (или Linux). Windows 10 (1809) в конце 2018 начале 2019 наконец-то выдала в моей системе звучание не уступающее линуксовой ALSA!

Так же отмечу, если вы при прослушивании регулируете громкость звука через микшер Windows — вы ухудшаете звучание. Регулятор громкости в проигрывателе и Windows всегда стоит держать на максимуме, а громкость регулировать на самом усилителе.

Итак, подведем итоги, какой же интерфейс в проигрывателе лучше выбирать.

Если с Linux и BSD вопрос не стоит, там ALSA и OSS, то в Windows у нас есть вариации.

В Windows XP есть только одно качественное решение — это ASIO, при условии наличия таких драйверов на ваше устройство.

Что касается более новых ОС, то конечно стоит перейти на Windows 10 и иметь в виду, что никакого DirectSound уже нет — есть лишь эмуляция этого режима посредством WASAPI (подробнее).

Остается выбор между ASIO, которое доступно не для всех устройств, между KS (kernel stream, который может быть нестабилен) и WASAPI.

Безотносительно стабильности эти вариации распределяются (гипотетически) так (выше — лучше):

1. ASIO

2.KS

3.WASAPI

Путь через WASAPI 

ASIO замечателен для популярных сегодня транспортов XMOS, Amanero и тд, но если вы пользуетесь другими устройствами, то драйверов ASIO может просто не существовать.

Продвинутые аудиоманы возразят, что существует универсальный драйвер asio4all, но какой профит вы собираетесь получить с него, если он на самом деле работает через WASAPI?

Т.е. смысла в ASIO4ALL на Windows выше XP никакого нет для прослушивания аудио.

На условном втором месте расположился Kernel Stream (KS), он передает напрямую, как и ASIO данные сразу получателю, в данном случае ЦАП-у, но KS глючный с рядом оборудования, и не факт, что у вас заработает, а кроме того, более менее, вменяемый плагин KS я знаю только для проигрывателя Foobar2000.   Итого — KS хорош, он имеет путь короче WASAPI, но он опять же может у вас не работать.

Остается WASAPI. Для аудиофильных задач нас интересует только режим WASAPI exclusive, который фактически отрубает большую часть лишнего оставляя лишь KC и еще немного. Мы получаем дико низкие лэтенси (задержки) вплоть до 10 миллисекунд, как и в ASIO! Ну, на самом деле, у меня есть один ASIO-интерфейс Korg, в нем задержка 1 мс, но это нетипично, даже для ASIO-устройств.

И по сути нет никаких сокровенных причин не использовать нативный, поддерживающий безглючно все и вся WASAPI exclusive получая, по сути, тоже самое, что и в других случаях.

Т.е. гипотетически я бы использовал в первую очередь ASIO. Если не работает, то  KS. Если не работает, то WASAPI exclusive. Но по звуку они все дают великолепный звук и нет никакой причины зацикливаться на одно варианте — будет звучание одинаково. Просто выбирайте  то, что вам удобнее использовать. И, да, больше нет никакого ужасного, не аудиофильного DSound.

Windows Audio Session API (WASAPI) позволяет клиентским устройствам управлять потоком аудиоданных между приложением и конечным аудиоустройством. Делает комфортным прослушивание музыкальных композиций и микширование без нежелательных задержек и без потери качества. Удобно wasapi скачать на нашем сайте и установить.

Каждый аудиопоток, воспроизводимый на устройстве, является участником audio сеанса. С помощью абстракции сеанса клиент WASAPI может идентифицировать аудиопоток как член группы связанных аудиопотоков. Система может управлять всеми потоками в session как единым целым.

Аудиодвижок – это аудиокомпонент пользовательского режима, через который приложения совместно используют доступ к конечному аудиоустройству. Звуковая машина передает аудиоданные между буфером конечной точки и конечным устройством. Для воспроизведения аудиопотока через устройство конечной точки рендеринга приложение периодически записывает аудиоданные в буфер конечной точки рендеринга. Звуковой движок микширует потоки из различных приложений. Чтобы записать аудиопоток с устройства конечной точки захвата, приложение периодически считывает аудиоданные из буфера конечной точки захвата.

WASAPI состоит из нескольких интерфейсов. Первый из них – это интерфейс IAudioClient. Чтобы получить доступ к интерфейсам WASAPI, клиент сначала получает ссылку на интерфейс IAudioClient конечного аудиоустройства, вызывая метод IMMDevice :: Activate с параметром iid, установленным на REFIID IID_IAudioClient. Клиент вызывает метод IAudioClient :: Initialize для инициализации потока на устройстве конечной точки. После инициализации потока клиент может получить ссылки на другие интерфейсы WASAPI, вызвав метод IAudioClient :: GetService.

Многие методы в WASAPI возвращают код ошибки AUDCLNT_E_DEVICE_INVALIDATED, если конечное аудиоустройство, используемое клиентским приложением, становится недействительным. Часто приложение может исправить эту ошибку.

WASAPI реализует следующие интерфейсы в foobar.

  • AudioCaptureClient. Позволяет клиенту читать входные данные из буфера конечной точки захвата и передавать в браузер.
  • AudioClient. Создавать, настроить и инициализировать аудиопоток между аудиоприложением и аудиосистемой или аппаратным буфером конечного аудиоустройства.
  • AudioClock. Отслеживать скорость передачи данных потока и текущую позицию в потоке.
  • AudioRenderClient. Записывать выходные данные в буфер конечной точки рендеринга.
  • AudioSessionControl. Настраивать параметры управления для аудиосеанса и отслеживать события в сеансе, в том числе default.
  • AudioSessionManager. Включить доступ к элементам управления сеансом и элементам управления громкостью как для межпроцессных, так и для конкретных аудиосеансов.
  • AudioStreamVolume. Контролировать и отслеживать уровни громкости для всех каналов в аудиопотоке.
  • ChannelAudioVolume. Управлять уровнями громкости для всех каналов в аудиосеансе, которому принадлежит поток.
  • SimpleAudioVolume. Управлять общим уровнем громкости аудиосеанса.
  • AudioSessionEvents. Предоставляет уведомления о событиях, связанных с сеансом, таких как изменения уровня громкости, отображаемого имени и состояния сеанса. Открывает доступ пользователю данной программы в mode и support.

В чем отличие Wasapi Exclusive (Event) от Wasapi Exclusive (Push)

Если вы решили скачать wasapi exclusive , то есть два варианта на 32 и 64 bite. Есть два основных способа связи с помощью:

  • Wasapi Exclusive (Event).
  • Wasapi Exclusive (Push).

Оба передают одни и те же аудиоданные и звучат одинаково. Отличие заключается, исключительно, в возможности работать с тем или иным оборудованием.

Обратите внимание: начиная с версии «MC 18.0.183», WASAPI теперь используется, как программа по умолчанию. Если ваше аудиоустройство не поддерживает этот режим, его можно отключить в диалоговом окне настроек устройства.

Версии до 18.0.183. В режиме вывода WASAPI данные из Media Center передаются на звуковое устройство. Он работает практически со всем оборудованием.

WASAPI Event Style позволяет звуковому устройству извлекать данные из Media Center. Этот метод поддерживается не всем оборудованием, но рекомендуется, если он поддерживается. Это дает несколько преимуществ:

Это позволяет аудиоподсистеме извлекать данные вместо того, чтобы отправлять данные в систему.

Оборудование (или интерфейс WASAPI) никогда не видит вызовов паузы или сброса. Вместо этого при паузе или сбросе тишина доставляется в цикле pull. Это устраняет необходимость во взломах карт, которые окружают свои буферы при паузе, сбросе и т. Д. (ATI HDMI и т. д.). Это обеспечивает более прямой путь данных к driver/оборудованию. В основном «цикле извлечения» используется круговой буфер без блокировки (система, которую Дж. Ривер построил для ASIO), поэтому выполнение запроса на извлечение выполняется как можно быстрее.

Расширенные настройки

По нажатию кнопки Detailed settings

мы попадаем в расширенные настройки программы.

Первая группа настроек относится к монопольному режиму. Здесь можно выбрать формат данных, в котором будет выводиться звук. Здесь следует либо установить параметр в режим автовыбора, либо выбрать поддерживаемый режим с наибольшей разрядностью (см. таблицу). Также здесь можно включить дизеринг (по видимому, с нойз шейпингом), который будет выполняться при понижении разрядности (например, если источник 24-битный, а вывод — 16-битный). Кстати, давайте посмотрим на качество дизеринга.

NS on

Очень странно — никакого дизеринга, а уж тем более нойз шейпинга здесь не видно. Программа лишь добавляет какой-то странный дополнительный шум. Вероятно, это баг — я уже сообщил об этой странности разработчику.
Добавлено: по словам разработчика, обработка всё же выполняется и называется это формовкой шума первого порядка (first order noise shaping). Т.е. дополнительный шум в запись не вводится, а уже имеющийся шум квантования с помощью специального алгоритма, включающего обратную связь, вытесняется в область высоких частот. Разработчик также утверждает, что в качестве дизера могут запросто выступать естественные шумы микрофона, присутствующие на большинстве записей. Т.е. такой алгоритм даёт преимущественно лучшие результаты на живых, не синтетических записях.Добавлено: в весрии 4.0.63 была добавлена возможность использовать комбинации dither и noise shaping.
Далее у нас следуют настройки общего режима WASAPI. Здесь мы можем управлять качеством ресемплера (resampler MFT или Audio resampler DSP), входящего в Windows Audio Service. Как написано в документации Microsoft, если программа не выполняет управление качество ресемплера, устанавливается значение по умолчанию — 30. Давайте сравним качество ресемплинга 44.1->96 кГц с качеством 1, 30 и 60 (максимум).

На слух минимальное качество имеет значительные искажения, режимы качества 30 и 60 на слух практически одинаково приемлемы. Кстати, интересно, что управление качеством ресемплинга было введено только в Windows 7.

Здесь же имеется настройка автоматического масштабирования сигнала по амплитуде до 98% от максимума, что предотвращает вмешательство лимитера Windows (иначе он будет компрессировать сигнал).

Что касается режима Shared — с особенностями его работы вы можете ознакомиться в обзоре Windows Media Player.

И последняя группа настроек, которая нас интересует — Playback thread settings, т.е. настройки потока воспроизведения. Здесь мы сталкиваемся с новшеством под названием MMCSS (Multimedia Class Scheduler Service). Эта служба занимается распределением процессорных ресурсов между процессами, отвечающими за выполнение задачи реального времени — записи, воспроизведения (рендеринга). Включив данную функцию (DwmEnableMMCSS(True) и установив тип задачи в Pro Audio, мы тем самым установим для проигрывания максимальный приоритет доступа к ЦП, что позволит еще больше уменьшить латентность (размер буфера). Таким образом, установка режима Pro Audio уменьшает вероятность опустошения буфера (что и является причиной щелчков), однако этот режим менее эффективен с точки зрения эффективности энергопотребления.

В общем, это все, настройки, касающиеся качества воспроизведения. Следует также добавить, что перед воспроизведением плейлиста программа выполняет декодирование и необходимую обработку (например, дизеринг или масштабирование амплитуды), помещая результат в оперативной памяти компьютера в выбранном формате (для монопольного режима используется режим выбранный в настройках, для общего — исходный формат). Вот пример лога после запуска и включения трека:

PlayPcmWin 4.0.62.0 64bit wasapi.Init() 00000000 wasapi.DoDeviceEnumeration(Play) 00000000 wasapi.ChooseDevice(Динамики (Creative SB X-Fi)) 00000000 wasapi.Setup(PCM 44.1kHz Sint32V24 2ch ProAudio Exclusive EventDriven latency=3ms zeroFlush=500ms timePeriod=0.5ms) 00000000 Endpoint buffer size = 132 frames. Read playgroup 0 completed. Elapsed time: 1632ms wasapi.StartPlayback(0) 00000000

Продолжительность трека — около 6 минут. После запуска программа потребляла 70 Мб ОЗУ, после включения трека — 212 Мб.

Как вы можете видеть на скриншоте. мне удалось осуществить вывод аудио в формате i32V24 с задержкой всего 3 мс. При этом звуковые артефакты не наблюдались

Что самое интересное — в режиме Shared программа выполняет ресемплирование средствами алгоритма resampler MFT, а затем получает поток обратно, помещая уже ресемпилрованное аудио в ОЗУ (т.е. ресемплинг выполняется не на лету). Вот лог:

PlayPcmWin 4.0.62.0 64bit wasapi.Init() 00000000 wasapi.DoDeviceEnumeration(Play) 00000000 wasapi.ChooseDevice(Динамики (Creative SB X-Fi)) 00000000 wasapi.Setup(PCM 44.1kHz Sint16 2ch ProAudio Shared EventDriven latency=3ms zeroFlush=500ms timePeriod=0.5ms) 00000000 Endpoint buffer size = 2880 frames. Resampling… Read playgroup 0 completed. Elapsed time: 6677ms wasapi.StartPlayback(0) 00000000

После начала произведения программа потребляла около 340 Мб ОЗУ.

PlayPcmWin поддерживает форматы WAV, AIFF, FLAC, а также имеет поддержку CUEsheet.

В чем разница между Directsound и Wasapi Shared

Windows – наиболее широко используемая операционная система в мире. люди используют ее для решения повседневных задач, и прослушивание звука – одна из них. Microsoft Windows 7 и выше может воспроизводить звук двумя способами. используя прямую поддержку звука Directx и поддержку WASAPI. большинство приложений Windows используют подход Direct Sound. Windows может воспроизводить несколько потоков из разных приложений при использовании прямого звука. Directsound работает как промежуточный уровень между программным обеспечением и звуковыми драйверами. Он берет звук из другого программного обеспечения, затем передискретизирует весь звуковой поток в один поток, а затем отправляет его в аудиодрайверы. Обратной стороной этого подхода является то, что мы никогда не получаем то, что на самом деле играем. например, если кто-то воспроизводит звуковой файл на 192 кГц, 24 бит. тогда окна, вероятно, преобразуют его в 44 кГц, 16 бит с другим звуком. Прямой звук автоматически передискретизирует звуковой поток до соответствующей частоты дискретизации, которая может поддерживаться аудиооборудованием.

Как установить плагины в foobar2000

Перед установкой плагинов для плеера необходимо и все необходимые плагины в один каталог. Почти все популярные расширения есть на официальном сайте плеера. Используйте версию foobar 1.4.6 – она самая стабильная на данный момент.

Важно! Плагины скачиваются в виде архивов в формате zip (чаще всего) или fb2k-component. Разархивировать их в каталог программы не нужно (если в описании плагина не указано иное), программа сделает это сама при установке.

Есть 2 способа установки.

Первый способ:

  • Если загруженный архив имеет формат zip или fb2k-component, то открываем foobar2000, затем кликаем по пункту File сверху и переходим к Preferences (Настройки).

Фото 7

  • Нажимаем на первый пункт в меню слева – Components.

Фото 8

  • Снизу кликаем по кнопке Install, чтобы установить сторонний плагин. При этом программа сама извлечет из архива нужные файлы и поместит их в правильную директорию. Плагин появится в списке.

Второй способ:

  1. Если скачанный архив имеет другой формат, его необходимо сначала распаковать (к примеру, с помощью WinRar).
  2. Находим файл с расширением dll и переносим его в папку Components в директории, где установлена программа.
  3. Перезапускаем плеер. Плагин должен появиться в списке компонентов.

Как видите, foobar2000 легко настраивать под себя, так как существует огромное количество плагинов, с помощью которых можно подобрать необходимое качество звука. Процесс их установки тоже крайне прост и производится в 2 клика.

Что лучше ASIO или WASAPI

ASIO был разработан для обхода исходной некорректной аудиоподсистемы Windows, которая заставляла все работать с фиксированной скоростью, смешивала системные звуки и аудиопотоки и имела серьезные проблемы с задержкой. ASIO был разработан для обеспечения интерфейса с малой задержкой для профессиональных аудио вычислений. Wasapi – это разработка Microsoft, устраняющая недостатки на более ранней стадии, и она работает стабильно. Но она меньше поддерживает нестандартные скорости воспроизведения и может не поддерживать dop dsd или более высокие скорости dsd.

ASIO изначально поддерживает все частоты дискретизации, которые может обрабатывать подключенный ЦАП, и не имеет проблем с dsd. Длина буфера в основном зависит от общей загрузки системы, поскольку компьютеру приходится прерывать другие операции для загрузки следующего фрагмента выборок в выходной буфер, поэтому в системах с низким энергопотреблением или более загруженных системах очень короткий или очень длинный буфер может увеличить нагрузку на процессор. Это может спровоцировать нежелательную задержку при воспроизведении музыкальных композиций.

ASIO – это модель аудиоинтерфейса Steinberg, используемая практически во всех профессиональных аудиоприложениях, и обычно это лучший способ работы с очень низкими задержками. Производители профессиональных звуковых карт предоставляют драйверы ASIO. Его единственная слабость заключается в том, что вы можете использовать только один драйвер ASIO за раз, что может вызвать проблемы в будущем, поскольку все больше и больше студийного оборудования, такого как микрофоны, звуковые модули и мониторы (именно так называются динамики в мире профессионального обучения). audio) поставляются с интерфейсами USB, а не с более старой моделью, объединяющей все ваши входы и выходы в единый аудиоинтерфейс.

Многие компании, производящие потребительское аудио, в наши дни производят asio-драйверы для своих ЦАП, поскольку они исключают из уравнения любые вычисления в Windows и обеспечивают более высокие шансы на получение хороших результатов от их продукта.

DSP

При обработке цифрового сигнала (DSP — digital sound processing) сэмпл масштабируется как минимум к 64-битному числу с плавающей точкой (double64) в диапазоне от –1 до 1. Наиболее часто применяются преобразования upsampling/downsampling и upscale/downscale. Второе заключается в изменении разрядности сэмпла и в подавляющем большинстве реализаций сводится к простому масштабированию 64-битного double к желаемой битовой разрядности. Данное преобразование помимо масштабирования полезного сигнала делает точно такое же масштабирование и шума, поэтому upscale не меняет соотношение сигнал/шум исходного сигнала, а downscale дополнительно увеличивает долю шума за счет деградации разрядности полезного сигнала.

Upsampling/downsampling очень часто выполняется через решения полинома n-го порядка (как правило, кубического). Берется последовательность из K-сэмплов, и из них рассчитываются коэффициенты интерполирующего полинома, затем полученный полином решается для новых точек семплирования. В идеальном случае, согласно теореме Найквиста-Котельникова, upsampling может только сохранить разрешение исходного сигнала на новой частоте семплирования. В неидеальном случае возможно появления шума на высших гармониках. Интересно, что downsampling после upsampling вернет исходное значение сигнала, даже если после upsampling в нем появились искажения и шум.

В студиях используют алгоритмы, объединяющие upsampling и upscale в единый процесс для увеличения разрешения сигнала и его динамического диапазона. Эти алгори и не могут быть использованы при воспроизведении в реальном времени.

Еще один случай обработки DSP — это convolution (свертка), применимая для адаптации сигнала под акустические свойства комнаты. Здесь исходный сигнал разлагается на гармоники в ряд Фурье до n-го порядка. К сожалению, все быстрые алгоритмы как правило работают с амплитудой сигнала определенной частоты без учета фазы (которую еще очень непросто правильно измерить). Более того, быстрые алгоритмы не решают интеграл, а берут среднее значение в диапазоне. В результате вся коррекция сводится к параметрическому эквалайзеру. Простые полосные фильтры вносят фазовые искажения на частотах разделения, из-за этого параметры convolution нужно еще раз и еще раз подстраивать.

MQA на высоких гармониках, на мой взгляд, инкрементально кодирует первую производную (наклон) функции амплитуды сигнала. Зная частоту гармоник кодировки, простым разложением в ряд Фурье очень просто вытащить и восстановить поведение производной. А имея производную, можно уже делать upsampling не полиномами, а сплайнами со сглаживанием. Вот тогда, уже в реальном времени, можно делать upsampling и upscale с увеличением разрешения и динамического диапазона сигнала. Конечно, это не будет оригинальный Hi-Res, но уже кое-что.

Выводы: Upscale не улучшает соотношение сигнал/шум. Upsampling не улучшает разрешения сигнала. Upsampling имеет смысл для перехода от линейки 44100 к 48000, если осциллятор Вашего устройства лучше для 48000. Использование room correction требует итеративной настройки и, во многом, непредсказуемо.

Вывод

WASAPI предоставляет два варианта рендеринга звука – общий режим и эксклюзивный режим. В монопольном режиме вы – единственное приложение, которое обращается к рассматриваемой аудио конечной точке – все остальные приложения не могут издавать никакого шума. Это дает наилучшую возможную производительность, как и все профессиональные аудио-приложения, такие как Cubase, SONAR, REAPER, Pro Tools и т. д. Но они не используют WASAPI. Они используют aimp ASIO или Kernel Streaming.

Радиоинженер (по первому высшему образованию). С раннего детства слушаю разнообразную музыку. Всегда интересовался звуковоспроизводящей аппаратурой, которую обновлял множество раз. Я увлеченный любитель и музыка по жизни всегда со мной. Увлекаюсь HI-Fi уже более 20 лет.

Hi-Fi и High-End техника или энциклопедия звука и видео

Hi-Fi и High-End техника или энциклопедия звука и видео

WASAPI — это драйвер с низкой задержкой, когда он используется в монопольном режиме и напрямую взаимодействует с драйвером аудиоустройства. Это собственный ASIO от Microsoft.

Windows Audio Session API (WASAPI) позволяет клиентским устройствам управлять потоком аудиоданных между приложением и конечным аудиоустройством. Делает комфортным прослушивание музыкальных композиций и микширование без нежелательных задержек и без потери качества. Удобно wasapi скачать на нашем сайте и установить.

Каждый аудиопоток, воспроизводимый на устройстве, является участником audio сеанса. С помощью абстракции сеанса клиент WASAPI может идентифицировать аудиопоток как член группы связанных аудиопотоков. Система может управлять всеми потоками в session как единым целым.

Аудиодвижок – это аудиокомпонент пользовательского режима, через который приложения совместно используют доступ к конечному аудиоустройству. Звуковая машина передает аудиоданные между буфером конечной точки и конечным устройством. Для воспроизведения аудиопотока через устройство конечной точки рендеринга приложение периодически записывает аудиоданные в буфер конечной точки рендеринга. Звуковой движок микширует потоки из различных приложений. Чтобы записать аудиопоток с устройства конечной точки захвата, приложение периодически считывает аудиоданные из буфера конечной точки захвата.

Зачем нужно WASAPI и как правильно выводить звук в Windows

WASAPI состоит из нескольких интерфейсов. Первый из них – это интерфейс IAudioClient. Чтобы получить доступ к интерфейсам WASAPI, клиент сначала получает ссылку на интерфейс IAudioClient конечного аудиоустройства, вызывая метод IMMDevice :: Activate с параметром iid, установленным на REFIID IID_IAudioClient. Клиент вызывает метод IAudioClient :: Initialize для инициализации потока на устройстве конечной точки. После инициализации потока клиент может получить ссылки на другие интерфейсы WASAPI, вызвав метод IAudioClient :: GetService.

Многие методы в WASAPI возвращают код ошибки AUDCLNT_E_DEVICE_INVALIDATED, если конечное аудиоустройство, используемое клиентским приложением, становится недействительным. Часто приложение может исправить эту ошибку.

WASAPI реализует следующие интерфейсы в foobar.

  • AudioCaptureClient. Позволяет клиенту читать входные данные из буфера конечной точки захвата и передавать в браузер.
  • AudioClient. Создавать, настроить и инициализировать аудиопоток между аудиоприложением и аудиосистемой или аппаратным буфером конечного аудиоустройства.
  • AudioClock. Отслеживать скорость передачи данных потока и текущую позицию в потоке.
  • AudioRenderClient. Записывать выходные данные в буфер конечной точки рендеринга.
  • AudioSessionControl. Настраивать параметры управления для аудиосеанса и отслеживать события в сеансе, в том числе default.
  • AudioSessionManager. Включить доступ к элементам управления сеансом и элементам управления громкостью как для межпроцессных, так и для конкретных аудиосеансов.
  • AudioStreamVolume. Контролировать и отслеживать уровни громкости для всех каналов в аудиопотоке.
  • ChannelAudioVolume. Управлять уровнями громкости для всех каналов в аудиосеансе, которому принадлежит поток.
  • SimpleAudioVolume. Управлять общим уровнем громкости аудиосеанса.
  • AudioSessionEvents. Предоставляет уведомления о событиях, связанных с сеансом, таких как изменения уровня громкости, отображаемого имени и состояния сеанса. Открывает доступ пользователю данной программы в mode и support.

В чем отличие Wasapi Exclusive (Event) от Wasapi Exclusive (Push)

Если вы решили скачать wasapi exclusive , то есть два варианта на 32 и 64 bite. Есть два основных способа связи с помощью:

  • Wasapi Exclusive (Event).
  • Wasapi Exclusive (Push).

Оба передают одни и те же аудиоданные и звучат одинаково. Отличие заключается, исключительно, в возможности работать с тем или иным оборудованием.

Обратите внимание: начиная с версии «MC 18.0.183», WASAPI теперь используется, как программа по умолчанию. Если ваше аудиоустройство не поддерживает этот режим, его можно отключить в диалоговом окне настроек устройства.

Версии до 18.0.183. В режиме вывода WASAPI данные из Media Center передаются на звуковое устройство. Он работает практически со всем оборудованием.

WASAPI Event Style позволяет звуковому устройству извлекать данные из Media Center. Этот метод поддерживается не всем оборудованием, но рекомендуется, если он поддерживается. Это дает несколько преимуществ:

Это позволяет аудиоподсистеме извлекать данные вместо того, чтобы отправлять данные в систему.

Тестирование методов вывода звука

Оборудование (или интерфейс WASAPI) никогда не видит вызовов паузы или сброса. Вместо этого при паузе или сбросе тишина доставляется в цикле pull. Это устраняет необходимость во взломах карт, которые окружают свои буферы при паузе, сбросе и т. Д. (ATI HDMI и т. д.). Это обеспечивает более прямой путь данных к driver/оборудованию. В основном «цикле извлечения» используется круговой буфер без блокировки (система, которую Дж. Ривер построил для ASIO), поэтому выполнение запроса на извлечение выполняется как можно быстрее.

Как установить плагины в foobar2000

Перед установкой плагинов для плеера необходимо и все необходимые плагины в один каталог. Почти все популярные расширения есть на официальном сайте плеера. Используйте версию foobar 1.4.6 – она самая стабильная на данный момент.

Важно! Плагины скачиваются в виде архивов в формате zip (чаще всего) или fb2k-component. Разархивировать их в каталог программы не нужно (если в описании плагина не указано иное), программа сделает это сама при установке.

Есть 2 способа установки.

Первый способ:

  • Если загруженный архив имеет формат zip или fb2k-component, то открываем foobar2000, затем кликаем по пункту File сверху и переходим к Preferences (Настройки).

Фото 7

  • Нажимаем на первый пункт в меню слева – Components.

Фото 8

  • Снизу кликаем по кнопке Install, чтобы установить сторонний плагин. При этом программа сама извлечет из архива нужные файлы и поместит их в правильную директорию. Плагин появится в списке.

Второй способ:

  1. Если скачанный архив имеет другой формат, его необходимо сначала распаковать (к примеру, с помощью WinRar).
  2. Находим файл с расширением dll и переносим его в папку Components в директории, где установлена программа.
  3. Перезапускаем плеер. Плагин должен появиться в списке компонентов.

Как видите, foobar2000 легко настраивать под себя, так как существует огромное количество плагинов, с помощью которых можно подобрать необходимое качество звука. Процесс их установки тоже крайне прост и производится в 2 клика.

В чем разница между Directsound и Wasapi Shared

Windows – наиболее широко используемая операционная система в мире. люди используют ее для решения повседневных задач, и прослушивание звука – одна из них. Microsoft Windows 7 и выше может воспроизводить звук двумя способами. используя прямую поддержку звука Directx и поддержку WASAPI. большинство приложений Windows используют подход Direct Sound. Windows может воспроизводить несколько потоков из разных приложений при использовании прямого звука. Directsound работает как промежуточный уровень между программным обеспечением и звуковыми драйверами. Он берет звук из другого программного обеспечения, затем передискретизирует весь звуковой поток в один поток, а затем отправляет его в аудиодрайверы. Обратной стороной этого подхода является то, что мы никогда не получаем то, что на самом деле играем. например, если кто-то воспроизводит звуковой файл на 192 кГц, 24 бит. тогда окна, вероятно, преобразуют его в 44 кГц, 16 бит с другим звуком. Прямой звук автоматически передискретизирует звуковой поток до соответствующей частоты дискретизации, которая может поддерживаться аудиооборудованием.

WASAPI предоставляет два режима работы. общий режим и эксклюзивный режим. Общий режим работает так же, как прямой звук, а микшер Win выполняет повторную выборку и микширование. В эксклюзивном режиме WASAPI обходит звуковой микшер Windows, и приложение может напрямую отправлять данные на звуковую карту. в этом режиме приложение может декодировать такие форматы, как DTS, DTS master audio, DOLBY True HD, Dolby digital, Flac и т. д., и отправлять неизмененный поток на звуковую карту.

Кроме различных режимов, важно также, как WASAPI управляет данными между буферами. WASAPI использует подход пуш и PULL для запроса данных, которые необходимо обработать. При использовании метода push приложение помещает данные в буферы и постоянно отслеживает их, и как только видит, что они опустошены, оно заполняет их снова. В подходе PULL, который является современной разработкой, приложение использует два буфера. Аудиодрайверы вызывают приложение, как только оно видит пустой буфер, и начинает использовать данные из другого буфера. тем временем приложения заполняют пустой буфер.

Basic

Звуковой сигнал, в общем случае, кодируется последовательностью значений амплитуды сигнала, измеренных через равные промежутки времени. Единичное значение амплитуды называют сэмплом, а время между двумя соседними измерениями — частотой дискретизации или частотой квантования. В подавляющем большинстве случаев сэмпл при передаче на аудиоустройство описывают знаковым целым числом — разрядности 16, 24 или 32 бита. Разрядность в 32 бита может быть использована для выравнивания буфера устройства по границе двойного слова, тогда семпл кодируется только первыми 24 битами, или же для полноразрядного кодирования. Первый вариант доступен в ASIO и WASAPI, второй только в WASAPI.

Максимально достижимое соотношение сигнал/шум определяется разрядностью сэмпла и вычисляется как 20log(2^q) где q — разрядность сэмпла.

16 бит — диапазон сэмпла [−32768, 32767], SNR 96.33 дБ 24 бит — диапазон сэмпла [−8388608, 8388607], SNR 144.49 дБ 32 бит — диапазон сэмпла [−2147483648, 2147483647] , SNR 192.66 дБ

Частоты дискретизации (количество сэмплов в секунду для одного канала) из-за взаимной кратности стоит выписать в два набора: {44100, 88200, 192000} и {48000, 96000}. Два набора частот приводят к тому, что аудиоустройству нужно два осциллятора для качественной синхронизации. Конечно, можно использовать и один с кратной частотой, например, как 88200, так и 96000 Гц, но это существенно повышает сложность исполнения точного тактового контура.

Вывод: качественное аудиоустройство должно иметь два осциллятора, один для работы с частотами {44100, 88200}, второй для {48000, 96000, 192000}.

Что лучше ASIO или WASAPI

ASIO был разработан для обхода исходной некорректной аудиоподсистемы Windows, которая заставляла все работать с фиксированной скоростью, смешивала системные звуки и аудиопотоки и имела серьезные проблемы с задержкой. ASIO был разработан для обеспечения интерфейса с малой задержкой для профессиональных аудио вычислений. Wasapi – это разработка Microsoft, устраняющая недостатки на более ранней стадии, и она работает стабильно. Но она меньше поддерживает нестандартные скорости воспроизведения и может не поддерживать dop dsd или более высокие скорости dsd.

ASIO изначально поддерживает все частоты дискретизации, которые может обрабатывать подключенный ЦАП, и не имеет проблем с dsd. Длина буфера в основном зависит от общей загрузки системы, поскольку компьютеру приходится прерывать другие операции для загрузки следующего фрагмента выборок в выходной буфер, поэтому в системах с низким энергопотреблением или более загруженных системах очень короткий или очень длинный буфер может увеличить нагрузку на процессор. Это может спровоцировать нежелательную задержку при воспроизведении музыкальных композиций.

ASIO – это модель аудиоинтерфейса Steinberg, используемая практически во всех профессиональных аудиоприложениях, и обычно это лучший способ работы с очень низкими задержками. Производители профессиональных звуковых карт предоставляют драйверы ASIO. Его единственная слабость заключается в том, что вы можете использовать только один драйвер ASIO за раз, что может вызвать проблемы в будущем, поскольку все больше и больше студийного оборудования, такого как микрофоны, звуковые модули и мониторы (именно так называются динамики в мире профессионального обучения). audio) поставляются с интерфейсами USB, а не с более старой моделью, объединяющей все ваши входы и выходы в единый аудиоинтерфейс.

Многие компании, производящие потребительское аудио, в наши дни производят asio-драйверы для своих ЦАП, поскольку они исключают из уравнения любые вычисления в Windows и обеспечивают более высокие шансы на получение хороших результатов от их продукта.

( 2 оценки, среднее 4.5 из 5 )

Пара слов о составе, работе и оптимизации цифрового аудиотракта с использованием компьютера и USB. В принципе, тема скучная и букв получилось много, так что если осилить сложно — сразу переходите к выводам.

Basic

Звуковой сигнал, в общем случае, кодируется последовательностью значений амплитуды сигнала, измеренных через равные промежутки времени. Единичное значение амплитуды называют сэмплом, а время между двумя соседними измерениями — частотой дискретизации или частотой квантования. В подавляющем большинстве случаев сэмпл при передаче на аудиоустройство описывают знаковым целым числом — разрядности 16, 24 или 32 бита. Разрядность в 32 бита может быть использована для выравнивания буфера устройства по границе двойного слова, тогда семпл кодируется только первыми 24 битами, или же для полноразрядного кодирования. Первый вариант доступен в ASIO и WASAPI, второй только в WASAPI.

Максимально достижимое соотношение сигнал/шум определяется разрядностью сэмпла и вычисляется как 20log(2^q) где q — разрядность сэмпла.

16 бит — диапазон сэмпла [−32768, 32767], SNR 96.33 дБ
24 бит — диапазон сэмпла [−8388608, 8388607], SNR 144.49 дБ
32 бит — диапазон сэмпла [−2147483648, 2147483647] , SNR 192.66 дБ

Частоты дискретизации (количество сэмплов в секунду для одного канала) из-за взаимной кратности стоит выписать в два набора: {44100, 88200, 192000} и {48000, 96000}. Два набора частот приводят к тому, что аудиоустройству нужно два осциллятора для качественной синхронизации. Конечно, можно использовать и один с кратной частотой, например, как 88200, так и 96000 Гц, но это существенно повышает сложность исполнения точного тактового контура.

Вывод: качественное аудиоустройство должно иметь два осциллятора, один для работы с частотами {44100, 88200}, второй для {48000, 96000, 192000}.

DSP

При обработке цифрового сигнала (DSP — digital sound processing) сэмпл масштабируется как минимум к 64-битному числу с плавающей точкой (double64) в диапазоне от –1 до 1. Наиболее часто применяются преобразования upsampling/downsampling и upscale/downscale. Второе заключается в изменении разрядности сэмпла и в подавляющем большинстве реализаций сводится к простому масштабированию 64-битного double к желаемой битовой разрядности. Данное преобразование помимо масштабирования полезного сигнала делает точно такое же масштабирование и шума, поэтому upscale не меняет соотношение сигнал/шум исходного сигнала, а downscale дополнительно увеличивает долю шума за счет деградации разрядности полезного сигнала.

Upsampling/downsampling очень часто выполняется через решения полинома n-го порядка (как правило, кубического). Берется последовательность из K-сэмплов, и из них рассчитываются коэффициенты интерполирующего полинома, затем полученный полином решается для новых точек семплирования. В идеальном случае, согласно теореме Найквиста-Котельникова, upsampling может только сохранить разрешение исходного сигнала на новой частоте семплирования. В неидеальном случае возможно появления шума на высших гармониках. Интересно, что downsampling после upsampling вернет исходное значение сигнала, даже если после upsampling в нем появились искажения и шум.

В студиях используют алгоритмы, объединяющие upsampling и upscale в единый процесс для увеличения разрешения сигнала и его динамического диапазона. Эти алгоритмы достаточно «тяжелы» и не могут быть использованы при воспроизведении в реальном времени.

Еще один случай обработки DSP — это convolution (свертка), применимая для адаптации сигнала под акустические свойства комнаты. Здесь исходный сигнал разлагается на гармоники в ряд Фурье до n-го порядка. К сожалению, все быстрые алгоритмы как правило работают с амплитудой сигнала определенной частоты без учета фазы (которую еще очень непросто правильно измерить). Более того, быстрые алгоритмы не решают интеграл, а берут среднее значение в диапазоне. В результате вся коррекция сводится к параметрическому эквалайзеру. Простые полосные фильтры вносят фазовые искажения на частотах разделения, из-за этого параметры convolution нужно еще раз и еще раз подстраивать.

MQA на высоких гармониках, на мой взгляд, инкрементально кодирует первую производную (наклон) функции амплитуды сигнала. Зная частоту гармоник кодировки, простым разложением в ряд Фурье очень просто вытащить и восстановить поведение производной. А имея производную, можно уже делать upsampling не полиномами, а сплайнами со сглаживанием. Вот тогда, уже в реальном времени, можно делать upsampling и upscale с увеличением разрешения и динамического диапазона сигнала. Конечно, это не будет оригинальный Hi-Res, но уже кое-что.

Выводы: Upscale не улучшает соотношение сигнал/шум. Upsampling не улучшает разрешения сигнала. Upsampling имеет смысл для перехода от линейки 44100 к 48000, если осциллятор Вашего устройства лучше для 48000. Использование room correction требует итеративной настройки и, во многом, непредсказуемо.

Software player

Я ограничусь рассмотрением Windows-архитектуры, как наиболее доступной и наиболее оптимальной для создания цифрового транспорта. Windows предоставляет три варианта доступа к аудиоустройству: Kernel Streaming, Direct Sound, WASAPI. Плюс подавляющее большинство аудиоустройств поставляются с ASIO-драйвером. Из перечисленных способов только Direct Sound и ASIO являются полноценными аудиоинтерфейсами с возможностями DSP: upsampling/downsampling, upscale/downscale, управлением громкостью и микшированием. Кроме того, ASIO имеет возможность расширения аудиотракта за счет плагинов.

Kernel Streaming и WASAPI являются протоколами низкого уровня для управлений различными устройствами, в том числе и аудио. При этом тяжесть любой DSP-обработки сигнала ложится на программный плеер, использующий эти протоколы. Современные высококачественные программные плееры используют в работе WASAPI и/или ASIO, поскольку оба они предоставляют возможность асинхронной передачи аудиоданных из памяти компьютера в память аудиоустройства.

На всякий случай замечу, что память компьютера и память аудиоустройства — физически разные микросхемы. Программный плеер при работе имеет доступ только к памяти компьютера, где и формирует аудиоданные. Перезапись сформированных данных из одной памяти в другую осуществляется драйвером аудиоустройства.

WASAPI и ASIO имеют практически идентичный принцип работы: плеер подготавливает данные в буфере обмена и указывает протоколу адрес этого буфера, затем он подготавливает следующий буфер и ждет пока протокол не закончит обработку первого. Поскольку процесс подготовки данных и их воспроизведение идут параллельно, то протоколы называют асинхронными. WASAPI в отличие от ASIO имеет два режима работы.

Первый режим — «совместное использование» устройства, когда несколько процессов одновременно могут передавать данные устройству. Второй режим — «эксклюзивный», когда устройство блокируется для монопольного использования только одной программой (одним клиентом). ASIO работает исключительно в эксклюзивном режиме. С точки зрения воспроизведения разницы между WASAPI и ASIO не существует, кроме разве что возможности передачи по WASAPI полноразрядного 32-битного семпла (ASIO если и будет поддерживать такой режим, то все равно будет использовать только первые 24 бита из 32).

Как было отмечено выше, upscale не улучшает соотношение сигнал/шум и, поскольку полноразрядного 32 исходного файла я ни разу не встречал, то и здесь нет никакой разницы между WASAPI и ASIO. Тем не менее, я как программист и как слушатель предпочитаю WASAPI, естественно, в эксклюзивном режиме. Но это дело исключительно вкуса и личных симпатий.

Вывод: если Вы (как и я) воспроизводите аудиосигнал без DSP-обработки, то Вы можете использовать любой (*) программный плеер, поддерживающий WASAPI Exclusive и/или ASIO.

(*) смотри внимательно следующий раздел.

USB Audio

Начну с хорошей новости для Windows: начиная с релиза 1703 включен нативный драйвер USB Audio 2.0.

USB-аудио может работать в трех режимах: асинхронном, синхронном и адаптивным. При асинхронном режиме источник устанавливает значение клока и передает это значение вместе с буфером данных на аудиоустройство. Оно должно синхронизироваться по полученному клоку, обработать буфер, используя свой клок, и послать подтверждение источнику.

При синхронном режиме источник и аудиоустройство периодически синхронизируют свои клоки, а данные уже передаются без тайминга. При адаптивном режиме значения клока указывает аудиоустройство, а источник должен синхронизировать передачу данных.

Как видно, синхронный режим — самый требовательный, поскольку требует качественного клока как на источнике, так и на аудиоустройстве. Как правило, система работает в асинхронном режиме, а значит использует клок компьютера, качество которого не отвечает требованиям Hi-Fi и порождает огромный джиттер. Собственно говоря, это проблема породила кучу эзотерических плееров, которые перепрограммируют системный таймер, меряют скорость процессора, захватывают наибольший приоритет или вообще кладут компьютер в гибернативный режим.

Проблему это целиком не решает, но джитер снижается. Более приемлемый способ решения — это использование промежуточного буфера с реклоком. Это устройство не воспроизводит полученный буфер данных, а передает его дальше по цепочке, но уже с собственным временным кодом, полученным от собственного прецизионного осциллятора. Качество звука при этом существенно улучшается. На мой взгляд, из доступных буферов наиболее хорош Amanero, но можно использовать и XMOS с хорошим осциллятором.

Другое решение — это использование специализированного цифрового транспорта. В таком транспорте установлен качественный независимый выделенный осциллятор (как правило, два) для работы с частотами {44100, 88200, 192000} и для {48000, 96000}. Во всем остальном, это устройство намного примитивнее чем обычный компьютер. Как правило, при наличии опыта, очень качественный цифровой транспорт можно собрать самому на основе одноплатовых миникомпьютеров и софта Open Source. Поэтому цены на различные фирменные реализации цифрового транспорта меня реально шокируют.

Кардинальное и самое правильное решение для устранения джиттера и получения действительно правильного звука — это использование внешнего мастер клока. При этом и железо плеера, и ЦАП должны быть подключены к нему в слэйв-режиме. Именно такой подход используется в студиях звукозаписи.

Вывод: качество звука лучше улучшать не эзотерическим софтом, а железным цифровым буфером с реклоком. Самое правильное решение — это использование внешнего мастер клока

по дерзости:

«MME: это Audacity по умолчанию и наиболее совместим со всеми аудио устройств.

Windows DirectSound: это более свежее, чем MME с потенциально меньшей задержкой.

Windows WASAPI: этот хост является самым последним интерфейсом Windows, который поддерживает Audacity, между приложениями (например, Audacity) и драйвером звуковой карты. WASAPI был впервые официально выпущен в 2007 году в Windows Vista. WASAPI особенно полезен для «loopback» устройства для записи воспроизведения на компьютере. Поддерживает 24-разрядные устройства записи. Воспроизведение эмулируется с помощью этого хоста. В результате ползунок воспроизведения на панели инструментов Mixer будет масштабировать только текущий уровень ползунка воспроизведения системы вверх или вниз, а не непосредственно манипулировать этим системным ползунком.»

все между кавычками произошло непосредственно от Audacity. Похоже, им было много, чтобы сказать о WASAPI.

Audio drivers are a critical component in any music recording and production setup. These audio components are at the heart of most modern audio arrangements, from professional recording studios to home-based mixing studios. However, with so many options available, where can one even begin?

Well, the best audio driver varies depending on the user and their specific needs. From WASAPI, Direct Sound, ASIO, and more, there are plenty of audio drivers you are likely to come across as an audio enthusiast handling audio and video production.

In our last article, we compared ASIO vs WASAPI, the two being among the most popular audio drivers for Microsoft Windows. Today, we’ll delve into the difference between WASAPI vs Direct Sound and how to choose the right audio driver for your application.

Generally, Direct Sound is among the most popular audio drivers, and it is for good reasons. It offers a perfect balance of sound quality and cost while making audio processing a breeze. On the other hand, WASAPI provides universal compatibility, making it an ideal option for those seeking versatility. That said, let’s learn more about how the two audio drivers compare and contrast.

Understanding Direct Sound

Direct Sound is an audio driver engineered by the Microsoft DirectX library for use with Windows OS. This driver works with typical Windows applications, but in most cases, it is best suited for stereo setups as well as output modes.

This implies that it only accommodates one stereo input or output at a time. So, even if your sound card has multiple inputs and outputs, Direct Sound will only allow you to work with a single input/output at a time.

The idea behind Direct Sound is to offer low-latency audio to the sound card while allowing it to accommodate the recording and mixing of various audio streams. Other benefits of Direct Sound include recording sound, mixing sound, and adding special effects to sound e.g. echo or reverb. Direct Sound also facilitates an easy way to capture sounds when using a microphone or other related inputs.

How Direct Sound works

Initially, Direct Sound was used as the standard mode for gaming and other related applications. Today, the driver is used to reproduce audio in multiple applications thanks to its ability to replicate multichannel audio at high resolution.

Direct Sound utilizes user API mode to offer the interface required by your sound card to reproduce sounds, thereby providing playback music. What’s more, it comes with numerous audio streams that let you access your sound cards and multiple audio applications simultaneously.

The construction of Direct Sound also offers the conversion for sample rates as well as audio mixing for multiple audio sources. To achieve this, it utilizes hardware-accelerated buffers, which you can either access from the sound card memory or the system memory.

Alternatively, you can program Direct Sound to create its own buffers and integrate software specially designed for sound mixing. These buffers are capable of accessing the operating system directly, thereby improving the sound quality greatly.

One downside of Direct Sound is that it is characterized by a relatively huge latency. With a latency of between 50ms to 80ms, this audio driver is somewhat complex to work with, plus it is not ideal for real-time applications. This latency range is also not ideal for time codes or audio applications that require you to use separate audio signals.

Why we like Direct Sound

  • One of the best audio drivers in its class
  • Unlimited access to audio devices
  • Easy to use
  • Minimal requirements in terms of setup

Drawbacks

  • Several of latency issues

Overview of WASAPI

WASAPI is a low-latency and multi-channel audio interface that allows users to manage the flow of audio data between audio devices. Like its predecessor, WASAPI makes it easy to transmit audio streams from select applications to the endpoint of your audio device. Overall, WASAPI outshines the performance of Direct Sound, and this is attributed to its range of design improvements.

WASAPI also tends to deliver superior sound quality than Direct Sound since it provides better latency and bit-perfect music playback. It was designed for Microsoft Windows, and it is compatible with Windows 7 and subsequent Windows versions. That’s not all. WASAPI is perfect for live recording and real-time use, making it popular among serious professionals.

The working principle of WASAPI

Once configured in Windows, WASAPI offers access to several inputs and outputs while allowing the operator to access multiple channels. Furthermore, it provides a latency of up to 10-30ms, meaning it is suitable for real-time applications, including time stamping.

WASAPI also generates a bit-perfect playback, meaning the playback is not altered in any way. So, with WASAPI, the end result remains intact throughout the production process, and it is not resampled or otherwise remixed in whatever way.

You’ll be delighted to know that WASAPI comes with an intuitive and easy-to-use interface, which lets you get down to work within the shortest time possible. Another benefit that WASAPI has over Direct Sound is the former’s ability to transmit unmodified audio signals between devices while providing a high-end mechanism for interacting with other similar audio devices.

Why we like WASAPI

  • Delivers bit-perfect playback
  • Like its predecessor, the WASAPI interface is also easy to use
  • Ultra-pristine sound quality
  • Universal compatibility
  • Latency-free audio processing

Drawbacks

  • Straightforward operation, but it requires a bit of configuration

Direct Sound vs WASAPI

Direct Sound vs WASAPI- Do we have a winner?

If you’re using high-quality hardware/software, then there shouldn’t be much difference between the two in terms of sound quality. Ultimately, the best choice between Direct Sound and WASAPI comes down to how you love to listen to your music.

In addition, the quality of the speakers or the headphones you’re using is going to have a considerable impact on the final sound output. Nevertheless, you should strive to choose a driver that delivers the audio quality you desire.

For instance, if you are a discerning professional looking to mix or edit audio for multiple applications, consider using WASAPI. WASAPI tends to provide its users with better control over the source of the sound, plus it preserves the audio quality every time you work on an audio file. Furthermore, WASAPI provides the best audio possible for Windows, and the sound quality is also not altered by the system.

Something WASAPI users always look forward to is its ability to provide low latency, making it the ideal choice for processing timecodes, scratching, and just about any real-time application. In addition, if you’re looking to enjoy bit-perfect playback, always go with WASAPI.

On the other hand, Direct Sound is a convenient option for applications that do not support WASAPI or any other mode. Luckily, Direct Sound has advanced greatly in recent years, and it is almost impossible to tell it apart from its WASAPI counterpart.

Unfortunately, Direct Sound might not work with all sound cards, and some audio devices might not support this driver. As such, ensure to countercheck your device for the specific requirements for the audio driver. Microsoft always advocates for the use of WASAPI whenever possible or when it is available for your audio application. If it is not available, you can use Direct Sound, but this should be a last resort.

  • Windows desktop runtime x64 скачать
  • Windows device recovery tool windows 10 mobile
  • Windows device recovery tool exe
  • Windows deployment tools что это
  • Windows device recovery tool 4pda