Как сделать asio4all основным звуковым драйвером
Каждый, кто сталкивался с вопросом о качественном воспроизведении звука рано или поздно встречается с аббревиатурой ASIO, как важной и необходимой опцией.
Что это и в чем практический смысл?
Прежде всего, ASIO имеет отношение только к звуковой части записи/воспроизведения с компьютера через звуковую карту или USB-ЦАП под операционными системами семейства Windows. Тем, кто слушает музыку со смартфона или с сетевого проигрывателя с собственной ОС иметь представление ASIO тоже полезно, т.к. знание об этой «опции» позволяет избежать ряд проблем, присутствующих в смартфонах и соответственно позволяющая понять, почему не все платформы для звука одинаково полезны.
ASIO – это программный интерфейс передачи данных от программы, которая воспроизводит или принимает звуковой сигнал напрямую в драйвер звуковой карты, минуя звуковую подсистему ОС.
Необходимость в ASIO возникла исключительно для профессиональных задач. Самой большой проблемой была и остается минимальная задержка для передачи аудио сигнала. Когда мы смотрим фильм, нам не важно, сколько времени требуется системе для старта воспроизведения видео и аудио, доли миллисекунды или пару секунд после нажатия на кнопку «play». Главное, чтобы видео и аудио были синхронны относительно друг друга. В студии же требования очень жесткие, т.к. часто требуется игра вживую на виртуальных инструментах, с которых звук необходимо обрабатывать в реальном времени. Невозможно полноценно играть на midi клавиатуре, если нажатие на клавишу слышишь не сразу, а спустя секунду.
Штатно в ОС семейства Windows задержка составляет от 7 до 300 мс и зависит от текущей загруженности системы. Как несложно догадаться, звуковая система не является приоритетной в Windows и все что от нее требуется, это что бы звук просто не заикался, а для этого аудио данные собираются отдельный буфер и передаются сразу большим куском. Для сверх малых задержек буфер должен быть маленьким и постоянно передаваться небольшими пакетами.
ASIO является альтернативным мостом, который обеспечивает передачу звукового потока от программы до драйвера с фиксированным значением буфера, минуя штатную систему передачи данных ОС. Т.к. ASIO не является разработкой Microsoft (которой, к слову, на звук традиционно положить три кучи), то поддержка вывода и приема в ASIO ложится на плечи производителя ПО и звуковых устройств. Первоначально ASIO был разработан компанией Steinberg под свои продукты в момент перехода от MIDI к виртуальному синтезу и сегодня поддерживается практически всем профессиональным софтом и звуковыми интерфейсами.
Как несложно догадаться, аудиофилам без разницы на то, какая задержка в системе. Но полезно знать, на что ОС тратит свои силы под передачу звука и как это сказывается на качестве.
Как влияет звуковая подсистема ОС на звук
В ОС много программ, которые являются источниками звука, это Skype, ICQ, браузер с музыкой в вКонтакте, системными звуками, видеопроигрывателем и другими приложениями. Все эти звуковые потоки различаются как дискретностью, так и частотой семплирования, а на ЦАП должен придти всего один стерео поток с определенной разрядностью и частотой дискретизации. Соответственно все звуковые потоки необходимо заранее смикшировать. Что бы представить уровень проблемы, представим, что есть несколько фотографий с разными исходными разрешениями, которые нужно одновременно вывести на экран ЖК монитора, при этом каждая фотография должна заполнить весь экран. Если фото вывести пиксель в пиксель и фото займет часть экрана – это будет аналогично тому, что звук будет воспроизводиться медленнее или быстрее.
Если разрешение фотографии 600х480 пикселей, а разрешение монитора 1024х768, то необходимо фотографию предварительно перевести в 1024х768. Четкость фотографии несомненно снизится. Примерно так страдает и звук, который система пересчитывает из 44,100 кГц в 48000 или 96000 кГц. Качество ресемплера в Windows оставляет желать лучшего, т.к. идет максимальная экономия ресурсов.
Возвращаясь к фотографии, у нас есть фото с разрешением в 600х480 пикселей, 1024х768 пикселей и 2048х1536 пикселей и все фотографии надо вывести на 1024х768 пикселей. До сложения необходимо 600х480 и 2048х1536 пересчитать в 1024х768 и после три фотографии просуммировать, накладывая одну картинку на другую.
Обычно только одна программа воспроизводит основной звук, а остальные проигрывают звук периодически (ICQ, Skype) и их можно сравнить с логотипами и надписями поверх основной фотографии. Вполне очевидно, что картинка с исходным разрешением в 1024х768 меньше всего пострадает в качестве и если она будет основной и совпадать с разрешением монитора, то в снизится качество лишь вспомогательных картинок: логотип и надписи.
Так же и в системе можно формально выставить конечную частоту семплирования 44.100 кГц под аудиоплеер и пренебречь качеством системных звуков, которые звучат лишь время от времени.
Однако для наименьших потерь в качестве при микшировании звуковых потоков добавляется специальный шум (диттер) и системе все равно, одна программа воспроизводит звук или несколько. Таким образом, даже при воспроизведении всего одного звукового потока без его конвертирования в другую частоту семплирования, он все равно подвергается обработке и уже не поступит на ЦАП «бит в бит».
Если раньше ОС отслеживала, с какой частотой семплирования поступают на вход данные и автоматически выставляла максимальную поддерживаемую звуковой картой частоту дискретизации к входящим звуковым потокам (например при входящих 22, 44,1 и 48 кГц выставлялась 48 кГц, а при 22 и 44,1 понижалась до 44,1 кГц ), то начиная с Win7 в системе принудительно выставляется общая частота семплирования и автомата опорной частоты нет. Стабильность ОС повысилась, но метод не всех обрадовал.
Описанная ситуация в равной степени справедлива для всех ОС и платформ, которые могут воспроизводить звук одновременно с разных программ. В мобильном телефоне это к примеру воспроизведение телефонного разговора и системный сигнал о севшей батарее.
Условно общая схема выглядит так. При использовании ASIO Звуковой поток направляется сразу в микшер драйвера звуковой карты (Mixer Driver), минуя ресемплер (SRC) и микшер ОС.
Для необходимости воспроизвести звуковой поток «бит-в-бит” есть специальные режимы, в ОС Windows это «Kernel Streaming» (версии до XP) и WASAPI (версии после XP включительно). В таком режиме право передать звуковой поток имеет только одна программа в системе и тут полностью исключается микширование и пересчет данных. Более того, есть поддержка системой автоматического переключения опорной частоты (но при соответствующей поддержке драйвера звуковой карты).
Этот режим не рекомендуется использовать обычному пользователю, т.к. несет за собой разные проблемы. Например, пользователь включает Foobar2000 с WASAPI и после запускает видео ролик с ранее запущенного браузера. Звуковой драйвер не принимает звуковой поток от браузера и происходит крах флеш плагина. Налицо — система порушилась, а это: «печаль, беда и огорченье». Производители ПО крайне редко делают возможность вывода звука в KS/WASAPI, т.к. воинствующие пользователи будут винить в проблемах не свои кривые руки, а программу «из-за которой все порушилось».
Режимы KS/WASAPI можно встретить только в аудиоредакторах, секвенсорах и редких программных плеерах, предназначенных для аудиофилов – под подготовленных пользователей, которые понимают, что будет страдать стабильность работы ОС и кроме плеера/аудиоредактора/секвенсора звука не будет. Продвинутые аудиофилы, отказавшиеся от встроенного звука обычно для музыки используют отдельную звуковую карту, а системные звуки направляют на встроенный звук, что обеспечивает высокую стабильность работы ОС.
Т.е. по сути, KS/WASAPI – это идеальный вариант для вывода звука для аудиофила. Поддерживается в Foobar2000, AIMP, Winamp. Тем, кто хочет и фильмы в качестве слушать – есть плеер Light Alloy.
ASIO или WASAPI?
Профессионалы используют режим ASIO, который передает в драйвер звуковой поток «бит-в-бит» и обеспечивает фиксированный уровень задержки. WASAPI штатными настройками ОС не позволяет управлять задержкой. Уровень задержки в профессиональной работы приоритетнее, а «бит-в-бит» лишь приятный бонус.
Что происходит, когда задействованы одновременно звуковая система ОС и ASIO?
Для звукового драйвера есть два звуковых потока, одни из них приходит из подсистемы ОС, другой из ASIO. Исключительно от того, как был написан драйвер, будет происходить микширование финального потока до ЦАП. В одних случаях, если есть звуковой поток из ASIO, то звук от подсистемы ОС отключается, в других случаях происходит микс потоков из ОС и ASIO и «бит-в-бит» остается только в теории. ASIO, как и WASAPI позволяет лишь избежать алгоритмов SRC (передискретизации) и микширования подсистемы ОС и ничего более. Целостность финального потока будет зависеть от драйвера.
В любом случае, практически всегда звуковая карта работает в том же режиме семплирования, что и поступающий поток из ASIO, что дает некоторое преимущество для ASIO.
Микширование в драйвере может быть программным, а может аппаратным. Особенно забавно выглядят попытки аудиофилов в качестве источника ставить профессиональный интерфейс для «качественной цифры», где цифра выдается после аппаратного микширования. Впрочем, некоторым отмикшированный звук нравится больше оригинального … чище, прозрачнее и душевней…
Если логически просмотреть цепочку, по которой должен пройти звуковой поток, то для идеологии «бит-в-бит» звуковой интерфейс должен поддерживать всего один вариант, либо отключать микширование потоков при работе только одного интерфейса. Только в этом случае шансы получить «бит-в-бит» максимальны.
К примеру, возьмем OPPO HA-1 c поддержкой ASIO. Если запустить одновременно Foobar2000 с WASAPI и AIMP с ASIO, то на выходе мы услышим одновременно оба звуковых потока. Цифровых выходов у OPPO нет и соответственно нет возможности проверить звуковой поток на «бит-в-бит» отдельно для ASIO и WASAPI перед ЦАП.
А вот с ASUS Essence STU ситуация иная. Если AIMP с ASIO играет, то Foobar2000 с WASAPI уже молчит, звуковые потоки не смешиваются, отдавая приоритет для ASIO. Проверить цифровой поток аналогично возможности нет, но шансов, что звуковой поток поступил «бит-в-бит» на порядок больше.
Считается, что USB-ЦАП обязательно должен поддерживать ASIO, но на практике мы получаем дополнительное звено, где должны смешиваться или переключаться потоки из звуковой системы ОС и ASIO. И тут отсутствие ASIO – это отсутствие неизвестного звена, где может быть принудительное микширование, которое нельзя протестировать без цифровых выходов. В тоже время микширование на этом этапе обычно производится в разрядности 24 или 32 бита и соответственно услышать шум диттера маловероятно. Проблема лишь в идеологии «Hi-End».
Является ли ASIO панацеей от всех бед?
Как показывает практика, все зависит от драйвера звукового устройства. Если устройство профессиональное, то обычно стабильности и качеству у производителя ASIO максимум внимания. Если устройство бытовое, то ASIO может работать на порядок хуже режима KS/WASAPI. С практической точки зрения при выборе использования KS/WASAPI и ASIO нужно использовать тот интерфейс, с которым ОС работает более стабильно.
Универсальный драйвер ASIO4ALL
Драйвер ASIO4ALL необычайно популярен, но является при этом мостом между выходом ASIO из программы на вход KS/WASAPI в ОС. Это важно знать, т.к. если у вас звуковая карта не поддерживает ASIO, то после установки ASIO4ALL в том же Foobar2000 у вас выбор, выбрать изначально вывод в KS/WASAPI или ASIO через ASIO4ALL, который направит звуковой поток в тот же KS/WASAPI в ОС.
Ремарка для фанатов ASIO4ALL – да, там есть еще разные настройки, вроде выбора буфера и т.п., но эти возможности нужны лишь в профессиональной работе и ничего полезного не дают аудиофилам, для которых предназначен данный материал.
Что дает право утверждать, что ASIO4ALL доносит данные «бит-в-бит» до KS/WASAPI? Ведь теория и практика зачастую дают противоположные результаты. Для оценки качества работы ASIO4ALL был задействован Audiolab M-DAC с функцией проверки входящего звукового потока на «bit perfect» через воспроизведение специального звукового файла. Тест подтвердил, что данные приходят действительно «бит-в-бит» при воспроизведении из Foobar2000 через ASIO4ALL.
Кстати, приходили утверждения со стороны программистов, что например ASIO драйвер внешних карт E-MU (USB версий) сделан аналогично ASIO4ALL в виде моста и именно это является источником низкой стабильности карт…
Android и «бит-в-бит»
Возвращаясь к плеерам на базе ОС Android. В данной ОС есть аналогичный режим KS/WASAPI, но вот явных настроек под него нет. Единственный программный плеер, в котором есть режим прямого вывода в ЦАП используется в iBasso DX100. Разумеется, собственный программный плеер работает только в DX100 его нельзя скачать и поставить например в плеер Sony.
Проверить работу в Android на «бит-в-бит» очень просто. Запустите любой будильник и плеер. Если поверх звука из плеера вы услышите будильник, то никаких «бит-в-бит» на выходе нет.
ASIO – это возможность передать звуковой поток “бит-в-бит” минуя обработку звука в подсистеме ОС, но помимо ASIO есть и альтернативный вариант KS/WASAPI. Качество и точность передачи в конечном итоге обеспечивает лишь драйвер звукового устройства и порой отсутствие ASIO лишь отдельный плюс.
ASIO4ALL – универсальный аудио драйвер для WDM устройств.
ASIO (Audio Stream Input/Output) – специализированный протокол, используемый для ввода/вывода аудио данных, разработанный компанией Steinberg (Cubase, Nuendo).
ASIO4ALL – звуковой драйвер, способный в разы уменьшить задержку при работе с аудио материалом. Обычно этот драйвер используется для встроенных звуковых карт.
При использовании данного аудио драйвера рекомендуется отключить системные звуки Windows и настроить схему управления питанием таким образом, чтобы тактовая частота процессора не менялась. Например, в Windows XP это можно сделать, выбрав схему «Включен постоянно». В этом случае драйвер будет работать более стабильно.
Для использования аудиодрайвера ASIO4ALL, необходимо выбрать его в настройках соответствующей программы. Например, в проигрывателе AIMP 3 это делается так. Заходим в меню «Настройки» и выбираем пункт «Воспроизведение».
В списке устройств выбираем драйвер ASIO4ALL v2. Теперь проигрыватель AIMP 3 будет использовать для воспроизведения музыки драйвер ASIO.
ASIO4ALL есть смысл использовать в программах-секвенсорах, таких как FL Studio. Для того, чтобы выбрать этот драйвер для работы с аудио данными необходимо зайти в меню OPTIONS – Audio Settings и в списке девайсов выбрать ASIO4ALL v2.
Настройка ASIO4ALL
Для того, чтобы открыть панель драйвера в программе FL Studio необходимо нажать на кнопку Show ASIO panel (окно Audio Settings).
В других программах, возможно, не будет такой клавиши. В таком случае панель драйвера можно открыть, используя соответствующий значок в трее.
Панель настройки драйвера выглядит как показано на рисунке ниже.
1. Список устройств использующих аудио драйвер ASIO4ALL (на панели отображаются настройки выбранного устройства)
2. Размер буфера. Это основной параметр драйвера. Чем меньше это значение, тем меньше задержка сигнала. Однако, при слишком маленьких значениях появляются щелчки (выпадение звука). Необходимо опытным путем искать приемлемый компромисс.
3. Установка настроек «по умолчанию».
4. Дополнительные настройки. При нажатии на эту клавишу становятся доступными параметры показанные на рисунке ниже:
Драйвер ASIO4ALL имеет возможность преобразовывать частоту дискретизации сигнала с 44,1 кГц в 48 кГц и обратно. Эта возможность может понадобиться при использовании некоторых звуковых карт.
Функция принуждения к использованию в 16 разрядном режиме применяется в звуковых картах, которые поддерживают разрядность выше 16 и меньше 24 бит.
Если вы пока еще используете встроенную звуковую карту для создания музыки, то рекомендую вам использовать драйвер ASIO4ALL.
Установка оригинальных драйверов аудиокарты — это первое, что обычно предпринимают пользователи, желающие получить максимально качественный звук при воспроизведении аудио. Так как ощутимого эффекта это не даёт, особо настойчивые из них продолжают поиски эффективного решения и сталкиваются с такой технологией как ASIO, а значит и с программой ASIO4ALL, иногда ошибочно выдаваемой за средство улучшения качества звука. В действительности эта программа представляет собой драйвер, обеспечивающий прямую связь между аудиокартой и протоколом ASIO, о котором для понимания рассматриваемой нами темы нужно сказать пару слов отдельно.
↑ ASIO4ALL что за программа
Операционная система является как-бы прокладкой между «железом» и установленным программным обеспечением. Если на компьютере установлена некая программа для работы со звуком, обработанный ею звуковой сигнал сначала поступает в звуковую подсистему Windows, а та уже передаёт его на аудиокарту. А теперь представьте, что звук должен поступать, обрабатываться и выводится в режиме реального времени, например, при игре на миди-клавиатуре. Учитывая, что задержка звукового сигнала при прохождении его через звуковую подсистему Windows составляет до 300 миллисекунд или даже больше, можно представить, во что превратится игра на той же миди-клавиатуре.
Вот тут-то и приходит на помощь технология ASIO. Она исключает посредство звуковой подсистемы Windows между программой-обработчиком и драйвером аудиокартой, уменьшая тем самым задержку передачи аудио сигнала. Кроме того, ASIO позволяет организовывать многоканальный вход и выход. Только вот ASIO работает не со всеми аудиокартами, и чтобы их связать, нужно специальное программное обеспечение, в данном примере ASIO4ALL.
↑ Кому нужна ASIO4ALL
Из сказанного выше видно, что ни ASIO, ни ASIO4ALL не служат для улучшения качества звука. Это ПО необходимо для ускорения обработки информации, поступающей на аудиокарту с внешних устройств и звуковых редакторов, обрабатывающих и выводящих аудио сигнал в режиме реального времени. Используется оно в основном музыкантами, звукорежиссёрами и другими профильными специалистами, работающими со звуком на компьютерах со встроенной звуковой картой. Что касается рядовых пользователей, пользы им от ASIO4ALL не будет никакой, разве что они решат попробовать свои силы в звукозаписи.
↑ Как установить ASIO4ALL
Ну вот, теперь вы знаете, что такое ASIO4ALL и для чего нужна эта программа. Если у вас появится желание попробовать себя в роли музыканта, то программа вам даже очень пригодится. А так, конечно, для профессиональной записи и обработки звука лучше всего приобрести и установить дискретную аудиокарту, в которой передача аудио сигнала напрямую от устройства или приложения в драйвер аудиокарты заложена изначально.
В этой статье подробно разберём настройку ASIO драйвера.
После того, как вы кликните по этой иконке, появится приблизительно такое окошко:
Что там находится:
1) WDM Device List (Список звуковых WDM устройств установленных на компьютере)
Обратите внимание, чтобы аудио-вход и аудио-выход были включены (как на рисунке).
2) ASIO Buffer Size (Размер буфера драйвера)
Чем больше это значение, тем больше будет задержка. Слишком низкое значение тоже не советую ставить, может появиться треск и искажения звука.
3) Latency Compensation (Компенсация задержки)
Эти регуляторы необходимы при работе в секвенсоре при задержке воспроизводимых треков.
4) Options (Параметры):
Allow Pull Mode (Аппаратный буфер) – сокращает использование вычислительных ресурсов программы.
Buffer Offset (Число буферов ядра) – устанавливает количество буферов ядра на выходе.
Always Resample 44.148kHz (Преобразовывать между 44.148kHz) – драйвер может в реальном времени изменять частоту сэмплирования, как в одну сторону, так и в обратную.
Force WDM Driver To 16 Bit (Принуждать WDM драйвер к 16 битному режиму) – эта функция принуждает драйвера имеющих более высокую разрядность, работать в 16 битном режиме.
Для начала советую ничего не изменять. А уже потом, когда убедитесь, что программа и ASIO работают стабильно, можно попробовать внести изменения.
Вот собственно и вся настройка ASIO4ALL драйвера. Ах да, чуть не забыл, этот драйвер не дружит с другими звуковыми возможностями компьютера. То есть вы не сможете одновременно слушать музыку или смотреть фильм (со звуком) и работать с ASIO драйвером. Если в списке WDM устройств, какое-то из устройств будет помечено красным крестиком, значит оно блокировано другим приложением. Вам следует закрыть это приложение, либо перезагрузить компьютер.
Надеюсь настройка ASIO драйвера прошла успешно и можно переходить к настройке Guitar Rig.
Читайте также: