Что такое latency (задержка)
Многие начинающие и даже опытные музыканты сталкиваются с различными проблемами в работе из-за задержки. Задержка — неотъемлемая часть любой студийной деятельности, как ни крути. Но не все понимают, что такое задержка (latency), откуда она берется и как ее побороть.
Матчасть
Для начала обратимся к школьному курсу физики. Скорость распространения звука в воздухе составляет 331 метр в секунду. За одну миллисекунду звук проходит расстояние, равное 0,331 метра. Не нужно быть семи пядей во лбу, чтобы догадаться, что абсолютно все звуки, которые мы слышим, достигают нас с некоторой задержкой. Задержка зависит от того, насколько далеко располагается источник звука от нашего уха. Плюс ко всему, скорость распространения звуковых сигналов может сильно меняться в зависимости от условий окружающей среды. Так, цифра в 331 м/с будет верной при температуре воздуха в 0 градусов по Цельсию.
Допустим, у нас есть некий источник звукового сигнала, который издает один и тот же звук с определенным промежутком времени. Если время между повторениями сигнала будет составлять от 20 до 30 миллисекунд, то человек сможет различить звуки. Если интервал между звуками будет на отметке от 12 мс до 15 мс, то человек не будет способен различить два отдельных звука, но почти наверняка почувствует что-то неладное. А если отставание звуков друг от друга будет в районе 10 мс, то большинство людей будут думать, что звук идет непрерывно. В зависимости от человека цифры могут меняться, но среднее их значение будет примерно такое, как описано выше.
Подводя итог, можно сказать, что верхняя граница задержки при работе со звуком на компьютере — 12 мс.
Представим ситуацию, что музыкант находится дома и играет на гитаре через компьютер — гитара подключена к аудиокарте, в системе открыта некая DAW, в которой запущен Guitar Rig. При таком развитии событий человек со 100% вероятностью столкнется с задержкой. Если задержка будет больше 12 мс, то будет отчетливо слышно отставание реально извлеченного звука от того, что будет слышно в наушниках или мониторах компьютера. Играть с задержкой некомфортно, хотя и есть такие товарищи, которые спокойно могут играть при большем уровне задержки.
Что такое задержка (latency) в цифровых интерфейсах
Говоря максимально простым языком, задержка (latency) — это время, необходимое звуковому сигналу на прохождение пути от аналогового входа до аналогового выхода аудиоинтерфейса. Во время своего пути сигнал попадает на аналоговый вход, затем отправляется через аналого-цифровой преобразователь в рабочую станцию на компьютере, после чего через цифро-аналоговый преобразователь сигнал поступает на аналоговый выход. Путь не близкий, однозначно.
Прежде, чем попасть куда-либо дальше, любой аналоговый сигнал в современных аудиоинтерфейсах проходит через аналого-цифровой преобразователь (АЦП), главной задачей которого является перекодировка аналогового сигнала в цифровой. Не трудно догадаться, что с технической точки зрения это крайне сложный процесс. Среднее время выполнения перекодировки аналогового сигнала в цифровой составляет порядка 0,5 мс.
На обратной стороне звук вновь пройдет через преобразователь, но цифро-аналоговый (ЦАП), который преобразует получившиеся цифровые значения обратно в аналоговый сигнал. Время обратного преобразования также находится на отметке около 0,5 мс.
Не стоит забывать, что на пути сигнала встречаются несколько специальных буферов — областей памяти, используемых для временного хранения информации. Они активно используются в тех случаях, когда скорость получения данных и скорость обработки данных разнится между собой. Это позволяет достичь максимально точной обработки информации и избежать любых искажений сигнала, но за счет замедления вывода звука. Каждый буфер, в случае своего использования, увеличивает значение задержки на некоторое количество единиц времени. Примерами таких буферов служат входные и выходные буферы USB-шины, а также ASIO или Core Audio драйверов.
Кстати, о драйверах. Один и тот же аудиоинтерфейс может давать разные значения задержки на разных компьютерах и операционных системах. Это происходит за счет того, что материнские платы разных компьютеров могут быть оснащены совершенно разными по своим характеристикам USB-контроллерами, отвечающими за работоспособность всех портов USB. Именно здесь находится одна из основных проблем для тех инженеров, которые разрабатывают аудиоинтерфейсы. Их главной задачей становится достижение максимальной производительности драйверов при сохранении стабильной работы всех компонентов компьютера.
Для облегчения данной ситуации разработчики драйверов предоставили возможность конечным пользователям самостоятельно изменять размер буфера. Уменьшение размера буфера может привести к уменьшению задержки за счет увеличения нагрузки на процессор компьютера. Увеличение буфера — к увеличению задержки, но меньшим нагрузкам на процессор и прочие компоненты системы. Таким образом, меньше размер буфера — меньше задержка, меньше стабильность системы; больше размер буфера — больше задержка, больше стабильность работы компьютера.
Как уменьшить задержку?
Большая часть пользователей, которые ищут в интернете, что такое задержка (latency), желают уменьшить ее размеры всеми доступными способами.
В наше время в 90% аудиоинтерфейсов можно найти функцию прямого мониторинга, которая выводит звуковой сигнал сразу на аналоговый выход в обход преобразователей. На выходе к сигналу добавляется выходной сигнал с компьютера. Прямой мониторинг позволяет избавиться от задержки, слышать аудиотрек и собственный сигнал одновременно, но за счет того, что исходный звук не будет подвергнут никакой обработке. То есть, при использовании прямого мониторинга во время записи гитарных партий нам будет слышен чистый, ничем не обработанный звук, тусклый гитарный звук без компрессии, панорамирования и прочих радостей студийных технологий.
В некоторых аудиоинтерфейсах имеются встроенные процессоры цифрового сигнала или, как они чаще называются, DSP. Эти процессоры могут обрабатывать поступающий сигнал еще до того, как он полноценно пройдет через USB-шину и отправится дальше по цепи. Использование DSP позволяет снизить значения задержки за счет предварительной обработки сигнала, но аудиоинтерфейсы с такими процессорами стоят несколько дороже обычных аудиокарт.
Некоторые производители программного и аппаратного обеспечения стараются использовать собственные приложения для обработки и мониторинга сигнала, которые работают в обход различных буферов и драйверов. Так, к примеру, поступает приложение для обработки гитарного звука Pod Farm от Line 6, которое самостоятельно обрабатывает сигнал и не задействует ASIO-буфер.
Те же PreSonus установили, что на современных компьютерах размер буфера USB-шины можно уменьшить до 1 мс, если будут соблюдены множественные условия. PreSonus отдельно отмечают о том, что размер буфера в 1 мс возможен пока что только теоритически, на практике же размер буфера может быть уменьшен до 2-4 мс. Проблема заключается в том, что достижение таких временных значений зависит не столько от компьютера или аудиоинтерфейса, сколько от стараний самих производителей программного обеспечения по написанию качественного и быстрого драйвера, который сможет работать в обход ASIO напрямую с USB-шиной. Из очевидных примеров использования такого подхода можно привести компанию Image-Line, разработчиков популярной рабочей станцим FL Studio. В комплекте с программой поставляется собственный ASIO-драйвер, который должен обеспечить уменьшение значений задержки при работе в FL Studio.
Вместо выводов
Теперь, когда мы разобрались, что такое задержка (latency) и откуда она берется, стоит запомнить самое главное. От задержки никуда не деться. Вообще. Никак. Это абсолютно естественная вещь, от которой нельзя избавиться, но можно минимизировать «ущерб» от нее.
Нет определенного ответа на вопрос, какой уровень задержки приемлем, а какой нет. Все очень индивидуально и зависит от множества факторов: что записывается, как записывается, для чего и где записывается и т.д.
В любом случае, если производители программного обеспечения будут грамотно подходить к оптимизации работы собственного ПО и необходимых драйверов по части работы с USB и ASIO/Core Audio, то задержка будет составлять менее 10 мс, а то и меньше.