В этом примере показано, как использовать поверхность управления MIDI в качестве физического пользовательского интерфейса к модели Simulink®, позволяя вам использовать кнопки, ползунки и кнопки, чтобы взаимодействовать с той моделью. Это может использоваться в Simulink, а также со сгенерированным кодом, работающим на рабочей станции.
Несмотря на то, что MIDI известен прежде всего своим использованием в аудиоприложениях, этот пример иллюстрирует, что поверхности управления MIDI имеют использование во многих других приложениях помимо аудио. В этом примере мы используем MIDI-контроллер, чтобы ввести пользователю конфигурируемое значение, которое может варьироваться во времени выполнения, мы используем его, чтобы управлять амплитудой сигналов, и в нескольких других иллюстративных целях. Этот пример не является всесторонним, а скорее может обеспечить вдохновение для другого творческого использования поверхности управления, чтобы взаимодействовать с моделью.
"Поверхностями управления MIDI", мы означаем физическое устройство это
имеет кнопки, ползунки и кнопки,
и использует MIDI (Цифровой интерфейс музыкальных инструментов) протокол.
Много MIDI-контроллеров включают USB-порт на компьютере и используют поддержку MIDI, встроенную в современные операционные системы. Определенные поверхности управления MIDI, которые мы использовали, включают Korg nanoKONTROL и Behringer BCF2000. Преимуществом устройства Korg является своя стоимость: это легко доступно онлайн по ценам, сопоставимым с той из хорошей мыши. Устройство Behringer является более дорогостоящим, но имеет расширенную возможность и отправить и получить сигналы MIDI (Korg может только отправить сигналы). Эта способность может использоваться, чтобы передать данные обратно из модели, чтобы сохранить поверхность управления в синхронизации с изменениями в модели. Мы используем эту возможность принести поверхность управления в синхронизации с начальной точкой модели, так, чтобы первоначально превратился в определенное управление, не вызывают резкие изменения в блоке выход.
Чтобы использовать ваш собственный контроллер с этим примером, включите его в USB-порт на компьютере и запустите модель audiomidi
. Убедитесь, что модель не запускается, когда вы включаете управляющее устройство. Модель первоначально сконфигурирована таким образом, что она отвечает на перемещение любого управления на MIDI-устройстве по умолчанию. Эта конструкция предназначается, чтобы облегчить и более вероятно что этот пример работает из поля на всех пользователей. В действительном варианте использования вы, вероятно, хотели бы связать отдельные средства управления с каждым подфрагментом модели. С этой целью можно использовать midiid
функционируйте, чтобы явным образом установить параметр MIDI-устройства на соответствующих блоках в модели, чтобы распознать определенное управление. Например, выполнение midiid
с устройством Korg nanoKONTROL производит следующую информацию:
>> [ctl device]=midiid Move the control you wish to identify; type ^C to abort. Waiting for control message... done
ctl =
1002
device =
nanoKONTROL
Фактическое значение ctl
зависит, в которое управление вы переместились.
Если вы будете использовать конкретный контроллер неоднократно, можно хотеть использовать setpref
команда, чтобы установить тот контроллер как устройство midi по умолчанию:
>> setpref('midi','DefaultDevice','nanoKONTROL')
Эта возможность особенно полезна на Linux, где ваша поверхность управления не может быть сразу распознана устройством по умолчанию.
После того, как контроллер включается, поразите кнопку воспроизведения в audiomidi. Теперь переместите любую кнопку или ползунок. Необходимо видеть изменения сигналов, которые построены в различных осциллографах в модели, когда вы перемещаете любую кнопку или ползунок. Модель первоначально сконфигурирована, чтобы ответить на любое управление.
Затем несколько вариантов использования в качестве примера обеспечиваются. Каждый пример использует основной MIDI Controls
блокируйтесь, чтобы выполнить различную задачу. Посмотрите под маской соответствующего блока в каждом примере, чтобы видеть, как тот вариант использования был выполнен. Чтобы снова использовать их в вашей собственной модели, только перетащите копию желаемого блока в вашу модель.
В примере 1 из модели мы видим самое простое использование этого управления. Это может действовать как источник, который является объектом контроля за работой пользователей. Исходный блок MIDI Controls (в исходной библиотеке блоков DSP), выводит значение между 0 и 1. Мы также создали немного модифицированный блок путем размещения маски в исходный блок, чтобы вывести источник со значениями, которые покрывают определяемую пользователем область значений.
В этом примере прямое приложение блока средств управления MIDI использует от 0 до 1 области значений как амплитудное управление на данном сигнале.
В этом примере мы видим пример, где сигнал разделен в два потока: и где может в интерактивном режиме управляться пользователем с поверхностью управления.
В этом примере мы создаем произвольную линейную комбинацию двух входных параметров: с тем, чтобы быть установленным в интерактивном режиме пользователем с поверхностью управления.
Наконец, пример 5 позволяет вводу данных пользователем желаемую фазу с поверхностью управления. Синусоида с той фазой затем сгенерирована. Фаза может в интерактивном режиме варьироваться, когда модель запускается.
Эта модель предоставлена, чтобы дать вдохновение для того, как блок MIDI Controls может использоваться, чтобы взаимодействовать с моделью. Другое использование возможно и поощряется, включая использование со сгенерированным кодом.