How would you implement this reverb structure
4 views (last 30 days)
Show older comments
I didnt start yet but Im unsure what would be the easiest way to implement the following strucutre of spin semiconductor FV-1 reverb effect:

while krt is just a coefficient Dxy are delays and of course all the allpasses. My question would be how would you implement this in word or maybe pseudo code. Im not asking for actual code for this. Just a little help into the right direction.
For more infos theres the webiste: https://www.spinsemi.com/knowledge_base/effects.html
you have to scroll down. They already have assembly code for it but I dont know how to figure it out from it.
0 Comments
Answers (1)
Mathieu NOE
on 6 Feb 2025
FYI
this is a code that implement 3 reverbs
hope it helps
infile='DirectGuitar.wav';
outfile='out_reverb.wav';
% read the sample waveform
[x,Fs] = audioread(infile);
% normalize x to +/- 1 amplitude
x = x ./ (max(abs(x)));
% parameters (3 delay filters in series)
N1_delay=15; % delay in samples
C1 = 0.7; % amplitude of direct sound
N2_delay=20; % delay in samples
C2 = 0.6; % amplitude of direct sound
N3_delay=50; % delay in samples
C3 = 0.5; % amplitude of direct sound
N_delay = max([N1_delay N2_delay N3_delay]);
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% initialization %
y1 = zeros(length(x),1); % create empty out vector
y2 = y1;
y3 = y1;
y1(1:N_delay)=x(1:N_delay); % to avoid referencing of negative samples
y2(1:N_delay)=x(1:N_delay); % to avoid referencing of negative samples
y3(1:N_delay)=x(1:N_delay); % to avoid referencing of negative samples
% for each sample > N_delay
for i = (N_delay+1):length(x)
y1(i) = C1*x(i) + (1-C1)*(x(i-N1_delay)); % add delayed sample
y2(i) = C2*y1(i) + (1-C2)*(y1(i-N2_delay)); % add delayed sample
y3(i) = C3*y2(i) + (1-C3)*(y2(i-N3_delay)); % add delayed sample
end
% write output
% normalize y to +/- 1 amplitude
y3 = y3 ./ (max(abs(y3)));
audiowrite(outfile, y3, Fs);
figure(1)
hold on
plot(x,'r');
plot(y3,'b');
title('Echoed and original Signal');
sound(y3,Fs);
specgramdemo(x,Fs)
specgramdemo(y3,Fs)
0 Comments
See Also
Categories
Find more on Audio Processing Algorithm Design 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!