Читаем Универсальный ASIO-драйвер для звуковых WDM-устройств полностью

Рис. 2: Панель управления ASIO4ALL в расширенном режиме

В расширенном режиме панель управления содержит элементы для тонкой настройки. В списке устройств появляются подпункты, повторяющие архитектуру вашей звуковой подсистемы.

Список содержит устройства, интерфейсы устройств и т. н. «выводы» (в терминологии Микрософт®).

Как и с целыми устройствами в упрощённом режиме, здесь можно включать/выключать уже отдельные элементы устройств и настраивать устройства на совместное использование.

При совместном использовании устройства работают по одному тактовому источнику. Этого можно достичь, например, последовательным соединением по интерфейсу 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 считает текущей позицией чтения или записи. Это звучит сложно до тех пор, пока вы не видите код, который всё это рассчитывает:)

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

Перейти на страницу:

Похожие книги

100 великих футбольных матчей
100 великих футбольных матчей

Существуют матчи, которые по своему характеру, без преувеличения, можно отнести к категории великих. Среди них драма на двухсоттысячном стадионе «Маракана» в финальном поединке чемпионата мира по футболу 1950 года между сборными Уругвая и Бразилии (2:1). И первый крупный успех советского футбола в Мельбурне в 1956 году в финале XVI Олимпийских игр в матче СССР — Югославия (1:0). А как не отметить два гола в финале чемпионата мира 1958 года никому не известного дебютанта, 17-летнего Пеле, во время матча Бразилия — Швеция (5:2), или «руку божью» Марадоны, когда во втором тайме матча Аргентина — Англия (2:1) в 1986 году он протолкнул мяч в ворота рукой. И, конечно, незабываемый урок «тотального» футбола, который преподала в четвертьфинале чемпионата Европы 2008 года сборная России на матче Россия — Голландия (3:1) голландцам — авторам этого стиля игры.

Владимир Игоревич Малов

Боевые искусства, спорт / Справочники / Спорт / Дом и досуг / Словари и Энциклопедии