exponenta event banner

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