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 открыть UIs, чтобы настроить статические характеристики.

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