Синхронизация Роман Вакулюк / ROMA ROBOT

Ранее Роман Вакулюк выпускал серию статей про синхронизацию в журнале Шоу Мастер. Когда хотел освежить в памяти потратил не мало времени на поиски в каком журнале и когда они выходили. Для вашего удобства собрал их в одном месте.

Совсем недавно Рома выпустил книгу - SYNC A NEW LEVEL OF SHOW

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

Вы готовы?
Тогда добро пожаловать в увлекательное путешествие. BOOK - Roma Robot


Время, вперед! Или как работает SMPTE - Журнал Шоу Мастер от 3 2016 (86)

MIDI Show Control и MIDI note: преимущества и различия. Часть вторая - Журнал Шоу Мастер от 4 2016 (87)

Синхронизация на консолях. Часть III. Настройка и работа с синхронизацией на световых пультах - Журнал Шоу Мастер от 1 2017 (88)

Мозг синхронизации Часть IV. Серверы управления шоу - Журнал Шоу Мастер от 2 2017 (89)

Синхронизация Часть V. Особенности оборудования. Решение проблем - Журнал Шоу Мастер от 3 2017 (90)

Синхронизация. Новый уровень шоу. V2. NETWORK. OSC (Open Sound Control) для шоу - Журнал Шоу Мастер от 4 2018 (95)

Синхронизация. Новый уровень шоу. V2. NETWORK. Как работает OSC (Open Sound Control) - Журнал Шоу Мастер от 1 2019 (96)

Синхронизация. Часть VIII RTP-MIDI (Apple MIDI) - Журнал Шоу Мастер от 3 2019 (98)

3 Likes

Время, вперед! Или как работает SMPTE

Роман Вакулюк / ROMA ROBOT

Одним из важных направлений деятельности компании gst.moscow является обучение. Множество пользователей светового и сценического оборудования уже неоднократно посетили семинары и мастер-классы в шоу-руме компании. Совместно с журналом «Шоу-Мастер» запускается серия обучающих статей по теме «синхронизация» — «Sync New Level of Show». Автор статей — художник по свету Роман Вакулюк, у которого за плечами большое количество проектов с использованием различных технологий синхронизации систем управления шоу.

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

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

Технология ручного управления шоу возникла в 1960-е годы. В те времена еще не существовало сложных систем управления, почти на каждом приборе, на каждом узле сидел отдельный человек, который отвечал за его функционирование, а главный стейдж-менеджер давал им голосовые команды. Один из американских стейдж-менеджеров вспоминает, как ставились мюзиклы на Бродвее: «В шоу было занято от 40 до 50 техников, бегающих за сценой, как сумасшедшие. Я использовал вспышки света, чтобы дать команду на запуск определенной сцены, давал команды операторам через головные гарнитуры и работал по сценарию, записанному на листке бумаги».

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

Время, вперед! Или как работает SMPTE
Любое шоу или представление можно поделить на составные части, из которого оно состоит. На концерте это номера представления, в театре — эпизоды и акты. В любом случае каждая такая часть имеет начало и конец и длится определенное время. Внутри каждой части происходит ряд изменений со светом, звуком, механикой сцены и т.п. Один из вариантов синхронизации всех систем — это синхронизирование по времени.

К примеру, в световом пульте создают Cue и в его настройках прописывают конкретное время его старта. Как только на световой пульт приходит время, совпадающее со временем, которое содержит ключевое Cue, световая программа запускается. Чтобы все устройства «понимали», в каком моменте времени находится шоу, они принимают специальный адресно-временной код, или Time Code.
Time Code в шоу-индустрию пришел с телевидения. И называется он SMPTE. Аббревиатура расшифровывается как Society of Motion Picture and Television Engineer. Это ассоциация, которая приняла единый стандарт кодирования времени в 1971 г. Чуть позже к ним присоединился EBU (European Broadcasting Union).

Много лет назад звук на телевидении писался на магнитную ленту с несколькими звуковыми дорожками. Одну из этих аудиодорожек занимал Time Code, где в аналоговом формате был записан временной код. Это было необходимо, чтобы при монтаже синхронно сводить аудио и видео. Такой способ записи SMPTE называется Longitudinal Time Code (LTC), или линейный Time Code. Называется он так потому, что информация пишется в этом формате бит за битом последовательно.

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

Но количество кадров может быть разное в зависимости от формата видео. Все эти различия также применимы для SMPTE, поэтому он может быть разным. Есть несколько форматов SMPTE: 24fps (frames per second – кадров в секунду), 25 fps, 30 fps, 29.9 fps (он же 30 fps drop). Все эти значения были обусловлены форматом телевещания в конкретной стране: PAL, SECAM, NTSC, которые, в свою очередь, были обусловлены частотой электросети 50 Гц и 60 Гц.

Простейшей единицей информации в LTC является блок данных, передающей каждый кадр реального времени, поэтому он так и называется — кадр SMPTE. Для кодирования битов в LTC сигнале используется схема под названием Bi-Phase Mark: нули кодируются одиночным переворотом фазы на границе периода, единицы — двумя переворотами (один на границе периода, другой в половине периода). LTC-кадр имеет длину 80 бит. Структура кадра показана на рисунке.

Время SMPTE кодируется методом BCD (Binary Coded Decimal). В этом методе под каждую десятичную цифру отводятся четыре бита. В кадре на запись времени отводятся 26 бит, между ними присутствуют дополнительные данные, а завершается все синхрословом (последние 16 бит). Синхрослово используется для определения границы кадра, значение которого фиксировано: 0011 1111 1111 1101.
Время прошло, и на телевидение SMPTE стали писать уже в других форматах: VITC, CTL, BITC, Keykode. Но аналоговый формат по-прежнему остался.

Поговорим теперь о другом формате работы с SMPTE, следующий интерфейс пришел из мира музыки. Мы говорим о MIDI (Musical Instrument Digital Interface), используемом для работы с разными форматами данных. Но сейчас мы затронем только формат работы со временем. И называется он MTC (MIDI Time Code).

Первое отличие его от LTC в том, что этот формат полностью цифровой и кодируется в шестнадцатеричной системе исчисления.
Второе — этот формат нельзя записать на носитель как LTС, этот формат генерируется программно или аппаратно.
И третье — формат MTC отличается от формата LTC тем, что один кадр SMPTE поделен на восемь частей и в одном сообщении MTC передается, только четверть кадра(Quarter Frame).

Теперь подробнее затронем последнее отличие. Не будем углубляться в обширную теорию MIDI, рассмотрим лишь основы работы MTC.
Длина MIDI time codec составляет 32 бит, из которых используются только 24, а 8 оставшихся не используются или всегда равняются нулю. Каждый компонент Time Code кодируется одним байтом.

Byte 0
0rrhhhhh: Rate (0–3) and hour (0–23).
rr = 00: 24 fps
rr = 01: 25 fps
rr = 10: 29.99 fps
rr = 11: 30 fps

Byte 1
00mmmmmm: Minute (0–59)

Byte 2
00ssssss: Second (0–59)

Byte 3
000fffff: Frame (0–30)

Когда Time Code воспроизводится непрерывно, 32 бит временного кода делится на восемь четырехбитных частей, и одна часть передается каждую «четверть кадра» (Quarter Frame). Каждый Quarter Frame содержит статус байт 0xF1, за ним следует 7 бит информации, из которых 3 бит идентифицируют Quarter Frame и 4 бит кодируют часть сообщения времени.

Восемь MIDI time code сообщений одного кадра

Таким образом, на передачу информации об одном кадре SMPTE затрачивается время, равное двум кадрам (8 х 1/4). А значит, при преобразовании SMPTE в MTC только каждый второй кадр попадает в MIDI-таймкод. Это несколько снижает скорость реакции ведомого устройства — для того, чтобы среагировать, ему нужно «прочитать» восемь сообщений Quarter Frame. В реальном времени это может занять от двух до четырех кадров в зависимости от момента начала считывания. Теперь пара тонкостей. В SMPTE (в варианте LTC) приемник считает за начало кадра момент получения первого бит 80-битного пакета.

В MTC за начало кадра считается момент прихода первого и пятого сообщения Quarter Frame в серии, то есть 0xF1 0x0n и 0xF1 0x4n. Но время можно прочитать только после того, как будут получены все восемь сообщений серии. К этому моменту полученное значение времени устареет на два кадра. Для отображения на дисплее правильного времени приемное устройство прибавляет к считанному значению поправку в эти самые два кадра. И помимо этого принимающее устройство само генерирует недостающие кадры.

image

LTC и MTC – это основные форматы при работе с синхронизацией по времени. Time Code также можно передавать через ArtNet, MSC. Но на сегодняшней день практически нет устройств, которые работают с Time Code по этим протоколам.
Вышеизложенной информации вполне достаточно, чтобы грамотно разбираться в форматах и особенностях SMPTE.

В следующих главах мы более подробно расскажем о практических особенностях, проблемах и способах решения при работе с Time Code.
Как пример простейшей схемы синхронизации по времени можно рассмотреть проект gst.moscow Word of Drum & Basse 2016 в RayJustArena.

image

Все шоу проходило в Live режиме, но на первый трек каждого диджея было записано шоу. Когда начинал играть новый диджей, мы запускали его стартовый трек на QLab, который транслировал Time Code через внешнюю звуковую карту на световой пульт, на котором уже, в свою очередь, был написан CueList c привязкой к Time Code.

image

Остались вопросы? Тогда пиши. Facebook, Instagram, Behance, Telegram
Журнал Шоу Мастер. от 3 2016 (86)

MIDI Show Control и MIDI note: преимущества и различия. Часть вторая

Роман Вакулюк / ROMA ROBOT

image

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

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

image

Язык MIDI состоит только из команд управления и параметров этих команд. Команды в языке MIDI называются сообщениями. Сообщения разделяются на два основных типа: одни управляют звукообразованием, то есть говорят, какую ноту и как громко играть, вторые выполняют служебные функции, то есть регулируют изменения настроек тон-генератора и синхронизации (в этом типе сообщений находится MTC).

Coобщения первого типа называются сообщениями канала (Channel Messages), или MIDI note. Сообщения второго типа называются системными (System Messages). Сообщения канала делятся, в свою очередь, на голосовые (Channel Voice Messages) и сообщения режима канала (Channel Mode Messages). Системные сообщения делятся на общесистемные (System Common Messages), сообщения реального времени (System Real Time Messages) и эксклюзивные сообщения (System Exclusive Messages). Для синхронизации шоу используют только голосовые сообщения первого типа (MIDI note) и эксклюзивные системные сообщения, сокращенно SysEx.

Теперь поговорим подробнее о MIDI note и о том, как он применяется для синхронизации. Так как в MIDI note содержится информация о нотах, то принимающему устройству можно по определенной ноте не генерировать звук, а выполнять другую команду. Сейчас есть много специализированных программ и пультов, в настройках которых можно назначить определенную ноту, выполнение определенной команды.
К примеру, прописываем в световом пульте и видеопульте, что при получении ноты «до» первой октавы запуск световой программы и видеоролика (каждая нота имеет свой MIDI номер от 0 до 127).

image

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

В 1989 году Энди Мелдрум, сотрудник фирмы Vari-Lite, предложил разработать открытый протокол, который позволял бы соединять шоу-системы разного назначения и разных производителей, и управлять ими с помощью любого MIDI-контроллера. К концу 1989 года Чарли Ричмонд из компании Richmond Sound Design организовал рабочую группу в составе MMA (MIDI Manufactures Association) и открыл форум на электронной доске объявлений. Созданный в результате проект стандарта был утвержден MMA и JMSC (Japanese MIDI Standard Committee) и 25 июля 1991 года превратился в «Рекомендованную практику RP-002», или иначе в MIDI Show Control версии 1.0.

Сообщения MIDI Show Control относятся к категории универсальных эксклюзивных сообщений реального времени (Universal Real Time System Exclusive).
В спецификации MSC используется терминология Controller и Controlled Device. Устройство, которое генерирует MSC сообщения, называется Controller обычно это компьютер со специализированным софтом и MIDI картой.

Принимающие устройства, световые пульты, медиасерверы и остальные исполняющие контроллеры это Controlled Device.
Особенность MSC в том, что сообщения этого формата имеют определенные категории. Они делятся на основные (General Category) и дополнительные подкатегории. Также есть особая категория All-types сообщения этого типа транслируются на все типы контроллеров. К общим категориям относятся свет, звук, машинерия, видео, проекция, спецэффекты и пиротехника.


imageimage

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

Также преимущество MSC перед MIDI note в том, что сообщения этого протокола содержат конкретные команды для действия, а не просто код сообщения, к которому нужно привязывать действие на конечном контроллере. Есть основная группа MSC сообщений — General Commands, которые применимы для всех типов устройств. Помимо General Commands есть дополнительная группа Sound Commands специально для звуковых систем синхронизации. Для общей синхронизации нам интересны, только команды типа General Command.

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

<Q_number> 00 <Q_list> 00 <Q_path> F7
Этот код состоит из номера сцены, к которой применять команду (QueNumber), в каком списке находится эта сцена (QueList) и путь туда, где находится список сцен (QuePath), это дополнительная опция, которая может содержать всегда пустое значение.

Резюмируя все особенности MSC, можно сказать следующее:
Во-первых, в MSC сообщении содержится информация о том, к какому типу устройства и под каким номером устройству предназначается сообщение. Command Format, Device ID
Во-вторых, MSC сообщение имеет команду, которую нужно выполнить на принимающем устройстве — Command
В-третьих в MSC сообщении есть информация, к какому объекту в принимающем устройстве применить команду — Q Number, Q List, Q Path.

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

Одним из ярких примеров использования MSC в шоу для синхронизации является ледовое представление Татьяны Навки, проходившее на ВДНХ в рамках «Круга Света» в 2015 году. Все шоу было синхронизировано от начала и до конца. На все номера для света использовался Timecode, а для видео, для переходных мизансцен между номерами, для служебных и подготовительных cue использовался MSC. Все шоу было записано в QLab. У нас были ночные репетиции и прогоны, где мы подгоняли все паузы между выходами артистов и номерами, и в итоге получилось готовое шоу, которое запускалось одним нажатием после команды режиссера «Поехали!»

Остались вопросы? Тогда пиши. Facebook, Instagram, Behance, Telegram
Журнал Шоу Мастер от 4 2016 (87)

Синхронизация на консолях. Часть III. Настройка и работа с синхронизацией на световых пультах

Роман Вакулюк / ROMA ROBOT

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

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

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

Сейчас есть довольно много консолей управления светом. По логике работы с протоколами синхронизации их можно разделить на две группы. В первой находится большинство самых распространенных консолей: Martin, Hog, ETC, Avolites, Chamsys, а во второй группе – всего одна консоль Grand MA2. Этот пульт имеет свои особенности и нюансы в работе с синхронизацией, которые стоит разобрать отдельно.

Поговорим о первой группе пультов. Логика настройки и работы с синхронизацией у всех этих консолей принципиально схожа, поэтому можно разобрать работу на примере одной из них — Martin серии M. Рассмотрим работу с протоколами синхронизации SMPTE и MSC.

Первое, что необходимо сделать, это соединить пульт c управляющим устройством (более подробно способы коммутации и их особенности мы разберем в следующей главе). Несколько слов о настройке пульта. Начнем с SMPTE. Большинство пультов могут принимать Time Code как минимум через два интерфейса, LTC и MIDI.

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

image

Чтобы назначить пульту интерфейс, с которого он будет брать Time Code, достаточно зайти в настройки Time Code. Menu—>System—>IO Settings—>Time Code. Активируем прием Time Code и выбираем необходимый источник. Пульты Martin автоматически определяют формат Time Code, на некоторых пультах значение fps необходимо выставлять вручную.

Чтобы привязать действия и переключения к внешнему времени, открываем необходимый CueList и в его настройках переключаем тип с CueList на Time Code. Теперь этот CueList может принимать Time Code и также в заголовке CueList появились дополнительные функции для работы с Time Code.

В разных пультах это переключение несколько отличается, к примеру, в HOG 4 в настройках CueList необходимо поставить галочку для приема внешнего времени и дополнительно указать устройство приема Time Code, т.к. пульт определяет карту LTC/MIDI как два разных устройства.

image

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

При активном режиме Learn Timing значения в столбце TimeCode будет автоматически записываться при нажатии кнопки Main Go. Т.е. вы можете запустить аудиотрек с трансляцией Time Code на пульт и на слух сделать все переключения Cue – пульт автоматически определит время и запишет его в Cue. Стоит только отключить функцию Learn Timing, и пульт будет уже не писать время, а воспроизводить Cue по времени.

Это довольно удобная функция, которая присутствует почти во всех пультах. Теперь перейдем к MSC. Чтобы пульт принимал MSC в настройках пульта, нужно указать параметры приема сообщений MSC. В пультах Martin необходимо зайти в настройки MIDI. Menu—>System—>IO Settings—>MIDI.

Здесь есть настройки MSC для приема и отправки сообщений. По умолчанию всем световым консолям формат принимаемых сообщений указывается Lighting, но если консоль управляет не светом, а, скажем, видео, то можно Command Format изменить на Video. Значение Device ID по умолчанию стоит 001, если в синхронизации используется больше чем один пульт, то на всех устройствах Device ID должен быть разным.

image

Теперь все CueList могут выполнять команды по MSC, предназначенных для этого пульта. В некоторых пультах для каждого CueList можно настроить разрешение на прием и отправку команд MSC. Если мы хотим отправить сообщение для светового пульта номер 1, на запуск, в первом CueList, Cue номер 67, то нужно в MSC сообщении прописать: Command format-01; Device ID-01; Q_number-67; Q_list-01; GO.

image

Также в сообщениях можно использовать запятую, чтобы к примеру, прописать Cue с номером 16,1. Вышеуказанный принцип работы применим для большинства световых пультов. Поговорим теперь о второй группе, где находится семейство пультов Grand MA2. Система MA2 может принимать MSC как через MIDI, так и через Ethernet. Настройки MSC в пульте находятся в разделе Setup—>Console—>MIDI Show Control.

image

Здесь можно настроить прием и передачу сообщений MSC, также можно увидеть, какие сообщения отправляются и принимаются. MSC In/Out Port нужен для работы через Ethernet. Все остальные настройки такие же, как у других пультов. Теперь об отличиях. В логике приема MSC сообщениях, которую мы рассматривали выше, не имеет значение, где находится в пульте CueList.

В общей базе он имеет свой номер и оттуда воспроизводится. Особенность системы MA2 в том, что CueList в базе может быть один, но его могут воспроизводить независимо разные исполнители. Т.е. один CueList может быть назначен на три плейбэка, и каждый из них может воспроизводить по-разному один и тот же CueList. (В системе MA2 используется название списка сцен Sequence вместо CueList.

Для упрощения понимания и соотношения команд MSC мы заменили эти понятия). Из всего вышесказанного следует, что просто дать команду на CueList не получится. Поэтому в системе MA2 команды принимают Executor (Плейбэк) на котором находится CueList. В настройках MSC In Exec можно выбрать один из трех вариантов работы MSC сообщений и Executors, от выбранного режима также зависит синтаксис MSC сообщения.

Первый режим Exec Page. В этом режиме MSC значение Q_number указывает на номер Cue, к которому нужно применить действие, а Q_list указывает на номер Executor. При этом для пульта не имеет значение номер страницы. Действие будет применяться к активной странице в момент получения сообщения.

Соответственно, в зависимости от активной страницы MSC сообщения могут получать разные CueList. Второй режим Exec. Page (обратите внимание на точку). В этом режиме сообщения получает конкретный CueList на конкретной странице в не зависимости от того, какая страница в момент приема сообщения активна.

image

Но для этого сообщение MSC должно иметь дополнительную информацию. Q_number указывает на номер Cue, к которому нужно применить действие, а Q_list указывает на номер Executor и номер Page (страница). К примеру, Q_list сообщение может выглядеть так: «30.4». Это означает, что необходимый CueList в пульте находится на странице номер 4 и на плэйбеке номер 30. Третий режим Default Only.

Это смежный режим. Если пульт принимает целое Q_list сообщение, то пульт указывает путь к активной странице, как в первом режиме Exec Page. Если пульт принимает сообщение Q_list с точкой, то он указывает путь к странице, которая прописана в сообщении, как во втором режиме Exec. Page. Прием MSC сообщений не на CueList, а на Executor позволяет дополнительно работать с функциями плейбэка.

К примеру, командой Set можно устанавливать уровень фейдера на плэйбеке. Пульты серии MA2 могут работать с Time Code двумя вариантами. Логика программирования первого варианта такая же, как рассказывалось выше на примере системы Martin M series. В готовом CueList в столбце Trig меняем значение на MTC или на SMPTE в зависимости от источника TimeCode и в столбце Trig Time вручную вводим время.

Но помимо этого способа есть еще и другой вариант работы с Time Code на MA2. Чтобы использовать этот вариант, необходимо открыть дополнительные инструменты. Для этого вызываем на рабочий стол окна Time Code Pool и Time Сode View. Time Сode Pool (TC Pool) – это программы, в которых прописаны взаимодействия органов управления плейбеков и TimeCode. Time Code View (TC View) отображает содержимое TC.

image

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

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

Первая и очень удобная функция Length. Если указать здесь продолжительность аудиотрека, в режиме Graphic на временной шкале красным цветом будет отображаться все время, которое не относится к аудиотреку, а серым цветом сам аудиотрек.

Это удобно для наблюдения маркера времени относительно всего аудиотрека. Функция Offset позволяет делать смещение временного кода на заданную величину. Очень полезная функция Switch Off. В режиме Keep Playback при деактивации TC она позволяет удерживать активным плейбек.

Для чего это нужно? В системе MA2 TC имеет самый высокий приоритет в пульте. И когда TC деактивируется (далее объясним, для чего это нужно), то Cue, которая была вызвана TC, тоже деактивируется и плейбэк уходит в режим Off. Чтобы этого не произошло, функция Switch Off должна быть в режиме Keep Playbacks. Также есть функция Status Call в режиме On, активные переходы по CueList могут происходить вперед и назад.

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

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

image

И тогда при появлении временного кода пульт будет записывать ваши действия. А конкретнее, действия на пульте с плейбеками. В отличие от первой группы пультов, где можно привязать только переключение Cue, в системе MA2 пульт записывает все, что происходит с плейбеками на всех страницах! А это клавиши Flash, Off, Go, Pause, GoTo и даже положение фейдера на плейбеке.

Это значит, что вы можете прописать шоу по временному коду одновременно из нескольких CueList. Все остальные операционные кнопки работают по аналогии. Кнопка Play запускает работу TC, Stop его останавливает. Обратите внимание, что если TC будет в режиме Stop, соответственно, он работать не будет.

Это очень удобная функция, которая предотвращает незапланированную работу TC. Если бы не было такой возможности, то при появлении случайного временного кода в пульте вы не смогли бы остановить работу, прописанную по времени, т.к. TC имеет самый высокий приоритет в пульте.

Его можно включать и отключать в пульте вручную или прописать в CueList команды Cmd.

image

Теперь разберем TC View. Здесь содержится информация о всех плейбеках, которые участвуют в TC. На каждый плейбэк может быть записана информация о действиях (Go, Flash и т.п.), она содержится в строчке Exec и на временной шкале изображается графически. При желании вы можете каждый символ действия перенести вручную.

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

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

image

Раскрывая большой потенциал консолей GrandMA2 в работе с синхронизацией, можно вспомнить про проект Epicenter Counter Strike Global Offencive. Предварительно в студии были прописаны интро и выходы команд по таймкоду. А также была написана специальная программа, которая следила за онлайн событиями в игре и в ключевые моменты передавала синхро команды по OSC видео, свету и звуку.

К примеру, когда заложенная террористами бомба взрывалась, на экранах появлялось сообщение Bomb Exploded, раздавался звук взрыва и 308 кВт блайндеров давали яркую вспышку. Такая синхронизация позволила полностью погрузить людей в игру и насладиться ее событиями!

Остались вопросы? Тогда пиши. Facebook, Instagram, Behance, Telegram
Журнал Шоу Мастер. от 1 2017 (88)

Мозг синхронизации Часть IV. Серверы управления шоу

Роман Вакулюк / ROMA ROBOT

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

image

Так как LTC – это цифровой сигнал, передаваемый по аудиоканалу, этот код можно транслировать вместе с главной аудиофонограммой. И звуковой аудиоканал вместе с TimeCode транслировать на устройства, которые должны синхронизироваться по времени. Для начала нам нужен аудио TimeCode. Как его получить? В интернете можно найти программы и онлайн сервисы, которые могут его генерировать с заданными параметрами в аудиофайл, к примеру: http://elteesee.pehrhovey.net/

Теперь достаточно открыть аудиоредактор, вставить в мультитрек двухканальную фонограмму и одноканальный аудиофайл TimeCode и сохранить эту сессию как трехканальный аудиотрек, где первые два канала – это аудиотрек, а третий канал – это TimeCode. И теперь, чтобы воспроизвести этот трек, нужна многоканальная аудиокарта и любой плеер, который поддерживает многоканальные фонограммы. При воспроизведении трека аудиокарта будет транслировать SMPTE LTC на один из своих аудиовыходов, к которому можно подключить оборудование для синхронизации по времени.

image

Теперь разберем более сложные системы управляющих устройств синхронизации, которые предоставляют расширенные возможности. Все системы управления можно условно разделить на два типа: Show Control серверы и Show Control Soft.

К Show Control серверам относятся самостоятельные системы управления, собранные в одном корпусе с котроллерами управления. Один из таких примеров – это Show Control сервер фирмы Medialon.
image

У этой марки большой спектр различных технических решений. Флагманский сервер Show Master Pro может сам транслировать DMX для управления световыми приборами, у него есть физические порты для работы с синхронизацией через MIDI и SMPTE. Ко всему этому у сервера есть дополнительные, различного вида порты для подключения внешних устройств. На базе таких серверов можно строить разные конфигурации систем синхронизации, как самостоятельных, так и больших комплексных с аудиосерверами, световыми и видеопультами.

image

На схеме представлен пример возможной системы управления, в основе которой несколько Show Control серверов, работающих в комплексе.
Для программирования шоу в сервере есть программный интерфейс для создания сцен и команд, в котором есть возможность прописать сценарий работы любого уровня и сложности. К примеру, через специальные контроллеры сервер может привязываться к командам через телефонный звонок или SMS.

Но, несмотря на обширный спектр возможностей, у Show Control серверов есть свои особенности. Эти системы идеально походят для музеев, выставочных центров, магазинов, танцующих фонтанов, аттракционов, но не для концертной и театральной деятельности, т.к. такие системы не предполагают оперативного вмешательства во время шоу.
Другой вариант исполнения Show Control системы – это программный способ. По сути, это то же самое, что и Show Control серверы, только в этом случае нет жесткой привязки к оборудованию.
image

Это программное обеспечение, которое устанавливается на компьютер и к которому подключается периферийное оборудование. Количество таких программ великое множество. Разберем программное обеспечение Qlab от компании Figure53
В этой программе производители совместили возможности аудио- видеосервера и возможности сервера синхронизации.
Главное окно программы отображает содержимое шоу с командами (Cue) и переходами. Типы команд, которые можно вставить в шоу, располагаются слева и сверху от главного окна. Разберем возможности QLab при работе с синхронизацией.

QLab может транслировать TimeCode в двух форматах: MTC и LTC. Чтобы запустить TimeCode вместе с аудиотреком, необходимо вставить cue TimeCode сразу после аудиотрека и в настройках cue установить значение Auto-continue. Это означает, что TimeCode будет запускаться вместе с аудиотреком.

image

Теперь осталось выбрать тип временного кода, его формат, время старта и порты, на которые его транслировать. Особенность такого TimeCode в том, что если аудиотрек закончился, то TimeCode будет продолжать работать.

image

Чтобы такого не было, необходимо в нужном месте вставить дополнительную cue на остановку TimeCode с задержкой на запуск длиной в аудиотрек и запускать вместе с аудиотреком. И тогда по окончании фонограммы Time-Code тоже остановится.

image

Теперь разберем работу этой программы уже с MIDI. Qlab может передавать три формата MIDI сообщений: MIDI note, MSC и Midi SysEx. Последнее – это сообщение из группы SysEx в свободной форме в шестнадцатиричной системе, вводимое пользователем с клавиатуры.
Чтобы отправить MIDI сообщение, нужно в рабочий cue list вставить MIDI cue. В настройках cue можно выбрать тип сообщения. Если это MIDI note, то в сообщении можно указать канал MIDI, номер ноты и значение громкости.

Если это MSC, то в сообщении указываем формат сообщения, команду и назначение (Qlist, Qnumber, Qpath).
Эти MIDI сообщения можно привязывать к действиям в CueList по запуску аудиотрека или прописать последовательность MIDI-команд по времени, тем самым синхронизируя работу внешнего оборудования по MIDI.

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

Программы, подобные QLab, универсальны, так как коммутируются с принимающими устройствами посредством универсальных интерфейсов передачи данных. Такая логика не подразумевает обратной связи от синхронизируемых устройств, т.к. в этом нет большой необходимости. Но есть пульт, где логика программирования отличается от всех остальных, и это Grand MA2. Специально для таких систем управления создали софт с обратной связью. Называется он TimeLord.

image

TimeLord может работать по TimeCode и с другими пультами, но давайте разберем особенности работы с системой Grand MA2. Прямая и обратная связь пульта и TimeLord осуществляется через сеть MA2Net посредством протоколов MSC и Telnet. Чтобы подключить TimeLord к пульту, во-первых, необходимо, чтобы TimeLord и пульты были в одной сети MA2Net. Во-вторых, на пульте в настройках должен быть активирован Telnet. И тогда устройства будут готовы для коннекта. Чтобы это сделать, нужно в настройках TimeLord указать ip адрес пульта, логин и пароль для авторизации и нажать Connect.

Что нам это дает? Во-первых, можно синхронизировать СueList TimeLord с Timecode Pool в пульте. Если на пульте активировать Timecode (TC) из Timecode Pool, то автоматически в TimeLord активируется соответствующий ему аудиотрек и начнется воспроизведение.
Чтобы TimeLord знал, c каким аудиотреком синхронизировать в пульте TC, в настройках cue аудиотрека указывается MA2 Timecode ID, соответствующий номеру в пульте.

image
image

Так же функция синхронного воспроизведения работает и в обратном направлении. Если в TimeLord запустить аудиотрек, то в пульте автоматически активируется соответсвующий TC. Но разработчики TimeLord сделали еще пару удобных функций для работы с Grand MA2. В настройках TimeLord в разделе коннекта с пультом есть две кнопки: Show—> MA2; Show <—MA2.

Эти кнопки позволяют экспортировать и импортировать шоу с TimeLorde в пульт и обратно. Если создать свой cuelist в TimeLord и импортировать его в пульт, то пульт автоматически создаст в Timecode Pool новые записи TC, переименует их по названию трека, пропишет все офсеты по временному коду и привяжет Timecode ID всех треков в пульте и в TimeLord. И тоже самое, но наооборот, происходит при экспорте.

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

К тому же TimeLorde может принимать и отправлять команды MIDI note. Чтобы вставить MIDI событие по времени, нужно зайти в раздел Cue Events где откроется Time line с графиком аудиотрека, вручную вставить метки на трек и привязать к ним действия по MIDI.
image

Такой способ удобен тем, что нет необходимости высчитывать время для каждого события MIDI, достаточно установить маркер, исходя из аудиографика. К сожалению, в TimeLord пока нет возможности отправлять MSC сообщения. Как говорит производитель, в скором времени эта возможность будет добавлена.

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

image

Одним из недавних проектов стал Фестиваль музыки и света в Зеленом театре на ВДНХ. Особенность этого проекта заключалась в том, что был создан генеративный медиасервер, который получал шесть сведенных аудиосигналов с оркестра, анализировал их и в зависимости от преобладания тех или иных групп инструментов, активности и такта подстраивал динамику видеоконтента и света. Причем синхронизация со световым пультом была постоянная! Так как это было живое выступление, то, конечно же, использование таймкода было невозможно. Постоянная синхронизация достигалась за счет MSC сообщений, которые с высокой частотой команд устанавливали уровни фейдеров на пульте, на которых были прописаны эффекты на различные группы приборов. Тем самым оркестр сам управлял светом и видео.

Остались вопросы? Тогда пиши. Facebook, Instagram, Behance, Telegram
Журнал Шоу Мастер. от 2 2017 (89)

Синхронизация Часть V. Особенности оборудования. Решение проблем

Роман Вакулюк / ROMA ROBOT

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

Мы подробно разберем все технические особенности в работе с каждым из них. LTC – это линейный временной код, передаваемый через аналоговый аудиоканал. Его даже можно послушать через акустику и, поверьте, звук SMPTE не самый приятный. Но это дает возможность при необходимости его находить в линии на слух, без дополнительного оборудования.

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

На некоторых профессиональных звуковых картах есть даже отдельные входы и выходы под LTC, к примеру, на многоканальной карте MOTU 828x. С этими портами работает дополнительная программа, которая устанавливается вместе с драйверами. Она позволяет настроить резерв временного кода. В таком режиме звуковая карта работает как «мост», но если на входе исчезает код времени, то карта автоматически генерирует свой код с текущим временем.

Так как LTC – это аудиосигнал, то коммутируется он при помощи балансных аудиокабелей, но здесь проявляются особенности с передачей цифрового сигнала по аудиоканалу. График SMPTE не синусоидальный, как у аудиосигнала, а квадратный, т.к. сигнал кодируется в бинарной системе. На небольших расстояниях тип сигнала не принципиален. При большой длине аудиокабеля появляются такие факторы, как емкость кабеля и его индукция. Чем это плохо? А тем, что квадратная форма сигнала становится синусоидальной.

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

Рабочий уровень LTC 0 дБ, если уровень сигнала опустить ниже, то таймкод либо вообще не будет определяться принимающими устройствами, либо будет нестабилен. Часто по невнимательности на компьютере опускают общий рабочий уровень звуковой карты в системе, тем самым падает не только сигнал аудиоканалов, но и SMPTE.

Но если все же необходимо отправить LTC на большое расстояние или его нужно разделить на несколько принимающих устройств, то для таких целей есть специализированное оборудование, к примеру, Brainstorm SR-112 Time Code Distripalyzer. Он может исправлять искаженный SMPTE сигнал, правильно его делить, при потере сигнала генерировать таймкод, пересчитывать кадры и многое другое. Есть устройство KissBox LTC & MTC/MIDI Tranceiver, которое может преобразовывать аналоговый LTC в цифровой сетевой протокол и передавать его по Ethernet. Такой сигнал LTC можно передавать даже по Wi-Fi сети. Через это устройство также можно передавать сигналы MIDI.

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

Первый – подключить все устройства последовательно. Обычно на задней панели есть сквозной выход THRU, который полностью дублирует входной сигнал. Таким способом можно подключить несколько устройств.

image

Первый вариант подключения

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

Второй вариант подключения

И третий – подключить с помощью многоканальной MIDI карты, которая может отправлять сообщения на разные порты. Один из вариантов – это MIDI карта MOTU MIDI Express XT. Такая карта имеет восемь входов и восемь выходов, что позволяет параллельно подключить до восьми приемников, помимо всего, эту карту можно использовать как сплиттер с настраиваемыми маршрутами. Также у этой карты есть порты LTC.

Третий вариант подключения

Помимо генерирующих устройств есть устройства для анализа протоколов синхронизации, к примеру, устройство Rosendahl Mif 4. Оно может само принимать, отображать и генерировать таймкод c MIDI, LTC и BNC и ко всему этому конвертирует друг в друга разные источники временного кода. Также есть таймкод дисплеи, которые только отображают время, что удобно, когда необходимо видеть временной код во время представления. В плане синхронизации «BILAN 35» был интересным проектом.

image

Стояла задача синхронизировать кинетические лебедки, свет и видео. Главный таймкод генерировал Logic. В общей мультисессии одну из дорожек занимал LTC таймкод, разный в разных номерах концерта. Далее этот сигнал оправлялся на звуковой стейджрэк и через цифровой сигнал без потерь доставлялся до пультовой. Затем этот сигнал я кодировал обратно в аналог и отправлял на таймкод-анализатор mif4.

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

Заключение, или The Show must go on!

Современные технологии дают много возможностей для творчества.

Сейчас все больше систем становятся автоматизированными. Технологии синхронизации не нацелены на замену человеческого труда. Синхронизация дает лишь дополнительные возможности! Главным в любой системе остается человек. Даже самая современная технологическая новинка без грамотных рук и головы остается попросту железкой.

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

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

Остались вопросы? Тогда пиши. Facebook, Instagram, Behance, Telegram
Журнал Шоу Мастер. от 3 2017 (90)

Синхронизация. Новый уровень шоу. V2. NETWORK. OSC (Open Sound Control) для шоу

Роман Вакулюк / ROMA ROBOT

image

Я снова приветствую вас, уважаемые коллеги, на страницах журнала «Шоумастер». Мы с вами уже знакомы по серии статей, где я описывал свои труды в направлении синхронизации. Цикл статей был окончен и меня чрезвычайно удивила живая обратная связь, вопросы читателей и сообщения с благодарностью за то, что я делюсь знаниями.

С момента выхода первой статьи прошло уже больше года, и мои наработки в области синхронизации изрядно пополнились. Настало время мне этим всем поделиться. Мы запускаем новый цикл статей «Синхронизация. Новый уровень шоу».

OSC (Open Sound Control)

Время идет, и технологии не стоят на месте. Протоколу MIDI уже почти сорок лет! И, конечно же, на смену ему пришла более современная альтернатива – Oрen Sound Control. Этот интерфейс пришел из мира музыки, а другие направления шоу-индустрии быстро его освоили. Сейчас этот протокол настолько популярен в разных направлениях шоу-технологий, что его создатели дали ему второе название: Open System Control. Что же в нем особенного? Давайте разберемся.

Этот протокол был разработан в компании CNMAT (Center for New Music and Audio Technologies) программистами Эдрианом Фридом и Мэттом Райтом еще в 1997 году и основывался на базе широко используемого интерфейса Ethernet. Главное преимущество протокола было в том, что для работы с ним не нужно никакого специального оборудования и коммутации, лишь стандартные сетевые карты и обыкновенная витая пара. Кроме того, Ethernet развивается и поддерживается разными компаниями и институтами. Сейчас технологии позволяют передавать сигнал по Ethernet, по воздуху и оптическому каналу на многие километры. Передача по сравнению с MIDI в тысячи раз быстрее и надежнее. Все эти преимущества автоматически унаследовал протокол OSC.

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

Основы построения сетей

Так как OSC базируется на сетевом интерфейсе Ethernet, то прежде чем работать с этим проколом, необходимо настроить сеть. Вообще, я считаю, что любой уважающий себя специалист должен уметь работать с сетью, – независимо от протокола и оборудования. Но я прекрасно понимаю, что есть начинающие, поэтому ниже я дам основную информацию, которая позволит пользоваться OSC.

Сетевое оборудование

Поговорим сначала об оборудовании и коммутации. Чтобы построить сеть, надо определиться с необходимым оборудованием. Это могут быть контроллеры, компьютеры, смартфоны, планшеты, консоли управления и многое другое.

image

Ethernet разъем (8P8C)

Давайте разберем простейший пример, в котором у нас есть четыре компьютера. Чтобы каждый компьютер мог соединиться в сеть, он должен иметь сетевую карту. Как правило, компьютеры имеют встроенные сетевые карты, за исключением некоторых компактных ноутбуков, где сетевой разъем убирают для экономии места. К примеру, мой MAC Book толщиной меньше, чем сам разъем Ethernet. Для таких компьютеров есть специальные переходники с Thunderbolt и USB на Ethernet.

Большая часть сетевого оборудования использует физический интерфейс стандарта RJ-45. Кстати, существует путаница с названиями сетевых разъемов и коннекторов. RJ-45 – это имя стандарта, который описывает конструкцию обеих частей разъема (вилки и розетки) и схемы их коммутации. А сам сетевой разъем называется 8P8C.

Сетевые карты бывают разные, основная характеристика, которая вас должна интересовать, – это скорость передачи и приема данных. Она измеряется в максимальном количестве данных в битах, передаваемых за одну секунду. Существуют такие скорости, как 10 Mbps (Megabit per second), 100 Mbps, 1 Gbps (Gigabit per second), 2,5 Gbps, 5 Gbps, 10 Gbps, 40 Gbps, 100 Gbps и 160 Gbps. На данный момент самые распространенные и часто используемые скорости в оборудовании и сетевых картах – 100 Mbps и 1 Gbps. Скорости выше одного гигабита в секунду – это более профессиональные стандарты для передачи огромных объемов данных, для таких скоростей нужны специальные сетевые карты и сетевые кабели подходящего стандарта.

С сетевыми картами определились. Теперь рассмотрим вопрос: как подключить в сеть сразу три и более компьютера? Если бы нужно было подключить в сеть только два устройства, нам бы понадобился лишь один сетевой кабель – и все. Но в нашем примере четыре компьютера, которые должны стать участниками сети. Чтобы соединить их, необходим коммутатор. Существуют разные модели подобных устройств, которые различаются скоростью портов, их количеством и другими особенностями. Я бы хотел выделить три основных типа таких коммутаторов и определить основные их различия.

Первый тип – Ethernet Hub. Хаб представляет собой простейшее сетевое устройство, которое дублирует все свои порты между собой. Это своего рода сетевой сплиттер. Получив пакет данных с одного порта, хаб дублирует этот пакет на все остальные. Вот и все. Но это плохо, потому что, даже если пакеты предназначаются только одному клиенту, хаб оправит их всем клиентам, что загрузит порты и – самое главное – сеть! Хорошая новость: простые хабы практически уже не встречаются, так как они попросту морально устарели.

Следующий тип коммутаторов – Ethernet Switch. Свитч внешне никак не отличим от хаба, но это уже более умное устройство. Оно позволяет грамотно организовать вашу сеть. При включении свитч опрашивает все свои порты и знает, на каком порте какое устройство и с каким адресом находится. Что это нам дает? Когда на определенный порт свитча приходит пакет, который предназначен для конкретного адреса, свитч отправляет этот пакет на конкретный порт, где находится тот самый адресат. При такой схеме сеть работает намного рациональнее и быстрее.

Схема подключения клиентов

Существует два типа свитчей: Managed и Unmanaged. Самые распространенные на рынке — это Unmanaged. Они не настраиваются, в них предустановленные основные настройки, которые позволяют работать сразу с сетью. Чтобы запустить в работу Managed – свитч более высокого уровня, – его необходимо сначала настроить. Он понимает, с какими протоколами работает, фильтрует или блокирует данные. Такие свитчи имеют довольно широкий функционал для конкретных задач.

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

И последний тип коммутаторов – это Router, который по функционалу похож на настраиваемый свитч, его отличие в том, что он помогает настроить правила общения между двумя физическими сетями. Самое распространенное использование роутеров – организация сети между интернетом и локальной сетью. Роутер может подключаться к интернету по определенным правилам, но при этом создавать независимую сеть для локальных пользователей, а также передавать пакеты между этими сетями. Часто роутеры имеют службу DHCP (Dynamic Host Configuration Protocol), которая позволяет автоматически раздавать IP-адреса клиентам без участия пользователя. О ней мы поговорим чуть позже. Большинство бытовых роутеров имеют встроенную беспроводную точку доступа Wi-Fi.

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

Сетевые настройки
Итак, физически мы подключили четыре компьютера в одну сеть. Теперь второй шаг: нужно настроить сетевую карту на каждом компьютере. Современные сетевые карты настолько автономны, что они сами дружатся с оборудованием, которое подключено на другом конце кабеля, будь то другой компьютер или маршрутизатор. Тем не менее, есть настройки, которые необходимо сделать пользователю. А именно: указать каждой сетевой карте хотя бы один уникальный IP-адрес (Internet Protocol Address). IP-адрес – это низкоуровневый идентификатор, который позволяет опознавать каждый компьютер или устройство в сети. У каждого устройства IP-адрес должен быть уникальным. Когда один компьютер хочет передать пакет данных другому, то отправитель в заголовке пакета указывает IP-адрес получателя и свой IP как отправителя. В таком случае пакет данных будет гарантированно доставлен клиенту.

Кстати, с хабом отправленный пакет данных получат все компьютеры – даже с другими IP-адресами. Когда такой пакет приходит постороннему компьютеру, сетевая карта должна сначала расшифровать его заголовок и понять, ей ли он предназначается. Когда карта понимает, что этот пакет данных предназначен не ей, она просто очищает свой буфер памяти от только что полученных «чужих» данных — и готова принимать следующий пакет. Но это все занимает время и вычислительные ресурсы сетевой карты. Что нерационально. Когда свитч получает пакет данных, он читает заголовок сообщения и, так как он уже знает, на каком физическом порте сидит клиент с этим IP-адресом, перенаправляет этот пакет конкретному клиенту с конкретным IP-адресом. А все остальные клиенты не расшифровывают чужие сообщения и готовы принимать пакеты, которые предназначены конкретно для них.

Вернемся снова к IP-адресу сетевой карты. На данный момент существует две версии IP-адресов. IPv6 и IPv4, разница между ними в количестве байт, выделяемых для идентификации адреса, или, говоря простым языком, они различаются длиной адреса. Пример IPv4 адреса – 192.168.1.100. Пример IPv6 адреса –FE:BA:76:32:FE:BA:76:32. Вы можете спросить: для чего же придумали более сложную версию IP-адресов? Дело в том, что когда на свет появлялась глобальная сеть интернет, никто не мог себе представить, что формата адресов IPv4 может не хватить для каждого пользователя, ведь в этом формате можно идентифицировать 4,22 миллиарда уникальных адресов.

Но цифровой прогресс происходил с огромной скоростью, и количество устройств в сети с каждым годом увеличивалось в геометрической прогрессии! Адресов стало не хватать, и тогда придумали новую версию – формата IPv6, благодаря которому можно задать 3.4*1038 адресов! Но так как вы зачастую настраиваете вашу личную локальную сеть, вероятность, что вы исчерпаете лимит адресов IPv4, практически стремится к нулю, поэтому вполне достаточно более простой версии IP-адреса.

Довольно теории, давайте перейдем к практике, а именно к непосредственной настройке адресов. На разных консолях, устройствах и контроллерах интерфейс настройки IP-адреса выглядит по-разному в зависимости от производителя. Я предлагаю рассмотреть самые распространенные опции, которые предоставляют операционные системы Windows и MAC OS.

Окно настройки сетевой карты системы Windows

Окно настройки сетевой карты системы MAC OS

Когда инженер настраивает локальную сеть для синхронизации или других целей, он в основном не планирует доступ к глобальной сети интернет, так как это небезопасно. И поэтому мы затронем лишь особенности настройки таких параметров карты, как IP-адрес и Маска подсети (Subnet mask). Все остальные параметры необходимы для доступа к интернету или настройки более сложных сетей. Какой же диапазон адресов необходимо выбрать для ваших устройств в сети? На самом деле он может быть каким угодно, но все же стоит придерживаться правил, которые устанавливает всемирная организация IANA (Internet Assigned Numbers Authority). Функционал этой организации очень широк, одна из ее задач – следить за тем, чтобы не было хаоса с адресами в интернете. И поэтому она четко регламентировала диапазоны адресов для локальных сетей.

Ниже представлены эти диапазоны.
От 10.0.0.0 до 10.255.255.255
От 172.16.0.0 до 172.31.255.255
От 192.168.0.0 до 192.168.255.255

Раньше в этом списке был также диапазон адресов 2.x.x.x, но позже IANA исключила его из перечня допустимых адресов локальных сетей. Вы можете выбрать любой из этих диапазонов и установить адреса для ваших устройств и компьютеров, главное только – чтобы диапазон был один и тот же.

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

Разберем на примере. Возьмем адресное пространство 10.x.x.x. Если нужно максимально закрыть нашу сеть, мы устанавливаем маску подсети 255.255.255.0. Тогда если мы хотим, чтобы наши компьютеры были в одной подсети и могли друг друга видеть, то их IP-адреса должны иметь одинаковые первые три цифры адреса. К примеру, 10.0.0.x. Диапазон адресов нашей подсети будет составлять от 10.0.0.1 до 10.0.0.255. Но если один из компьютеров будет иметь IP-адрес 10.0.1.87, он будет находиться в другой подсети (10.0.1.1-10.0.1.255) и для первой подсети не будет виден.

image

Как же сделать четвертый компьютер видимым для всех остальных компьютеров? Есть два способа. Первый – ввести четвертый компьютер в адресное пространство подсети 10.0.0.x. Для этого нужно изменить IP-адрес четвертого компьютера: к примеру, на 10.0.0.87. Обратите внимание: мы просто изменили третью цифру адреса с единицы на ноль.

Второй способ – расширить нашу подсеть так, чтобы старый адрес четвертого компьютера попадал в нее. Для этого достаточно на всех компьютерах расширить маску подсети, поменяв ее с 255.255.255.0 на 255.0.0.0. Теперь диапазон IP-адресов нашей подсети составляет от 10.0.0.1 до 10.255.255.255. В этом случае, как мы можем видеть, IP-адрес четвертого компьютера 10.0.1.87 попадает в диапазон адресов нашей подсети.

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

Но, как я уже говорил, существует волшебная служба DHCP (Dynamic Host Configuration Protocol), которая может автоматически задать всем компьютерам сети IP-адреса и другие настройки сетевой карты, чтобы все компьютеры были участниками одной подсети. Чтобы волшебство DHCP произошло, нужно соблюсти два условия.

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

Во-вторых, необходимо, чтобы на сетевой карте вашего компьютера была активирована опция автоматического получения настроек сетевой карты от DHСP-сервера. В MAC OS системе, эта функция называется Using DHCP. А в Windows – Obtain an IP address automaticaly.

Включение функции получение настроек сетевой карты от DHCP сервера на MAC OS

Включение функции получение настроек сетевой карты от DHCP сервера на Windows

Дополнительная информация сетевой карты,

где можно увидеть полученные настройки и IP DHCP сервера

Но зачастую, когда вы работаете с синхронизацией, где вам приходится указывать конкретные IP-адреса клиентов, которые должны получать ваши данные, например, OSС, автоматическая конфигурация сети – не самый лучший выбор, так как ваши устройства не привязываются жестко к IP-адресам. У DHCP есть такой параметр, как время аренды IP-адреса клиента, по истечении которого DHCP-сервер выдает клиенту новый IP-адрес, – и он может отличаться от старого. Если такое происходит, ваша синхронизация по сети рушится, так как у клиента, которому вы хотите отправить сообщения, теперь новый IP-адрес. При статичных IP-адресах на сетевых картах адрес перманентен и только пользователь может его изменить. Такая жесткая привязка настроек сетевой карты намного надежнее, что необходимо при настройке синхронизации по сети.

Упомяну также беспроводную сеть Wi-Fi. Часто приходится использовать в синхронизации смартфоны и планшеты (к примеру, для управления сервером синхронизации), которые также должны быть участниками общей сети. В этом случае вам достаточно вести в вашу сеть беспроводную точку доступа (Wi-Fi Access Point) или Wi-Fi-роутер, в котором уже встроена точка доступа. Все настройки Wi-Fi сетевых карт абсолютно идентичны, единственное: прежде чем подключиться к беспроводной сети, вам необходимо авторизоваться в ней, введя логин и пароль Wi-Fi, которые заданы в беспроводной точке доступа.

image

Проверка сетевого подключения

Если сетевое оборудование настроено правильно и все клиенты подключены к сети, то участники могут обмениваться данными между собой. Чтобы проверить, действительно ли устройства видят друг друга, можно провести тестирование, отправив тестовые пакеты на конкретный IP-адрес.

WINDOWS

Для этого системе Windows необходимо открыть приложение командной строки. Чтобы это сделать, нажмите одновременно клавиши Win+R, в окне «Выполнить» введите cmd, далее нажмите кнопку OK. Перед вами откроется окно командной строки. Чтобы проверить подключение между вашим компьютером и другим, введите команду ping 192.168.1.202 и нажмите Enter. Соответственно, вам нужно ввести тот IP-адрес, связь с которым вы хотите проверить. Если все прошло успешно, то в отчете пинга адреса вы увидите Received = 4; Lost = 0. В противном случае командная строка выдаст вам отчет, где либо часть пакетов, либо все они потеряны. Это означает, что клиент с таким IP-адресом недоступен или имеет какие-то неисправности с сетью.

image

MAC

Чтобы сделать такую же проверку в операционной системе MAC OS, необходимо открыть приложение терминала. Для этого зайдите в папку с вашими установленными приложениями и откройте приложение Terminal. Для проверки соединения с клиентом, введите команду ping – c 4 192.168.1.201. В итоге вы так же получите отчет о пинге адреса. Если все в порядке, то вы не потеряете ни одного пакета, и терминал выдаст сообщение 0.0% packet loss. Это означает, что соединение работает корректно. После того как мы подключили все оборудование, проверили подключения между участниками сети и убедились в том, что все работает корректно, можно приступить к настройке OSC. А об этом мы поговорим уже в следующей главе!

image

Остались вопросы? Тогда пиши. Facebook, Instagram, Behance, Telegram
Журнал Шоу Мастер. от 4 2018 (95)

Синхронизация. Новый уровень шоу. V2. NETWORK. Как работает OSC (Open Sound Control)

Роман Вакулюк / ROMA ROBOT

image

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

Для передачи данных OSC использует транспортный протокол UDP и TCP. Поэтому при передаче и приеме сообщений мы должны указывать порт данных и IP-адрес клиента и сервера.
OSC очень похожи на MSC-сообщения. Отличие в том, что сами сообщения и адрес клиента не регламентируются протоколом, как в MSC. В OSC регламентируется лишь правило описания адреса и сообщения. Любой производитель и программист может придумать свои наборы сообщений и передать их через OSC.

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

Хорошо, OSC-сообщение мы доставили в нужный порт, и программа клиента прочитала это сообщение. Но как же программе понять, к чему применить это сообщение? Для этого OSC-сообщение содержит адрес назначения внутри программы клиента. Это очень похоже на параметр назначения MSC-сообщения, как CueList или Cue. Только, как я уже сказал выше, OSC не имеет жесткой привязки к синтаксису адреса, как в MSC, но тем не менее мы должны соблюдать правила описания адреса, которое использует OSC, а именно URL (Uniform Resource Locator).
Эту схему описания адреса пути вы применяете каждый раз, когда пользуетесь интернет-браузером, чтобы попасть в конкретное место на сайте.

image

Эти пути назначения сообщения могут быть разными – в зависимости от функционала, который заложил конкретный производитель. Если вы хотите отправить OSC-сообщение на световую консоль ETC Eos, то его путь должен начинаться с “/eos”, далее нужно указать группу контролируемых параметров пульта (например, “/fader”), далее нужно указать номер фейдера “/1” – и в итоге мы получим полный путь к конкретному фейдеру, который будет выглядеть так: “/eos/fader/1/”. Так же мы можем указать путь к группам, к спискам сцен и другому содержимому пульта.

Идем дальше. Теперь – по аналогии с MSC – вы можете предположить, что далее в сообщении OSC передается команда. Верно, но тут есть своя особенность: в OSC-сообщении передается не команда, а аргумент. В чем же их отличие? Аргумент в OSC-сообщении - это некий контейнер, который передает данные определенного типа. В последней версии OSC 1.1 вы можете использовать следующие типы данных:

Int32
Integer 32bit, этот тип данных может хранить в себе натуральное число в диапазоне от -2 147 483 648 до 2 147 483 647. Этот тип используют, когда нужно передать целочисленный номер: для идентификации номера страницы или фейдера, так как в пульте не существует фейдеров и страниц с дробным номером.
Float32
Float 32bit может хранить в себе действительное число c плавающей запятой в диапазоне от -3.41038 до +3.41038. Этот способ выражения действительного числа позволяет закодировать более точные данные. Часто этим типом данных кодируют уровни фейдеров, вы можете определить диапазон фейдера от нуля до единицы, а вот точность позиционирования фейдера в этом диапазоне может быть огромной, но зачастую производители ограничиваются двумя знаками после запятой.

String
Передает строку, закодированную в формате ASCII. С помощью этого типа вы можете передать имя объекта или целое сообщение. Очень часто это используется в системах дистанционного управления по OSC. К примеру, пульт может передать по OSC информацию об имени кьюлиста, который назначен на конкретный фейдер.

Blob
Binary Large Object передает оригинальный массив байтов. Очень часто его используют для передачи изображений, звука и видео.

Bool
Boolean – это логический тип данных, который может передать либо ложь, либо истину. Самое распространенное его использование – это описание состояния переключателя, который может быть включен (истина) или выключен (ложь). На самом деле в типологии OSC этот тип данных разделен на две части, каждая из которых несет в себе конкретное состояние. Я объединил их, дабы облегчить понимание этих типов.

Impulse
Это не совсем тип данных как таковой, поскольку он не несет в себе информацию о состоянии аргумента, он инициализирует событие. В описании OSC-протокола он обозначается как “Bang” и часто применяется, когда вам нужно передать информацию о действии (скажем, об открытии страницы или любого другого события) без необходимости передачи аргумента.

Null
Это пустой тип данных, который не содержит в себе ничего. Используется довольно редко, но как дополнительная опция присутствует.

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

image

Как видно на схеме, чтобы передать состояние кнопки Flash фейдера номер один на световую консоль Eos, мы должны указать сетевой адрес и порт пульта (192.168.1.101:5004) Далее нужно указать адрес необходимой кнопки, состояние которой мы хотим передать (/eos/fader/1/flash), и в итоге передать аргумент типа Boolean: если кнопка должна быть нажата, то аргумент равен True, если кнопка отпущена, то аргумент равен False.

Резюмируем особенности OSC-протокола
OSC-протокол базируется на интерфейсе передачи данных Ethernet. А это дает сразу несколько преимуществ. Для передачи такого сигнала мы можем использовать стандартное сетевое оборудование, которое намного распространеннее и доступнее, чем специализированные карты синхронизаций. По Ethernet мы можем передать сигнал практически на неограниченное расстояние, используя при этом разные способы передачи: как по радиоканалу, так и по оптике, и по витой паре.

OSC использует протокол передачи данных UDP, который обязывает указывать IP-адрес и порт клиента. Что дает множество преимуществ. К примеру, мы можем на одном сетевом клиенте синхронизировать несколько приложений одновременно, используя один и тот же IP-адрес, но при этом разные порты. Это также позволяет нам настраивать сложные маршруты, делить OSC-сигнал или получать на один клиент сообщения из разных источников без использования дополнительного оборудования, так как этот функционал уже заложен в сетевых протоколах группы TCP/IP.

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

Я считаю, что OSC – самый функциональный и современный протокол синхронизации. С его помощью можно построить сложнейшие системы генеративной синхронизации с большой скоростью передачи данных. При этом, как я уже говорил, благодаря тому, что данный протокол базируется на физическом интерфейсе Ethernet, OSC наследует все преимущества передачи данных по этому интерфейсу. Что делает его намного привлекательнее остальных протоколов синхронизации.


Остались вопросы? Тогда пиши. Facebook, Instagram, Behance, Telegram
Журнал Шоу Мастер. от 1 2019 (96)

Синхронизация. Часть VIII RTP-MIDI (Apple MIDI)

Роман Вакулюк / ROMA ROBOT

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

RTP (Real-time Transport Protocol) – протокол высокого уровня, который базируется на UDP, но при этом имеет свои особенности, которые были специально разработаны для стриминга аудио и видео. Основная его особенность в том, что каждое сообщение этого протокола имеет в заголовке абсолютное время отправки, которое может прочитать принимающие устройство и определить задержку и порядок доставки сообщений. Такие преимущества идеально подошли для MIDI, и в 2004 году появилась первая версия протокола RTP-MIDI.

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

Как и в случае с OSC, протокол базируется на физическом интерфейсе Ethernet, поэтому RTP-MIDI наследует все преимущества этого интерфейса передачи данных. И чтобы использовать протокол RTP-MIDI, так же, как с OSC, необходимо поднять сеть, в которой будут находиться все ваши сетевые клиенты. Как это сделать, мы уже обсудили в предыдущей статье (Синхронизация. Новый уровень шоу. V2. NETWORK. OSC (Open Sound Control) для шоу, «Шоумастер» № 4 2018).

Давайте теперь поговорим об идеологии этого протокола. В RTP-MIDI есть такое понятие, как сессия. Сессия — это виртуальная среда, к которой могут подключаться клиенты, чтобы обмениваться MIDI-сообщениями. Для начала в сети должен быть тот, кто создаст эту сессию. Это может быть компьютер либо другое устройство.

Создатель сессии будет являться мастер-устройством или, говоря терминологией RTP-MIDI, инициализатором сессии. После того как в сети будет создана сессия, другие клиенты могут к ней подключиться и стать ее участниками. В сети может быть создано несколько сессий, и они будут работать независимо. Удобно, что клиент сам может выбрать, к какой сессии подключиться. Когда компьютер стал участником сессии, в операционной системе появляются виртуальные MIDI-порты, которые могут использовать приложения для приема и передачи MIDI-сигнала.

Одним из важных преимуществ RTP-MIDI является то, что уже на уровне этого протокола реализованы схемы разделения и смешивания MIDI-сигналов (Split/Merge). Ниже представлена простейшая схема транспорта сообщений между разными участниками сессии: инициализатором сессии является устройство номер один, к которо подключены другие участники сети. При отправлении MIDI-сообщения с главного устройства (Device 1) оно автоматически дублируется на все остальные. При этом если сообщения отправят другие клиенты сессии (Device 2 и Device 3), они будут получены только инициализатором сессии, т.е. устройством номер один. И эти сообщения будут автоматически соединены и направлены на его виртуальный MIDI IN порт.

Так как RTP-MIDI – это, по сути, лишь способ передачи MIDI через Ethernet, все, что касается протокола MIDI, остается прежним. Единственное отличие – способ доставки MIDI-сообщений.
Предлагаю разобрать пример , как создать RTP-MIDI сессию и как подключить к ней клиентов для обмена сообщениями. Чтобы в будущем вы сами решали, использовать физические MIDI-карты и коммутацию для работы и экспериментов или сетевую альтернативу RTP-MIDI.
Ниже представлен список операционных систем и названия программ, которые обеспечивают системе возможность работы с протоколом RTP-MIDI.

Некоторые программисты, возможно, спросят: а где же Linux? Существуют библиотеки, которые позволяют интегрировать поддержку этого протокола внутрь отдельной программы в момент разработки приложения программистами, такие библиотеки есть для всех операционных систем, в том числе и Linux. Приложения под Windows и Android были написаны программистами-энтузиастами, которые выложили свои программы в открытый доступ, за что им огромное спасибо.

Если вы пользователь устройств Apple, вы счастливчик: вам устанавливать ничего не нужно, я уже говорил, что RTP-MIDI интегрирован в системы MAC OS и iOS. А вот для других операционных систем нужно скачивать специальные драйверы и программное обеспечение.

Предлагаю создать сессию в системе MAC OS. Приложение для Windows выглядит абсолютно идентично: с таким же интерфейсом и функционалом.
Для тестов я буду использовать MAC Book. Чтобы открыть меню для работы с RTP-MIDI в MAC OS, зайдите в папку Applications и откройте приложение Audio MIDI Setup. Если окно настроек аудио откроется без окна MIDI, в панели меню откройте Window и в выпадающем меню нажмите на опцию Show MIDI Studio – перед вами появится окно, содержащие устройства MIDI.
Для работы с RTP-MIDI нам нужно нажать на иконку глобуса в верхнем правом углу. Давайте разберемся, что здесь к чему.

Чтобы создать новое подключение, необходимо:

  1. Создать новую сессию. Для этого нажмите кнопку + ниже окна My Sessions.

  2. Ниже раздела Sessions, с правой стороны окна настройки RTP-MIDI, необходимо указать номер порта, который будет использоваться для передачи и приема этого протокола. Как мы помним, RTP-MIDI использует низкоуровневый протокол UDP, а потому для приема и передачи данных мы должны указать конкретный порт. По умолчанию RTP-MIDI использует порт 5004, но, если он уже занят каким-нибудь приложением, вы можете указать любой другой свободный порт.
    Далее необходимо указать Local name, это имя виртуальной MIDI-карты, которая будет использоваться в нашей системе. Также необходимо указать Bonjour name, это имя сессии, которую будут видеть клиенты в сети.

  3. Теперь нужно активировать сессию, для этого необходимо поставить галочку напротив Eneblade верхней части окна Sessions.

  4. Также необходимо настроить правила безопасности, которые позволяют подготовить права подключения к сессии. В нижней части окна настроек RTP-MIDI cлева раскройте выпадающий список Who can connect to me и выберите одну из опций. Так как клиенты сами могут подключаться в сессию, иногда нужно ограничить правила подключения.

  5. Если необходимо добавить нового клиента вручную, нажмите кнопку + ниже окна Directory и введите имя, адрес и порт клиента, который должен стать участником вашей сессии.

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

Хотел бы также упомянуть об очень удобной опции, которая позволяет перенаправить потоки MIDI c сессии на физическое устройство и наоборот. Для этого в правой нижней части программы напротив Live routings раскройте необходимый список оборудования на вход или выход и выберите MIDI-порт, на который нужно направить поток с сессии или наоборот в сессию. В этом случае ваш компьютер выступает как конвертер, который преобразует физический MIDI и сетевой RTP-MIDI.

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

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

Третья особенность вытекает из второй: благодаря тому, что этот интерфейс работает через локальную сеть, он наследует все преимущества сетевых технологий передачи данных Ethernet, Wi-Fi и оптоволокна, включая дальность передачи и скорость сигнала, что является одним из слабых мест классического интерфейса MIDI.
И в-четвертых, в RTP-MIDI сессии уже реализована идеология соединения и разделения MIDI-сигнала между клиентами, что позволяет отказаться от использования специализированных MIDI сплиттеров и мерджеров.

Забегая вперед, скажу, что RTP-MIDI – это не единственная современная модификация MIDI-интерфейса, подробнее об этом в следующих статьях.
Кстати, если у вас есть конкретные вопросы или пожелания по темам, которые вы бы хотели разобрать вместе со мной на страницах журнала «Шоумастер», можете смело писать мне на почту и в редакцию журнала. До встречи в следующих статьях!


Остались вопросы? Тогда пиши. Facebook, Instagram, Behance, Telegram
Журнал Шоу Мастер. от 3 2019 (98)