Что такое buffer size звуковой карты
Оптимизация производительности звуковых проектов
Работа со звуком — это ресурсоёмкий для вашего компьютера процесс. Каждый звукорежиссёр не раз сталкивался с проблемой «крупных проектов», с которыми имеющееся оборудование не позволяет нормально работать из-за недостаточных мощностей. Самым надёжным способом добиться идеальной производительности в таких случаях является перепроектирование звукового тракта специально под нужды sound production вашего уровня.
Уровень сложности: начальный.
Время прочтения: 15 минут.
Глоссарий
Рассмотрим ряд связанных с оптимизацией понятий, чтобы дать этому вопросу немного теории (если терминология вас не интересует, можете переходить к следующему разделу).
Оптимизация — улучшение способа использования чего-либо.
Производительность (англ. «performance») — характеристика способности какого-либо объекта по успешному выполнению определённых действий. Далее речь только об аппаратной и программной производительности, а не о производительности работы над проектом самого звукорежиссёра (там уже речь бы шла о юзабилити ПО и личных показателях эффективности).
Аппаратная и программная производительность (англ. «hardware & software performance») — качественная или количественная характеристика способности компьютерной техники или ПО решать заданную задачу в целом или в определённый момент времени.
Звуковой проект (далее — «проект») — произвольное множество объединённых общим замыслом звуковых дорожек вместе с исполняемым файлом проекта, хранящим информацию о положении, длительностях и эффектах данной совокупности дорожек.
Аппаратная и программная производительность проекта — характеристика способности ПК, звуковой карты, операционной системы, звуковых драйверов, DAW и плагинов выполнять задачи проекта без временных потерь и согласно замыслу звукорежиссёра.
Оптимизация АПП проекта — применение методик повышения аппаратно-программной производительности проекта в целях лучшего решения задач работы со звуком.
CPU — центральный процессор ПК.
DAW (Digital Audio Workstation) — многофункциональная звукозаписывающая программа, она же «цифровая рабочая станция».
Когда оборудование не справляется
Что вообще в этот момент происходит? DAW и отдельные проекты загружаются заметно дольше. С ростом количества дорожек и применяемых плагинов растёт нагрузка на процессор, оперативную память, жёсткий диск и кулеры. Воспроизведение происходит не сразу или вообще перестаёт стартовать, горячие клавиши медленно отзываются на нажатие, а все возможные метрики горят красным (технический аспект).
Рис. 1. Мониторинг через диспетчер задач
Далее работа затрудняется или приостанавливается, проблема попадает в поле внимания звукорежиссёра и начинает раздражать (психологический аспект).
Когда железо не справляется, самые нежелательные варианты развития событий — это:
Мониторинг производительности проекта
Фактически мониторинг производительности является одной из составляющих любой серьёзной работы над звуком, выполняясь одновременно и автоматически (средствами операционной системы, самой DAW или других приложений), и человеком за пультом.
Желательный вариант проверки — если вы намеренно, периодически посматриваете на соответствующие шкалы.
Есть и другой подход — проверять, когда уже почувствовали это: «там что-то подтормаживать стало» (т.е. заниматься диагностикой лишь в случае возникновения проблем).
Рис. 2. Окошко «VST Performance» в Cubase
Какие у нас есть возможности для мониторинга?
Итак, вы проверили производительность и результатат вас не устраивает? Дальше разбираем возможности реальной оптимизации.
Способы оптимизации
Решения проблемы производительности очевидны только на первый взгляд, на деле же здесь огромное пространство для вашей фантазии. Они объединены в 8 групп способов, которые отсортированы по предполагаемой частоте использования.
Рис. 4. Родной ASIO микшера Behringer
Настройки DAW
Данный раздел идёт первым, потому что описанные способы обычно предваряют работу.
Отключения и удаления
Данный раздел по вполне понятным причинам составляет ядро, поскольку рассчитан на применение в реальном времени.
В процессе сведения/мастеринга
Экспортирование
Перезапуски
Рис. 6. Сравнение системных требований Cubase 9 и 7. В данном случае для производительности может быть выгоднее использовать версию 7
Обновления
Чистки
Тюнинг
Если и не меняем ПК и другие составляющие звукового тракта полностью, то хотя бы частично. Общие рекомендации:
Рис. 8. Палитра ASIO на выбор
Пересаживаемся на другую DAW
Примечание: данный способ не просто так стоит здесь самым последним.
Разные DAW по-разному используют ресурсы ПК. Необходимо самостоятельно тестировать другие программы звукозаписи — в любом случае это хороший и ничуть не лишний опыт для любого звукорежиссёра. Обратите внимание на результаты сторонних тестов (но ваш опыт может в чём-то расходиться с результатами тестов).
Заключение
Нужно понимать, что всё перечисленное — это лишь полумеры, лишь борьба с очевидным моральным и физическим устареванием оборудования. Однако рабочая обстановка бывает разной, и иногда малейшая деталь вроде заморозки пары лишних дорожек способна поменять расклад.
Рис. 9. Метрика нагрузки в Mixcraft
Полезные ссылки
Удачных всем сессий в ваших студиях и берегите свой ПК от перегрева 🙂
2.4. Preferences — Audio
Эта вкладка меню позволяет выбрать тип драйвера и звуковой карты, которую Live будет использовать для воспроизведения звука.
Здесь же можно найти параметры, определяющие производительность и качество звука. Выбор сильно зависит от того, какой звуковой картой вы обладаете, как именно она была установлена, и в какой операционной системе вы работаете.
При нажатии закладки «Audio» в меню «Preferences» появляется окно, состоящее из четырёх секций (секции отделены друг от друга линейками):
Рассмотрим каждую из них по порядку.
Секция Audio Device
Данная секция предназначена для настройки драйвера и выбора вашей звуковой карты или аудиоинтерфейса.
На PC меню включает в себя два типа драйверов: «MME», «DirectX» и «ASIO». На Mac возможен выбор только «Core Audio» тип драйвера.
Для копии, установленной на Windows, я выбирал универсальный драйвер «ASIO4ALL», подходящий почти для всех типов звуковых карт. Или же выбирал драйвер Asio для своей звуковой карты E-Mu. При работе с этим драйвером задержки намного меньше, чем у «MME/DirectX»-драйверов. Об этом подробно написано в статье про установку ASIO-драйвера.
Вкратце: благодаря ASIO аудио сигналы от внешних источников и команды от Midi-контроллеров долетают до Ableton по укороченному маршруту, не заходя в «угрюмые дебри» операционной системы Windows.
Задержка («latency») MME/DirectX драйверов по сравнению с ASIO более существенна, т.к. сигнал вынужден преодолевать все запутанные коридоры и кабинеты операционной системы Windows.
Всплывающие окна Chanel Configuration
Лишние входы или выходы, не участвующие в работе лучше выключить. Это сохранит вам немного мощности компьютера.
Данная вкладка станет вам необходимой, если вы обросли оборудованием и собираетесь настраивать свою систему для живых выступлений. Если у вас появится подходящая звуковая карта с нужным количеством входов и выходов (от 4 и более), то вы можете включать/выключать их в этом меню.
Чаще всего дополнительные входы могут понадобиться вам, если вы, к примеру, хотите направить сигнал предпрослушки в отдельный выход (выход 3/4 стерео) на наушники, чтобы иметь возможность прослушивать треки в браузере, в то время как ваш сет выводится в зал. Или же у вас есть внешний блок эффектов, на который необходимо направить определённые дорожки вашего сета и т.д.
Sample Rate
Здесь выбирается частота дискретизации проекта. Если говорить проще — здесь определяется, насколько качественным будет записанный и воспроизведённый в Live звук, и насколько тщательно он будет просчитываться. Хороший вариант — 44,100 Hz, или 44.1 kHz, это частота, которой обладает сигнал с аудио-CD.
Как всегда, в интернете ведётся множество споров по поводу того, какую частоту лучше использовать. Нет смысла анализировать это здесь. Просто рекомендую вам никогда не опускаться ниже 44,100 Hz. Если же вы поднимаете планку выше, то начинаете нагружать процессор. Так что рассчитывайте возможности вашего оборудования.
Latency
Данная секция содержит настройки, которые определяют размер буфера и время задержки звуковой карты. Чем меньше размер буфера (buffer size), тем меньше задержка (input/output latency), но тем большее быстродействие требуется от компьютера.
Test
Последней во вкладке Audio идёт секция под названием «Test».
Эта секция сделана для тестирования настроек, установленных вами во вкладке “Audio”.
ASIO4ALL настройка.
ASIO4ALL это звуковой драйвер, который забирает звуковой поток от программы и направляет его прямо на звуковую карту, минуя систему, позволяя выставлять минимальную задержку. Так же плюс его и в том, что при наличии нескольких звуковых устройств (звуковых карт, USB микрофон) можно выбрать вход одного, а выход другого. Например, вам нужно, чтобы звук с USB микрофона шёл на запись и воспроизводился через внутреннюю звуковую карту. Или же у вас есть две звуковые карты и вы хотите одновременно записывать с обоих.
Теперь давайте рассмотрим настройки ASIO4ALL и возможные проблемы при его использовании.
При первом включении панель настроек находится в простом режиме и выглядит так:
В принципе, если вам не нужно настраивать с какого источника записывать и звук уже воспроизводится (то есть нет никаких проблем), то этого режима вам достаточно. Здесь всё просто.
Слева сверху находится WDM Device List это список всех звуковых устройств в вашем компьютере. (у меня это встроенная в материнскую плату звуковая карта и внутренняя Creative X-Fi Titanium). Для выбора той звуковой карты через, которую будет идти звук нужно нажать на кнопку включения, которая находится слева от её названия. При этом она загорится голубым цветом и рядом появится значок воспроизведения. Если же у вас его не появляется, то это значит, что существуют какие-то проблемы. Скорее всего звуковая карта занята другим приложением.
Для устранения этой проблемы закройте все программы, которые могут использовать звук (skype, интернет браузеры, музыкальные и видео плееры) и снова попробуйте задействовать звуковую карту, выключив-включив её, с помощью кнопки включения.
Ниже находится ползунок ASIO Buffer Size. Он отвечает за задержку звука. Чем ниже его значение, тем она меньше. Для подбора рекомендую открыть в программе, какой-нибудь “тяжёлый” (использующий большую мощность процессора) файл проекта и нажав на кнопку воспроизведения, передвигать ползунок буфера влево до появления треска и заиканий звука.
Например Creative X-Fi Titanium позволяет выставить 208 Samples, что примерно равняется 5 миллисекундам задержки и это очень хорошо. Лично для меня, минимально комфортной, является 10 миллисекунд.
Если же вы хотите перейти к более продвинутым настройкам, (например у вас нет звука и надо понять почему. Либо нужно настроить входа и выхода звуковых карт.) то нужно нажать кнопку с изображением ключа.
Теперь слева в WDM Device List, нажав на плюсик напротив ваших звуковых устройств, будет раскрываться список его входов и выходов. Из них можно выбирать, которые будут использоваться для воспроизведения и записи при помощи кнопки включения слева от их названия. При этом должен появляться значок воспроизведения.
Например на верхнем изображении выбран вход микрофона для записи и выход на колонки для воспроизведения в звуковой карте Creative X-Fi Titanium.
На этом рисунке тоже самое для встроенной звуковой карты.
Если же рядом с названием входа или выхода появляется крестик, то это значит, что ASIO4ALL не может получить доступ к нему. И как я уже писал выше скорее всего он используется в другой программе. Поэтому нужно закрыть все программы, которые могут использовать звуковое устройство. И снова попытаться включить этот вход или выход.
Замечу, что ASIO4ALL полностью забирает в своё распоряжение звуковую карту и другие программы не смогут к ней обращаться. То есть звук будет работать только в вашей музыкальной программе до тех пор, пока вы её не закроете.
Можно использовать сразу несколько входов от разных звуковых устройств, включая их одновременно. Например на скриншоте сверху задействованы входы встроенной на материнскую плату звуковой карты одновременно со входом внутренней Creative X-Fi Titanium.
Ещё хочу обратить ваше внимание на то, что для каждого вашего устройства задержка выставляется своя. Для этого вы выбираете её, нажав на название и перемещаете ползунок ASIO Buffer Size.
Теперь давайте рассмотрим другие настройки, которые находятся в окне справа.
Ползунок Buffer Offset помогает улучшить стабильность, но увеличивает задержку звука. Рекомендуется увеличить на слабых машинах. Если же компьютер достаточно мощный, то можно даже уменьшить его с значение по умалчиванию (4ms) до 1ms.
Always Resample 44.1 48 kHz — Включение этой функции позволяет драйверу ASIO4ALL делать ресемплинг частот дискретизации своими силами. (что более качественно, чем это делают некоторые звуковые карты) Советую включить. (по умалчиванию уже задействована)
Force WDM driver to 16 Bit – Включение этой функции помогает избежать проблем с теми звуковыми картами, которые не поддерживают битность выше 20 бит. (например интегрированные)
А теперь немного о проблемах при использовании.
Очень часто при выборе в программе драйвера ASIO4ALL нет звука. Проблема чаще всего в том, как я писал уже выше, что другая программа использует драйвер звуковой карты. Поэтому перед выбором ASIO4ALL необходимо закрыть все программы, которые могут занимать её. Это, например, Skype, интернет браузеры Opera, Google Chrome, Internet explorer, музыкальные и видео плееры. Так же звука может не быть, если вы уже при работающей программе подключили USB звуковую карту или микрофон и выбрали ASIO4ALL. В этом случае закройте программу, отключите устройство и заново подключите его. (Иногда приходится даже перезагружать компьютер)
Ну вот на этом пожалуй и всё. Если я вам помог с настройками ASIO4ALL, то ставьте лайки и подписывайтесь на новости. Остались какие-то вопросы – спрашивайте в комментариях. Удачи и творческого вам настроения 🙂
Зависает FL Studio, появляется треск! ASIO4ALL и его настройка
Зависает FL Studio, появляется треск! ASIO4ALL и его настройка.
Если ты начинающий пользователь FL Studio и у тебя не с того, не с сего появился раздражающий треск при воспроизведении в проекте, зависает и тормозит FL Studio и написание музыки уже точно не приносит наслаждения, которого ты ожидал… Вероятнее всего ты еще не знаешь, что такое звуковой драйвер ASIO4ALL, который в принципе и есть тот спаситель, что избавит тебя от этого злостного треска и неадекватной работы секвенсора, пришло время узнать об этом универсальном оптимизаторе звуковых процессов, так как это, наверное, самая важная часть в оптимизации и настройке твоего секвенсора FL Studio.
Где скачать ASIO4ALL бесплатно русскую версию.
Если ты еще не скачал или как раз ищешь, где скачать бесплатно последнюю версию Asio4all для fl studio– то вот тебе прямая ссылка с официального сайта на последнюю русскую версию этого драйвера – СКАЧАТЬ ASIO4ALL Русская версия. И пока файл скачивается и ожидает тебя, я разъясню твои дальнейшие действия и погружу тебя немного в то для чего вообще нужны драйвера ASIO.
Что такое ASIO4ALL.
Драйверы Asio4All это программное обеспечение на твоем компьютере, которое оптимизирует звуковые потоки и направляет их самым коротким путем – от секвенсора (или другой программы работающий с аудио) сразу в звуковую карту, минуя твою операционную систему и все ее процессы. Понимаешь, наверное, от чего был треск в твоей FL Studio до этого и от чего FL Studio зависает, тормозит и трещит.
Сейчас, как ты понимаешь, самое время установить эту вещицу и навсегда забыть про трески и торможение секвенсора.
После установки, конечно же, стоит выбрать ASIO4ALL v2 драйвер в аудио настройках FL Studio, в строке Device:
Теперь все твои мучения должны закончиться, но должен предупредить тебя, что именно с драйверами ASIO4ALL будут конфликтовать все другие процессы операционной системы Windows (плееры аудио, видео, Skype, team speaker, интернет браузеры и все что может использовать звук) и поэтому будет работать либо FL Studio с выбранными драйверами ASIO либо процессы в операционной системе.
Сразу отмечу, что начиная в FL Studio 12, Image-Line интегрировала совместимые c FL Studio драйверы ASIO, которые уже есть в твоем секвенсоре (если ты не убрал галочку при установке секвенсора) называются они FL Studio ASIO и они уже здорово оптимизируют звуковые процессы и, конечно, не конфликтуют с процессами операционной системы, но даже с ними, иногда, есть смысл ставить ASIO4ALL, так как задержка в звуке, небольшая, но все же остается, при выбранных драйверах FL Studio ASIO.
Если у тебя есть синтезатор, MIDI клавиатура, Drum Pad или какое-то другое MIDI устройство, с помощью которого ты воспроизводишь инструменты или управляешь параметрами в секвенсоре (о подключении и оптимизации работы которых, ты можешь узнать все ЗДЕСЬ) – то драйвера ASIO так же оптимизируют работы этих устройств и ускоряют работу их команд. Иными словами уменьшают задержку между нажатием на клавишу MIDI клавиатуры и результатом этого нажатия в FL Studio – звуком.
Настройка ASIO4ALL.
И после выбора драйвера ASIO4ALL щелкни кнопку Show ASIO panel и приступим к настройке необходимых тебе параметров работы драйверов ASIO:
Тебе нужна как раз вот эта настройка ASIO Buffer Size. И это и есть настройка задержки. Но она выставляется для каждого устройства своя (это я к тем гражданам у кого возможно 2 или более аудио интерфейса, звуковой карты, но я думаю мало среди начинающих таких уникальных лиц). ASIO Buffer Size это размер буфера выставляемый ASIO для определенного аудио устройства (устройства перечислены в этом же окне, как WDM Device List) – в твоем случае какой-то звуковой карты. Чем больше размер, тем больше задержка между командой (воспроизведение внутри FL Studio или командой с MIDI устройства) и реакцией на эту команду. Ставим мы это значение в сэмплах, результат – длительность задержки можно увидеть в тексте под выбором устройства Deviceв настройках аудио, под заголовком Status:
Для меня, приемлемая задержки находиться в диапазон буфера 128 – 480 сэмплов. Этот параметр может меняться в зависимости от загруженности проекта, так как в уже весомых проектах (с массой плагинов, эффектов обработки и различных процессов) случается, что достигается предел буфера и появляется тот самый треск и «лаги» в проекте. Поэтому прибегать к увеличению задержки (компенсированию производительности за счет увеличения буфера) все таки придется, как быстро – зависит от твоего железа. Выставь то, что приемлемо для тебя сейчас и едем дальше. Все остальные настройки (те, что справа, а если их нет и там изображение клавиш Piano – то щелкни по гаечному ключу в правом нижнем углу) выставлять нужно только в крайних каких-то специфичных случаях:
Latency Compensation (In and Out) – Компенсация дополнительной задержки (если вдруг она по какой-то непонятной причине появилась) на определенном устройстве воспроизведения или записи (In и Out).
Hardsware Buffer (Работает не всегда!) – дополнительное форсированное улучшение связи со звуковым устройством. Разница мало когда будет заметна.
Регулятор Kernel Buffers– дополнительное улучшение производительности и увеличение за счет этого задержки звука.
Always Resample 44.1 kHz – 48. kHz– если у тебя встроенная звуковая карта в материнской плате или очень бюджетная внутренняя – то стоит выставить этот параметр, он разрешает программному обеспечению ASIO производить конвертацию частот дискретизации, так как некоторые аудио устройства это делают гораздо хуже.
Force WDM Driver to 16 bit– если активировать эту опцию, то она будет решать ошибки тех карт которые не поддерживают размер битности свыше 20 bit.
Вот тебе полная инструкция и пояснение что такое ASIO для чего нужны эти драйвера и как с ними работать и настраивать.
Надеюсь, что статья помогла, удачи в твоем творчестве!
Зачем нужно ASIO для аудиофилов?
Каждый, кто сталкивался с вопросом о качественном воспроизведении звука рано или поздно встречается с аббревиатурой 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 лишь отдельный плюс.