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

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

Что такое RSS?

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

Позднее Ctrl + ↑

Плагин Position Layout для grandMA2

Это плагин для grandMA2, который позволяет создать удобную рабочую область смены позиций приборов для применения в живой работе за пультом (баскинг). Плагин стабильно работает с версиями grandMA2 3.8... и выше.

На более старых версиях работа не гарантирована.

Использование:

Плагин представляет собой архив, в котором находятся два файла:

  1. PositionLayout.lua
  2. PositionLayout.xml

Оба этих файла необходимо положить в директорию gma2/plugins на флешке, либо в директорию плагинов во внутренних файлах grandMA2 onPC.

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

Теперь необходимо открыть редактирование любой свободной ячейки из пула плагинов. Это можно сделать двумя способами:

  1. Кнопка Edit на пульте и нажать на ячейку
  2. Правой клавишей мыши нажать на ячейку

В открывшемся окне необходимо нажать кнопку Import

Выбрать из списка дисков флешку и выбрать плагин PositionLayout.xml

После этого в редакторе плагина необходимо нажать кнопку Save и закрыть окно редактирования плагина.

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

  1. All wash
  2. All spot

Поэтому на первый вопрос от плагина я отвечаю 1, на второй 2, на третий просто нажимаю Please (Enter). Далее плагин задаст ещё несколько вопросов:

  • Position Preset Start — номер пресета по позиции, начиная с которого плагин создаст свои пресеты. Плагин создает 7 позиций, убедитесь, что начиная с этого стартового номера у вас нет важных позиций, которые нельзя перезаписать.
  • ImageLoad Number — номер первой картинки в пуле картинок, плагин создаёт 17 изображений, плюс по 7 изображений для каждой группы, которые были указаны при запуске плагина. Убедитесь, что начиная с этого стартового номера у вас нет важных изображений, которые нельзя перезаписать.
  • MacroLoad Number — номер первого макроса в пуле макросов. Плагин создает (кол-во групп * 8 + 2) макроса. Убедитесь, что начиная с этого стартового номера у вас нет важных макросов, которые нельзя перезаписать.
  • Seq Number — номер первой секвенции в пуле секвенций. Плагин создает по одной секвенции для каждой из выбранных групп. Убедитесь, что начиная с этого стартового номера у вас нет важных секвенций, которые нельзя перезаписать.
  • Layout Number — номер layout-а, на котором будут располагаться кнопки плагина. Если будет указан существующий, он будет перезаписан.

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

Далее необходимо создать окно для отображения Layout-а плагина

И статично выбрать номер Layout-а, указанный на последнем шаге настроек плагина

Для демонстрации работы плагина я сделал следующую страницу:

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

Сделать это можно так:

  1. Выбираем группу
  2. Накручиваем в программаторе нужную позицию
  3. Нажимаем кнопку Store
  4. Нажимаем на один из семи пресетов позиций, созданных плагином
  5. Выбираем режим Merge

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

Важные нюансы:

  • Плагин поставляется КАК ЕСТЬ! Я не отвечаю за его работу, за любые неполадки, которые могут возникнуть в вашем шоу при работе с этим плагином. Но всегда по возможности готов помочь, подсказать и исправить баги
  • Плагин поддерживает только изображения семи стандартных позиций, которые на мой взгляд встречаются чаще всего в концертных световых работах
  • Не пользуйтесь плагином бесплатно, я потратил много времени на его создание, а вам он может сократить много времени при создании шоу. Давайте уважать чужой труд.

Как приобрести:

Плагин нельзя купить в юридическом понимании этого слова, но если вы угостите меня вкусным стейком, я поделюсь с вами файлом плагина. Стейк в том месте, где я их покупаю, стоит от 1000₽.
Чтобы это сделать, напишите мне в телегу @artemsysolyatin или на почту artem@sysolyatin.com. Я расскажу, что для этого нужно сделать.

И да, это доступно только для тех, у кого есть Российская банковская карта.

Благодарности:

Отдельное спасибо Александру Сальцеву за некоторые инфраструктурные части плагина, которые я подсмотрел у него в плагинах, а ещё спасибо всем, кто плагин тестировал.

Тестирование в реальном шоу:

Подключение Stream Deck к МА2

Во времена пандемии прямые трансляции и стримы стали ещё более популярны, чем были до неё, а так как спрос рождает предложения, компания Elgato разработала устройство Stream Deck.
Это клавиатура, у которой каждая кнопка — это мини-экран, с помощью специального софта можно назначить любое изображение или текст на любую кнопку, а так же любое действие в теоретически любом софте.

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

Но как уже говорил выше — спрос рождает предложения, поэтому компания Bitfocus создала приложение для управления Stream Deck, которое называется Companion. Мало того, что это открытый софт, под который можно написать свой плагин для любого софта/устройства, так там ещё и «из коробки» есть большинство необходимых нам шоу-технологий, в их числе и пульт grandMA2.

Далее я расскажу, как установить и настроить Companion для работы с grandMA2. В первую очередь его нужно скачать, сделать это можно на официальном сайте приложения https://bitfocus.io/companion

Для этого придется там зарегистрироваться, нужно подтверждение регистрации через почту, но всякие временные почты срабатывают. После регистрации входим на сайт под своей учеткой и переходим в раздел загрузок. Нам нужен Companion стабильной версии, при нажатии на кнопку версии можно выбрать операционную систему, так как мы будем использовать Companion локально вместе с MA2 — выбираем Windows.

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

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

По умолчанию это *127.0.0.1:8888*. Если мы будем работать только локально только с МА — можно оставить такой вариант, если к компаньону нужен доступ с других устройств, выбираем интерфейс, на котором поднята ваша основная сеть. Я оставлю 127.0.0.1.

Далее захожу в обычном браузере по этому адресу (127.0.0.1:8888) и в окне приветствия просто соглашаюсь со всем, что там есть:

Теперь необходимо настроить МА, обязательно нужно поднять сессию, а потом идем в глобальные настройки и включаем telnet:

На этом все, в МА больше делать ничего не нужно. Возвращаемся в браузер, теперь необходимо подключить компаньон к МА. В разделе Connections добавляем новое с названием MA Lighting 2.

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

Если это не произошло — внимательно проверьте всё ещё раз по инструкции выше.

Теперь необходимо добавить подключения к устройству Stream Deck. Это делается в разделе Surfaces. Если оно само не появилось до этого — нажимаем Rescan USB.

На кнопках Stream Deck появятся три дефолтные кнопки. Если это не произошло — внимательно проверьте всё ещё раз по инструкции выше.

Теперь переходим раздел Buttons и кнопкой Delete (помечена на скриншоте) удаляем дефолтные кнопки.

Теперь можно приступить к созданию своих. Нажимаем на необходимую для настройки кнопку в матрице кнопок, и в правой части экрана выбираем Regular Button. Далее необходимо заполнить действия для этой кнопки.

Я решил сделать кнопку Full для grandMA2:

Обратите внимание, что необходимо заполнять действие не только на нажатие кнопки, но ещё и на отпускание! В противном случае кнопка в пульте останется нажатой, даже после отпускания кнопки в Stream Deck.

На этом моменте всё уже должно работать: нажатие кнопки на Stream Deck должно посылать команду Full в grandMA. Аналогичным образом можно делать и другие команды, причем не только для grandMA. Можно добавить подключение для другого устройства, например, медиасервера, звукового пульта и т. д., и с одной панели кнопок управлять сразу всем. Главное помните про правильную настройку сети.

А ещё не обязательно иметь физическую клавиатуру Stream Deck. Внутри компаньона можно запустить эмулятор:

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

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

Подготовка к изучению grandMA2

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

База:

Для изучения любых световых пультов необходимо иметь понимание принципов управления световыми приборами: что такое DMX, как передаётся сигнал и так далее. Если вдруг вы это не знаете, прочитайте заметку про основы управления сценическим освещением. Там совсем немного информации, но без этих знаний никуда.

Железки:

  1. Ноутбук или ПК на операционной системе Windows 10 и выше, не самый дохлый, хотя бы с intel core i3 и 8 гигами оперативки
  2. Дополнительный монитор для 3D-визуализатора (не обязательно, но так удобнее)
  3. Любую версию пульта/крыла (мы будем изучать именно софт пульта, поэтому наличие железа MA совсем не обязательно, но если оно есть — будет интереснее)

Софт:

  1. grandMA2 onPC и MA 3D [скачать]
    Бесплатный софт для полной эмуляции большой версии пульта и бесплатный визуализатор для grandMA2. Вам нужны exe файлы grandMA2 onPC Software 3.9.*.* и MA 3D Software 3.9.*.*
  2. Reaper [скачать]
    Звуковой редактор, в котором мы будем создавать дорожку для таймкода. Для наших задач будет достаточно бесплатной версии.
  3. loopMIDI [скачать]
    Приложение для создания MIDI-петли внутри одного компьютера, будем использовать для посыла таймкода из Reaper в grandMA2, софт бесплатный

Никаких дополнительных настроек внутри софта заранее делать не нужно, все сделаем в процессе обучения.

Отзывы участников тренинга

Скрины нескольких отзывов со старого сайта. Все новые отзывы (после марта 2024) о прохождении тренинга буду просить писать в комментарии на этой странице.

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

Действие после отпускания кнопки Flash

Ещё один из самых частых вопросов в чате по МА: «Как выполнить какое-то действие после отпускания кнопки Flash?».

И действительно, у настроек cue в grandMA2 есть поле CMD, которое позволяет выполнять любую команду пульта при запуске этой самой cue, но у пульта нет подобного поля с действием при отключения этой cue.

Некоторыми манипуляциями его можно добиться, правда не в явном виде в настройках cue, но поле для ввода команды тоже будет.

Для демонстрации работы я запатчил в шоу-файл два ламповых PAR64 и сделал с ними две секвенции, первая назначена на 101 кнопку в режиме flash и включает первый парик, вторая назначена на 106 кнопку в режиме go и включает второй парик:

Наша задача будет заключаться в следующем: после отпуская 101-й кнопки должна включиться 106-я (по факту вы можете сделать что угодно, в том числе и выполнить любую команду пульта).

Тут нам приходит на помощь то, что grandMA2 умеет, как отдавать DMX сигнал, так его и принимать. И такую операцию управления можно реализовать, если прочитать значение какого-то dmx канала, который мы же сами в себя и отправим.

Для этого нужно добавить в патче новый диммерный прибор c адресом и ID прибора, которые будет очень далеко от настоящих приборов шоу (чтобы точно ничего не напутать, если будет много приборов в шоу):

Далее необходимо зайти в настройки (Setup) и выбрать Remote Input Setup, а в нём зайти в раздел Dmx Remotes

Тут нужно нажать на клавишу Add и в добавленной строке указать номер этого служебного dmx канала и выбрать действие, которое нужно совершить, если на этот канал придёт сигнал, в нашем случае мы будем нажимать Button 1 на 106-м executor-е

Теперь выходим из настроек, сбрасываем программатор (если там что-то есть), выбираем наш служебный прибор (в примере это FixID 8000) и создаём с ним cue, где он открыт. Это нужно для инвертирования значения.

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

Далее у этого служебного executor-а необходимо отключить функцию «Off On Overwriten»

Теперь остался последний шаг, у служебного прибора устанавливаем значение диммера в 0 и записываем это на 101-й executor, выбирая Merge.

Теперь отключаем executor 106 (кнопка Off и тыкаем на него), и можно проверять, что у нас получилось:

Соответственно, если стоит задача сделать выключение второго парика в момент нажатия кнопки flash для первого — то это легко сделать как раз обычной командой в настройке cue.

Ну и как можно было догадаться, таким образом можно выполнять не только действие при отпускании кнопки flash, а при любом варианте отключения cue с записанным нулевым диммером служебного канала.

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

Компьютерные сети для художников по свету

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

Если что, это не реклама, а действительно рекомендация просто от себя, как специалиста.

В рамках этой статьи я постараюсь очень поверхностно и базово рассказать про настройку сети и разобрать некоторые термины, ПОТОМУ ЧТО УЖЕ ПРИГОРАЕТ, ЧТО В ЧАТАХ ПОЛОВИНА ВОПРОСОВ У ЛЮДЕЙ ВОЗНИКАЕТ ПРОСТО ОТ НЕПОНИМАНИЯ, ЧТО ТАКОЕ IP АДРЕС!

В общем и целом сетевой стек выглядит примерно так:

Давайте теперь подробнее разберем, что тут происходит. Чтобы на устройстве появилась сеть, его нужно куда-то физически подключить, вернее через что-то. Вот как раз это «что-то» находится на уровне интерфейсов, в наших реалиях, это обычно ethernet — 8-контактная дырка под разъем RJ-45 или IEEE 802.11 — беспроводное Wi-Fi соединение, поэтому остальные варианты даже не будем рассматривать.

MAC адрес

Уже на этом этапе у нашего устройства в сети есть уникальный адрес (физический адрес интерфейса), обычно он называется MAC адрес и представляет себя 16-ричное число, разделенное знаками двоеточия, например 23:B8:86:7B:36:FE

Обычно этот адрес задает производитель сетевого интерфейса, но иногда его можно задать и руками. Не делайте это, если не понимаете «зачем?».

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

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

IP адрес и маска сети

Обычно под IP адресом подразумевается набор из 4 цифр, отделенных точками, например 2.143.34.21
Каждая из этих четырех чисел называется октет и не может быть больше 255.

Наборы идущих по определенным правилам подряд IP-адресов называются подсетями, а для того, чтобы показать размер такой подсети — есть термин маска.

Визуально маска очень очень похожа на IP-адрес, это тоже 4 октета, отделенные точками, только смысл числа каждого октета немного другой. Ещё маску можно обозначить в виде одного числа — префикса, которые обычно пишется после знака слеш, например, /24.

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

Первый пример — это маска /24. В полном виде она выглядит так: 255.255.255.0
Сеть с такой маской включает в себя все IP адреса с одинаковыми первыми тремя октетами и всем диапазоном (0-255) последнего октета. Например, в сети 192.168.0.0/24 могут быть любые IP адреса вида 192.168.0.x, где x- это любое число от 0 до 255.
Такая сеть включает в себя 256 IP адресов, но при этом только максимум 254 устройства. (у подсети есть служебные адреса, первый и последний, про которые тоже сейчас не будем углубляться).

Второй пример — это маска /8. В полном виде она выглядит так: 255.0.0.0
Сеть с такой маской включает в себя все IP адреса с одинаковым первым октетом и всем диапазоном (0-255) остальных октетов. Например, в сети 192.0.0.0/8 могут быть любые IP адреса вида 192.x.y.z, где x, y и z — это любое число от 0 до 255.
Такая сеть включает в себя 16777216 IP адресов, но при этом только максимум 16777214 устройства. Согласитесь, такого количества точно хватит даже для самого большого шоу 😊

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

Как пример этого: если мы купили какой-то артгейт, у которого есть дефолтный адрес в сети с двойкой, например 2.137.32.11 и маска 255.0.0.0, то нам не нужно ставить пульту адрес 2.137.32.12, чтобы его увидеть по сети. Достаточно иметь любой адрес этой подсети, например 2.0.0.1. Главное — такая же широкая маска.

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

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

А ещё устройство на одном физическом интерфейсе с одним MAC адресом может иметь больше, чем один IP адрес. Например, чтобы находиться сразу в двух локальных сетях.

Важное замечание, подробностей которого мы рассматривать не будем: когда-то мировое сообщество пришло к тому, что IP адресов очень ограниченное количество и они скоро кончатся, тогда придумали новую версию прокола IP — шестую. Адрес IPv6 выглядит примерно так 2001:0:acbd:89ef:0:0:0:1. В шоу индустрии, как правило, IPv6 не используется (если честно, в телекоме, можно сказать, почти тоже 😆).

Важное дополнение от крутого российского производителя артгейтов Siberian Lighting:

Две самых распространенных ошибки при настройке Art-Net:

  1. ставят IP адрес компьютера тот, который напечатан на этикетке артгейта т. е. его заводской адрес.
  2. ставят маску подсети 255.255.255.0, а у артгейта заводская 255.0.0.0. В результате ничего не работает.

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

DHCP и статика

Если устройству прописать IP адрес и маску руками в настройках, то это называется — статическое назначение адрес. Помимо этого, существует технология, которая позволяет устройству получить IP адрес и остальные настройки сети автоматически. Она называется DHCP.

Для автоматического получения настроек сети нужен специальный DHCP сервер. Обычно он встроен даже в самый обычный роутер, поэтому, подключаясь к Wi-Fi с телефона, вам не нужно вводить IP адрес руками, его вам выдадут.

DHCP сервер выдает настройки сети по своему определенному алгоритму, который зависит от его настроек. Может выдавать просто первый попавшийся не занятый, а может выдавать какой-то определенный адрес, основываясь на том, какой MAC адрес вашего устройства.

В шоу-индустрии для ключевых устройств рекомендую использовать только статическое назначение IP адреса. Исключения могут составлять мобильные устройства для удаленного управления (например, планшет с приложением для пульта). Хотя и android, и iOS позволяют задавать настройки сети руками. Что очень и рекомендую делать.

TCP и UDP

Итак, устройства подключены физически, имеют железные адреса и IP адреса, теперь они могут начать обмениваться пакетами. Это происходит на следующем — транспортном уровне. Тут нам нужны два основных протокола

  • TCP — Transmission Control Protocol, гарантирует передачу сетевого пакета, путем предварительного установления соединения и оповещения отправителя о результатах передачи
  • UDP — User Datagram Protocol, отправляет данные с мыслью «От меня ушло, дальше — не мои проблемы»

Unicast и broadcast

Ещё важное отступление о том, как можно передавать пакеты получателям. Есть две технологии

  • unicast — передача пакета одному конкретному устройству
  • broadcast — передача пакета всем в сети

Прикладной уровень

На основе транспортных протоколов работают протоколы прикладного уровня, например https, по которому вы сейчас получили страницу этого сайта, или Art-Net, по которому световой пульт передает значения DMX каналов. В прикладных протоколах описано содержимое сетевого пакета, это набор правил, который показывает какую информацию нужно передавать, и как её правильно кодировать в байты.

В одной сети могут работать сразу несколько протоколов. Например, если на компе с адресом 2.0.0.10 запустить MA onPC, то через этот адрес можно будет слать исходящий Art-Net, использовать Web Remote по http, управлять этим компом через удаленный рабочий стол по своему протоколу и одновременно по FTP загружать на него какой-то файл.

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

Роутер, коммутатор, свитч, хаб…

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

  • коммутатор, который позволяет физически в себя включить несколько устройств и объединить их в одну сеть
  • точку доступа, которая позволяет создать беспроводное подключение, вместо проводного
  • DHCP-сервер, который позволяет выдать всем, подключенным к нему устройствам сетевые настройки
  • роутер, которые делает маршрутизацию трафика на другие сети
  • NAT-сервер, который позволяет имея только адрес локальной сети выходить в интернет под внешним адресом «роутера»
  • и многое другое… (зависит от конкретной модели)

А самое главное, что не обязательно использовать все функции этого комбайна. Например, «роутер» может служить для физической связи светового пульта и артгейта по проводу, а ещё за счет точки доступа можно сделать физическую связь по Wi-Fi с планештом, при этом можно не использовать DHCP, а назначить пульту, артгейту и планшету руками адреса из одной подсети.
Функции роутера, NAT-сервера и т. д. нам тоже будут тут не нужны.

А вот все остальные слова из заголовка этого раздела — по факту названия одного и того же устройства, которое служит для физической связи нескольких сетевых устройств.

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

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

Разукрашивание контента в Resolume из grandMA2

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

Для начала необходимо конечно же соединить по Art-Net наш Resolume c grandMA. Об этом я подробно уже рассказывал на своем сайте.

Для управления цветами, нам нужен прибор, у которого будут только три канала (RGB) без виртуального диммера. Я не смог найти такой в generic библиотеки МА, поэтому просто добавил его сам:

Патчим этот прибор на любой адрес в юниверсе, который слушает Resolume, закрываем окно патча и выбираем наш прибор:

В Resolume выбираем эффект Colorize, накидываем его на композицию и переключаем режим выбора цвета в RGB:

Теперь заходим в режим обучения шорткатов по DMX

В Resolume выбираем фейдер цвета Red, в MA изменяем значание цвета колеса Red, номер канала записывается на фейдере в Resolume

Сбрасываем программатор и делаем аналогичные действия для зеленого и синего цвета. Затем в меню настроек шорткатов в Resolume выбираем Stop.

Теперь если открыть в grandMA Color Picker для нашего прибора и изменять в нем цвет, то контент в резолюме будет автоматически перекрашиваться в этот цвет.

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

Управление медиасервером Resolume из grandMA2

Вступление или ответ на вопрос «Это вообще что?»

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

Но обо всём по порядку. Вдруг кто-то не знает, что такое Resolume. Если описать простыми словами, то это специализированный софт для Windows и Mac, который позволяет запускать видео на внешние экраны, использовать слои из нескольких видео, накладывать различные эффекты, имеет встроенные генераторы контента и многое другое. А выходную картинку из этого софта можно всячески геометрически деформировать, разрезать на части для вывода на разные экраны и проекторы, в общем делать много-много всего интересного.

И зачем же нам нужно управлять этим медиасервером со светового пульта? Тут вариантов может быть много, вот самые распространённые:

  1. Постробить экраном вместе с какой-либо группой приборов, например заливкой
  2. Возможность гасить весь ненужный свет во время работы определённых приборов (например, во время красного контрового строба выключить вообще всё и создать полную темноту)
  3. Переключение видеофайлов в Resolume во время запуска определенных кьюшек
  4. Автоматическое разукрашивание контента в Resolume, например, в цвет заливки

но этим точно не ограничивается список, всё зависит от вашей фантазии.

Resolume умеет принимать управляющий сигнал по Art-Net, а наш пульт умеет отдавать такой сигнал (совпадение?). Поэтому в рамках этой статьи мы сделаем такую связку и научим нашу МАшу рулить видеорядом.

Настройка сети

Для того, чтобы принять сигнал Art-Net от MA, нужно иметь на компе с Resolume сетевуху с адресом из сети 2.0.0.0/8 или 10.0.0.0/8, для дальнейших примеров мы остановимся на первом варианте. Если Resolume и MA находятся на разных устройствах, то их нужно просто соединить между собой и дать каждому устройству адрес из выбранной подсети, например, пульту 2.0.0.10 с майской 255.0.0.0, а компу с Resolume 2.0.0.20 с такой же маской.

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

Виртуальный адаптер нужен только для случаев, когда у компа нет физического интерфейса с адресом в нужной подсети! Например, если вы уже используете артгейт, то для локального соединения с Resolume можно использовать уже существующий физический сетевой адаптер.

О том, как сделать виртуальный интерфейс и правильно его настроить, очень хорошо написал Александр Сальцев в своей статье «Виртуальный ArtNet». Я сделал сетевуху по его инструкции с названием LOCAL_ARTNET и адресом 2.0.0.15.

Настройка Art-Net со стороны Resolume

Необходимо открыть настройки, выбрать раздел DMX и указать необходимый сетевой интерфейс

Потом нужно нажать кнопку New Input и появятся настройки входа. Для примера мы будем использовать четвертый юниверс в MA, в Resolume нумерация начинается с 0, поэтому выбираем 3. Для удобства проверки того, что всё заработало, рекомендую открыть окно мониторинга входящего сигнала и выбрать там этот же третий юниверс:

Настройка Art-Net со стороны grandMA

Если у вас физический пульт, то для Art-Net у него есть отдельный сетевой интерфейс, скорее всего, вы знаете, как его настраивать, а если нет, информацию о настройке сетевухи из самого пульта можно найти в документации.

Мы же рассмотрим более сложный вариант с настройкой сети в рамках MA onPC. В первую очередь необходимо поднять сессию на адресе, который будет доступен для Art-Net. Заходим в MA Network Control

Тут необходимо выбрать сетевуху с необходимым адресом

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

Теперь нужно пойти в Network Protocols

И включить выход Art-Net

Для работы Art-Net выхода необходимо иметь доступные параметры в MA, которые на onPC можно получить, подключив железо MA Lighting, например, крыло или ноду с параметрами.

По умолчанию в пульте уже добавлена строчка одного Art-Net выхода, которая отправляет во всю сеть первые 8 юниверсов. Для соединения с резолюмом нам её будет достаточно, а если вдруг захотите подробнее прочитать про настройку Art-Net в MA2, я думаю, вы найдете, где это сделать.

Патч резолюма в МА

Для более старых версий Resolume в МА была специальная библиотека для слоя и библиотека для композиции, с кучей каналов и ненужных параметров. Видимо создатели поняли, что это не очень удобно, и теперь резолюм можно патчить в пульт только в «свободном варианте».
Для обычных действий, например, яркость слоя, кнопка включения эффекта, переключения клипа и т. д. я использую обычные диммерные каналы в пульте.

Откроем окно патча в МА, создадим новый слой resolume и добавим в него 10 диммеров на любых адресах четвертого юниверса:

Теперь вращая колесо диммера для первого прибора на окне мониторинга входящего DMX сигнала в Resolume вы должны увидеть изменения:

Если это не произошло — ещё раз внимательно прочитайте всю статью выше этого абзаца проверьте все настройки. Если вы увидели изменения на графике в окне мониторинга — поздравляю! Вы подключили Resolume к grandMA2!

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

Затем в настройках шорткатов в резолюме выберите редактирование DMX и нажмите мышкой на фейдер яркости слоя композиции

Теперь в настройках шорткатов можно нажать Stop, запустить какой-нибудь клип и подергать фейдер первого экзекьютора в МА. Теперь он управляет яркостью композиции.

Теперь возьмите второй прибор, откройте его на 100%, запишите на экзекьютор-кнопку, например, 101 и сделайте тип кнопки Flash, очистите программатор.

Накиньте эффект стробоскопа на композицию, отрегулируйте его частоту и отключите (В)

Аналогично предыдущему действию, откройте включите режим обучения шорткатов по DMX, выберите кнопку выключения эффекта, нажмите на пульте 101 экзекьютор, у кнопки появится номер канала. После этого справа в редакторе этого шортката необходимо нажать галочку на пункте Invert Value.

Теперь в настройках шорткатов можно нажать Stop, и попробовать нажать кнопку 101 экзекьютора в пульте. В момент нажатия должен срабатывать эффект стробоскопа, а после отпускания кнопки — выключаться.

Аналогичным образом можно патчить любые действия в Resolume — параметры любых эффектов, переключение композиций, яркости, громкости и т. д. В общем всё, что душе угодно.
Ну и конечно же в патче МА диммерных каналов было 10 штук просто для примера, их может быть любое необходимое вам значение (ну или сколько параметров хватит 😀).

Надеюсь, эта статья чем-то смогла вам помочь и хоть немного сделала вашу жизнь проще, а ваше шоу краше!

парочка приятных комментариев к этой статье из предыдущей версии сайта

Синтаксис опций команд в grandMA2

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

Я не буду подробно расписывать значение каждой опции, например, что такое wings у эффекта или autostart у экзекьютора. Про это как раз в официальной документации подробно рассказано. Тут больше будет именно про то, как применять эти опции из командной строки и макросов.

Статья не претендует на авторский материал. В ней я постарался собраться информацию из документации, различных статей и форумов в интернете, что-то взял из своего опыта и постарался систематизировать и объединить по смысловым разделам.

Опции команды Assign для эффектов

В общем и целом редактирование эффекта из командной строки выглядит примерно так:

Assign Effect x /attack=5 /blocks=2 /wings=2

x в данном случае — это номер эффекта. Если нужно обратиться к конкретной строке в эффекте, то нужно использовать нумерацию вида 1.x.y, где x — номер эффекта в пуле, а y — номер строки.

Далее рассмотрим все варианты опций, доступных для эффектов:

/attack=0..100 - работает только с формами Random, PWM или Chase
/blocks=0..9999 - можно использовать =none, это аналогично =0
/decay=0..100 - работает только с формами Random, PWM или Chase
/dir=
    >
    >bounce
    <
    <bounce
/groups=0..9999 - можно использовать =none, это аналогично =0
/highvalue=-9999..9999
/interleave=
    none
    odd или even
    "1 of 3" или  "2 of 3" или  "3 of 3"
    "1 of 4" или  "2 of 4" или  "3 of 4" или "4 of 4"
/lowvalue=-9999..9999
/mode=rel/abs - переключение режима работы между относительным и абсолютным
/phase=-2879..2879 - используйте две точки .. для обозначения thru (например, =0..360 установит фазу 0 thru 360)
/rate=0..256
/singleshot=yes/no
/speed=0..256
/speedgroup=none или "Speed x" или "Rate y"
/width=0..100 - не работает с формой Chase
/wings=-9999..9999 - можно использовать =none, это аналогично =0

Как вы могли заметить, в списке нет самого главного параметра эффекта — его формы.

Она назначается эффекту из пула форм командой:

Assign Form x At Effect y

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

Assign Attribute "dim" Effect 1.1.1

Опции команды Assign для экзекьюторов

В общем и целом редактирование экзекьютора из командной строки выглядит примерно так:

Assign Executor x.y /chaser=on /offtime=2

x в данном случае — это номер страницы, а y — номер экзекьютора на этой странице.

Далее рассмотрим все варианты доступных опций:

/autofix=on/off
/autostart=on/off 
/autostomp=on/off
/autostop=on/off 
/chaser=on/off
/crossfade=on/off 
/cmddisable=on/off 
/effectspeed=on/off
/ignoreexectime = on/off
/killprotect=on/off 
/mastergo=off/on/go/top 
/mibalways=on/off
/mibnever=on/off 
/offtime=z 
/ooo=on/off - параметр Off On Overwriten
/playbackmaster=0..50
/prepos=on/off 
/priority=
    low (или 6)
    normal (или 5)
    high (или 4)
    htp (или 3)
    swap (или 2)
    super (или 0)
/ratemaster=0..16
/restart=
    first
    current
    next
/softltp=on/off
/speed=
    mul2/mul4/mul8/mul16/mul32
    normal
    div2/div4/div8/div16/div32
/speedmaster=0..16
/swopprotect=on/off
/triggerisgo=on/off
/width=1..5
/wrap=on/off

Опции команды Assign для секвенций

В общем и целом редактирование секвенции из командной строки выглядит примерно так:

Assign Sequence x /name="Test"

x в данном случае — это номер секвенции. Далее рассмотрим все варианты доступных опций:

/cuezero=
    off - выключить Cue Zero
    on - включить Cue Zero для всех атрибутов
    "dimmers only" - включить Cue Zero для диммера
    all - включить Cue Zero для всех атрибутов
    effects - включить Cue Zero и добавить стомп ко всем атрибутам
/cuezeroextract=on/off - сохраняет текущие значения по умолчанию в Cue Zero для защиты от последующих изменений значений по умолчанию.
/forcedpos.mode=pt/xyz/none
/info="text"
/name="text"
/releasefirststep=on/off 
/track=on/off - трекинг в секвенции

Опции команды Assign для cue

В общем и целом редактирование cue из командной строки выглядит примерно так:

Assign Cue x /name="Test"

x в данном случае -это номер cue. Далее рассмотрим все варианты доступных опций:

/ae=on/off - перезапускать эффекты при старте cue
/cmd="command ; command ; etc."
/forcedpos.mode=pt/xyz/none
/info="text"
/lcount=0+ или infinite - количество повторений
/loop=[номер cue из секвенции] или none
/ltime=0+ или  infinite
/mib=none/early/late/[cue#]
/mode=normal/break/x-break/assert/x-assert/release
/name="text"
/trig=go/time/follow/sound/bpm/smpte/midi
/trigtime=y
/delay_<preset type>=y
/fade_<preset type>=y

Опции команды Assign для таймкода

В общем и целом редактирование таймкода из командной строки выглядит примерно так:

Assign Timecode x /slot=0

x в данном случае — это номер таймкода. Далее рассмотрим все варианты доступных опций:

/autostart=on/off
/info="text"
/length=y - установка продолжительности таймкода в формате 1h2m3.45s или 1:2:3.45
/name="text"
/offset=y - смещение в формате в формате 1h2m3.45s или 1:2:3.45
/runs= - количество циклов воспроизведения (только для внутренних часов), для бесконечности использовать значение 0
/slot=
    "intern" (или -1)
    "link selected" (или 0)
    1..8
/statuscall=on/off
/switchoff=
    "playbacks off"`
    "keep playbacks"`
/timeunit=
    "1/100 sec"
    "30 fps"
    "25 fps"
    "24 fps"
/whenending=stop или pause - что произойдет при завершении времени  (только для внутренних часов)
/whenstopping=
    "do nothing"
    rewind

Опции команды Appearance

В общем и целом Appearance из командной строки выглядит примерно так:

Appearance Object /red=100 /green=100 /blue=100

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

/blue /b = 0..100
/brightness /br = 0..100
/green /g = 0..100
/hue /h = 0..360
/red /r = 0..100
/reset
/saturation /s = 0..100

Опции команды Store

Store /effects /keepactive /merge /noconfirm /overwrite /remove

/effects /ef=true/false
/keepactive /ka=true/false
/merge /m 
/noconfirm /nc
/overwrite /o
/remove /r
/source /so=
    prog 
    output
    "DMX in"
/useselection /use=
    active
    allforselected
    activeforselected
    all
    look
/values /v=true/false
/valuetimes /vt=true/false
Store Cue x /add /cueonly /status /statusmerge /release /trackingshield

/add /a
/cueonly /co=true/false
/release /rel 
/status
/statusmerge /sm
/trackingshield /ts
Store Preset x /auto /embedded /global /presetfilter /selective /universal

/auto
/embedded /e=true/false 
/global /g 
/presetfilter /pf=true/false
/selective /s 
/universal /u
Store View x /screen=1..6
Store Layout n /x="a" /y="a"

Опции настроек консоли

Глобальные настройки в общем и целом редактируются так:

Assign Root 3.1 (или Root "Settings"."Global") /Remotes="Login Enabled"

Далее рассмотрим все варианты доступных опций:

/Agenda = Running/Stopped
/Wysiwyg = On/Off
/ForceLogin = On/Off 
/EnableRDM = On/Off 
/Remotes = "Login Disabled" / "Login Enabled" 
/Telnet = "Login Disabled" / "Login Enabled"
/SelectedTimecodeSlot = 1..8

Локальные настройки в общем и целом редактируются так:

Assign Root 3.2 (или Root "Settings"."Local") /DefaultLanguage="English"

Далее рассмотрим все варианты доступных опций:

/DefaultLanguage = English/German
/NetworkDMXifAlone = On/Off
/ShowReleaseNotesonStart = On/Off
/FlashingerrorLED,onwrongFaderposition = On/Off 
/ExecCLI = On/Off 
/DefaultGo,Goback,PauseCLI = On/Off
/IntensityBtnBackground = 0..79 
/IntensityBtnHighlight = 0..255
/IntensityExecLED = 0..255
/IntensityDeskLamp = 0..255
/Intensity9Inch = 0..255
/Intensity15Inch = 91..255
/DesklockBackground = "Black" / "Image Pool Picture" / "Current Desk UI"

Настройки шоу в общем и целом редактируются так:

Assign Root 3.3 (или Root "Settings"."Show") /XfadeReload=On

Далее рассмотрим все варианты доступных опций:

/Off = 0s..23h59m59s 
/GoBack = "cuetiming" или 0s..23h59m59s 
/Goto = "cuetiming" или 0s..23h59m59s 
/GoFast = 0s..23h59m59s 
/MIBDelay = 0s..23h59m59s
/MIBFade = 0s..23h59m59s
/Startup = "команды, выполняемые после загрузки шоу"
/XfadeReload = On/Off
/TimecodeRecordSingleUser = On/Off
/KillwithOffTime = On/Off

Опции для MA Network Configuration

Console

Assign Root 5.1.x (или Root "NetConfig"."Console".x) /опции

x в данном случае — «Hostname» или номер строки с устройством. Если написать * то, будет применено ко всем устройствам этого раздела. Доступные опции:

/XLR_номер = "In u" / "Out u" / "Off"; u  - номер юниверса (1..256)
/DHCPEthercon1(Eth0) = yes/no
/MIDITC =
    -1 or "Off"
    0..7 or "TC Slot 1..8"
/SMPTETC =
    -1 or "Off"
    0..7 or "TC Slot 1..8"
/AnalogOffset = 0..48
/MIDIOffset = -1023..1023

onPC

Assign Root 5.2.x (или Root "NetConfig"."onPC".x) /опции

x в данном случае — «Hostname» или номер строки с устройством. Если написать * то, будет применено ко всем устройствам этого раздела. Доступные опции:

/XLR_номер = "In u" / "Out u" / "Off"; u  - номер юниверса (1..256). Будет применено ко всем крыльям. 
    Для управления XLR дырками определенного крыла нужно использовать изначальное обращение к устройству 
    с ещё одной цифрой после точки: Assign Root 5.2.x.y
    y - в данном случае будет номер крыла (1 - Command, 2 - Fader1, 3 - Fader2)
/MIDITC =
    -1 or "Off"
    0..7 or "TC Slot 1..8"
/SMPTETC =
    -1 or "Off"
    0..7 or "TC Slot 1..8"
/AnalogOffset = 0..48
/MIDIOffset = -1023..1023

NPU

Assign Root 5.3.x (или Root "NetConfig"."NPU".x) /опции

x в данном случае — «Hostname» или номер строки с устройством. Если написать * то, будет применено ко всем устройствам этого раздела. Доступные опции:

/XLR_номер = "In u" / "Out u" / "Off"; u  - номер юниверса (1..256)
/DHCPEthercon1(Eth0) = yes/no
/SessionMember = yes/no

MA3D

Assign Root 5.4.x (или Root "NetConfig"."3D".x) /опции

x в данном случае — «Hostname» или номер строки с устройством. Если написать * то, будет применено ко всем устройствам этого раздела. Доступные опции:

/SessionMember = yes/no
/User= "username"

VPU

Assign Root 5.5.x (или Root "NetConfig"."VPU".x) /опции

x в данном случае — «Hostname» или номер строки с устройством. Если написать * то, будет применено ко всем устройствам этого раздела. Доступные опции:

/SessionMember = yes/no
/Layer = "layer name"
/Content =
    0
    1 / "Receiver"
    2 / "Distributor
/BackupVPU = yes/no

MA DMX Node

Assign Root 5.7.x (или Root "NetConfig"."DMX Node".x)

x в данном случае — «Hostname» или номер строки с устройством. Если написать * то, будет применено ко всем устройствам этого раздела. Доступные опции:

/XLR_номер = "In u" / "Out u" / "Off"; u  - номер юниверса (1..256)
/DHCPEthercon1(Eth0) = yes/no
/Hostname = "название"
/SessionID/Network = 1..31 / "no session"
/Mode = "MA-Net2" / "sACN" / "Art-Net" / "None"`
/LightMode = "Display" / "Dark"`
/Local = on/off `
/Remote = on/off`

MA Network Switch

Assign Root 5.8.x (или Root "NetConfig"."Network Switch".x)

x в данном случае — «Hostname» или номер строки с устройством. Если написать * то, будет применено ко всем устройствам этого раздела. Доступные опции:

/DHCPclientenabled = yes/no
/Hostname = "название"
/SwitchID = 0..999

Опции для настроек сетевых протоколов

Art-Net

Assign Root 4.1 (или Root "DMX_Protocols"."Art-Net") /OutActive=on/off /InActive=on/off
Assign Root 4.1.x (или Root "DMX_Protocols"."Art-Net".x) /опции

x в данном случае — номер строки в таблице с указанным протоколом. Доступные опции:

/Requested = yes/no
/Mode = Input/OutputAuto/OutputBroadcast/OutputUnicast
/DestinationIP = "IP адрес", только для OutputUnicast
/LocalStart = 1..256
/Amount = 1..256 
/Network = 1..128
/Subnet = 0..F
/Universe = 0..F 
/Delay(ms) = 0..5
/Info = "любой текст, например о расположении артгейта"

sACN

Assign Root 4.4 (или Root "DMX_Protocols"."sACN") /OutActive=on/off /InActive=on/off
Assign Root 4.4.x (или Root "DMX_Protocols"."sACN".x) /опции

x в данном случае — номер строки в таблице с указанным протоколом. Доступные опции:

/Requested = yes/no
/Mode = InputMulticast/InputUnicast/OutputMulticast/OutputUnicast
/DestinationIP = "IP адрес", только для OutputUnicast
/LocalStart = 1..256
/Amount = 1..256 
/sACNUniverse = 1..64000
/Priority = 0..200
/Protocol = Draft/Final
/TTL = 0..255;
/Delay(ms) = 0..5
/Info = "любой текст"

Kinet1

Assign Root 4.6 (или Root "DMX_Protocols"."Kinet1") /OutActive=on/off
Assign Root 4.6.x (или Root "DMX_Protocols"."Kinet1".x) /опции

x в данном случае — номер строки в таблице с указанным протоколом. Доступные опции:

/LocalStart = 1..256
/Amount = 1..256
/ExternStart = 0..255
/IPAddress ="IP адрес"
/Info = "любой текст"

ETC Net2

Assign Root 4.2 (или Root "DMX_Protocols"."ETC Net2") /опции

Доступные опции:

/Active = on/off
/LocalStart = 1..256
/Amount = 1..64
/ExternStart = 1..64
/Groups = 1..6
/Priority = 1..20
/TTL = 0..255
/Info = "любой текст"
Ранее Ctrl + ↓