ASIO4ALL
Универсальный ASIO-драйвер для звуковых WDM-устройств.
Введение[править]
Сведения в данном руководстве помогут правильно установить и настроить этот драйвер.
Чтобы добиться наилучших результатов, удостоверьтесь в том, что:
- …выбрана схема управления питанием с наименьшей вероятностью переключения P-состояния процессора. В случае с Windows XP это схема «Включен постоянно», в случае с Windows Vista — «Высокая производительность». При наличии соответствующих навыков можно изменить нужную схему таким образом, чтобы тактовая частота процессора не менялась (это единственный критично важный параметр).
- …системные звуки отключены. Звуки редких событий (вроде запуска и завершения работы) не являются проблемой, но более частые и менее предсказуемые могут блокировать процесс инициализации звукового устройства для ASIO4ALL.
Найти обновления, получить дополнительные справочные сведения и поддержку можно по этим адресам:
Приступая к работе[править]
Настройка звукового ПО[править]
Чтобы использовать соответствующие звуковые приложения с драйвером ASIO4ALL, их нужно настроить. В каждом конкретном случае эти настройки индивидуальны, но общим для всех является необходимость выбрать «ASIO4ALL v2» в качестве устройства ввода и/или вывода.
В одном окне с меню, где выбирается устройство, должна быть кнопка вызова панели управления драйвером. Нажав эту кнопку, можно вызвать окно настроек ASIO4ALL. Узнать о том, как выбирается устройство и вызывается окно его настроек в конкретном приложении, можно в руководстве к этому приложению.
Иногда кнопки вызова панели управления может не Asio4all_ico.png оказаться. Обычно такое бывает в медиа-проигрывателях. В подобных случаях панель управления можно вызвать, щёлкнув на значок в панели уведомлений:
Значок появляется, когда приложение инициализирует драйвер ASIO4ALL. Если значка нет, то приложение не использует этот драйвер в данный момент. Уведомления можно отключить, просто открыв дополнительные параметры в панели управления ASIO4ALL.
Примечание: По возможности для вызова панели управления следует пользоваться именно специальной кнопкой, а не значком.
Изменения в настройках иногда могут вступать в силу лишь после перезапуска приложения.
Основные параметры конфигурации[править]
1. Список звуковых WDM-устройств, найденных в вашей системе.
Всегда изменяются параметры лишь того устройства, которое выделено в списке.
Устройства активируются кнопкой-индикатором слева от названия. На рисунке выше активным является «SoundMAX Integrated Digital HD Audio». Возможна одновременная активность любого числа устройств.
Рядом с индикатором активности есть индикатор, сообщающий состояние устройства:
- Готово к работе - Устройство успешно запущено.
- Бездействует - Устройство, должно быть, доступно, но в данный момент не запущено и не используется.
- Недоступно Устройство используется другим приложением или стандартным синтезатором Windows («Программный синтезатор звуковой»). Использовать стандартный синтезатор крайне не рекомендуется.
- Не контролируется - Устройство по неизвестной причине отказывается от запуска или ведёт себя странно. Иногда проблема исчезает после повторного открытия панели управления или переподключения USB-устройств. Кроме того, в некоторых случаях такое состояние равноценно «Недоступности», что говорит о некорректном предоставлении данных о состоянии от устройства.
2. Размер буфера ASIO - этот ползунок управляет размером ASIO-буфера выбранного устройства. Чем меньше размер буфера, тем меньше задержка. Если в звуке возникают щелчки, то необходимо увеличить размер.
3. Кнопка загрузки настроек по умолчанию - нажав эту кнопку, можно вернуть все параметры на их изначальные значения. Это должно помочь, если после установки драйвер работал нормально, но впоследствии был неправильно настроен.
4. Кнопка отображения дополнительных параметров - переключает панель управления в расширенный режим, где можно произвести тонкую настройку. Дополнительные параметры рассматриваются в следующей главе. Если список пуст, то в вашей системе нет звуковых WDM-устройств или для таких устройств не установлены драйверы, которые можно получить на сайте производителя.
Дополнительные параметры конфигурации[править]
В расширенном режиме панель управления содержит элементы для тонкой настройки. В списке устройств появляются подпункты, повторяющие архитектуру вашей звуковой подсистемы.
Список содержит устройства, интерфейсы устройств и т.н. «выводы» (в терминологии Микрософт®). Как и с целыми устройствами в упрощённом режиме, здесь можно включать/выключать уже отдельные элементы устройств и настраивать устройства на совместное использование.
При совместном использовании устройства работают по одному тактовому источнику. Этого можно достичь, например, последовательным соединением по интерфейсу S/PDIF. К счастью, USB-устройства, работающие от хост-контроллеров с одним тактовым источником, уже синхронизированы. Если вы не пользуетесь дополнительными USB-контроллерами, то все устройства работают от одного тактового генератора, расположенного на материнской плате.
Если устройства не синхронизированы, то их аудио потоки могут опережать и отставать друг от друга.
Справа расположены дополнительные элементы управления 5 – 9.
5. Компенсация задержки
- Потому как ASIO4ALL не располагает подробной информацией об архитектуре аппаратных средств и драйвера, величина компенсации выбирается лишь предположительно. Этими ползунками можно скомпенсировать задержки, неизвестные ASIO4ALL, чтобы, например, записанные фрагменты в секвенсоре воспроизводились в нужный момент со всем остальным.
- При совместной работе нескольких устройств выбирается наибольшее значение. Если разные устройства имеют различные собственные задержки, то в результате возможна асинхронность.
6. Включение/отключение аппаратного буфера
- В случае с драйверами WaveRT (Windows Vista) этот флажок подписан как «Режим извлечения (WaveRT)».
- Доступ к аппаратному буферу обычно встречается только в драйверах типа «WavePCI». Другие типы WDM-драйверов, как правило, не дают прямого доступа к аппаратному буферу. Самое большое преимущество при использовании аппаратной буферизации в том, что основные вычислительные ресурсы системы расходуются значительно меньше.
- Основные параметры, влияющие на производительность аппаратного буфера, — «Размер буфера ASIO» и «Смещение в буфере» (п. 7). Аппаратная буферизация лучше работает с мелким буфером ASIO, нежели с крупным. Для начала попробуйте установить размер буфера на 128 или 256 сэмплов.
- Возможно совместное использование устройств с доступом к аппаратному буферу и без доступа, но это не рекомендуется. Если аппаратная буферизация не поддерживается каким-либо устройством, то возникает отчётливо слышимая задержка в сотню-другую миллисекунд.
- Режим извлечения (WaveRT)
- Есть два основных метода доступа к устройствам WaveRT. «Режим извлечения» (pull-mode, «режим событий») и «режим помещения» (push-mode, «режим опроса»). Последний поддерживается всеми драйверами WaveRT и всеми версиями платформы. В отличие от него режим извлечения был довольно поздно документирован Микрософтом и потому работает далеко не везде.
- Если флажок не поставлен, то ASIO4ALL никогда не будет использовать этот режим. Иначе будет использовать его по возможности. Режим извлечения лучше синхронизирован и считается технически более совершенным, чем режим помещения.
- Драйвер ASIO4ALL версии 2.8 работал так, как если бы флажок был установлен. Если при работе с установленным флажком проблем не возникает, то следует оставить этот режим для большей производительности.
7. Число буферов ядра / смещение в буфере
- Если аппаратная буферизация не используется, то этот параметр отвечает за число буферов на выходе. Каждый дополнительный буфер увеличивает задержку в соответствии с размером. Поэтому изменять значение по умолчанию, равное двум, следует только на слабых системах, на которых трудно поставить мелкий размер буфера ASIO.
- Если же аппаратная буферизация используется, то параметр отвечает за величину зазора в миллисекундах между позицией, где ASIO4ALL будет записывать данные (и где будет происходить их чтение), и позицией, которую ASIO4ALL считает текущей позицией чтения или записи. Это звучит сложно до тех пор, пока вы не видите код, который всё это рассчитывает :)
- Общее правило звучит так: с более высокими значениями увеличивается и стабильность, и задержка, с более низкими эффект обратный.
- В звуковых картах, построенных на базе Envy24, может быть параметр «DMA Buffer Transfer Latency» (задержка при передаче данных в буфер с прямым доступом к памяти) или что-то в этом роде. Этот параметр следует ставить на минимальное значение.
8. Преобразование между 44.1 и 48 Кгц
- ASIO4ALL может в реальном времени преобразовывать частоту дискретизации от 44.1 КГц в 48 КГц и обратно. Преобразование происходит автоматически в случаях, когда ASIO4ALL открывается в режиме 44.1 КГц, а WDM-драйвер не поддерживает эту частоту.
- В некоторых случаях драйверы стандарта AC97 могут поддерживать частоту 44.1 КГц, преобразовывая её самостоятельно. Однако преобразование выполняется с довольно сомнительным качеством и проблемами со стабильностью. Чтобы избавиться от этого, включите данный параметр. Как минимум с одной из версий WDM-драйвера SoundMAX (smwdm.sys) этот параметр обязательно должен быть включён, чтобы частота 44.1 КГц вообще поддерживалась.
9. Принуждение к работе WDM-драйвера в 16-разрядном режиме
- Этот параметр работает только с теми драйверами, которые сообщают о возможности работы с потоком разрядностью более 16 бит (и меньше 24), но фактически отказываются от этого. Примером такого драйвера является SigmaTel AC97.
Правила оптимизации в общих случаях[править]
- Игра вживую на программных синтезаторах
- В этом случае звуковые входы вам не нужны. Поэтому их следует отключать, чтобы при меньшем размере ASIO-буфера стабильность была выше. Вместе с ними следует отключать и лишние выходы. Для этого нужно переключить панель управления в расширенный режим и раскрыть список WDM-устройств — там будут перечислены отдельные интерфейсные единицы.
- Компьютер в роли эффект-процессора
- В этом случае звуковые входы нужны. Но, как всегда, неиспользуемые каналы следует отключить. Не используйте возможность преобразования частоты, если нет такой необходимости.
- Компьютер как обычный секвенсор
- Здесь стабильный звук без разрывов даже при максимальной вычислительной нагрузке важнее мелкой задержки. Поэтому рекомендуется умерить аппетит от мелкой задержки и увеличить размер буфера до значения, комфортного с тем набором инструментов и эффектов, который вы наиболее часто используете. Это особенно важно при записи звука, когда щелчки от опустошения буфера не просто раздражают, а напрямую портят результат вашего труда. Если используемый вами секвенсор поддерживает компенсацию задержки, то для правильного размещения записываемых фрагментов её необходимо настроить в расширенном виде панели управления.
- Когда задержка вовсе не играет роли
- В некоторых конфигурациях ASIO4ALL позволяет звуковому потоку обходить участки, которые могут отрицательно влиять на качество звука. Поэтому любители качественного звука предпочитают использовать ASIO-интерфейс вместо DirectSound или MME, которые нередко искажают данные. При прослушивании музыки задержка не играет никакой роли, а об использовании входов вовсе не идёт речь. Поэтому входы следует просто отключить, а размер буфера поставить на максимум.
Использование «ReWuschel»[править]
Если при установке вы отметили одноимённый пункт, то входы, предоставляемые ASIO4ALL, будут доступны в ReWire-приложениях. Смысл в этом есть, когда программа поддерживает только ASIO- выходы, но при этом имеет полноценную поддержку ReWire — например, Reason.
Чтобы подавать звук в Reason в реальном времени, ASIO4ALL должен быть установлен в качестве текущего драйвера. После этого вызовите в меню: Create → ReBirth Input Machine. Теперь входы ASIO4ALL подключены к выходам устройства «ReBirth Input Machine».
Учитывайте, что с установленным компонентом ReWuschel вы не сможете пользоваться Rebirth в Reason. Чтобы это стало возможно, необходимо будет переустановить ASIO4ALL без ReWuschel.
Возможные неполадки и способы их устранения[править]
ASIO4ALL представляет себя приложениям как автономный драйвер, но в некоторых конфигурациях фактически таким не является. Поэтому некоторые проблемы могут возникать не по его вине, даже если внешне это выглядит иначе. Особо можно отметить ситуацию, когда вы меняете состав устройств и их каналов в панели управления ASIO4ALL. При этом изменяются количество и имена каналов, которые предоставляются приложению. Поэтому рекомендуется перезапускать приложение после изменений в составе устройств и каналов, если у вас есть подозрения в том, что программа не справляется с этими изменениями «на лету».
Наиболее распространённые проблемы и их решения[править]
- ASIO4ALL отсутствует в списке драйверов
- Есть две возможные причины. Первая состоит в том, что программа не поддерживает ASIO. Вторая в том, что драйвер был установлен от имени пользователя с недостаточными привилегиями. В последнем случае необходимо установить ASIO4ALL от имени администратора. После установки ASIO4ALL уже не требует прав администратора для работы.
- Устройство помечено как недоступное или неподконтрольное, даже если оно больше нигде не используется
- Стоит отдельно удостовериться в том, что устройство не занято чем-то вроде «Программного синтезатора звукового» в вашей MIDI-конфигурации. Если есть основания полагать, что такой программный синтезатор является причиной проблемы, то попробуйте перезапустить приложение, предварительно перенастроив его.
- Некоторые драйверы не успевают вовремя освободить устройство при переключении с них на ASIO4ALL.
- Если устройство поддерживает «горячее отключение» (USB / FireWire / PCMCIA), то закройте панель управления ASIO4ALL, отключите устройство, подключите его вновь и откройте панель управления.
- Звук в другом приложении пропадает при активности ASIO4ALL
- Так задумано. Близость к аппаратной составляющей подразумевает обход программных микшеров Windows. Без программных микшеров, а также их задержек и порчи звука, вы остаётесь наедине с аппаратной частью устройства, которая нередко лишена каких бы то ни было возможностей микширования нескольких потоков.
- Измерители свидетельствуют о наличии звука и всё вроде проигрывается, но фактически звука нет (характерно для Windows Vista)
- В драйверах устройств наподобие «High Definition Audio» SPDIF-выходы нередко поставлены перед аналоговыми выходами. Как следствие, первые два (или более) ASIO-канала выведены на SPDIF-интерфейс. Можно переназначить каналы в приложении. Если интерфейс SPDIF не нужен вообще, то можно попробовать отключить его.
- Изменения, сделанные в панели управления из одного приложения, не распространяются на другие приложения
- … и между разными пользователями то же самое. Так и должно быть. ASIO4ALL хранит настройки отдельно для каждой программы и для каждого пользователя. Это позволяет работать одновременно нескольким экземплярам ASIO4ALL, если они не назначены на одно и то же устройство. Кроме того, это предохраняет пользователей от изменения настроек друг друга, что особенно важно там, где одним компьютером пользуются несколько человек под разными учётными записями.
- Величина задержки, отображаемая, например, в Cubase SX3, не соответствуют размеру буфера, заданному в панели управления ASIO4ALL
- ASIO4ALL поддерживает компенсацию задержки, если это реализовано в хост-программе. Эта возможность ещё дорабатывается и, время от времени, в неё будут вноситься исправления. Значения, сообщаемые программе, это не только та задержка, которую вносит ASIO4ALL, а общая задержка по всей системе. Поэтому то, что отображается в программе, и то, что отображается как размер ASIO-буфера — просто не одно и то же.
- В более ранних версиях ASIO4ALL общая задержка не определялась и, потому, отображаемое значение могло быть несколько ниже. Фактические же задержки как минимум не стали больше, чем с предыдущими версиями, и теперь они не возрастают при увеличении вычислительной нагрузки.!
Пер. с англ.: Петров Егор (entrase@ya.ru), © 2009