Настройте параметры объекта при потоковой передаче
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)
В цикле аудиопотока:
Читайте в системе координат аудио из файла.
Разделите аудио в три полосы, использующие перекрестный фильтр.
Примените сжатие динамического диапазона к первым и вторым полосам.
Примените эффект хора к третьей полосе.
Суммируйте диапазоны звуковых частот.
Запишите систему координат аудио к вашему аудио устройству для слушания.
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.