Open Sound Control ( OSC ) — это протокол для сетевого взаимодействия звуковых синтезаторов , компьютеров и других мультимедийных устройств для таких целей, как музыкальное исполнение или управление шоу . Преимущества OSC включают совместимость , точность, гибкость и улучшенную организацию и документирование. [1] Его недостатки включают неэффективное кодирование информации , повышенную нагрузку на встроенные процессоры , [2] и отсутствие стандартизированных сообщений/совместимости. [3] [4] [5] Первая спецификация была выпущена в марте 2002 года.
OSC — это формат контента, разработанный в CNMAT Адрианом Фридом и Мэттом Райтом, сопоставимый с XML , WDDX или JSON . [6] Первоначально он был предназначен для обмена данными музыкального исполнения ( жестами , параметрами и последовательностями нот) между музыкальными инструментами (особенно электронными музыкальными инструментами, такими как синтезаторы ), компьютерами и другими мультимедийными устройствами. OSC иногда используется как альтернатива стандарту MIDI 1983 года , когда требуется более высокое разрешение и более богатое пространство параметров. Сообщения OSC передаются через Интернет и в пределах локальных подсетей с использованием UDP/IP и Ethernet . Сообщения OSC между контроллерами жестов обычно передаются через последовательные конечные точки USB, обернутые в протокол SLIP . [ необходима цитата ]
Основные особенности OSC по сравнению с MIDI включают в себя: [1]
Существуют десятки приложений OSC, включая среды обработки звука и мультимедиа в реальном времени, инструменты веб-интерактивности, программные синтезаторы, языки программирования и аппаратные устройства. OSC добился широкого применения в таких областях, как музыкальное выражение , робототехника, интерфейсы видеопроизводства, распределенные музыкальные системы и межпроцессное взаимодействие .
Стандарт сообщества TUIO для осязаемых интерфейсов, таких как мультитач, построен на основе OSC. Аналогично система GDIF для представления жестов интегрирует OSC.
OSC широко используется в экспериментальных музыкальных контроллерах и встроен в несколько продуктов с открытым исходным кодом и коммерческих продуктов.
Язык программирования музыки Open Sound World (OSW) разработан на основе обмена сообщениями OSC. [7]
OSC — это сердце API плагина DSSI , эволюция API LADSPA, позволяющая конечному GUI взаимодействовать с ядром плагина посредством обмена сообщениями с хостом плагина. LADSPA и DSSI — это API, предназначенные для аудиоэффектов и синтезаторов.
В 2007 году было предложено стандартизированное пространство имен в OSC под названием SYN для связи между контроллерами, синтезаторами и хостами.
Известные программные обеспечения с реализациями OSC включают в себя:
Известные аппаратные средства с реализацией OSC включают в себя:
Сообщения OSC состоят из шаблона адреса (например, /oscillator/4/frequency
), строки тега типа (например, ,fi
для аргумента float32 , за которым следует аргумент int32 ), и самих аргументов (которые могут включать тег времени). [8] Шаблоны адресов образуют иерархическое пространство имен , напоминающее путь файловой системы Unix или URL , и ссылаются на « Методы » внутри сервера, которые вызываются с прикрепленными аргументами . Строки тега типа представляют собой компактное строковое представление типов аргументов. Аргументы представлены в двоичной форме с выравниванием по четыре байта . Поддерживаются следующие основные типы:
Пример сообщения включен в спецификацию (с нулевыми байтами заполнения, представленными как ␀): /oscillator/4/frequency␀,f␀␀
, за которым следует 4-байтовое представление float32 числа 440.0: 0x43dc0000. [9]
Сообщения могут быть объединены в пакеты, которые, в свою очередь, могут быть объединены в пакеты и т. д. Каждый пакет содержит временную метку, которая определяет, должен ли сервер ответить немедленно или в какой-то момент в будущем. [8]
Приложения обычно используют расширения этого основного набора. Совсем недавно некоторые из этих расширений, такие как компактный тип Boolean, были интегрированы в требуемые основные типы OSC 1.1.
Преимущества OSC перед MIDI в первую очередь заключаются в подключении к Интернету; разрешении типов данных ; и сравнительной простоте указания символического пути, в отличие от указания всех соединений как семибитных чисел с семибитными или четырнадцатибитными типами данных. [8] Однако эта читабельность для человека имеет недостаток, заключающийся в неэффективности передачи и большей сложности анализа встроенной прошивкой. [2]
Спецификация не определяет никаких конкретных методов OSC или контейнеров OSC. Все сообщения определяются реализацией и различаются от сервера к серверу.
{{cite web}}
: Отсутствует или пусто |url=
( помощь )Одна из причин, по которой OSC пока не заменил MIDI, заключается в том, что нет возможности «подключить и играть»… В OSC нет стандартного пространства имен для взаимодействия, например, с синтезатором
OSC страдает от надмножества этой проблемы: это анархия, и намеренно. Владельцы спецификации так стремились избежать наложения на нее ограничений, что оборудованию стало все труднее с ней справляться. … Что еще серьезнее, существует проблема совместимости. OSC не имеет определенного пространства имен даже для самых распространенных музыкальных обменов, до такой степени, что его нельзя использовать для отправки средней до с секвенсора на синтезатор стандартизированным образом.
OSC также вводит новые препятствия. Во-первых, поскольку нет фиксированного набора сообщений, каждый участвующий сервер должен знать, какие сообщения он может отправлять серверам, с которыми он намерен взаимодействовать. В настоящее время стандарт OSC не предоставляет средства программного обнаружения всех сообщений, на которые отвечает сервер