Так как 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, так как протокол был разработан для работы через локальную сеть, вам достаточно иметь любое устройство, которое имеет сетевую карту, для подключения к сети.
Вторая, для работы с RTP-MIDI нет необходимости использовать MIDI карты для передачи сообщений MIDI, так как протокол был разработан для работы через локальную сеть, вам достаточно иметь любое устройство, которое имеет сетевую карту, для подключения к сети.
Третья особенность вытекает из второй благодаря тому, что этот интерфейс работает через локальную сеть, он наследует все преимущества сетевых технологий передачи данных Ethernet, Wi-Fi и оптоволокна, одни из которых дальность передачи и скорость сигнала, что является одним из недостатков классического интерфейса MIDI.
И четвертая, в RTP-MIDI сессии уже реализована идеология соединения и разделения MIDI сигнала между клиентами, что также позволяет оказаться от использования специализированных MIDI сплиттеров и мерджеров.
BLE-MIDI
Bluetooth уже довольно взрослая беспроводная технология, которая активно используется в мобильных устройствах. А так как в мобильных устройствах всегда уделяли внимание экономии ресурсов батареи, то на свет появилась новая, более усовершенствованная версия Bluetooth, которая намного умнее использует ресурсы мобильного устройства. И по итогу новая версия стала называться Bluetooth Low Energy или, сокращенно, BLE, также у него есть и второе название Bluetooth SMART. Так как новый стандарт стал более привлекателен, производители стали активно внедрять новую технологию в свои устройства. MMA (MIDI Manufacturers Association) не стало исключением, в 2014 разработав новый протокол BLE-MIDI, передаваемый через Bluetooth Low Energy. И как следовало ожидать, компания Apple не заставила себя долго ждать и в этом же году объявила о поддержке протокола BLE-MIDI в своих вновь вышедших релизах операционных систем iOS 8 и OS X 10.10. В течение года компания Apple исправляла ошибки и дорабатывала этот протокол. И в 2015 году ассоциация MMA приняла все их изменения и утвердила финальную версию BLE-MIDI.
Теперь поговорим об особенностях BLE-MIDI. В отличие от RTP- MIDI, он не настолько функционален. К примеру, по этой технологии вы можете настроить подключение только между шестнадцатью устройствами. По причине того, что скорость Bluetooth не настолько велика. В сравнении с RTP-MIDI мы можем создать практически неограниченное количество сессий в одной системе, количество зависит от скорости нашей сети и мощности системы, на которой поднимаются сессии. И также Bluetooth имеет ограниченный радиус действия, до 10 метров прямой видимости. Но есть и плюсы, так же как и с RTP-MIDI, BLE-MIDI отправляет пакеты данных с абсолютными маркерами времени, что также обеспечивает синхронность приема пакетов данных. Также отличие BLE-MIDI подключения от других Bluetooth соединений в том, что BLE-MIDI использует отличную от стандартного Bluetooth систему передачи данных по радиоканалу, которая обеспечивает минимальные задержки на кодирование данных, передачу их по радиоканалу и декодинг для обеспечения максимальной скорости передачи данных между устройствами.
После этого всего вы можете задать вполне ожидаемый вопрос, для чего же тогда нужен BLE-MIDI, если у него столько недостатков по сравнению с RTP-MIDI? Ответ очень прост. Для работы с BLE-MIDI нам не нужно никакого дополнительного оборудования, не нужно создавать проводную или беспроводную сеть, мы просто включаем встроенный Bluetooth в устройстве, подключаемся к клиенту и начинаем работать. Это очень удобно, когда у нас нет необходимости в создании сложной системы синхронизации. К примеру, нам нужно просто с телефона отправить MIDI команды на компьютер, к которому привязаны определенные действия. Или нам нужно просто проверить нашу систему управления по MIDI, но у нас нет под рукой физически MIDI пульта, мы можем с эмулировать работу MIDI консоли с телефона, подключившись по BLE-MIDI.
Теперь об идеологии подключения BLE-MIDI. Хотя бы одно из BLE-MIDI устройств должно стать инициализатором подключения. В понятии BLE-MIDI это устройство должно начать «рекламировать» свое подключение, чтобы клиент мог его увидеть и подключиться. Как только клиент подключился к устройству, которое инициализировало подключение, мастер устройство перестает «рекламировать» свое подключение и спаривается с клиентом. Теперь устройства могут обмениваться сообщениями.
Также хочется упомянуть еще об одной особенности. Стандартные интерфейсы настройки подключения к Bluetooth устройствам по умолчанию не видят BLE-MIDI оборудование и его подключение. К примеру, когда мы на компьютере или на телефоне хотим подключить новое Bluetooth устройство, мы заходим в стандартное меню поиска новых устройств, находим в списке устройство и подключаем его.