С некоторых пор слово "шоу" прочно закрепилось в нашем языке для обозначения всего того, что раньше называлось представлением. Спектакль, мюзикл, концерт — то есть некое массовое мероприятие, где задействованы артисты, звук, свет, видео, спецэффекты. На западе "шоу" трактуется и в более широком смысле, начиная от мультимедийной лекции или семинара и заканчивая парками развлечений по типу Диснейленда. А если говорят о "живом" выступлении, то есть когда на сцене работают артисты, используется более конкретное Live Show
в
MIDI
деталях
.
MIDI Show
Control.
Часть 1
С некоторых пор слово "шоу" прочно
закрепилось в нашем языке для
обозначения всего того, что раньше
называлось представлением.
Спектакль, мюзикл, концерт — то есть
некое массовое мероприятие, где
задействованы артисты, звук, свет,
видео, спецэффекты. На западе "шоу"
трактуется и в более широком смысле,
начиная от мультимедийной лекции
или семинара и заканчивая парками
развлечений по типу Диснейленда. А
если говорят о "живом" выступлении,
то есть когда на сцене работают
артисты, используется болееконкретное Live Show.
Техническое обеспечение
современного шоу может включать в
себя весьма сложный комплекс
оборудования: звуковые и световые
системы, видеопроекторы, механику
сцены, пиротехнику, динамические
пневмофигуры, трансформируемые
декорации, спецэффекты разного
калибра. Многое из перечисленного
(например, акустические системы и
световые приборы) зрители видят
непосредственно. Но есть еще и
подводная часть айсберга —
вспомогательное оборудование,
начиная от простейших механических
переключателей и заканчивая
интеллектуальными устройствами и
робототехникой, а также
компьютерными программами,
обеспечивающими согласованную
работу всех систем.
Технология управления шоу
зародилась еще в 60е годы, в
развлекательных парках. Все началось,
конечно, с ручного управления, когда
стейджменеджер подавал командыголосом, а оператор конкретного
устройства (например, электрического
подъемника) их исполнял. Один из
американских стейджменеджеров
вспоминает, как ставились мюзиклы на
Бродвее: "В шоу было занято от 40 до
50 техников, бегающих за сценой как
сумасшедшие. Я использовал вспышки
света, чтобы дать команду на запуск
определенной сцены, давал команды
операторам через головные гарнитуры
и работал по сценарию, записанному
на листке бумаги".
Сегодня технология управления шоу
— это целая индустрия со своими
стандартами и протоколами. Приборы
одного типа объединены в системы:
управления светом, звуком,
машинерией (механикой сцены),
проекцией, пиротехникой. Каждая
система состоит из контроллера и
конечных приборов, которыми
контроллер управляет посредством
определенных сигналов. Например,
световой пульт может управлять
диммерами и сканерами посредством
цифрового протокола DMX512 по
интерфейсу RS485. Эти устройствасовместно с пультом образуют
самостоятельную шоусистему, внутри
которой все взаимодействие
происходит с помощью протоколов
класса "контроллерприбор".
Термин Show Control означает нечто
большее — соединение
самостоятельных шоусистем в одну
большую управляемую систему. Так,
компьютер, подключенный к дым
машине и регулирующий количество
тумана в декорации морской гавани —
это еще не система Show Control, как,
впрочем, и звуковая система,
воспроизводящая шум прибоя сама по
себе. Только объединение этих систем
в одну, управляемую от главного
контроллера, является полноценной
системой управления шоу.
По отношению ко времени все шоу
можно разбить на два типа:
асинхронные и синхронные. Пример
асинхронного шоу — "дом с
сюрпризами" в парке развлечений.
Здесь посетители, бродя по дому,
задевают разные датчики, запуская
сопоставленные с датчиками сцены (тоесть последовательности какихлибо
механических процессов, звуковых и
световых сигналов). Все сцены могут
происходить в разных частях "дома"
одновременно и независимо друг от
друга, без привязки к единой шкале
времени.
В синхронном шоу, как следует из
названия, используется некий способ
синхронизации событий. Каждое
событие привязано к определенному
моменту времени, а шкала времени
формируется мастерустройством на
основе, например, видеофрагмента или
саундтрека. Мастерустройство
генерирует таймкод, который
поступает в подчиненные контроллеры
или непосредственно в конечные
приборы. Возможен и более простой
вариант, при котором устройства
только стартуют одновременно, по
команде с главного контроллера, а
долговременная постоянная
синхронизация отсутствует. Пример
синхронного шоу — концерт или
спектакль, где световые сцены и
другие элементы шоу
синхронизированы со звуком.Появление MIDI Show Control
В конце 80х годов прошлого века
протокол MIDI стал привлекать
внимание театральных инженеров и
специалистов по концертному свету в
качестве альтернативы
существовавшим на тот момент
протоколам управления. И хотя MIDI
секвенсоры и средства ввода
(контроллеры) не очень подходили для
задач театральной автоматизации, сам
протокол подходил вполне, как по
возможностям, так и изза невысокой
стоимости и широкой
распространенности.
Основная задача состояла в вызове
сцены, запрограммированной в
световом пульте. На всякий случай
уточню, что сцена — это
фиксированное состояние функций
осветительных приборов. Сцена могла
быть сколь угодной сложной (с
закольцовками, связанными
макросами, подпрограммами и т. п.),
но для ее вызова требовалось нажатие
всего пары кнопок светового пульта:LOAD (загрузить) и GO (запустить).
Очевидно, MIDI здесь вполне мог
заменить оператора пульта. Все, что
нужно передавать в сообщении, — это
номер сцены и саму команду. А
данные, связанные со сценой,
находились бы в памяти светового
пульта.
Постепенно производители светового
оборудования стали использовать
MIDI в своей продукции. Но, как это
часто бывает, возникла проблема
совместимости. Компании,
занимающиеся театральным светом,
производили системы, в которых
сцены менялись MIDIсообщением
Program Change, а компании,
производящие концертное световое
оборудование, использовали команды
Note On.
В 1989 году Andy Meldrum, сотрудник
фирмы VariLite, предложил
разработать открытый протокол,
который позволял бы соединять шоу
системы разного назначения и разных
производителей, и управлять ими с
помощью любого MIDIконтроллера. Кконцу 1989 года Charlie Richmond из
компании Richmond Sound Design
организовал рабочую группу в составе
MMA (MIDI Manufactures Association)
и открыл форум на электронной доске
объявлений. Созданный в результате
проект стандарта был утвержден
MMA и JMSC (Japanese MIDI Standard
Committee) и 25 июля 1991 года
превратился в "Рекомендованную
практику RP002", или, иначе, в MIDI
Show Control версии 1.0.
Основные принципы
Протокол MIDI Show Control (MSC)
предназначен для объединения
интеллектуальных систем управления
шоутехникой (контроллеров) в
единую сеть. MSC напрямую не
управляет конечными приборами и не
заменяет такие протоколы класса
"контроллерприбор", как DMX512
или Strand. Это очень похоже на
соединение MIDIсеквенсора и
синтезатора. Секвенсор посылает
синтезатору высокоуровневую
команду "взять ноту", а синтезатор в
ответ запускает заложенную в егонедрах программу формирования
звука, то есть целый набор
низкоуровневых операций.
В спецификации MSC используются
термины Controller и Controlled Device.
Обычно MSCсистема состоит из
одного, главного контроллера — им
чаще всего является обычный
компьютер (PC или Mac) с
соответствующей программой
управления и MIDIинтерфейсом.
Этот компьютер и называется в
спецификации словом Controller. А
световой пульт в данном случае
является управляемым устройством
(Controlled Device), которое
выполняет команды главного
контроллера, переводя их в команды
типа "контроллерприбор" и посылая
последние к световым приборам по
своим коммутационным каналам,
независящим от MIDI (в случае DMX
512 — это витая пара с земляным
проводом в оплетке).
Схожим образом к главному
контроллеру подключаются по MIDI
остальные шоусистемы (механикасцены, пиротехника и тому подобное).
Набор команд MSC основан на
структуре команд существовавших в
то время шоусистем.
Управляемое устройство (например,
световой пульт) может также
передавать команды MSC через свой
MIDIвыход. Это позволяет
записывать действия, производимые
оператором на пульте — примерно так
же, как происходит запись в секвенсор
с MIDIклавиатуры. Только в данном
случае используется программа,
оперирующая не треками, а списками
сцен (Cue List). При записи она
фиксирует все события, приходящие
от управляемых устройств, и
размещает их в списке сцен со своей
позицией на шкале времени.
Таким образом, можно заранее
прописать нужную последовательность
событий с каждого пульта управления,
используемого в шоу, отредактировать
полученные данные, а во время шоу
запустить список на воспроизведение.
В MSC используется таймкод MTC, а
это значит, что управляемыеустройства можно синхронизировать с
главным контроллером. Свет со
звуком, изображение со светом, и всю
систему в целом. При этом точность
выдачи команд по времени равна
одному кадру (то есть около 1/30
секунды).
Кроме того, по MSC можно связать
несколько контроллеров одного типа.
Так, например, если две световые
консоли соединены по MIDI, то
нажатие кнопки GO на одной из них
приведет к тому, что вторая консоль
отработает ту же команду GO, но уже
без оператора. Здесь все довольно
очевидно и напоминает
первоначальное предназначение MIDI
— управлять с одной клавиатуры
несколькими синтезаторами
одновременно.
Важный принцип управления "живым"
шоу состоит в том, что сбой одного
управляемого устройства не должен
привести к сбою в управлении другими
устройствами. Этот принцип может
быть реализован с помощью открытой
или закрытой петли.В системе "открытая петля"
подтверждение команд от
управляемого устройства к
контроллеру не требуется.
Используется однонаправленная
передача данных и, соответственно,
одностороння коммутация. То есть,
MIDIвыход главного контроллера
соединяется с MIDIвходом
управляемого шоуустройства, и
только. Этот экономичный способ был
выбран в MSC в качестве основного.
В системе "закрытая петля"
используется взаимная коммутация
устройств и ожидается
стандартизированный ответ от
управляемого устройства. Такая
система требует более
интеллектуальных контроллеров и
занимает большую полосу
пропускания, но при этом достигается
большая точность во взаимодействии
устройств, обнаружение, коррекция
ошибок и прочие прелести. Метод
закрытой петли предложен в версии
MSC 1.1, появившейся в феврале 1996
года (документ RP014). Для работы врежиме закрытой петли используется
двухэтапный протокол подтверждения
(2 Phase Commit), о котором
поговорим в следующей статье.
Предосторожности и ограничения
В шоусистеме нередко используется
опасное оборудование (в том числе
представляющее угрозу для жизни),
например, пиротехника или механика.
Но это не значит, что такое
оборудование управляется MSC
непосредственно, и сбой или ошибка в
программе приведут к неприятным
последствиям. Спецификация
крупными буквами предупреждает:
"[Протокол MSC] никоим образом не
отменяет обычные меры безопасности,
какие должны соблюдаться при
использовании потенциально опасного
оборудования. Для максимальной
безопасности должны применяться
такие ручные элементы управления,
как аварийные выключатели,
блокираторы, ограничители, системы
подтверждения команд и прочее. Из
автоматических устройств —
запирающие переключатели, датчикиблизости, детекторы газа,
инфракрасные камеры, датчики
движения и давления. Протокол MSC
не предназначен для отдачи команд
опасному оборудованию. MSC лишь
подает сигнал о действии, которое
желательно выполнить, если все
требования и условия безопасности
соблюдены. Только соответствующим
образом спроектированные системы и
подготовленный обслуживающий
персонал могут определить, насколько
эти требования выполняются в
конкретной ситуации. Метод
двухэтапного подтверждения 2PC
исключительно надежен и может
использоваться для обеспечения
дополнительной безопасности в шоу
системах. Однако 2PC должен быть
реализован в соответствии с
требованиями этой спецификации и
только в дополнение к
вышеперечисленным мерам".
MIDI Show Control не является
единственно возможным решением для
управления шоусистемами. Он не
лишен некоторых недостатков,
присущих технологии MIDI в целом.Первый недостаток — невысокая
скорость передачи данных, а,
следовательно, не всегда адекватное
время отклика приборов. Иногда эта
проблема устраняется простой
разгрузкой линии, то есть соединением
приборов не цепочкой, а "звездой" из
распределительной коробки (MIDI
Thru Box) или многоканального MIDI
интерфейса/маршрутизатора.
Для большинства же задач управления
шоу, скорость MSC вполне приемлема
и даже избыточна. Например,
стандартная команда "СветСцена
36.1Пуск" займет 10 байт, которые
будут переданы примерно за 3 мс
(подробности смотрите в предыдущих
статьях цикла). Это время примерно в
сто раз меньше среднестатистической
скорости реакции оператора пульта.
Второй очевидный недостаток —
максимальная длина MIDIкабеля,
которая не должна превышать 15
метров. Он может быть устранен
применением усилителей на линии
("бустеров"), в результате чего длина
линии может быть доведена до трехсоти более метров. Кроме того, есть и
другие варианты передачи MIDI
сообщений (FireWire или
беспроводные системы).
Формат сообщений
Сообщения MIDI Show Control
относятся к категории универсальных
эксклюзивных сообщений реального
времени (Universal Real Time System
Exclusive) и используют SubID#1 =
0x02 (подробнее о системных
сообщениях и SubID см. в третьей
статье цикла).
Шаблон сообщения MSC показан на
рис. 1. Начинается сообщение байтом
0xF0, признаком SysEx. Затем идет
байт 0x7F, определяющий категорию
реального времени, затем передается
номер прибора, которому адресовано
сообщение. Далее — SubID 0x02,
признак MSC. Байт формата команды
показывает, к какой категории
оборудования относится сообщение: к
звуку, свету, механике и т. п. Далее
следует сама команда. Как правило,
это одно действие, например, "пуск"или "стоп". Затем передаются
дополнительные данные — параметры
команды. Чаще всего это номер сцены
и данные времени. Завершается SysEx
сообщение, как обычно, байтом 0xF7.
Общее число байт в сообщении MSC
не должно превышать 128.
Как правило, команды адресуются
одновременно только одному
устройству. Например, для
выполнения команды GO на двух
световых пультах нужно передать от
главного контроллера сообщения,
показанные на рис. 2.
Номера с 0x00 по 0x6F соответствуют
индивидуальным устройствам. Номер
устройства, как правило, задается
пользователем в настройках (как
главного контроллера, так и
управляемого). Возможно также
создание групп устройств, для чегоиспользуются групповые
идентификаторы (с 0x70 по 0x7E, то
есть всего до 15 групп). Это удобно,
если одни и те же сообщения
необходимо постоянно посылать
нескольким устройствам. Не все
устройства обязаны отвечать на
групповые номера.
Наконец, есть специальный
широковещательный номер 0x7F,
который используется для передачи
сообщений всем устройствам сети,
независимо от того, на какой номер
они настроены. Один управляемый
контроллер может отвечать на
несколько номеров, как
индивидуальных, так и групповых. И
наоборот, несколько управляемых
контроллеров могут отвечать на один
и тот же номер, что позволяет
обойтись для них одним сообщением.
Формат команды
Название "формат команды"
(command_format), на мой взгляд,
несколько неудачно, поскольку не
отражает сути вопроса; к тому же, егоможно перепутать со следующим
байтом — самой командой. Формат
команды в терминологии MSC — это
простонапросто категория
оборудования, для которой
предназначено сообщение.
Стандарт определяет несколько общих
категорий, внутри них — несколько
более конкретных, и особую
категорию Alltypes. К общим
категориям относятся свет, звук,
машинерия, видео, проекция,
спецэффекты и пиротехника. Номера
этих категорий содержат в младшем
полубайте ноль, за исключением
категории "свет". Номера более
конкретных категорий заключены
внутри общих и имеют тот же старший
полубайт, что и общая категория (рис.
3).