Smoothing output in delay plugin

1 view (last 30 days)
Hi
I´m trying to simulate audio room reflection using dsp.VariableIntegerDelay ,where distance parameter dictates the delay amount. The issue I´m experiencing are the glitches and artifacts every time I change the "distance" parameter fast. As I´m thinking in a plugin where the objects can be moved, I need to solve this.
I understand that this can be overcome, smoothing the output (or may be "distance" parameter?), but I don´t find the way of how to implement it here.
I would really appreciate If anybody can give me a hint or propose an alternative solution / method.
Thanks
Pablo
classdef Delay_Test< audioPlugin
properties
distance=1;
end
properties (Access = private)
FractionalDelayDI
delayInSamplesDI
pSR
end
properties (Constant)
PluginInterface = audioPluginInterface('PluginName','Delay_Test',...
'InputChannels',2,'OutputChannels',2, ...
audioPluginParameter('distance',...
'DisplayName','',...
'Mapping',{'lin',0.5,19.5},...
'Label','mts'));
end
methods
function plugin=Delay_Test
plugin.pSR = getSampleRate(plugin);
plugin.FractionalDelayDI = dsp.VariableIntegerDelay('MaximumDelay',65535);
needtocalculateDelay(plugin);
end
function out=process(plugin,in)
echo=plugin.FractionalDelayDI(in,plugin.delayInSamplesDI);
out=in+echo;
end
function set.distance(plugin, val)
plugin.distance = val;
needtocalculateDelay(plugin);
end
function needtocalculateDelay(plugin)
plugin.delayInSamplesDI=(plugin.distance/330)*plugin.pSR;
end
function reset(plugin)
reset(plugin.FractionalDelayDI);
end
end
end

Accepted Answer

Brian Hemmat
Brian Hemmat on 25 Apr 2021
The example plugin, audiopluginexample.DampedVolumeController, might be helpful for this issue.
  1 Comment
Pablo Panitta
Pablo Panitta on 27 Apr 2021
Edited: Pablo Panitta on 27 Apr 2021
Hi Brian
Seems you´re right. I´ll tryin this way
Thanks

Sign in to comment.

More Answers (0)

Categories

Find more on Audio Plugin Creation and Hosting in Help Center and File Exchange

Products


Release

R2021a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!