Любую систему синхронизации можно описать простой схемой:
MASTER SYNC SLAVE
MASTER это главное управляющее устройство.
SLAVE это подчиненные исполняющие устройства.
В принципе, этой топологией можно описать любую систему: световая консоль > световые приборы, звуковой пульт > система звуковоспроизведения, видеосервер > видеопроекторы и т. д. Такое базовое определение необходимо для того, чтобы понимать, что чем управляет и как.
Если дать общее определение, то синхронизация это канал связи между главными и подчиненными системами, который определяется протоколами и типами синхронизации. При взгляде на современную шоу-индустрию мы обнаружим, что количество типов оборудования, производителей, новинок и каждый год, огромное количество. Как же все это соединить в одну систему, спросите вы? Ведь у каждого производителя свои протоколы, оборудование, стандарты. Но все не так страшно. Когда-то производители делали свои системы закрытыми, чтобы они могли работать только с выпущенным ими оборудованием. Сейчас ситуация изменилась в лучшую сторону. Так как технологии не стоят на месте и постоянно разрабатываются новые протоколы и способы передачи данных, производители давно подметили, что намного целесообразнее делать поддержку универсальных протоколов в своих технических и программных решениях. И протоколы синхронизации не стали исключением. Исходя из этого, не имеет значения, насколько разные системы вы используете. Если они умеют работать с протоколами синхронизации, значит, все эти системы могут работать вместе.
Мы обязательно затронем каждую составляющую общей системы MASTER SYNC SLAVE, но сейчас поговорим о классификации протоколов и интерфейсов синхронизации. Поняв это, вы с легкостью сможете определять, какой протокол и какой интерфейс передачи данных необходим для каждой из поставленных задач.
Протоколы синхронизации
Итак, как понятно из названия, временной тип протоколов синхронизации обусловлен временем. Это означает, что основная задача такого протокола кодировать передаваемое время. Все протоколы этой группы могут кодировать данные реального времени, кадры, секунды, минуты, часы и даже дату, в отличие от Time Clock, который находится в другой группе, так как этот протокол кодирует не время, а аудиобит.
Все вы, скорее всего, сталкивались с таким понятием, как BPM (Beats Per Minute). Этот показатель определяет скорость исполнения композиции. По сути, это метроном, который задает такт воспроизведения. Именно он и передается по протоколу Time Clock. Основная задача этого протокола синхронизировать такт мастер-устройства и подчиненного устройства без какой-либо привязки ко времени.
Некоторые протоколы синхронизации могут передавать не только время таймкода, но и сообщения команд, поэтому они заняли место как в первой, так и во второй группе (например, протокол TCnet).
Хочу еще немного затронуть особенность VITC. Это временной протокол, который пишется на ленту в пространстве между кадрами. Основная сфера его применения телевидение. В шоу-индустрии не так много систем, которые могут использовать этот протокол, и поэтому он практически не применяется для синхронизации. То же самое и с Time Clock. Из-за того, что он не передает реальное время, широкого применения в шоу-синхронизации этот протокол также не нашел.
Командные типы протоколов передают команды. Все очень просто и понятно. Единственное отличие между ними это гибкость и вариации команд, которые может передать тот или иной протокол. К примеру, MIDI note может передать только команду, в которой содержится информация о том, какую ноту воспроизвести и c какой громкостью. Также типы протоколов MIDI CC (Control Change) и MIDI PC (Program Change) очень схожи по простоте с MIDI note. Отличие только в том, что сообщения этих типов меняют настройки звукового синтезатора.
В то время, как MSC (MIDI Show Control) может передать конкретную команду конкретному устройству (которых в сети может быть несколько), MMC (MIDI Machine Control) может передавать команды на воспроизведение, остановку, выбор трека и время старта для профессиональных плееров и генераторов. А вот OSC (Open Sound Control) вообще никак не ограничивается синтаксисом передаваемых команд. Но об этом чуть позже.
Генеративный тип протоколов появился совсем недавно. Как вы могли заметить, в него входят все типы протоколов, которые базируются на командной идеологии. В чем же отличие? Чтобы понять это, давайте снова вернемся к временным протоколам. Все эти протоколы базируются на постоянной онлайн-синхронизации. Это означает, что сообщения о времени поступают от мастер-устройства на исполняющие устройства постоянно с определенной частотой, и синхронизация работает до тех пор, пока идет генерация сообщений. В случае командных типов протоколов синхронизация происходит только в момент отправки сообщения по конкретному событию, которое никак не привязано ко времени, то есть постоянная синхронизация отсутствует.