parameterTuner

Настройка параметров объекта во время потоковой передачи

Синтаксис

Описание

пример

H = parameterTuner(obj) создает пользовательский интерфейс настройки параметров и возвращает указатель на рисунок, H.

Примеры

свернуть все

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

Создайте dsp.AudioFileReader для чтения в аудиокадре за кадром. Создайте audioDeviceWriter чтобы записать аудио на звуковую карту.

fileReader = dsp.AudioFileReader('FunkyDrums-48-stereo-25secs.mp3', ...
                                 'PlayCount',2);
deviceWriter = audioDeviceWriter('SampleRate',fileReader.SampleRate);

Создайте crossoverFilter с двумя кроссоверами, чтобы разделить аудио на три полосы. Функции visualize для построения графика частотных характеристик фильтров. Функции parameterTuner чтобы открыть пользовательский интерфейс для настройки частот среза во время потоковой передачи.

xFilt = crossoverFilter('SampleRate',fileReader.SampleRate,'NumCrossovers',2);
visualize(xFilt)
parameterTuner(xFilt)

Создайте два compressor объекты для применения динамического сжатия области значений к двум поддиапазонам. Функции visualize для построения графика статической характеристики обоих компрессоров. Функции parameterTuner чтобы открыть пользовательские интерфейсы для настройки статических характеристик.

cmpr1 = compressor('SampleRate',fileReader.SampleRate);
visualize(cmpr1)
parameterTuner(cmpr1)

cmpr2 = compressor('SampleRate',fileReader.SampleRate);
visualize(cmpr2)
parameterTuner(cmpr2)

Создайте audiopluginexample.Chorus применить эффект припева к одной из полос. Функции parameterTuner чтобы открыть пользовательский интерфейс для настройки параметров плагина припева.

chorus = audiopluginexample.Chorus;
setSampleRate(chorus,fileReader.SampleRate);
parameterTuner(chorus)

В цикле аудиопотока:

  1. Чтение в системе координат аудио из файла.

  2. Разделите аудио на три полосы с помощью перекрестного фильтра.

  3. Примените динамическое сжатие области значений к первым и вторым полосам.

  4. Применить эффект припева к третьей полосе.

  5. Суммируйте аудио полосы.

  6. Запишите систему координат аудио в своё аудио устройство для прослушивания.

while ~isDone(fileReader)
    audioIn = fileReader();
    
    [b1,b2,b3] = xFilt(audioIn);
    
    b1 = cmpr1(b1);
    b2 = cmpr2(b2);
    b3 = process(chorus,b3);
    
    audioOut = b1+b2+b3;

    deviceWriter(audioOut);
    
    drawnow limitrate % Process parameterTuner callbacks
end

Как лучшая практика, отпустите объекты после выполнения.

release(fileReader)
release(deviceWriter)

Создайте dsp.AudioFileReader для чтения в аудиокадре за кадром. Создайте audioDeviceWriter чтобы записать аудио на звуковую карту. Использование loadAudioPlugin для загрузки плагина эквалайзера. Если вы используете Mac, замените .dll расширение файла с .vst.

fileReader = dsp.AudioFileReader('FunkyDrums-48-stereo-25secs.mp3');
deviceWriter = audioDeviceWriter('SampleRate',fileReader.SampleRate);

pluginPath = fullfile(matlabroot,'toolbox/audio/samples/ParametricEqualizer.dll');
eq = loadAudioPlugin(pluginPath);
setSampleRate(eq,fileReader.SampleRate);

Функции parameterTuner чтобы открыть пользовательский интерфейс для настройки параметров эквалайзера во время потоковой передачи.

parameterTuner(eq)

В цикле аудиопотока:

  1. Чтение в системе координат аудио из файла.

  2. Применить эквализацию.

  3. Запишите систему координат аудио в своё аудио устройство для прослушивания.

while ~isDone(fileReader)
    audioIn = fileReader();
    audioOut = process(eq,audioIn);
    deviceWriter(audioOut);
    
    drawnow limitrate % Process parameterTuner callbacks
end

Как лучшая практика, отпустите объекты после выполнения.

release(fileReader)
release(deviceWriter)

Создайте dsp.AudioFileReader для чтения в аудиокадре за кадром. Создайте audioDeviceWriter чтобы записать аудио на звуковую карту. Создайте audiopluginexample.Flanger чтобы обработать аудио данных и задать частоту дискретизации.

fileReader = dsp.AudioFileReader('RockGuitar-16-96-stereo-72secs.flac');
deviceWriter = audioDeviceWriter('SampleRate',fileReader.SampleRate);

flanger = audiopluginexample.Flanger;
setSampleRate(flanger,fileReader.SampleRate);

Функции parameterTuner чтобы открыть пользовательский интерфейс для настройки параметров фланца во время потоковой передачи.

parameterTuner(flanger)

В цикле аудиопотока:

  1. Чтение в системе координат аудио из файла.

  2. Применить фланцы.

  3. Запишите систему координат аудио в своё аудио устройство для прослушивания.

while ~isDone(fileReader)
    audioIn = fileReader();
    audioOut = process(flanger,audioIn);
    deviceWriter(audioOut);
    
    drawnow limitrate % Process parameterTuner callbacks
end

Как лучшая практика, отпустите объекты после выполнения.

release(fileReader)
release(deviceWriter)

Создайте dsp.AudioFileReader для чтения в аудиокадре за кадром. Создайте audioDeviceWriter чтобы записать аудио на звуковую карту. Создайте compressor для обработки аудио данных. Функции visualize для построения графика статической характеристики compressor.

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

dRC = compressor('SampleRate',fileReader.SampleRate); 
visualize(dRC)

Создайте timescope визуализация оригинального и обработанного аудио.

scope = timescope( ...
    'SampleRate',fileReader.SampleRate, ...
    'TimeSpanSource','property',...
    'TimeSpan',1, ...
    'BufferLength',fileReader.SampleRate*4, ...
    'YLimits',[-1,1], ...
    'TimeSpanOverrunAction','Scroll', ...
    'ShowGrid',true, ...
    'LayoutDimensions',[2,1], ...
    'NumInputPorts',2, ...
    'Title','Original vs. Compressed Audio (top) and Compressor Gain in dB (bottom)');
scope.ActiveDisplay = 2;
scope.YLimits = [-4,0];
scope.YLabel = 'Gain (dB)';

Функции parameterTuner чтобы открыть пользовательский интерфейс для настройки параметров компрессора во время потоковой передачи.

parameterTuner(dRC)

Figure Audio Parameter Tuner: compressor [dRC] contains an object of type uigridlayout.

В цикле аудиопотока:

  1. Чтение в системе координат аудио из файла.

  2. Применить сжатие динамической области значений.

  3. Запишите систему координат аудио в своё аудио устройство для прослушивания.

  4. Визуализация исходного аудио, обработанного аудио и приложенного усиления.

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

while ~isDone(fileReader)
    audioIn = fileReader();
    [audioOut,g] = dRC(audioIn);
    deviceWriter(audioOut);
    scope([audioIn(:,1),audioOut(:,1)],g(:,1));
    drawnow limitrate % required to update parameter
end

Figure Audio Parameter Tuner: compressor [dRC] contains an object of type uigridlayout.

Как лучшая практика, отпустите объекты после выполнения.

release(deviceWriter)
release(fileReader)
release(dRC)
release(scope)

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

свернуть все

Объект для настройки, заданный как объект, который наследует от audioPlugin или один из следующих объектов Audio Toolbox™:

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

свернуть все

Целевой рисунок, возвращенная как Figure объект.

См. также

|

Введенный в R2019a