midisync

Отправьте значения в средства управления MIDI для синхронизации

Описание

пример

midisync(midicontrolsObject) отправляет начальные значения средств управления к вашему MIDI-устройству, как задано вашим объектом средств управления MIDI. Чтобы создать этот объект, используйте midicontrols функция. Если ваше MIDI-устройство может получить и ответить на сообщения, оно настраивает свои средства управления, как задано.

Примечание

Много MIDI-устройств не двунаправлены. Вызов midisync с однонаправленным устройством не оказывает влияния. midisync не может сказать, отправляется ли значение успешно в устройство или даже двунаправлено ли устройство. Если отправка значения перестала работать, никакие ошибки или предупреждения не сгенерированы.

пример

midisync(midicontrolsObject,controlValues) отправляет controlValues к средствам управления MIDI, сопоставленным с заданным midicontrolsObject.

Примеры

свернуть все

Используйте midiid идентифицировать управление на вашем MIDI-устройстве по умолчанию.

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

Создайте объект средств управления MIDI. Задайте начальное значение для своего управления. Вызовите midisync установить заданное управление на вашем устройстве к начальному значению.

initialValue = 0.5;
midicontrolsObject = midicontrols(controlNumber,initialValue);
midisync(midicontrolsObject);

Используйте midiid идентифицировать три средств управления на вашем MIDI-устройстве по умолчанию.

[controlNumber1,~] = midiid;
[controlNumber2,~] = midiid;
[controlNumber3,~] = midiid;
controlNumbers = [controlNumber1,controlNumber2,controlNumber3];
Move the control you wish to identify; type ^C to abort.
Waiting for control message... done
Move the control you wish to identify; type ^C to abort.
Waiting for control message... done
Move the control you wish to identify; type ^C to abort.
Waiting for control message... done

Создайте объект средств управления MIDI. Задайте начальные значения для своих средств управления. Вызовите midisync установить заданное управление на вашем устройстве к начальному значению.

controlValues = [0,0,1];
midicontrolsObject = midicontrols(controlNumbers,controlValues);
midisync(midicontrolsObject);

Создайте цикл, который обновляет ваши значения управления и синхронизирует те значения с физическими средствами управления на вашем устройстве.

for i = 1:100
    controlValues = controlValues + [0.006,0.008,-0.008];
    midisync(midicontrolsObject,controlValues);
    pause(0.1)
end

Задайте эту функцию и сохраните ее в свою текущую папку.

function trivialmidigui(controlNumber,deviceName)

    slider = uicontrol('Style','slider');
    mc = midicontrols(controlNumber,'MIDIDevice',deviceName);
    midisync(mc);
    set(slider,'Callback',@slidercb);
    midicallback(mc, @mccb);
    
    function slidercb(slider,~)
        val = get(slider,'Value');
        midisync(mc, val);
        disp(val);
    end

    function mccb(mc)
        val = midiread(mc);
        set(slider,'Value',val);
        disp(val);
    end

end

Используйте midiid идентифицировать контрольное число и имя устройства. Вызовите функцию, которую вы создали, задав контрольное число и имя устройства как входные параметры.

[controlNumber,deviceName] = midiid;
trivialmidigui(controlNumber,deviceName)

Ползунок в пользовательском интерфейсе синхронизируется с заданным управлением на вашем устройстве. Переместите, чтобы видеть, что другой отвечать.

Входные параметры

свернуть все

Объект, который слушает средства управления на MIDI-устройстве, заданном как объект, созданный midicontrols.

Значения отправляются в MIDI-устройство, заданное как скаляр или массив тот же размер как controlNumbers из связанного midicontrols объект. Если вы не задаете controlValues, значением по умолчанию является initialValues из связанного midicontrols объект.

Возможная область значений для controlValues зависит от OutputMode из связанного midicontrols объект.

  • Если OutputMode задан как 'normalized', затем controlValues должен состоять из значений в области значений [0,1]. OutputMode по умолчанию 'normalized'.

  • Если OutputMode задан как 'rawmidi', затем controlValues должен состоять из целочисленных значений в области значений [0,127].

Пример: 0.3

Пример: [0,0.3,0.6]

Пример 5

Пример: [5;15;20]

Типы данных: double | single | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64

Введенный в R2016a