• В протоколе нет системы контроля корректности порядка доставленных пакетов данных, что не может гарантировать корректное время таймкода на конечном устройстве.
• Но из-за того, что этот протокол максимально прост, общее время задержки между мастер устройством и клиентом минимально.
Протокол 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 сообщениях могут различаться в зависимости от программы, особенно в кастомных. Поэтому информация в этой главе лишь для понимания сути этого протокола таймкода. Если вам придется работать с таким типом протокола,