Назад к блогу
October 24, 2018

Понимание компенсации задержки плагинов

Технические детали — тогда и теперь

Инженеры в винтажной студии звукозаписи осматривают аналоговые магнитофоны.

Музыкальное производство и создание пластинок — многогранный процесс, в котором задействованы разные элементы. Некоторые из них — художественные, другие — чисто технические.

Как это работало раньше

“Раньше” (на сей раз со шотландским акцентом), все технические аспекты решали люди, которые знали толк в магнитофонах, аналоговых пультах, внешнем оборудовании, линиях и даже в реальных реверберационных камерах. Последнее, чего кто‑либо хотел, — чтобы сессия застряла и артист терял драгоценное время и вдохновение из‑за какой‑то технической детали.

Как это работает сегодня

Все это по-прежнему актуально и сегодня, даже если технические детали изменились, для тех, кто делает музыку на компьютерах (Fab сказал, что их, кажется, довольно много).

Один из наиболее недооценённых аспектов любой DAW — её способность справляться с внутренними задержками, которые возникают при маршрутизации и обработке. В этой статье мы рассмотрим, как Pro Tools управляет своей ADC (Automatic Delay Compensation), но изложенные здесь концепции дадут вам набор навыков и «детективную» шляпу, чтобы выполнять такие проверки и диагностику в любой DAW.

Размер буфера против компенсации задержки

Что такое размер буфера на самом деле

Прежде всего, это два не тождественных понятия. Чтобы объяснить размер буфера, я всегда использую следующий пример:

Каждый раз, когда вы нажимаете “Play” в вашей DAW, вы запрашиваете данные от “мозга” компьютера к вашим колонкам. Представьте это как ряд коробок, которые регулярно отправляются от компьютера к колонкам. Эта коробка — ваш буфер.

Окно Pro Tools Playback Engine с доступными размерами аппаратного буфера.Чем меньше размер буфера, тем меньше коробки, которые ваш компьютер использует для упаковки данных и отправки их на колонки. За заданный промежуток времени (например, 1 секунда) компьютеру придётся использовать больше коробок, приложить больше усилий, чтобы наполнить их и отправить. Поскольку коробка маленькая, время от нажатия “Play” до отправки первой коробки будет очень коротким, но нагрузка на CPU вырастет, чтобы обеспечить отправку всех этих крошечных коробочек. Как и в реальной жизни, в маленькие коробки помещается мало, поэтому понадобится много коробок, много ленты, много упаковки, много энергии.

При большом размере буфера компьютер работает спокойнее: в большую коробку помещается много данных, и она будет закрыта и отправлена только когда заполнится. Это означает, что от нажатия “Play” до того момента, когда первая коробка дойдёт до колонок, пройдёт больше времени. С другой стороны, за тот же интервал времени компьютер работает меньше (меньше нагрузка на CPU).

Как размер буфера влияет на рабочий процесс

Кратко:

  • Меньшие размеры буфера: повышенная отзывчивость, большее потребление CPU/системных ресурсов
  • Большие размеры буфера: пониженная отзывчивость, меньшее потребление CPU/системных ресурсов

По этой причине, как правило, малые размеры буфера предпочтительны при записи (когда нужна минимальная задержка между тем, что вы играете, и тем, что вы слышите обратно из DAW), а большие размеры буфера предпочтительны при микшировании (когда вам уже не нужна критичная по времени отзывчивость и вы хотите использовать больше плагинов, снижая нагрузку на систему).

Внутренняя задержка обработки — совсем другое существо

Итак, чем “внутренняя задержка обработки” отличается от “размера буфера”? В то время как размер буфера — системный параметр, задержка обработки меняется динамически в зависимости от маршрутизации, плагинов и цепочек обработки. И вот тут всё может выйти из‑под контроля.

Задержка обработки и её компенсация

Диаграмма, сравнивающая две дорожки, одну с плагинами и одну без, иллюстрирующая компенсацию задержки.Возьмём две аудиодорожки: Дорожка A — с грувом бочки и малого барабана, Дорожка B — с риффом бас‑гитары. Допустим, эти две дорожки записаны первоклассным, качающим дуэтом. Вы садитесь за микс и решаете, что Дорожке A требуется немного эквалайза, компрессии и лёгкий реверб. Дорожка B идеальна как есть. Нажимаете "Play" и всё звучит потрясающе. Отчасти это потому, что ваша DAW автоматически компенсирует задержку плагинов. Почему так?

По сути, Дорожке A требуется больше времени, чтобы пройти цепочку обработки: Дорожка B идёт без обработки и проходит напрямую, а Дорожка A должна пройти через эквалайзер, компрессор и реверб.

Зачем нужна ADC

Automatic Delay Compensation гарантирует, что Дорожка B не финиширует раньше: она будет ждать Дорожку A, и только когда обе будут готовы, они вместе пройдут «через финишную черту», сохраняя исходные временные отношения между ними.

Если бы в вашей DAW не было "ADC" (Automatic Delay Compensation), Дорожка A звучала бы так, будто она записана позже по времени. Если разница большая, барабанщик будет звучать совершенно не в такт по отношению к басисту, и, поскольку в нашем примере эти двое — знаменитая фанковая группа, за такую ошибку вас могли бы уволить.

Как возникают проблемы с задержкой

Теперь легко понять, насколько важна ADC, учитывая, что у вас обычно:

  • больше чем две дорожки
  • больше трёх плагинов в сумме
  • более сложная маршрутизация, с aux‑шинами для bussing и send/return

и самое важное: вещи не всегда звучат явно неправильно. Может быть небольшое фазовое смещение между каналами (например, бочка и бас и остальная часть ударных? Ужас!), из‑за которого вы будете принимать микшировочные решения, основанные на технической проблеме, а не на содержании дорожек. И это смещение меняется с любой изменением маршрутизации или добавлением/изменением плагина! Ещё один повод для ужаса.

Поэтому давайте убедимся, что умеем диагностировать, правильно ли работает ADC.

Устранение неполадок и настройка ADC

Сессия Pro Tools с двумя идентичными дорожками, одна из которых инвертирована по полярности, подключенная к плагину Phasescope.Возьмём две идентичные аудиодорожки, обе направленные на один и тот же шину. На них — одинаковый кусок аудио: синусоида 1 кГц на −20 dBfs (на самом деле подойдёт что угодно, главное — одинаковые клипы).

Метод нулевого суммирования (Null Test)

Я инвертирую фазу (=инвертирую полярность) на одной из дорожек. В некоторых DAW есть простая кнопка "flip phase" в канал‑стрипе, но в моём Pro Tools такой кнопки нет. Поэтому я ставлю по одинаковому Trim‑плагину на обе дорожки, отключаю его на первой и оставляю включённым на второй, чтобы инвертировать полярность. Так я применяю одинаковую обработку к обеим дорожкам и они остаются идентичными для всех практических целей.

На суммирующем шине, называемой "MIX", я ставлю простой плагин Phasescope, чтобы наблюдать полярность, уровни и стерео‑изображение.

Когда я запускаю сессию, две дорожки полностью гасятся друг другом и результат — полная тишина (−infinite). Ах, красота работы с единицами и нулями в цифровой области.

Вид микшера Pro Tools с плагином, вставленным для теста задержки плагина при мониторинге поведения null.

Диагностика маршрутизации и задержек плагинов

Теперь я ставлю плагин на первую дорожку и включаю его в bypass. Таким образом я добавляю нагрузку плагина на систему, но не изменяю звук. Учтите, что в некоторых DAW байпас плагина также исключает его из пути обработки. В моём Pro Tools байпас значит, что плагин всё ещё "висит" на CPU, но не влияет на звук дорожки.

Теперь, если ADC работает корректно, результат по‑прежнему будет полным нулём. Это потому, что Дорожка B быстрее Дорожки A (для неё не нужны вычисления), но DAW заставит её ждать, пока Дорожка A будет готова, и затем они воспроизведутся синхронно.

Если мы выключим ADC в Pro Tools (меню Setup > Delay Compensation снято), вы увидите, что Phasescope показывает остаточный сигнал. Это значит, что дорожки не компенсируются.

Диаграмма, показывающая, как Дорожка A проходит через дополнительную обработку и Aux перед выходом.В третьем примере мы пропускаем Дорожку A через дополнительную Aux‑дорожку, а затем отправляем её на шину MIX, в то время как Дорожка B идёт напрямую. Если ADC работает правильно, компенсация всё равно произойдёт и результат должен быть полным нулём.

Сессия Pro Tools, демонстрирующая провал null из‑за включённого Auto Low Latency.

Когда ADC не срабатывает для дорожек с мониторингом входа

В четвёртом примере мы пропускаем Дорожку A через Audio Track с включённым Input Monitoring. Тут начинаются интересные вещи. В Pro Tools при нажатии Play сигнал не гасится. Это баг? Нет.

В Pro Tools есть функция "Auto Low Latency", которая обычно включена по умолчанию. Идея в том, что если вы ставите аудиодорожку в режим мониторинга входа и/или записи, вы, вероятно, будете записывать что‑то на неё. И если это происходит с реального источника (например, гитаристу надо записать овердаб), Pro Tools предполагает, что вы захотите минимальную возможную задержку, чтобы музыкант слышал себя вовремя и в такт. "Auto Low Latency" делает так, что правило Automatic Delay Compensation нарушается для дорожек, которые переведены в режим мониторинга входа и/или готовы к записи (зелёная кнопка "I" или красная точка).

Чаще всего это именно то, что вы хотите (особенно если сессия уже перегружена плагинами), но в нашем случае это не нужно. Мы можем использовать эту технику, чтобы записать дорожку в другую дорожку (bounce), и крайне важно, чтобы ADC сохранялась, чтобы мы могли корректно контролировать мониторинг и «запечатлеть» правильный звук.

Панель компенсации задержки Pro Tools с опцией Auto Low Latency OFF.

Отключение режима Auto Low Latency

Чтобы исправить это, мы переходим к панели "delay compensation" внизу аудиодорожки (убедитесь, что у вас включена опция "Delay Compensation" в меню "View > Mix Window", чтобы видеть эту панель). Три поля указывают сверху вниз:

  • общую задержку этой дорожки в сэмплах
  • пользовательский сдвиг этой дорожки в сэмплах (если задан)
  • общую компенсацию в сэмплах, требуемую для выравнивания задержки до самой медленной дорожки в сессии

обычно эти поля зелёные, но в Pro Tools они могут быть оранжевыми, чтобы выделить самую медленную дорожку в сессии. Если они красные, значит дорожка не компенсируется корректно. У каждой DAW есть максимальное количество сэмплов, которое она может компенсировать.

Чтобы выключить режим "Auto Low Latency" для конкретной дорожки, надо кликнуть правой кнопкой по третьему, самому нижнему полю в Delay Compensation Pane, затем выбрать "Auto Low Latency OFF". Поле компенсации станет синим, чтобы показать, что Low Latency отключён для этой дорожки.

Phasescope в Pro Tools показывает успешный null после отключения Auto Low Latency.Если вы сейчас проиграете сессию, вы заметите полный ноль (null). Всё снова работает как ожидалось.

Вы можете использовать эту диагностику в любой ситуации (также для send/return), просто убедившись, что результат двух идентичных дорожек (но с противоположной полярностью) возвращается в полное гашение. Это не предмет дебатов: это не художественный выбор или стиль работы: DAW не должны влиять на тайминг вашего материала (будь то предварительно записанное или сгенерированное в реальном времени) на основе технических или операционных факторов.

ADC и виртуальные инструменты

А как насчёт виртуальных инструментов? Как быть уверенным, что они все корректно компенсируются? Что ж, мы не можем знать наверняка. Мы доверяем разработчикам софта. Обычно.

Но есть тип виртуальных инструментов, которому я уделяю особое внимание: библиотеки ударных и плагины для замены ударных. Если я добавляю сэмпл бочки и малого барабана в существующую ударную дорожку, как мне быть уверенным, что эти два сэмпла идеально выровнены по фазе?

Многодорожечная запись ударных в Pro Tools: бочка, малый, overheads и дорожка для печати.

Почему библиотеки ударных требуют особого внимания

В последнем примере у нас три дорожки ударных: Kick, Snare и Overheads, и они звучат так:

Оригинальный фрагмент

Можно сделать лучше. Я не слышу достаточной мощности в бочке и малом, и хочу усилить их с помощью сэмплов. Для этого я открываю виртуальный инструмент — в моём случае Slate Digital SSD 4, но этот принцип применим к любому похожему плагину.

Микшер Pro Tools, маршрутизирующий выходы SSD драм‑сэмплера на печатные дорожки.Как только я выбрал сэмплы для бочки и малого, я запускаю сессию, и это звучит так. Вполне неплохо, делает то, что нужно.

Ударные с добавленными сэмплами

 

Банкаем (bounce) сэмплы, чтобы избежать хаоса

Первую проверку я делаю ушами. Звучит хорошо — оставляю как есть. Однако я знаю, что сессия вскоре станет гораздо больше и хочу минимизировать возможность возникновения проблем. Поэтому вместо того, чтобы оставлять виртуальный инструмент подключённым и полагаться на него, я решаю записать (bounce) дорожки с сэмплами в реальное аудио. Это сделает сессию автономной и не зависящей от библиотеки звуков, которой через годы может не быть у кого‑то ещё, или которой нет у вашего инженера... и кроме того, это зафиксирует время этих сэмплов и гарантирует, что они останутся на своих местах.

Совет: избавьтесь от виртуальных инструментов, как только закончите работу над аранжировкой/композицией. Я лично не очень доверяю MIDI и предпочитаю перейти к более компактной, оптимизированной сессии до этапа микса.

Правильная маршрутизация для печати сэмплов

В микшере SSD я маршрутизирую так:

  • Kick (direct): Stereo Output 2
  • Snare (direct): Stereo Output 3
  • Все атмосферные дорожки (Overheads/rooms и т.п.): Stereo Output 4

Окно редактирования Pro Tools, показывающее MIDI SSD, триггерящий печатные аудиодорожкиЗатем в Pro Tools я создаю 3 стерео Audio Tracks, называю их соответствующим образом и ставлю их входы на выходы виртуального инструмента SSD, те самые, что перечислены выше. Чтобы добавить ещё маршрутизации (и проверить больше сценариев), эти 3 дорожки отправляются на собственную шину, а затем на шину MIX.

Если я включаю Input Monitoring на этих дорожках и нажимаю Play, всё звучит странно и не в такт.

Что‑то не так

Это потому, что я забыл установить "Auto Low Latency" в OFF, как я объяснял выше. Как только это исправлено, всё снова звучит точно так же, как было до bounce.

Увеличенный вид, показывающий нессовпадение сэмпла бочки и оригинальной бочки.Затем я выполняю bounce дорожек, и вот они — записанные отдельно и готовые к добавлению в микс‑сессию. Забавно, что даже при включённом "Auto Low Latency" напечатанный результат будет корректно компенсирован! Потому что Pro Tools использует этот режим Low Latency только для мониторинга, а не для внутренней записи (молодцы, разработчики).

Выбор в Pro Tools, показывающий сдвиг на 72 сэмпла для выравнивания сэмпла бочки с реальной бочкой.

Исправление несогласованных сэмплов ударных

Теперь давайте приблизим взгляд на дорожки ударных. В то время как выбранный сэмпл малого барабана идеально выровнен и в фазе с оригиналом, между двумя бочками видно задержку. Это не связано с Automatic Delay Compensation, а скорее с самими сэмплами в виртуальном инструменте. У них разные движки, разные сэмплы и, следовательно, разные результаты. Поэтому всегда рекомендуется финальный осмотр.

Микшер Pro Tools показывает применённый пользовательский сдвиг для выравнивания тайминга трека с сэмплом ударных.Допустим, мы измерили расстояние между началом реальной бочки и началом сэмпла — это 72 сэмпла (об этом сообщает транспорт Pro Tools, когда сетка установлена в "Samples"). Теперь мы можем ввести "-72" в поле "User Offset" в панели delay compensation у дорожки с сэмплом бочки.

Вид микшера Pro Tools с дорожками SSD, на котором выделена дорожка с сэмплом бочки с применённым пользовательским сдвигом -72 сэмпла в панели компенсации задержки.Это скажет Pro Tools сдвинуть эту дорожку на 72 сэмпла "назад", выравнивая сэмпл бочки с реальной бочкой. Это не всегда означает, что будет звучать лучше — я лишь говорю, что стоит проверить! В данном случае выровненная версия звучит лучше и делает две бочки более единым целым. Небольшой, но заметный эффект.

Написано Alberto Rizzo Schettino

Pianist and Resident Engineer of Fuseroom Recording Studio in Berlin, Hollywood's Musicians Institute Scholarship winner and Outstanding Student Award 2005, ee's worked in productions for Italian pop stars like Anna Oxa, Marco Masini and RAF, Stefano 'Cocco' Cantini and Riccardo Galardini, side by side with world-class musicians and mentors like Roger Burn and since 2013 is part of the team at pureMix.net. Alberto has worked with David White, Niels Kurvin, Jenny Wu, Apple and Apple Music, Microsoft, Etihad Airways, Qatar Airways, Virgin Airlines, Cane, Morgan Heritage, Riot Games, Dangerous Music, Focal, Universal Audio and more.