После этого всего вы можете задать вполне ожидаемый вопрос, для чего же тогда нужен BLE-MIDI, если у него столько недостатков по сравнению с RTP-MIDI? Ответ очень прост. Для работы с BLE-MIDI нам не нужно никакого дополнительного оборудования, не нужно создавать проводную или беспроводную сеть, мы просто включаем встроенный Bluetooth в устройстве, подключаемся к клиенту и начинаем работать. Это очень удобно, когда у нас нет необходимости в создании сложной системы синхронизации. К примеру, нам нужно просто с телефона отправить MIDI команды на компьютер, к которому привязаны определенные действия. Или нам нужно просто проверить нашу систему управления по MIDI, но у нас нет под рукой физически MIDI пульта, мы можем с эмулировать работу MIDI консоли с телефона, подключившись по BLE-MIDI.
Теперь об идеологии подключения BLE-MIDI. Хотя бы одно из BLE-MIDI устройств должно стать инициализатором подключения. В понятии BLE-MIDI это устройство должно начать «рекламировать» свое подключение, чтобы клиент мог его увидеть и подключиться. Как только клиент подключился к устройству, которое инициализировало подключение, мастер устройство перестает «рекламировать» свое подключение и спаривается с клиентом. Теперь устройства могут обмениваться сообщениями.
Также хочется упомянуть еще об одной особенности. Стандартные интерфейсы настройки подключения к Bluetooth устройствам по умолчанию не видят BLE-MIDI оборудование и его подключение. К примеру, когда мы на компьютере или на телефоне хотим подключить новое Bluetooth устройство, мы заходим в стандартное меню поиска новых устройств, находим в списке устройство и подключаем его.
На Apple устройствах через стандартное меню мы не сможем найти BLE-MIDI устройства, а на Windows и Android мы увидим устройство, но либо нам не удастся к нему подключиться, либо подключение через некоторое время будет обрываться. Дело в том, что BLE-MIDI подключения отличаются от стандартных устройств, и для его подключения нам нужно использовать дополнительные программы, которые могут распознавать BLE-MIDI. Обычно на смартфонах и компьютерах устанавливается дополнительный софт, который может обнаружить такие соединения и также создать виртуальные MIDI порты.
Как я уже говорил, Apple – первая компания, которая интегрировала BLE-MIDI в свои операционные системы. В MAC OS уже есть необходимое программное обеспечение, которое позволяет и «рекламировать» подключение, и также видеть и подключаться к BLE-MIDI устройствам. В iOS хоть такая поддержка и есть, но отдельного софта для работы с этим протоколом нет. Apple реализовала возможность подключения оригинальной библиотеки BLE-MIDI от Apple для интеграции работы с этим протоколом в приложениях. Это значит, что если производитель софта хочет открыть в своем приложении возможность работать с этим протоколом, то ему достаточно подключить стандартную библиотеку. В других системах, Windows, Android и Linux, для работы с этим протоколом нужно ставить дополнительное программное обеспечение, которое будет позволять видеть такие подключения и подключаться к ним с эмуляцией виртуальных MIDI портов. Хорошая новость в том, что таких приложений существует не одно, и пользователь сам может выбрать, с каким ему удобнее работать. Пример разных приложений и их возможностей мы разберем в главе «Программное обеспечение для работы с протоколами синхронизации».
А сейчас предлагаю посмотреть, как устроено приложение для работы с BLE-MIDI в MAC OS.
Чтобы попасть в настройки BLE-MIDI в MAC OS, так же, как и в случае с RTP-MIDI, нам нужно открыть окно MIDI Studio. Напомню, для этого нужно зайти в папку Applications и открыть приложение Audio MIDI Setup. Если перед вами откроется окно настроек аудио, без окна MIDI, в панели меню откройте Window и в выпадающем меню нажмите на опцию Show MIDI Studio. Перед вами откроется окно со всеми MIDI картами, которые подключены к системе, и также вы увидите иконки для доступа к дополнительным меню для работы с технологиями передачи MIDI.
Чтобы открыть меню настройки технологии BLE-MIDI, необходимо нажать на иконку Bluetooth в правой части панели управления.
Как мы видим, здесь все довольно просто. В поле NAME мы можем задать имя BLE-MIDI подключения, которое будут видеть остальные клиенты. Чтобы начать «рекламирование» своего подключения, достаточно нажать кнопку Advertise справа от поля ввода NAME. Ниже мы можем увидеть список устройств, которые также «рекламируют» свое подключение, и также тех клиентов, которые уже подключились к нам. Если мы хотим подключиться как клиент к серверу, нам нужно просто нажать на кнопку Connect напротив того устройства, к которому мы хотим подключиться.
Резюмируя особенности BLE-MIDI протокола, можно сказать:
• Основное предназначение BLE-MIDI – организация простой синхронизации между несколькими устройствами.
• BLE-MIDI – это исключительно беспроводная технология передачи MIDI сообщений, ограниченная дистанцией работы Bluetooth, в среднем это до 10 метров.
• Чтобы увидеть и подключить BLE-MIDI устройства, необходимо приложение, которое поддерживает работу с этим интерфейсом передачи данных.
• Пакеты данных, передаваемые по BLE-MIDI, имеют в заголовке маркеры времени, что позволяет принимающему устройству вычислить задержку на доставку и определить правильный порядок полученных пакетов данных.
• И также, благодаря технологии BLE-MIDI, сообщения поэтому протоколу передаются с минимальными задержками, что делает его вполне надежным и быстрым.
TC Net
Протокол TCNet был создан в 2004 году программистами компании TC Supply. Основное направление этой компании – создание программных продуктов для синхронизации шоу систем с DJ оборудованием, поэтому по большей части весь функционал этого протокола опирается на потребности клубной сферы. Базируется этот протокол на технологии передачи данных Ethernet.
Несмотря на то, что этот протокол синхронизации имеет ряд преимуществ при работе с таймкодом в сравнении с SMPTE, в профессиональной концертной индустрии он широко не используется. Но при этом в клубной сфере это один из самых функциональных протоколов для синхронизации.
По своей сути этот протокол очень схож с RTP-MIDI. Он также работает через транспортный протокол UDP, также каждое устройство рекламирует себя в сети, в одной сети также может быть несколько мастер устройств, и также может быть множество клиентов, которые могут сами выбирать, данные с какого сервера получать.
Если говорить об отличиях, то так как TC Net не был принят ни одной из официальных ассоциаций, то единственная компания, которая поддержала этот протокол, была Pioneer, в сравнении с RTP-MIDI, которую по итогу модернизировала компания Apple, чьи изменения впоследствии были приняты двумя ассоциациями MMA и JMSC. И также компания Apple включила поддержку этого протокола в свои операционные системы, что несомненно явилось решающим фактором в популяризации этого протокола.
Но пожалуй, основное отличие этих двух протоколов в том, что RTP-MIDI передает данные серийного протокола MIDI, а TC Net работает полностью со своими собственными данными. С одной стороны, это плохо, потому что этот протокол полностью несовместим со старыми системами, а с другой стороны, такой протокол передачи данных синхронизации не зажат рамками возможностей старых технологий.
Итак, давайте более подробно разберем, что может протокол TC Net. Несмотря на название самого протокола, он передает информацию не только о таймкоде, но и дополнительно метаданные.
Timecode
Как и следовало ожидать, это более усовершенствованная версия классического SMPTE таймкода.
• Через TC Net можно передать несколько источников таймкода.
• Скорость таймкода может изменяться в пределах 0%—200%.
• Направление таймкода может быть как вперед, так и назад.
Media Information
TC Net может передавать текущую информацию о медиа данных с каждого DJ проигрывателя.
• Трек и аудио метаданные.
• BMP и скорость воспроизведения.
• Данные для построения волновой формы трека.
• Название трека, альбома, исполнителя, изображение обложки альбома.
• Служебные сообщения для управления сторонними программами.
В общей сети TC Net выделяются три типа устройств.
Master
Этот тип устройства может предоставлять в сеть таймкод и отправлять дополнительные мета данные и команды управления.
Slave
Этот тип устройств может принимать данные таймкода, мета данные и команды управления, при этом Slave тип устройств может отправлять только команды управления.
Repeater
Этот тип устройств может принимать и отправлять все данные синхронизации и управления.
Позже мы с вами еще вернемся к этому протоколу, когда будем обсуждать возможные варианты синхронизации DJ оборудования с шоу системами.
ArtTimeCode
Скорее всего, вы уже не в первый раз слышите о такой компании, как Artistic License, и о протоколе передачи данных ArtNet, главная цель которого – передача данных серийного протокола DMX512 через сеть Ethernet. Но мало кто знает, что этот протокол также поддерживает передачу данных таймкода. Модификация протокола ArtNet для передачи таймкода называется ArtTimeCode, также многие для упрощения называют его ArtNet Timecode.
В отличие от предыдущего протокола, ArtNet Timecode передает только данные времени, но при этом он также поддерживает большие отклонения от скорости воспроизведения таймкода и его направления.
Технология передачи таймкода довольна проста и очень схожа с ArtNet протоколом.
• В сети есть только одно мастер устройство, которое может транслировать либо Broadcast, либо Unicast пакеты данных, все остальные клиенты принимают эти данные.
• Мастер устройство не знает, есть ли в сети хоть кто-то, кто может принять данные таймкода, и также мастер устройство никогда не узнает, если из сети пропал один из клиентов.
• В протоколе нет системы контроля корректности порядка доставленных пакетов данных, что не может гарантировать корректное время таймкода на конечном устройстве.
• Но из-за того, что этот протокол максимально прост, общее время задержки между мастер устройством и клиентом минимально.
Протокол ArtNet сейчас широко используется в шоу-индустрии, а вот его собрат ArtTimeCode из-за своих существенных недостатков так и не получил широкого применения в профессиональном оборудовании и программном обеспечении.
OSC Timecode
OSC Timecode появился из среды объектно-визуального программирования нодами (Node5). Как яркий пример такого программного обеспечения, можно привести VVVV и TouchDesigner. Так как протокол OSC очень прост в использовании, то очень часто программистами он используется для передачи кадров таймкода между компьютерами и своими серверами. Этот способ получил популярность по двум причинам.
• Для передачи такого таймкода не нужно никакого специализированного оборудования, наподобие звуковых и MIDI карт.
• Ноды (Node6) и библиотеки для работы с протоколом OSC присутствуют во всех подобных программных средах разработок. Для работы с другими протоколами синхронизации, базирующимися на технологии Ethernet, подобными RTP-MIDI, TCNet и ArtNet Timecode, программистам необходимо писать на низкоуровневом языке собственные ноды для расшифровки сообщений этих протоколов, что зачастую является большой проблемой, так как необходимо знать на более высоком уровне языки программирования. В случае с OSC подобного не требуется.
Так как OSC является протоколом синхронизации, в котором нет четкого определения самих сообщений, то производители программного обеспечения и оборудования сами определяют их формат. В принципе, любой программист, работая на любой платформе, может придумать свои собственные OSC сообщения для передачи данных синхронизации.
Если мы вспомним суть работы любого таймкода, изученного нами ранее, то увидим, что таймкод – это набор сообщений, передаваемых с определенной частотой, несущих в себе один кадр таймкода, который содержит абсолютное значение времени. В зависимости от протокола, с сообщением времени может передаваться дополнительная информация.
Кадр OSC Timecode представляет из себя одно OSC сообщение, где аргументом является беззнаковая переменная типа Int32, в которой хранится информация таймкода одного кадра. Адрес такого сообщения не регламентирован, в зависимости от каждого проекта или программиста, он может быть придуман произвольно. Самый распространенный и простой адрес – /timecode/. При необходимости использовать независимые источники тайм кода в адрес добавляют номер источника или устройства.
Хочу обратить внимание, что по сути OSC Timecode никак и никем не стандартизирован, поэтому и адреса, и даже форматы аргументов в OSC Timecode сообщениях могут различаться в зависимости от программы, особенно в кастомных. Поэтому информация в этой главе лишь для понимания сути этого протокола таймкода. Если вам придется работать с таким типом протокола, то обязательно уточняйте ключевые параметры таких OSC сообщений.
AVB/Dante/MADI
Audio Video Bridging (AVB), Dante, Multichannel Audio Digital Interface (MADI) – все это сетевые протоколы передачи несжатого многоканального цифрового аудиосигнала с минимальными задержками через сеть Ethernet.
Может возникнуть вопрос, каким образом эти цифровые аудио интерфейсы могут использоваться для синхронизации? Давайте вспомним один из самых старых интерфейсов LTC. Как мы уже разбирали, это цифровой протокол, передаваемый через аналоговый аудиоинтерфейс. Для его передачи мы можем воспользоваться оригинальным аналоговым звуковым трактом или его современными цифровыми модификациями. Своего рода, это возрождение старого стандарта в новом цифровом интерфейсе. Наподобие серийного интерфейса MIDI, который переродился в цифровой протокол RTP-MIDI.
Использование AVB/Dante/MADI протоколов для передачи LTC является спорным вопросом, так как кроме очевидных преимуществ есть также и ряд недостатков. Давайте выделим основные плюсы и минусы такого способа передачи LTC.
Преимущества:
• AVB/Dante/MADI использует технологии сети Ethernet, что позволяет передать цифровой сигнал по витой паре или оптическому кабелю на большие расстояния с минимальными задержками и потерями.
• Практически все профессиональные цифровые аудио пульты, звуковые карты, плееры и другое аудио оборудование работает с цифровым протоколом AVB, Dante или MADI.
• Существуют цифровые аудио драйвера AVB/Dante/MADI для компьютеров, которые позволяют в операционной системе транслировать аудио по цифровому протоколу, даже без наличия звуковых карт. Более того, Apple MAC OS по умолчанию может работать с AVB без установки дополнительных драйверов.
Недостатки:
• Используя AVB/Dante/MADI, возможно передать только LTC таймкод.
• При работе с LTC через оборудование, не предназначенное для этого, сложно контролировать корректность передачи сигнала.
• Для подключения физических клиентов LTC таймкода все равно необходимо аудио оборудование для конвертации AVB/Dante/MADI в аналоговый аудиосигнал.
• Для работы с AVB/Dante/MADI необходимы профессиональные знания для использования этих протоколов.
Много лет назад, когда существовал только интерфейс таймкода LTC, особого выбора не было, но сейчас, когда есть множество разных цифровых интерфейсов синхронизации, которые намного надежнее и функциональнее, игнорировать новые разработки и пытаться оживить устаревшие протоколы неразумно.
Когда стоит вопрос использования современных интерфейсов передачи данных в синхронизации, зачастую это обусловлено необходимостью передачи сигнала на большие расстояния, что не могут позволить себе интерфейс MIDI или LTC.
Конечно, можно проявить находчивость, потратить время на изучение протоколов AVB/Dante/MADI и передавать через них LTC, но я задам лишь один вопрос: зачем изобретать велосипед, если все уже летают на космических кораблях? Если все же встал вопрос передачи синхронизации на большие расстояния, куда рациональнее использовать RTP-MIDI, OSC или даже ArtNet Timecode и TCNet.
EQUIPMENT AND COMMUTATION
Важным звеном в цепочке синхронизации является оборудование, которое непосредственно генерирует и принимает протоколы синхронизации. Чтобы синхронизация работала корректно, нужно знать, какое оборудование и для каких целей использовать. Также немаловажной составляющей является коммутация, которая, в зависимости от используемого протокола, диктует свои правила эксплуатации.
Все самые распространенные протоколы синхронизации, которые используются в шоу-индустрии, передаются посредством нескольких интерфейсов LTC, MIDI и Ethernet. Мы подробно разберем все технические особенности в работе с каждым из них.
Передача и прием LTC
LTC – это линейный временной код, передаваемый через аналоговый аудиоканал. Частота работы этого сигнала находится в пределах звукового диапазона, поэтому этот сигнал легко воспринимается звуковым оборудованием и его можно воспроизвести на аудиосистеме. Звук, который мы услышим, будет схож со звуком, который издавали раньше DialUP модемы при подключении к интернету, т.к. и в первом, и во втором случае передается цифровой сигнал по аналоговому каналу.
Для генерации LTC сигнала необходима либо звуковая карта с балансными аудиовыходами, либо таймкод LTC генератор. Самый распространенный разъем, который используется для LTC, это звуковой XLR коннектор, так как этот разъем имеет три пина, что необходимо для передачи балансного сигнала. Помимо этого, разъем имеет замок фиксатор, что делает его более надежным. Также в звуке используется балансный 1/4 Jack (TRS) разъем, который также имеет три пина для передачи сигнала. Некоторые производители для передачи, приема LTC также используют этот разъем, что вполне допустимо.
Стандартные звуковые карты с mini-Jack выходами плохо подходят для работы с линейным таймкодом по причине того, что звуковые выходы у таких карт не балансные. Чтобы понять, почему это важно, давайте разберем основные принципы и различия балансного и небалансного типов сигнала.
Небалансный (также его называют несимметричный, линейный) сигнал передается по двум проводам: один провод сигнал, другой – земля. Данный способ передачи сигналов отличается исключительной простотой реализации, однако он не способен противостоять помехам на физическом уровне.
Балансный сигнал использует для передачи три провода: два сигнала HOT и COLD (прямой и инверсный) и третий провод земля. Электрическое сопротивление сигнальных проводов по отношению к земле сбалансировано (то есть равно), что нашло отражение в названии. Сигналы по двум проводам балансной линии передаются в противофазе с равной амплитудой относительно земли.
Балансные входы и выходы звуковой карты
Операционный усилитель на балансном входе устройства вычитает из прямого сигнала инверсный, в результате помехи, одинаково наведенные на две фазы такой линии, вычитаются, а полезный сигнал увеличивается по амплитуде в два раза.
В сравнении с небалансным подключением балансное имеет два основных преимущества, обусловленных его техническими особенностями.
Первое преимущество – возможность передавать аналоговый и цифровой сигнал без существенных искажений на значительное расстояние.
Это, прежде всего, обусловлено в два раза большей разностью потенциалов между прямым и инверсным сигналом балансной линии в сравнении с разностью потенциалов между землей и единственным сигналом небалансной линии.
Вторая особенность, тесно связанная с первой, – лучшая в сравнении с небалансным подключением помехоустойчивость, которая достигается таким фактором, как анализ наведенных шумов на две линии сигналов в противофазе.
Небалансное подключение позволяет получать стабильный сигнал без существенных искажений на расстояниях, на практике не превышающих 15—20 метров. А при использовании балансного аудио подключения мы можем передать сигнал на расстоянии 200 метров и более. Но тут же хочу обратить внимание, что это не значит, что мы можем передать LTC на то же расстояние, что и аудиосигнал. Причина тому – ряд условий, которые не позволят нам это сделать.
Если не учитывать эти условия, то без потерь мы можем передать по балансной линии сигнал LTC на расстояние не более 30–50 метров. Чтобы понять, какие условия не могут нам позволить передать этот сигнал на большее расстояние, давайте сперва изучим особенности передачи цифрового LTC по аудиоканалу, а потом вновь вернемся к этому вопросу.
Большинство внешних звуковых карт имеет балансные выходы, что позволяет более качественно работать с передачей линейного таймкода, также эти карты позволяют полноценно работать с двумя или более каналами аудио и при этом на отдельном канале работать с LTC, что невозможно со встроенными двухканальными картами.
Интерфейс синхронизации LTC изначально был придуман для использования на телестудиях, где и по сей день используется самое профессиональное оборудование.
Longitudinal Time Code был разработан не для передачи через низкокачественный звуковой тракт и тем более не через домашние аудиокарты и разъем mini-Jack. Он был разработан для работы с профессиональными балансными входами и выходами, которыми были оснащены все профессиональные аудио и видеосистемы. Да и передавать LTC на дальние расстояния не было необходимости.
Сейчас в различное оборудование, которое работает с таймкодом, уже внедрены специальные алгоритмы для исправления самого искаженного сигнала, которые позволяют компенсировать многие ошибки при работе с линейным таймкодом. Но это всегда игра в лотерею. Как только обстоятельства усугубляются факторами, которые мы не сможем спрогнозировать, наша система синхронизации может обрушиться. Поэтому лучше следовать технологиям и стандартам, чтобы иметь такую надежность системы, которая бы обеспечила нам безотказную работу в ста случаях из ста!
Так как LTC – это цифровой сигнал, передаваемый по аудиоинтерфейсу, то коммутируется он при помощи балансных аудиокабелей, но здесь появляются свои особенности с передачей цифрового сигнала по аудиоканалу.
График SMPTE не синусоидальный, как у аудиосигнала, а квадратный, т.к. сигнал кодируется в бинарной системе. На небольших расстояниях тип сигнала не принципиален. При большой длине аудио кабеля появляются такие факторы, как емкость кабеля и его индукция. Чем это плохо? А тем, что квадратная форма сигнала становится синусоидальной и смещается фаза восхождения сигнала. Это грозит тем, что сильно измененный LTC сигнал попросту не будет читаться принимающим устройством или будет нестабилен, и часть кадров будет теряться, а как следствие этого, синхронизация будет некорректная.
То же самое происходит, если LTC сигнал пропустить через звуковой пульт или аудио сплиттер. Многие специалисты, не до конца понимая принципиальное отличие звукового сигнала от LTC, наивно полагают, что с цифровым сигналом SMPTE можно работать точно так же, как и с обычным аналоговым сигналом, что является грубейшей ошибкой. Так как LTC – это импульсный сигнал с абсолютно другими характеристиками. К примеру, если подать с одинаковым уровнем LTC и аналоговый сигнал, то LTC будет звучать в два раза громче, и на звуковых пультах нормальный уровень LTC будет приниматься как перегруженный, что является нормой, потому что это цифровой сигнал. В таких случаях «специалисты» понижают уровень генерируемого LTC сигнала, тем самым понижая качество помехоустойчивости линии.
Так как LTC – это цифровой сигнал, для него очень важен такой параметр, как громкость, так как громкость в аналоговом формате задает цифровую амплитуду между логическим нулем и единицей. Поэтому стоит очень внимательно следить за уровнем выходного сигнала LTC со звуковой карты. Рабочий уровень LTC от +4dBu до +8dBu (1.228v. – 1.95v.), если уровень сигнала опустить значительно ниже, то таймкод либо вообще не будет определяться принимающими устройствами, либо будет нестабилен. Часто по невнимательности на рабочем компьютере опускают общий рабочий уровень звуковой карты в системе, от этого падает не только сигнал аудиоканалов, но и LTC. Добавьте к этому генерацию со встроенной звуковой карты, аудио сплиттер или звуковой пульт, который делит LTC сигнал, и вы получите изрядно потрепанный LTC сигнал, который может доставить вам ряд неудобств при синхронизации.