Цифровой интерфейс музыкальных инструментов (MIDI) был первоначально разработан, чтобы соединить электронные музыкальные инструменты. Этот интерфейс гибок и имеет использование в приложениях далеко вне музыкальных инструментов. Его простой однонаправленный протокол обмена сообщениями поддерживает много различных видов обмена сообщениями. Одним видом сообщения MIDI является Control Change message, который используется, чтобы передать изменения в средствах управления, таких как кнопки, ползунки и кнопки.
MIDI control surface является устройством со средствами управления, которое отправляет сообщения Изменения Управления MIDI, когда вы поворачиваете кнопку, перемещаете ползунок или нажимаете на кнопку на ее поверхности. Каждое сообщение Изменения Управления указывает, какое измененное управление и каково его новое положение.
Поскольку протокол обмена сообщениями MIDI однонаправлен, решая, что конкретная позиция контроллера требует, чтобы получатель прислушался к сообщениям Изменения Управления, что контроллер отправляет. Протокол не поддерживает запрос MIDI-контроллера для его положения.
Самые простые поверхности управления MIDI однонаправлены: Они отправляют сообщения Изменения Управления MIDI, но не получают их. Более сложные поверхности управления двунаправлены: Они могут и отправить и получить сообщения Изменения Управления. Эти поверхности управления имеют кнопки или ползунки, которые могут действовать автоматически. Например, поверхность управления может иметь моторизованные ползунки или кнопки. Когда это получает сообщение Изменения Управления, соответствующее управление перемещается в положение в сообщении.
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 в ведомом рабочем процессе пользовательского интерфейса.
Перед стартовым MATLAB соедините свою поверхность управления MIDI с вашим компьютером и включите его. Для инструкций по связи см. инструкции для своего MIDI-устройства. Если при запуске MATLAB прежде, чем соединить ваше устройство, MATLAB не может распознать ваше устройство, когда вы соединяете его. Чтобы откорректировать проблему, перезапустите MATLAB с устройством, уже соединенным.
Используйте midiid
функция, чтобы определить имя устройства и контрольные числа вашего MIDI управляет поверхностью. После того, как вы вызываете midiid
, это продолжает слушать, пока это не получает сообщение Изменения Управления. Когда это получает сообщение Изменения Управления, это возвращает контрольное число, сопоставленное с номером MIDI-контроллера, которым вы управляли, и опционально возвращаете имя устройства своей поверхности управления MIDI. Производитель и хостовая операционная система определяют имя устройства. Смотрите Контрольные числа для объяснения того, как MATLAB вычисляет контрольное число.
Чтобы установить имя устройства по умолчанию, смотрите MIDI-устройство Значения по умолчанию Набора.
Используйте midicontrols
функция, чтобы создать объект, который прислушивается к сообщениям Изменения Управления и кэширует новые значения, соответствующие заданным контроллерам. Когда вы создаете midicontrols
объект, вы задаете поверхность управления MIDI ее именем устройства и определенными контроллерами на поверхности их связанными контрольными числами. Поскольку midicontrols
объект не может запросить поверхность управления MIDI для начальных значений, рассмотреть устанавливающие начальные значения при создании объекта.
Используйте midiread
функционируйте, чтобы запросить ваш midicontrols
объект для текущих значений управления. midiread
возвращает матрицу со значениями, соответствующими всем контроллерам midicontrols
объект слушает. Обычно вы хотите поместить midiread
в цикле аудиопотока для непрерывного обновления.
Можно использовать 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-устройство по умолчанию в среде 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 и хостовая операционная система выбирают устройство для вас. Однако такой автовыбор может вызвать непредсказуемые результаты, потому что многим компьютерам установили "виртуальный" (программное обеспечение) 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.
midicallback
| midicontrols
| midiid
| midiread
| midisync