SampleRateConvertion error in plugin
Show older comments
Hi
I´m trying to implement a x4 oversampling process but I´m having difficulties on how let the SampleRateConverter sytem object knows about sample rate used.
When compiling the example attached for plugin generation, the following error shows up: “Failed to compute constant value for nontunable property 'SampleRate'. In code generation, nontunable properties can only be assigned constant values.”
I'd really appreciate if someone can give me a hint on how fix/treat this.
Br
Pablo
classdef (StrictDefaults)DistoLab_Test2 < matlab.System & audioPlugin
properties
GainDisto=0;
Input=0;
Volume=0;
end
properties (Constant, Hidden)
% Define the plugin interface
PluginInterface = audioPluginInterface( ...
'InputChannels',2,...
'OutputChannels',2,...
'PluginName','DistoLab_Test2',...
audioPluginParameter('Volume', ...
'DisplayName', 'Out', ...
'DisplayNameLocation','none',...
'Label','dB', ...
'Mapping', { 'lin', -15, 15}, ...
'Style', 'rotaryknob', 'Layout', [4 6]),...
audioPluginParameter('Input', ...
'DisplayName', 'In', ...
'DisplayNameLocation','none',...
'Label','dB', ...
'Mapping', { 'lin', -5, 5}, ...
'Style', 'rotaryknob', 'Layout', [4 3]),...
audioPluginParameter('GainDisto', ...
'DisplayName', 'Saturation', ...
'DisplayNameLocation','none',...
'Style', 'rotaryknob', 'Layout', [4,5],...
'Mapping', { 'lin', 0, 10}, ...
'Filmstrip','knob_67_black.png', ... %<--
'FilmstripFrameSize',[80,80]), ...
audioPluginGridLayout('RowHeight', [30 90 10 100 37], ...
'ColumnWidth', [30 100 100 20 100 100 20 80 80 80 60], 'Padding', [10 10 10 10]));
end
properties (Access = private)
Up4;
Down4;
end
methods
% Constructor
function plugin = DistoLab_Test2
plugin.Up4=dsp.SampleRateConverter;
plugin.Down4=dsp.SampleRateConverter;
calculateSampleRates(plugin);
end
end
methods(Access = protected)
function out = stepImpl(plugin, in)
inadjusted=in*(10^(plugin.Input/20)); % Incoming signal adjusted by Input Gain
%SampleRateConverter x4 process
v=step(plugin.Up4,inadjusted);
disto=(v*plugin.GainDisto).^5; % input distorted
outdisto=(disto)*(10^(plugin.Volume/20));
out = step(plugin.Down4,outdisto);
end
function resetImpl(plugin)
reset(plugin.Up4);
reset(plugin.Down4);
end
function calculateSampleRates(plugin)
plugin.Up4.InputSampleRate=getSampleRate(plugin);
plugin.Up4.OutputSampleRate=4*getSamplerate(plugin);
plugin.Down4.InputSampleRate=4*getSampleRate(plugin);
plugin.Down4.OutputSampleRate=getSampleRate(plugin);
end
end
end
Accepted Answer
More Answers (0)
Categories
Find more on Audio Plugin Creation and Hosting in Help Center and File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!