Интерфейс поверхности управления MIDI

О MIDI

Цифровой интерфейс музыкальных инструментов (MIDI) был первоначально разработан, чтобы соединить электронные музыкальные инструменты. Этот интерфейс гибок и имеет использование в приложениях далеко вне музыкальных инструментов. Его простой однонаправленный протокол обмена сообщениями поддерживает много различных видов обмена сообщениями. Одним видом сообщения MIDI является Control Change message, который используется, чтобы передать изменения в средствах управления, таких как кнопки, ползунки и кнопки.

Поверхности управления MIDI

MIDI control surface является устройством со средствами управления, которое отправляет сообщения Изменения Управления MIDI, когда вы поворачиваете кнопку, перемещаете ползунок или нажимаете на кнопку на ее поверхности. Каждое сообщение Изменения Управления указывает, какое измененное управление и каково его новое положение.

Поскольку протокол обмена сообщениями MIDI однонаправлен, решая, что конкретная позиция контроллера требует, чтобы получатель прислушался к сообщениям Изменения Управления, что контроллер отправляет. Протокол не поддерживает запрос MIDI-контроллера для его положения.

Самые простые поверхности управления MIDI однонаправлены: Они отправляют сообщения Изменения Управления MIDI, но не получают их. Более сложные поверхности управления двунаправлены: Они могут и отправить и получить сообщения Изменения Управления. Эти поверхности управления имеют кнопки или ползунки, которые могут действовать автоматически. Например, поверхность управления может иметь моторизованные ползунки или кнопки. Когда это получает сообщение Изменения Управления, соответствующее управление перемещается в положение в сообщении.

Используйте поверхности управления MIDI с MATLAB и Simulink

Audio Toolbox™ позволяет вам использовать поверхности управления MIDI, чтобы управлять программами MATLAB® и моделями Simulink® путем предусматривания возможности послушать сообщения Изменения Управления. Тулбокс также предусматривает ограниченную возможность отправить сообщения Изменения Управления, чтобы поддержать синхронизирующиеся средства управления MIDI. Этот пример касается общих функций MIDI. Для функций, характерных для аудио плагинов в MATLAB, смотрите Управление MIDI для Аудио Плагинов. Audio Toolbox общий интерфейс на поверхности управления MIDI включает пять функций и один блок:

  • midiid – В интерактивном режиме идентифицируйте управление MIDI.

  • midicontrols – Открытая группа MIDI управляет для чтения.

  • midiread – Возвратите новое значение средств управления MIDI.

  • midisync – Отправьте значения в средства управления MIDI для синхронизации.

  • midicallback – Вызовите указатель на функцию, когда MIDI будет управлять значением изменения.

  • Средства управления MIDI (блок) – Выходные значения от средств управления на MIDI управляют поверхностью. Блок MIDI Controls комбинирует функциональность общих функций MIDI в один блок для окружения Simulink.

Эта схема показывает типичный рабочий процесс, привлекающий общие функции MIDI в MATLAB. Для окружения Simulink следуйте за шагами 1 и 2, и затем используйте блок MIDI Controls для ведомого рабочего процесса пользовательского интерфейса.

1. Соедините MIDI-устройство и затем запустите MATLAB

Перед стартовым MATLAB соедините свою поверхность управления MIDI с вашим компьютером и включите его. Для инструкций по связи см. инструкции для своего MIDI-устройства. Если при запуске MATLAB прежде, чем соединить ваше устройство, MATLAB не может распознать ваше устройство, когда вы соединяете его. Чтобы исправить проблему, перезапустите MATLAB с устройством, уже соединенным.

2. Определите имя устройства и контрольные числа

Используйте функцию midiid, чтобы определить имя устройства и контрольные числа вашей поверхности управления MIDI. После того, как вы вызываете midiid, он продолжает слушать, пока он не получает сообщение Изменения Управления. Когда это получает сообщение Изменения Управления, это возвращает контрольное число, сопоставленное с номером MIDI-контроллера, которым вы управляли, и опционально возвращаете имя устройства своей поверхности управления MIDI. Производитель и хостовая операционная система определяют имя устройства. Смотрите Контрольные числа для объяснения того, как MATLAB вычисляет контрольное число.

Чтобы установить имя устройства по умолчанию, смотрите MIDI-устройство Значения по умолчанию Набора.

 Просмотрите пример

3. Создайте прослушиватель для сообщений изменения управления

Используйте функцию midicontrols, чтобы создать объект, который прислушивается к сообщениям Изменения Управления и кэширует новые значения, соответствующие заданным контроллерам. Когда вы создаете объект midicontrols, вы задаете поверхность управления MIDI ее именем устройства и определенными контроллерами на поверхности их связанными контрольными числами. Поскольку объект midicontrols не может запросить поверхность управления MIDI для начальных значений, рассмотрите устанавливающие начальные значения при создании объекта.

 Просмотрите пример

4. Получите текущие значения управления

Используйте функцию midiread, чтобы запросить ваш объект midicontrols для текущих значений управления. midiread возвращает матрицу со значениями, соответствующими всем контроллерам, которые слушает объект midicontrols. Обычно вы хотите поместить midiread в цикл аудиопотока для непрерывного обновления.

 Просмотрите пример

5. Синхронизируйте двунаправленные поверхности управления MIDI

Можно использовать midisync, чтобы отправить сообщения Изменения Управления в поверхность управления MIDI. Если поверхность управления MIDI двунаправлена, она настраивает заданные контроллеры. Одно важное использование midisync должно установить позиции контроллера на вашей поверхности управления MIDI к начальным значениям.

 Просмотрите пример

Другое важное использование midisync должно обновить вашу поверхность управления MIDI, если значения управления настроены в цикле аудиопотока. В этом случае вы вызываете midisync и с вашим объектом midicontrols и с обновленными значениями управления.

 Просмотрите пример

midisync является также мощным инструментом в системах, которые также включают пользовательские интерфейсы (UIs), так, чтобы, когда одно управление изменяется, другое управление отследило его. Как правило, вы реализуете такое отслеживание путем установки функций обратного вызова на обоих объект midicontrols (использующий midicallback) и управление пользовательского интерфейса. Коллбэк для объекта midicontrols отправляет новые значения в управление пользовательского интерфейса. Пользовательский интерфейс использует midisync, чтобы отправить новые значения в объект midicontrols и поверхность управления MIDI. Смотрите midisync для примеров.

Альтернатива потоковой обработке

Можно использовать midicallback в качестве альтернативы размещению midiread в цикле аудиопотока. Если объект midicontrols получает сообщение Изменения Управления, midicallback автоматически вызывает заданный указатель на функцию. Функция обратного вызова обычно вызывает midiread, чтобы определить новое значение средств управления MIDI. Можно использовать этот коллбэк когда это необходимо MIDI-контроллер, чтобы инициировать действие, такое как обновление пользовательского интерфейса. Используя этот подход предотвращает наличие программы MATLAB, постоянно запускающейся в командном окне.

Установите MIDI-устройство по умолчанию

Можно установить MIDI-устройство по умолчанию в среде MATLAB при помощи функции setpref. Используйте midiid, чтобы определить имя устройства, и затем использовать setpref, чтобы установить настройку.

[~,deviceName] = midiid
Move the control you wish to identify; type ^C to abort.
Waiting for control message... done

deviceName =

BCF2000
setpref('midi','DefaultDevice',deviceName)
Эта настройка сохраняется через сеансы работы с MATLAB, таким образом, только необходимо установить ее однажды, если вы не хотите изменить устройства.

Если вы не устанавливаете эту настройку, MATLAB и хостовая операционная система выбирают устройство для вас. Однако такой автовыбор может вызвать непредсказуемые результаты, потому что многим компьютерам установили "виртуальный" (программное обеспечение) MIDI-устройства, что вы не можете знать. Для предсказуемого поведения, набор настройка.

Контрольные числа

MATLAB задает контрольные числа как (MIDI channel number) × 1000 + (MIDI controller number).

  • MIDI channel number является каналом передачи что ваше использование устройства, чтобы отправить сообщения. Это значение находится в области значений 1–16.

  • MIDI controller number является номером, присвоенным отдельному управлению на вашем MIDI-устройстве. Это значение находится в области значений 1–127.

Ваше MIDI-устройство определяет значения MIDI channel number и MIDI controller number.

Смотрите также

Блоки

Функции

Похожие темы

Внешние веб-сайты