exponenta event banner

configureMIDI

Настройка соединений MIDI между аудиообъектом и контроллером MIDI

Описание

пример

configureMIDI(audioObject) открывает интерфейс пользователя конфигурации MIDI (UI). Используйте пользовательский интерфейс для синхронизации параметров плагина, audioObject, к элементам управления MIDI на устройстве MIDI по умолчанию. Также можно создать код MATLAB ®, соответствующий конфигурации MIDI, разработанной с помощью configureMIDI ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС.

Чтобы установить устройство по умолчанию, введите следующий синтаксис в командной строке:

setpref midi DefaultDevice deviceNameValue

deviceNameValue - имя устройства MIDI, назначенное производителем устройства или операционной системой хоста. Использовать midiid чтобы получить имя устройства, соответствующее устройству MIDI.

пример

configureMIDI(audioObject,propertyName) делает свойство, propertyName, ответьте на любой элемент управления на устройстве MIDI по умолчанию.

пример

configureMIDI(audioObject,propertyName,controlNumber) делает свойство ответным на элемент управления MIDI, указанный controlNumber.

пример

configureMIDI(audioObject,propertyName,controlNumber,'DeviceName',deviceNameValue) делает свойство ответным на элемент управления MIDI, указанный controlNumber на устройстве, указанном deviceNameValue.

Примеры

свернуть все

  1. Откройте интерфейс пользователя конфигурации MIDI для объекта плагина параметрического эквалайзера.

    parametricEQPlugin = audiopluginexample.ParametricEqualizerWithUDP;
    configureMIDI(parametricEQPlugin)
  2. В интерфейсе пользователя выберите свойство для синхронизации с устройством MIDI по умолчанию.

  3. На устройстве MIDI используйте элемент управления, который требуется синхронизировать с выбранным свойством плагина. Элемент управления отображается в поле Operate MIDI control to synchronize.

  4. Повторите шаги 2 и 3 для синхронизации нескольких свойств с несколькими элементами управления MIDI.

    Отключение свойства и элемента управления, отображаемого в данный момент на configureMIDI Нажмите кнопку Сброс элемента управления.

  5. Нажмите кнопку ОК.

    Указанные элементы управления и свойства MIDI синхронизированы.

Создание кода MATLAB, соответствующего конфигурации MIDI, разработанной с помощью configureMIDI ПОЛЬЗОВАТЕЛЬСКИЙ ИНТЕРФЕЙС. Код MATLAB можно встроить в моделирование, чтобы не возникало необходимости в повторном открытии пользовательского интерфейса для восстановления выбранных соединений MIDI.

  1. Откройте интерфейс пользователя конфигурации MIDI для объекта плагина параметрического эквалайзера.

    parametricEQPlugin = audiopluginexample.ParametricEqualizerWithUDP;
    configureMIDI(parametricEQPlugin)
  2. В интерфейсе пользователя выберите свойство для синхронизации с устройством MIDI по умолчанию.

  3. На устройстве MIDI используйте элемент управления, который требуется синхронизировать с выбранным свойством плагина. Элемент управления отображается в поле Operate MIDI control to synchronize.

  4. Установите флажок Генерировать код MATLAB (Generate MATLAB Code).

  5. Нажмите кнопку OK. Созданный код MATLAB соответствует разработанной конфигурации MIDI.

Чтобы свойство плагина отвечало на любой элемент управления на устройстве MIDI по умолчанию.

parametricEQPlugin = audiopluginexample.ParametricEqualizerWithUDP;
configureMIDI(parametricEQPlugin,'CenterFrequency1');

Сделайте так, чтобы свойство плагина отвечало на конкретный элемент управления MIDI на устройстве MIDI по умолчанию.

Создание объекта примера аудиоплагина audiopluginexample.ParametricEqualizerWithUDP.

parametricEQPlugin = audiopluginexample.ParametricEqualizerWithUDP;

Использовать midiid чтобы определить элемент управления MIDI для синхронизации с вашим свойством.

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

controlNumber =

        1083


device =

    'BCF2000'

Использовать configureMIDI для синхронизации выбранного элемента управления MIDI, указанного controlNumber, с собственностью.

configureMIDI(parametricEQPlugin,'CenterFrequency1',controlNumber);

Чтобы свойство плагина отвечало на любой элемент управления на устройстве MIDI по умолчанию.

Создайте объект аудиоплагина, например: audiopluginexample.ParametricEqualizerWithUDP.

parametricEQPlugin = audiopluginexample.ParametricEqualizerWithUDP;

Использовать midiid для идентификации конкретного элемента управления MIDI на определенном устройстве MIDI.

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

controlNumber =

        1087


device =

    'BCF2000'

Использовать configureMIDI для синхронизации свойства с выбранным элементом управления MIDI, указанным controlNumber, на выбранном устройстве MIDI, указанном device.

configureMIDI(parametricEQPlugin,'CenterFrequency1',controlNumber,'DeviceName',device)

Входные аргументы

свернуть все

Аудиоплагин или совместимый системный object™, указанный как объект, наследующий от audioPlugin или объект совместимого объекта Audio Toolbox™ System.

Имя свойства объекта, указанное как символьный вектор. Введите имя свойства точно так, как оно определено в разделе свойств вашего аудиоплагина или объекта Audio Toolbox System.

Номер управления устройством MIDI, указанный как целое число. Значение присваивается элементу управления производителем устройства. Используется в целях идентификации.

Имя MIDI-устройства, назначенное производителем устройства или операционной системой хоста, указанное как вектор символов. Если имя устройства MIDI не указано, используется устройство MIDI по умолчанию.

Ограничения

Для соединений MIDI, установленных configureMIDI, перемещение элемента управления MIDI отправляет обратный вызов для обновления связанных значений свойств. Для синхронизации устройства MIDI в цикле аудиопотока может потребоваться drawnow для немедленного выполнения обратного вызова. Для повышения эффективности используйте drawnow limitrate синтаксис.

Например, чтобы синхронизировать устройство MIDI и аудиообъект, раскомментируйте drawnow limitrate команда из этого кода:

fileReader = dsp.AudioFileReader('Filename','RockDrums-44p1-stereo-11secs.mp3');
deviceWriter = audioDeviceWriter;
dRC = compressor;

configureMIDI(compressor,'Threshold')

while ~isDone(fileReader)
    input = fileReader();
    output = dRC(input);
    deviceWriter(output);
%     drawnow limitrate;
end

release(fileReader);
release(deviceWriter);

Если цикл аудиопотока включает визуализацию данных в области, например, dsp.SpectrumAnalyzer, timescope, или dsp.ArrayPlot, drawnow команда не требуется.

Представлен в R2016a