Читать книгу Sync a New Level of Show - Roma Robot - Страница 18

ALTERNATIVE SYNC PROTOCOLS
RTP-MIDI (Apple MIDI)

Оглавление

Благодаря тому, что интерфейс передачи 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, изначально необходимо поднять сеть, в которой будут находиться все наши сетевые клиенты. Как это сделать, мы уже узнали в главе «Концепт построения сетей».

Давайте теперь поговорим об идеологии этого протокола. В 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 выглядит абсолютно идентично с таким же интерфейсом и функционалом. Итак, чтобы открыть меню для работы с RTP-MIDI в MAC OS, зайдите в папку Applications и откройте приложение Audio MIDI Setup. Если перед вами откроется окно настроек аудио без окна MIDI, в панели меню откройте Window и в выпадающем меню нажмите на опцию Show MIDI Studio, и перед вами откроется окно, содержащее устройства MIDI.

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


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

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

2. Далее необходимо указать Local name, это имя виртуальной MIDI карты, которая будет использоваться в нашей системе. И также необходимо указать Bonjour name, это имя сессии, которую будут видеть клиенты в сети.

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

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

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


Список MIDI портов, сигнал с которых приложение RTP-MIDI может перенаправить в сессию


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

выступает как конвертер, который преобразует между собой физический MIDI и сетевой RTP-MIDI.


Подводя итог всех особенностей протокола RTP-MIDI, можно сказать:


• Первая особенность, этот протокол абсолютно совместим со всеми MIDI протоколами, которые были разработаны для передачи через классический серийный интерфейс данных MIDI.


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


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


• И четвертая, в RTP-MIDI сессии уже реализована идеология соединения и разделения MIDI сигнала между клиентами, что также позволяет оказаться от использования специализированных MIDI сплиттеров и мерджеров.

Sync a New Level of Show

Подняться наверх