From e481f5215ee465478a3594195ef4c7d0e53182a2 Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Sun, 9 Nov 2025 21:25:45 +0100 Subject: [PATCH] [Reverb] - refactored gain loop - added setter for gain --- reverb/reverb.hpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/reverb/reverb.hpp b/reverb/reverb.hpp index c04ef10..ffc666b 100644 --- a/reverb/reverb.hpp +++ b/reverb/reverb.hpp @@ -48,7 +48,6 @@ class Delay m_buf.quer(out, m_delay_spec); ++m_buf; } - }; template @@ -116,11 +115,13 @@ class Reverb std::array, 3> m_diffusors; Delay m_feedbackDly; T fb_dly_out[numCh]; + T fb_gain; public: Reverb(uint maxDelay) : m_diffusors({maxDelay, maxDelay, maxDelay}) , m_feedbackDly(9600, 4800) + , fb_gain(0) { for (int c=0; c < numCh; c++) { @@ -128,6 +129,11 @@ class Reverb } } + void setFeedbackGain(T value) + { + fb_gain = value; + } + void process_multi(float *in, float *out, unsigned numPoints) { for (int i=0; i < numPoints; i++) @@ -138,22 +144,17 @@ class Reverb { diffusor.process_multi(temp); } + // Sum + Householder::inPlace(fb_dly_out); for (int c=0; c < numCh; c++) { - temp[c] += fb_dly_out[c]; + temp[c] += fb_gain*fb_dly_out[c]; } m_feedbackDly.process(temp, fb_dly_out); // Mix out[i] = fb_dly_out[0]; - - T fb_gain = 0.85; - for (int c=0; c < numCh; c++) - { - fb_dly_out[c] *= fb_gain; - } - Householder::inPlace(fb_dly_out); } } @@ -169,7 +170,6 @@ class Reverb out[i] = temp; } } - }; #endif