← все статьи

Таймкод: как свет попадает в музыку и почему 29.97 — это ловушка

Откуда взялась дробная частота кадров, как устроен LTC на слух и почему при захвате аудиотаймкода надо выключить всю обработку звука.

Знакомая история. На прогоне всё сошлось идеально: нажали Play на таймлайне, нажали Play на фонограмме, картины встают точно в акценты. На третьем показе к финалу акта свет опаздывает на полторы секунды, и никто не понимает почему.

Причина скучная: два разных плеера считают время своими часами. Кварц в звуковой карте и кварц в компьютере — это два кварца, и они расходятся. Полторы секунды за сорок минут — это уход на 0,06%, совершенно обычная величина.

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

Три способа принести время

MTC — таймкод по MIDI. Его отдаёт почти любая DAW: Ableton, Reaper, Pro Tools. Приходит четвертькадровыми сообщениями: каждый кадр разбит на восемь порций по четыре бита, и полная метка времени собирается за два кадра. Отсюда, кстати, известная особенность MTC — задержка в два кадра, которую приходится компенсировать.

Art-Net Timecode — то же время, но пакетом по сети, на том же порту 6454, что и свет. Его шлют медиасерверы (Resolume, Watchout, disguise), многие звуковые пульты и мосты «LTC → сеть».

LTC — таймкод, записанный звуком. Самый старый и самый живучий способ: не зависит ни от сети, ни от MIDI, а для звукорежиссёра это просто ещё один выход, который можно воткнуть в линейный вход вашей звуковой карты.

Как LTC звучит и почему это работает

LTC — это 80 бит на кадр, закодированные biphase mark. Правило простое: уровень переключается на границе каждого бита, а если бит — единица, то ещё раз в его середине. То есть значение бита определяется длиной интервала между переключениями, а не тем, где сигнал выше нуля.

Из этого следует пара приятных вещей. Полярность подключения не важна: перевернёте фазу — интервалы останутся теми же. Громкость тоже почти не важна: важно, что переключения различимы, а не насколько они громкие. Поэтому LTC доезжает по дешёвому кабелю через полсцены там, где MIDI бы уже сдался.

На 30 кадрах это 2400 бит в секунду — по звуку слышно как быстрое злое жужжание. Если приложить кабель к уху и услышать характерный треск, вы опознали LTC.

И один неочевидный вывод, который стоил нам отладки: при захвате LTC надо выключить всю обработку звука — эхоподавление, шумоподавление, автоматическую регулировку усиления. Все они предназначены для речи и занимаются тем, что правят форму сигнала. Для голоса это улучшение, для таймкода — порча тех самых интервалов, из которых читаются биты. В Flux Lights обработка выключается принудительно, но если ваш аудиодрайвер делает что-то своё на уровне системы, это тоже стоит проверить.

Частоту кадров сам сигнал не сообщает — только флаг drop-frame. 24, 25 и 30 на слух и по битам неотличимы, поэтому её задаёт человек.

29.97: наследство чёрно-белого телевидения

Самая частая ловушка. Откуда вообще взялась дробная частота?

Когда в цветное NTSC-вещание добавляли поднесущую цвета, она била по звуковой поднесущей и давала муар на экранах. Инженеры сдвинули кадровую частоту на одну тысячную с небольшим — с 30 до 30/1,001 = 29,97 — и картинка успокоилась. Совместимость с чёрно-белыми телевизорами сохранилась, а мир получил частоту, которая не делится ни на что хорошее.

Дальше начинается арифметика. Счётчик таймкода считает кадры по тридцать в секунду, а кадров приходит 29,97. За час набегает 108 лишних кадров — 3,6 секунды расхождения между тем, что показывает счётчик, и реальным временем.

Чтобы счётчик снова совпал с часами, придумали drop-frame: два номера кадра пропускаются в начале каждой минуты, кроме каждой десятой. Считаем: 2 × 60 = 120 пропусков в час, минус 12 непропущенных (минуты 0, 10, 20, 30, 40, 50), итого ровно 108. Те самые 108. Пропускаются номера, а не кадры: изображение не дёргается, просто счётчик перескакивает.

Практический вывод: если ваш источник отдаёт 29,97, а свет считает его наивно как 30, к концу двухчасового спектакля вы уедете почти на две секунды. Это уже видно из зала. Поэтому 29,97 у нас считается настоящим drop-frame, и отличить его можно глазом — кадры отделяются точкой с запятой: 01:02:03;04.

Начало шоу

У звукорежиссёра дорожка почти никогда не начинается с нуля. Обычно это 10:00:00:00 (историческая привычка: часовой запас на подводку в начале ленты) или час, равный номеру акта.

Световой таймлайн живёт от нуля, поэтому нужно смещение:

позиция таймлайна = таймкод − «начало шоу»

Кнопка «Взять текущий» ставит смещение по таймкоду, который идёт прямо сейчас. На репетиции это быстрее всего: включили дорожку с нужного места, нажали кнопку, поехали.

Что делает Flux Lights, когда таймкод пропал

Две вещи, которые стоит знать заранее.

Источник считается пропавшим после четверти секунды тишины. При 24 и более кадрах в секунду это уже заведомо стоп, а не потерянный пакет: за 250 мс должно было прийти шесть кадров.

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

И третье: пока идёт один источник, остальные игнорируются. Два генератора, дерущиеся за курсор, — это дрожание, которое потом ищут весь вечер.

Проверка, которая занимает две минуты

Включите источник и откройте настройки — читалка должна пойти, рядом появятся имя источника и частота кадров. Поставьте дорожку на нужное место, нажмите «Взять текущий». Включите «Следовать таймкоду» и прогоните кусок: курсор идёт вместе со звуком, маркеры срабатывают там же, где на репетиции.

Если частота на экране не совпадает с той, что стоит в DAW, — дальше не идите. Расхождение в частоте не проявляется на первой минуте, оно проявляется на финале.

Читайте также