Настройка параметров объекта во время потоковой передачи
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)
В цикле аудиопотока:
Чтение в системе координат аудио из файла.
Разделите аудио на три полосы с помощью перекрестного фильтра.
Примените динамическое сжатие области значений к первым и вторым полосам.
Применить эффект припева к третьей полосе.
Суммируйте аудио полосы.
Запишите систему координат аудио в своё аудио устройство для прослушивания.
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)
В цикле аудиопотока:
Чтение в системе координат аудио из файла.
Применить эквализацию.
Запишите систему координат аудио в своё аудио устройство для прослушивания.
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)
В цикле аудиопотока:
Чтение в системе координат аудио из файла.
Применить фланцы.
Запишите систему координат аудио в своё аудио устройство для прослушивания.
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)
В цикле аудиопотока:
Чтение в системе координат аудио из файла.
Применить сжатие динамической области значений.
Запишите систему координат аудио в своё аудио устройство для прослушивания.
Визуализация исходного аудио, обработанного аудио и приложенного усиления.
Во время потоковой передачи настройте параметры компрессора динамической области значений и прослушайте эффект.
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
Как лучшая практика, отпустите объекты после выполнения.
release(deviceWriter) release(fileReader) release(dRC) release(scope)
obj
- Объект для настройкиaudioPlugin
| объекта compressor
| expander
| limiter
| noiseGate
| octaveFilter
| crossoverFilter
| multibandParametericEQ
| graphicEQ
| audioOscillator
| wavetableSynthesizer
| reverberator
Объект для настройки, заданный как объект, который наследует от audioPlugin
или один из следующих объектов Audio Toolbox™:
H
- Целевой рисунокFigure
объектЦелевой рисунок, возвращенная как Figure
объект.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.