From 99b1436080ff3792f107a7810b2185fe332d7d5c Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Sun, 16 Nov 2025 10:17:14 +0100 Subject: [PATCH] added early reflections --- src/plugin.cpp | 45 ++++++++++++++++++++++++++++++++++++++++++--- src/plugin.hpp | 2 +- submodules/dsp | 2 +- 3 files changed, 44 insertions(+), 5 deletions(-) diff --git a/src/plugin.cpp b/src/plugin.cpp index 07c0228..664c32c 100755 --- a/src/plugin.cpp +++ b/src/plugin.cpp @@ -9,7 +9,7 @@ #include #include -enum {ORDER, SIZE_1, SIZE_2, SIZE_3, SIZE_4, SIZE_5, FB_DELAY_MIN, FB_DELAY_MAX, FB_DELAY_GAIN}; +enum {ORDER, SIZE_1, SIZE_2, SIZE_3, SIZE_4, SIZE_5, FB_DELAY_MIN, FB_DELAY_MAX, FB_DELAY_GAIN, EARLY_GAIN_1, EARLY_GAIN_2, EARLY_GAIN_3, EARLY_GAIN_4, EARLY_GAIN_5}; AudioEffect* createEffectInstance (audioMasterCallback audioMaster) { @@ -43,6 +43,12 @@ Plugin::Plugin(audioMasterCallback audioMaster) m_params[6] = new Param("Delay Min", "ms", 0, 1000, 100, 10.0); m_params[7] = new Param("Delay Max", "ms", 0, 1000, 200, 10.0); m_params[8] = new Param("Delay Feedback", "%", 0, 100, 0); + m_params[9] = new Param("EarlyGain 1", "%", 0, 100, 0); + m_params[10] = new Param("EarlyGain 2", "%", 0, 100, 0); + m_params[11] = new Param("EarlyGain 3", "%", 0, 100, 0); + m_params[12] = new Param("EarlyGain 4", "%", 0, 100, 0); + m_params[13] = new Param("EarlyGain 5", "%", 0, 100, 0); + } //----------------------------------------------------------------------------------------- @@ -79,8 +85,8 @@ void Plugin::setParameter(VstInt32 index, float value) { double p = m_params[index]->fromSlider(value); uint delay = (uint)(p*sampleRate/1000); - m_reverb_1.setDelay(delay, index - SIZE_1); - m_reverb_2.setDelay(delay, index - SIZE_1); + m_reverb_1.setDelay(index - SIZE_1, delay); + m_reverb_2.setDelay(index - SIZE_1, delay); break; } @@ -102,6 +108,19 @@ void Plugin::setParameter(VstInt32 index, float value) m_reverb_2.setFeedbackGain(p); break; } + + case EARLY_GAIN_1: + case EARLY_GAIN_2: + case EARLY_GAIN_3: + case EARLY_GAIN_4: + case EARLY_GAIN_5: + { + double p = m_params[index]->fromSlider(value)/50; + m_reverb_1.setEarlyGain(index - EARLY_GAIN_1, p); + m_reverb_2.setEarlyGain(index - EARLY_GAIN_1, p); + break; + } + } } @@ -119,6 +138,11 @@ float Plugin::getParameter(VstInt32 index) case SIZE_3: case SIZE_4: case SIZE_5: + case EARLY_GAIN_1: + case EARLY_GAIN_2: + case EARLY_GAIN_3: + case EARLY_GAIN_4: + case EARLY_GAIN_5: case FB_DELAY_MIN: case FB_DELAY_MAX: case FB_DELAY_GAIN: @@ -141,6 +165,11 @@ void Plugin::getParameterName(VstInt32 index, char *label) case SIZE_3: case SIZE_4: case SIZE_5: + case EARLY_GAIN_1: + case EARLY_GAIN_2: + case EARLY_GAIN_3: + case EARLY_GAIN_4: + case EARLY_GAIN_5: case FB_DELAY_MIN: case FB_DELAY_MAX: case FB_DELAY_GAIN: @@ -164,6 +193,11 @@ void Plugin::getParameterDisplay(VstInt32 index, char *text) case SIZE_3: case SIZE_4: case SIZE_5: + case EARLY_GAIN_1: + case EARLY_GAIN_2: + case EARLY_GAIN_3: + case EARLY_GAIN_4: + case EARLY_GAIN_5: case FB_DELAY_MIN: case FB_DELAY_MAX: case FB_DELAY_GAIN: @@ -183,6 +217,11 @@ void Plugin::getParameterLabel(VstInt32 index, char *label) case SIZE_3: case SIZE_4: case SIZE_5: + case EARLY_GAIN_1: + case EARLY_GAIN_2: + case EARLY_GAIN_3: + case EARLY_GAIN_4: + case EARLY_GAIN_5: case FB_DELAY_MIN: case FB_DELAY_MAX: case FB_DELAY_GAIN: diff --git a/src/plugin.hpp b/src/plugin.hpp index fd7e861..74cebc8 100755 --- a/src/plugin.hpp +++ b/src/plugin.hpp @@ -13,7 +13,7 @@ class Plugin : public AudioEffectX { static const uint DELAY_MAX = 48000; - static const uint NUM_PARMS = 9; + static const uint NUM_PARMS = 14; public: Plugin(audioMasterCallback audioMaster); diff --git a/submodules/dsp b/submodules/dsp index 09591a3..b9b7077 160000 --- a/submodules/dsp +++ b/submodules/dsp @@ -1 +1 @@ -Subproject commit 09591a3148ca055ecb9a27289956868a53692b59 +Subproject commit b9b7077c4d68d1ea17d5d7203177ae5efe0f7e30