Подписка на блог

Сообщение о выходе новой заметки на этом сайте можно получать в удобном для вас месте:

Что такое RSS?

Художник по свету, видеоинженер, айтишник

Timecode в grandMA2

Периодически в чатах возникает вопрос, как правильно работать с таймкодом, как делать какие-то определенные действия с ним, и как это всё правильно настроить. И вот я решил написать эту статью, чтобы систематизировать все свои знания по этой теме и закрыть возникающие вопросы коллег.

Итак, что же вообще такое таймкод в рамках светового пульта? Для заказчика это всегда выглядит сложно, дорого, очень дорого и «Ваааааау, у нас шоу по таймкоду!». К сожалению, для многих специалистов нашей отрасли это выглядит примерно так же, но ещё и «Это для крутых Московских шоу же, а у меня тут ДК в провинциальном городке, какой ещё таймкод сюда…».

Как сказал один из людей, у кого я учился многому в шоу-индустрии:

Timecode — это всего лишь ответ на вопрос «Кто нажмёт кнопку Go?»

И действительно. В написанном кьюлисте можно попросить нажимать кнопку Go самого художника по свету, его ассистента, а можно даже уборщицу, которая мыла зал перед спектаклем! Самое главное, в сценарии сделать в нужных местах пометки «Нажимай после слова лопата!».

Но в любом случае, все три способа будут не самыми эффективными. Даже сам художник по свету, который писал этот кьюлист может отвлечься, забыть, не успеть. И что-то произойдет не вовремя, а как мы помним, один из самых главных факторов в свете «вовремя». Зритель не представляет, синие у вас воши должны были стать или маджента, но вот если это сделать не в такт, то зрителям это будет заметно. Конечно же не всем, но всё же.

А если отдать роль нажатия кнопки Go пульту, да ещё и рассказать, в какое время это нужно сделать, то можно не сомневаться, что пульт не отвлечется на разговоры с красивой артисткой и не забудет нажать эту кнопку.

Я не буду рассказывать про историю таймкода, кинопленку и прочее, если захотите, найдите и почитайте сами про это. К этой теме это не будет иметь особого отношения. Однако, что очень хочется отметить из его истории — таймкод может содержать различное количество кадров в одной секунде. Что это такое, и зачем нам нужно:

Время в таймкоде кодируется несколькими числами:

ЧАСЫ:МИНУТЫ:СЕКУНДЫ:КАДРЫ

Так как таймкод пришел к нам из кино, то логично, что там видео состоит из нескольких физических кадров. Именно поэтому в свете используется этот термин, а не миллисекунды.
Но что ещё хорошо — когда мы делаем связку света и видео — мы снова начинаем работать с нашими киношными кадрами в прямом смысле этого слова.

Есть несколько стандартных вариантов количества кадров в одной секунде. Это опять же связано с историей таймкода, кино и ТВ.

Как выбрать количество кадров в секунде?

Самые стандартные варианты таймкода — это 25 или 30 кадров в секунде. И вот тут перед выбором нужно понять очень важный момент:

Количество кадров на всём свето-видео-тракте должно быть равно одному значению!

Ну или хотя бы делиться без остатка. Что это значит: если мы выбрали формат 25 кадров, то у нас

  • Таймкод на 25 кадров
  • Светодиодный экран или проектор работает на 25 или 50 кадров
  • Камеры для вывода на экран работают на 25 или 50 кадров
  • Видеокарта имеет выход на 25 или 50 кадров
  • Контент отрендерен под 25 или 50 кадров
  • Все мониторы для превью видео с камер и медиасервера работают в 25 или 50 кадров.

Если хоть что-то из этого окажется в 30/60, то не произойдет ровного распределения и мы получим лаги на видеотракте.

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

Итак, мы выбрали частоту кадров. В примере, который я буду рассматривать дальше в этой статье, у меня нет видеосерверов, экранов и камер, поэтому я волен сам выбрать то, что мне нравится. В дальнейшем все примеры будут проходить на 30 кадрах в секунду.

Какой бывает таймкод?

Timecode — это специальный сигнал, в котором закодировано время. И как вы уже догадались, этот сигнал можно передать кучей различных способов. Два самых распространённых из них

  • LTC — линейный таймкод. По факту это звук, передаваемый по обычному звуковому кабелю, представляет из себя набор очень быстро сменяемых звуков «есть писк» и «нет писка». За счёт такого двоичного кодирования как раз и шифруется текущее передаваемое время.
  • MTC — MIDI таймкод. Это MIDI-сигналы, передаваемые через MIDI интерфейс, в которых так же заложено текущее передаваемое время.

Есть и другие способы передачи сигнала таймкода, например, по ArtNet, но на них мы не будем останавливаться в рамках этой статьи.

Давайте лучше подумаем, что выбрать LTC или MTC? А вот это зависит от ваших задач и имеющегося оборудования. LTC можно передавать на большие расстояния, как обычный звук, например, от музыкантов на сцене через звуковой стеджбокс в пульт на FOH и от туда уже физическим кабелем к вам в МАшу. А ещё отрендеренный в звуковой файл LTC сигнал — это гарантия того, что всегда будет приходить один и тот же сигнал, чего нельзя сказать о генерации таймкода «на лету», что чаще бывает в MTC, который нельзя передавать на большие расстояния (ну по крайней мере без костылей). Но при этом MTC удобно использовать локально, особенно на моменте прописывания шоу, когда у вас всё на одном компе и не хочется в студии собирать всю схему со звуковыми пультами, и прочими железками. А на реальном шоу это всё спокойно сможет работать уже по LTC, переданному со сцены. Для этого нужно будет лишь изменить источник входа сигнала в пульте.

Последний момент про LTC и перейдём к практике: при подготовке звукового трека на выходе мы должны получить многоканальную звуковую дорожку, состоящую, как минимум из трёх каналов:

  • Левый канал из исходного трека
  • Правый канал из исходного трека
  • Канал со звуком из писков с нашим LTC

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

На этом про LTC всё, дальше все примеры будем делать с MTC сигналом, чтобы всю схему можно было собрать и повторить в рамках одного компа, вообще не имея ни светового, ни звукового железа под рукой. (А кто-то думал, что работать с таймкодом можно только имея дорогое оборудование??).

Необходимый софт

Чтобы повторить всё, что мы будем делать в статье необходимо иметь у себя следующий софт:

  • loopMIDI — бесплатное приложение, которое позволяет сделать петлю из MIDI интерфейса внутри одного компа, по сути дела — это виртуальная MIDI-звуковая карта, у которой вход соединён с выходом: всё, что будет подано на вход, можно будет прочитать на выходе
  • REAPER — условно бесплатный звуковой DAW-редактор, в котором есть возможность генерации дорожек с таймкодом. Теоретически, вы можете использовать любой DAW-редактор, но я буду показывать все примеры именно на этом.
  • grandMA2 onPC — на момент написания статьи последняя версия 3.9.60.37. Показывать буду на ней, на немного более ранних теоретически тоже должно быть примерно всё так же. Для работы с таймкодом не нужны открытые параметры, всё бесплатно, без СМС и регистрации.

Устанавливаем и настраиваем софт

Я не буду подробно останавливаться на установке этих приложений, там всё просто «Далее-Далее» и даже никто не пытается подсунуть браузер с Алисой. Лучше перейдём к их настройке.

Запускаем loopMIDI. Тут нужно ввести название виртуального порта (или оставить то, что есть). И нажать кнопку «+». Всё.

C Reaper настроек будет немного больше, но там тоже ничего сложного. При первом запуске откроются настройки, потом их можно открыть через меню (Options -> Preferences). В разделе MIDI необходимо активировать выход с названием, которое мы вводили на предыдущем шаге.

Для этого нужно нажать правой клавишей по названию выхода и выбрать пункт Enable. Дальше настройки можно закрыть и перейти к главному окну. Тут необходимо поставить правильный формат времени. Для этого нужно нажать правой клавишей по часам и выбрать подходящий нам вариант.

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

Теперь в меню Insert выберем генератор таймкода:

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

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

Теперь необходимо отправить эту MIDI дорожку с таймкодом в наш виртуальный порт:

На этом в Reaper пока больше ничего делать не будем, переходим к настройке MA.

Настройка MA onPC для работы с MTC

В первую очередь необходимо зайти в настройки самой MA onPC, они находятся в желтом шарике на окне Command:

На вкладке MIDI в качестве источника входа необходимо выбрать наш виртуальный порт из loopMIDI:

Теперь откроем пустое окно рабочей области и соберем на нем набор окон для работы с таймкодом:

Нужно добавить:

  • Timecode Pool
  • Timecode Slots Pool
  • Clock (выбрать тип timecode, selected)
  • Timecode View
  • Macros

Теперь если выбрать «TC Slot 2» (это слот по умолчанию для MIDI, первый для LTC) и нажать Play в Reaper, то мы должны начать видеть время таймкода из Reaper на всех местах, отмеченных стрелками.

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

Теперь мы готовы переходить к созданию самого таймкода в МА.

Варианты создания таймкода

Переключение кьюшек при приходе определенного времени в пульт можно сделать несколькими способами, как минимум это:

  • Запись информации о переключении сцен руками, с привязкой ко времени таймкода
  • Ручное выставление времени каждого переключения
  • Выгрузка меток из Reaper

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

Третий вариант подходит больше для создания шоу с нуля, когда у нас есть только музыка в звуковом редакторе, мы её слушаем и думаем «а вот тут будет прикольно изменить световую сцену», но самой световой сцены ещё нет.

Но это я описал субъективные крайности этих двух способов, дальше вы сами для себя можете решить, когда и какой использовать, а может придёте только к одном способу. Поэтому рассмотрим их подробнее.

Запись таймкода

Для «ручной записи таймкода» необходимо создать этот самый таймкод в пуле пульта. Для этого кнопкой Edit или правой клавишей мышки нажмем на пустую ячейку в Timecode Pool:

Откроется окно с редактором, которое можно сразу закрыть. После этого ячейка в пуле станет заполнена. На неё нужно нажать и таймкод отобразится в окне Timecode View. Вернее появится только заголовок, так как данных о метках нашего таймкода там всё равно ещё нет.

В этом же окне Timecode View необходимо нажать на желтый шарик, откроется окно настроек, где нужно выбрать Slot для нашего таймкода:

Slot — это источник времени, который будет слушать наш таймкод. По умолчанию там установлен источник от внутренних часов, можно поставить в явном виде источник Slot2, который используется для MTC, но я рекомендую использовать Link Selected у всех таймкодов, так можно будет легко переключаться между источниками (например, на студии писать по MTC, а на площадке использовать LTC).

Ещё в этом же окне стоит поменять Time Unit на выбранный FPS.

Ну и чтобы точно всё заработало, необходимо теперь в пульте выбрать этот самый источник для Link Selected. Для этого нужно просто нажать на нужный элемент Timecode Slots Pool.

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

Перейдем непосредственно к самому процессу записи. Нажимаем на наш таймкод в Timecode Pool

Над энкодерными колесами появляются кнопки управления нашим таймкодом. Нужно перемотать его в самое начало и нажать кнопку записи (с красным кругом). На элементе нашего таймкоде в пуле появились часы, но они не должны идти. Если вдруг там начало бежать время, ещё раз прочитайте этот раздел статьи и внимательно всё повторите.

В текущем состоянии пульт ждет время от внешнего источника, указанного в слоте. Сейчас можно нажать кнопку воспроизведения в Reaper, в пульте пойдет время и начнется запись. В этот момент нужно руками запускать нужные экзекьюторы, нажимать кнопки Go, кнопки запуска различных бампов — в общем сделать с художественной точки зрения всё то, чтобы вы сделали, чтобы отсветить эту композицию руками. Но при этом всё, что вы нажали будет записано и привязано ко времени.

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

В Timecode View появится примерно следующее:

Это таймлайн нашего таймкода, который показывает, какие экзеьюторы в какое время должны включиться.

Для воспроизведения нужно перемотать таймкод в начало и нажать кнопку Play. Пульт опять перейдет в состояния ожидания внешнего сигнала времени. Далее включаем воспроизведение в Reaper-е и таймкод в пульте запустится, кьюшки начнут переключаться.

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

Но в самом простом виде этот макрос может выглядеть так:

Off Timecode 1  Thru
<<< Timecode 1  Thru
Select Timecode 1
Go Timecode 1

В нем мы останавливаем все таймкоды в пульте, перематываем их на начало, выбираем первый таймкод из пула и воспроизводим его. Пульт снова перейдет в ожидание сигнала времени и после запуска трека в Reaper начнет сам воспроизводить таймкод.

Если по таймкоду нажать правой клавишей мыши или кнопкой Edit, то, как и при изначальном создании, откроется окно редактирования, но в нем уже будут наши временные маркеры, которые можно ручками отредактировать, например чуть сдвинуть, если не успели попасть в такт при записи, ну или даже удалить, если записали лишнюю точку.

Выгрузка меток из Reaper

Рассмотрим ещё один вариант того, как метки таймкода могут появиться в пульте. Суть этого метода заключается в следующем:

  1. При воспроизведении музыки в Reaper, мы на ходу нажимаем кнопку M на клавиатуре в местах, где нам кажется, что будет прикольно что-то сделать со светом
  2. Выгружаем список меток из Repaer в специальный csv файл
  3. В бесплатном онлайн-сервисе конвертируем файл из рипера в макрос и файл таймкода для пульта
  4. Загружаем полученные файлы в пульт
  5. Запускаем макрос, который создаст кьюлист и загрузит таймкод в пул.
  6. Заполняем кьюшки кьюлиста необходимыми световыми картинами

Давайте теперь разберем это всё подробнее. После установки меток в нужных местах необходимо открыть окно Region/Marker Manager:

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

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

После того, как все метки готовы, нажимаем правой клавишей мыши и выбираем экспорт маркеров:

Сохраняем файл в любом месте, от куда его можно будет взять в будущем и переходим к конвертированию.

Для этого нужно открыть сайт https://timecode.su/ — это бесплатный сервис для конвертирования маркеров рипера в таймкоды для различных пультов. Я разработчик этого сервиса.

На поле для загрузки файла маркеров нужно перетащить полученный на прошлом шаге csv файл и выбрать пульт grandMA2. Получится что-то похожее на это:

Далее необходимо поправить некоторые настройки, на основе которых пульт будет всё создавать:

  • Sequence number — номер в пуле секвенций, в которую запишется созданный кьюлист, проверьте, что под этим номером нет секвенции в пульте, особенно, если шоу не пустое.
  • Exec number — номер экзекьютора, на который будет назначена секвенция. Пишется в формате 1.{страница}.{экзекьютор}
  • FPS — частота кадров нашего таймкода
  • Trigger mode — команда для переключения кьюшек в кьюлисте
  • Timecode number — номер таймкода в пуле таймкодов. Проверьте, что под этим номером нет таймкода в пульте, особенно, если шоу не пустое.
  • Sequence Label — название кьюлиста
  • Page Label — название страницы, на которой будет расположен экзекьютор

Когда всё заполнено, скачиваем TC.xml и M.xml, нажав соответствующие кнопки.

Полученные файлы необходимо сохранить:

  • TC.xml — в директорию importexport
  • M.xml — в директорию macros

Эти директории можно найти на флешке, в папке gma2, если что-то сохраняли на флешку из пульта, а в onPC версии можно использовать локальное хранилище данных для шоу-файлов:

C:\ProgramData\MA Lighting Technologies\grandma\gma2_V_3.9.60

путь может отличаться, в зависимости от вашей версии MA onPC и буквы системного диска.

Следующим шагом нужно импортировать макрос из M.xml. (Setup -> Import Export -> Import -> Macros). Он будет иметь название, указанное в Sequence Label онлайн-сервиса конвертации.

Обратите внимание на номер старта импорта макроса! Под этим номером не должно быть макроса в пульте! Ну и теперь можно смело запустить импортированный макрос из пула.

Пульт создаст таймкод и кьюлист на указанном в настройках конвертирования экзекьюторе. Единственное, у таймкода необходимо руками обязательно указать Slot для входного сигнала. Как это сделать и что это такое подробно описано в предыдущем разделе этой статьи.

Теперь можно перемотать таймкод на начало, запустить его, включить воспроизведение в Reaper-е и наслаждаться переключением кьюшек в момент прохождения маркера в Reaper.

Далее необходимо заполнить кьшки полученного кьюлиста каким-то световым содержанием и ваше шоу готово!

Заключение

Спасибо за прочтение статьи! Надеюсь смог рассказать вам что-то новое или решить возникшие вопросы. Я потратил на эту статью очень много времени, чтобы максимально простыми словами всё это рассказать и проиллюстрировать, поэтому, если будете использовать эти материалы на других ресурсах, пожалуйста, указывайте ссылку на эту страницу. А ещё на этой странице есть кнопка, чтобы оставить чаевые =)

Подписаться на блог
Отправить
Поделиться
Дальше