midiread

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

Синтаксис

controlValues = midiread(midicontrolsObject)

Описание

пример

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], и никакое квантование не требуется.