How would you implement this reverb structure

2 ビュー (過去 30 日間)
Muhsin Zerey
Muhsin Zerey 2025 年 2 月 5 日
コメント済み: Mathieu NOE 2025 年 4 月 2 日
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.

回答 (1 件)

Mathieu NOE
Mathieu NOE 2025 年 2 月 6 日
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)
  1 件のコメント
Mathieu NOE
Mathieu NOE 2025 年 4 月 2 日
hello again
problem solved ?

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeAudio I/O and Waveform Generation についてさらに検索

製品


リリース

R2024b

Community Treasure Hunt

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

Start Hunting!

Translated by