midiread

Возврат последнего значения элементов управления MIDI

Описание

пример

controlValues = midiread(midicontrolsObject) возвращает самое последнее значение элементов управления MIDI, сопоставленных с заданным midicontrolsObject. Чтобы создать этот объект, используйте midicontrols функция.

Примеры

свернуть все

midicontrolsObject = midicontrols;
controlValue = midiread(midicontrolsObject);

Идентифицируйте два элемента управления MIDI на вашем устройстве MIDI.

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

controlOne =

        1081

Move the control you wish to identify; type ^C to abort.
Waiting for control message... done

controlTwo =

        1082

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

controlNumbers = [controlOne,controlTwo];
midicontrolsObject = midicontrols(controlNumbers);

Переместите указанные элементы управления MIDI и верните их значения. Значения возвращаются как вектор, который соответствует вашему вектору управляющих чисел, controlNumbers.

tic
while toc < 5
    controlValues = midiread(midicontrolsObject)
end
controlValues =

    0.0397    0.0556

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

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

Создайте объект управления MIDI. Значение, сопоставленное с вашим объектом управления MIDI, не может быть определено, пока вы не переместите элемент управления MIDI. Задайте начальное значение, сопоставленное с элементом управления MIDI. midiread функция возвращает начальное значение до тех пор, пока не будет перемещено управление MIDI.

initialControlValue = 1;
midicontrolsObject = midicontrols(controlNumber,initialControlValue);

Создайте dsp.AudioFileReader Системный object™ с настройками по умолчанию. Создайте audioDeviceWriter Системный объект и задайте частоту дискретизации.

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

В цикле аудиопотока считайте систему координат аудиосигнала из файла, примените коэффициент усиления, заданный управлением, на вашем устройстве MIDI, а затем запишите систему координат на устройство аудиопотока выхода. По умолчанию управляющее значение, возвращаемое midiread нормирована.

while ~isDone(fileReader)
    audioData = step(fileReader);
    
    controlValue = midiread(midicontrolsObject);
    
    gain = controlValue*2;
    audioDataWithGain = audioData*gain;
    
    play(deviceWriter,audioDataWithGain);
end

Закройте файл входа и отпустите выход устройство.

release(fileReader);
release(deviceWriter);

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

свернуть все

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

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

свернуть все

Самые последние значения элементов управления MIDI, возвращенные как нормированные значения в области значений [0,1], или как целочисленные значения в области значений [0,127]. Значения выхода зависят от OutputMode задается, когда ваш midicontrols создается объект.

  • Если OutputMode был задан как 'normalized', затем midiread возвращает значения в области значений [0,1]. Значение по умолчанию OutputMode является 'normalized'.

  • Если OutputMode был задан как 'rawmidi', затем midiread возвращает целочисленные значения в области значений [0,127], и квантование не требуется.

Введенный в R2016a