configureMIDI

Сконфигурируйте соединения MIDI между аудио объекта и MIDI контроллера

Описание

пример

configureMIDI(audioObject) открывает пользовательский интерфейс строения MIDI (UI). Используйте пользовательский интерфейс для синхронизации параметров плагина, audioObject, в элементы управления MIDI на устройстве MIDI по умолчанию. Можно также сгенерировать MATLAB® код, соответствующий строению MIDI, разработанный с использованием configureMIDI UI.

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

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 UI, нажмите Reset Control.

  5. Нажмите OK.

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

Сгенерируйте код MATLAB, соответствующий строению MIDI, разработанной с помощью configureMIDI UI. Можно встраивать код MATLAB в симуляцию, чтобы не открывать пользовательский интерфейс для восстановления выбранных MIDI-соединений.

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

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

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

  4. Установите флажок 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, установленных 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