midisync

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

Синтаксис

midisync(midicontrolsObject)
midisync(midicontrolsObject,controlValues)

Описание

пример

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