Интерфейс поверхности управления 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 Controls (блок) – Выходные значения от средств управления на 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.

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

Блоки

Функции

Похожие темы

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