added early reflections

This commit is contained in:
2025-11-16 10:17:14 +01:00
parent 3d42b97c25
commit 99b1436080
3 changed files with 44 additions and 5 deletions
+42 -3
View File
@@ -9,7 +9,7 @@
#include <cstdlib>
#include <cstdio>
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:
+1 -1
View File
@@ -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);