Настройте параметры объекта при потоковой передаче
H = parameterTuner(obj)
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
. Создайте dsp.TimeScope
, чтобы визуализировать исходное и обработанное аудио.
frameLength = 1024; fileReader = dsp.AudioFileReader('RockDrums-44p1-stereo-11secs.mp3', ... 'SamplesPerFrame',frameLength); deviceWriter = audioDeviceWriter('SampleRate',fileReader.SampleRate); dRC = compressor('SampleRate',fileReader.SampleRate); visualize(dRC) scope = dsp.TimeScope( ... 'SampleRate',fileReader.SampleRate, ... '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)
Создайте dsp.AudioFileReader
, чтобы читать в покадровом аудио. Создайте audioDeviceWriter
, чтобы записать аудио в вашу звуковую карту. Создайте noiseGate
, чтобы обработать аудиоданные.
frameLength = 1024; fileReader = dsp.AudioFileReader('RockDrums-44p1-stereo-11secs.mp3', ... 'SamplesPerFrame',frameLength); deviceWriter = audioDeviceWriter('SampleRate',fileReader.SampleRate); dRG = noiseGate('SampleRate',fileReader.SampleRate);
Вызовите parameterTuner
, чтобы открыть пользовательский интерфейс для настроек параметров noiseGate
при потоковой передаче.
parameterTuner(dRG)
В цикле аудиопотока:
Читайте в кадре аудио из файла.
Примените пропускание динамического диапазона.
Запишите кадр аудио к вашему аудио устройству для слушания.
При потоковой передаче настройки параметров динамического диапазона пропускают и слушают эффект.
while ~isDone(fileReader) audioIn = fileReader(); audioOut = dRG(audioIn); deviceWriter(audioOut); drawnow limitrate % required to update parameter end
Как лучшая практика, выпустите свои объекты, однажды сделанные.
release(deviceWriter) release(fileReader) release(dRG)
Создайте dsp.AudioFileReader
, чтобы читать в покадровом аудио. Создайте audioDeviceWriter
, чтобы записать аудио в вашу звуковую карту. Создайте graphicEQ
, чтобы обработать аудиоданные. Вызовите visualize
, чтобы построить частотную характеристику графического эквалайзера.
frameLength = 1024; fileReader = dsp.AudioFileReader('RockDrums-44p1-stereo-11secs.mp3', ... 'SamplesPerFrame',frameLength); deviceWriter = audioDeviceWriter('SampleRate',fileReader.SampleRate); equalizer = graphicEQ('SampleRate',fileReader.SampleRate, ... 'Gains',[0,10,-10,5,-5,2,-2,1,-1,0]); visualize(equalizer)
Вызовите parameterTuner
, чтобы открыть пользовательский интерфейс для настроек параметров эквалайзера при потоковой передаче.
parameterTuner(equalizer)
В цикле аудиопотока:
Читайте в кадре аудио из файла.
Примените коррекцию.
Запишите кадр аудио к вашему аудио устройству для слушания.
В то время как потоковая передача, настройки параметров эквалайзера и слушает эффект.
while ~isDone(fileReader) audioIn = fileReader(); audioOut = equalizer(audioIn); deviceWriter(audioOut); drawnow limitrate % required to update parameter end
Как лучшая практика, выпустите свои объекты, однажды сделанные.
release(deviceWriter) release(fileReader) release(equalizer)
Создайте wavetableSynthesizer
, чтобы сгенерировать форму волны. Создайте dsp.TimeScope
, чтобы визуализировать форму волны. Создайте audioDeviceWriter
, чтобы записать аудио в вашу звуковую карту.
fs = 44.1e3; wvSynth = wavetableSynthesizer('SampleRate',44.1e3); scope = dsp.TimeScope( ... 'SampleRate',wvSynth.SampleRate, ... 'TimeSpan',1, ... 'YLimits',[-2,2], ... 'TimeSpanOverrunAction','Scroll', ... 'ShowGrid',true); deviceWriter = audioDeviceWriter('SampleRate',wvSynth.SampleRate);
Вызовите parameterTuner
, чтобы открыть пользовательский интерфейс для настроек параметров wavetable синтезатора при потоковой передаче.
parameterTuner(wvSynth)
В цикле аудиопотока:
Вызовите wavetable синтезатор без аргументов, чтобы вывести один кадр данных.
Визуализируйте данные с помощью осциллографа времени.
Запишите кадр аудио к вашему аудио устройству для слушания.
В то время как потоковая передача, настройки параметров wavetable синтезатора и слушает эффект.
duration = 15; numIterations = round(wvSynth.SampleRate*duration/wvSynth.SamplesPerFrame); for i = 1:numIterations audioOut = wvSynth(); scope(audioOut) deviceWriter(audioOut); drawnow limitrate % required to update parameter end
Как лучшая практика, выпустите свои объекты, однажды сделанные.
release(deviceWriter) release(wvSynth) release(scope)
obj
— Возразите, чтобы настроитьсяaudioPlugin
| compressor
| expander
| limiter
| noiseGate
| octaveFilter
| crossoverFilter
| multibandParametericEQ
| graphicEQ
| audioOscillator
| wavetableSynthesizer
Объект настроиться, заданный как объект, который наследовался audioPlugin
или одному из следующих объектов Audio Toolbox™:
H
Плановый показательFigure
Плановый показатель, возвращенный как объект Figure
.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.