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