Directsound или windows audio session

MME, Windows DirectSound или Wasapi

Так 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.

Блог проекта 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, то дают наиболее качественный, чуть ли не идеальный звук. Проверим!

Читайте также:  Как включить microsoft edge windows 10

Выходной поток будем сравнивать с входным с помощью 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 выдает побитово точный звук.

Читайте также:  Драйвер для видеокарты nvidia geforce gtx 760 для windows 10

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

Тестирование методов вывода звука : 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

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

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

Исследование звукового тракта iTunes

Пролог

Отчасти по инерции, отчасти — по просьбе одного из пользовтелей сайта, я решил провести очередное исследование. Сегодня у нас в лаборатории детище корпорации Apple. Еще один продукт для широкого потребителя, не отличающийся высокой конфигурируемостью, с множеством странных (по моему мнению) и ненужных функций, а также интеграцией интернет-магазина. Во многом этот продукт напоминает мне Windows Media Player от Microsoft. Ну, что ж, пользуются и WMP, и iTunes тоже кто-то пользуется. Так что, как говорится, «сейчас мы их проверим, сейчас мы их сравним. ». Сегодня у нас будет что-то вроде баталии между Microsoft и Apple. Посмотрим, кто кого.

Оборудование и ПО

200?’200px’:»+(this.scrollHeight+5)+’px’);»> Intel Core i3 2.93 ГГц, ASUS P7H55-V, 4 ГБ DDR3, Creative X-Fi Xtreme Gamer

Microsoft Windows 7 Ultimate SP1 x64

iTunes 11.0.6.5
RightMark Audio Analyzer 6.3.0
Sony Sound Forge 10.0c

Настройки

Первый взгляд на настройки плеера заставляет русского человека невольно сконфузиться. Странно, что корпорация Apple не нашла нормального переводчика, разбирающегося в цифровом звуке, который бы сделал нормальную локализацию iTunes.

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

Но давайте перейдем к делу. Проверим, как работают все эти настройки.

Итак, сегодня я проверяю на слух. Для начала берем нашу любимую синусоиду 24/44.1 с уровнем -80 дБ. В режиме DirectSound 16/44.1 явно слышны искажения, что обусловлено отбрасыванием младших 8 битов без дезеринга. Если установить разрядность в 24 бита, всё играет нормально. Далее — если изменить режим вывода на сеанс Windows Audio (имеется ввиду Windows Audio Session) и перезапустить плеер (необходимо для смены режима), то настройки разрядности уже на звучание не влияют — очевидно, программа начинает выводить в режиме, заданном в настройках устройства Windows (там установлено 24/44.1). Что касается семплрейта — то эта настройка вообще ни на что не влияет, в обоих режимах. Очевидно, плеер продолжает выводить аудио с оригинальной частотой дискретизации, предоставляя ресемлирование операционной системе. В общем-то, это хорошо, иначе была бы проблемы фиксированной частоты — как у AIMP3.

Читайте также:  Mac os leopard iso amd

Теперь посмотрим, как iTunes воспроизводит свой родной-любимый формат Apple Lossless (ALAC). Закодируем тестовый сигнал формата 24/96 и прогоним через плеер.

Что ж, порядок. Никакой обработки, никаких искажений. Это хорошо. Перейдем к lossy. Начнем с MP3 из 24-битного источника. Напомню: у нас стоит вывод через Windows Audio Session, формат 24/44.1.

И тут iTunes радует нас 24-битным декодированием MP3. В самом деле, приятная неожиданность. Более того — результаты декодирования идентичны результатам foobar2000. Также всё хорошо у плеера и с форматом AAC.

И у нас остается последний пункт — клиппинг. Проверяем на MP3 и AAC файлах с превышением уровня в 6 дБ.

И тут у нас интереснейшая картина. На MP3 я получил клиппинг с любыми настройками, в обоих режимах. Это говорит о том, что декодирование MP3 выполняется с фиксированной точкой (скорее всего 24-bit integer). ReplayGain iTunes, по-видимому не читает. Но куда интереснее с AAC — в режиме Windows Audio Session я явно услышал, как сработал лимитер. Не изначально было неясно, что это за лимитер — в плеере, или же в Windows (limiter APO). Переключившись на DirectSound, я понял, что лимитер срабатывал в микшере Windows, т.е. плеер до этого выводил аудио в режиме с плавающей точкой. Но дальше я обнаружил другую особенность — в свойствах трека (в плейлисте iTunes) есть вкладка, где можно регулировать громкость:

Так вот, если сдвинуть ползунок громкости в любую сторону на минимальное расстояние, включается лимитирование сигнала! Надо полагать, это уже встроенный лимитер плеера, призванный предотвратить клиппинг при чрезмерном повышении громкости. Но для MP3 этот трюк конечно же не работает — клиппинг происходит еще на этапе декодирования.

Таким образом, для iTunes мы получаем следующее:

+ аккуратное декодирование lossless и lossy, в т.ч. с высокой разрядностью;
+ 24- или 32-битный с плавающей точкой вывод;
+ сохранение оригинальной частоты дискретизации — все преобразования выполняет Windows;
— отсутствие поддержки ReplayGain;
— декодирование MP3 в формате с фиксированной точкой.

В общем и целом WMP c iTunes оснащены простенькими, практически одинаковыми по функционалу звуковыми движками. Но если судить строго, у iTunes мы имеем небольшое преимущество в виде 24-битного декодирования MP3. Так что фанаты Apple могут возрадоваться и спокойно слушать AAC на своём любимом iTunes.

А я тем временем пошел чистить систему от установленного с плеером мусора.

Информация от спонсора

220-110.РФ: здесь Вы можете приобрести высококачественные повышающие и понижающие трансформаторы 220-110 В. В наличии преобразователи напряжения различных форм-факторов и мощностей (300-10000 Вт). Также здесь можно приобрести переходники для самых различных электрических розеток и вилок.

Оцените статью