[JayDelay]
- added param scaler
This commit is contained in:
+43
-62
@@ -9,33 +9,8 @@
|
||||
#include <cstdlib>
|
||||
#include <cstdio>
|
||||
|
||||
#define NUM_PARMS 8
|
||||
#define MAX_ORDER 4
|
||||
|
||||
const char * const pFTypeString[] =
|
||||
{
|
||||
"Order",
|
||||
"Size 1",
|
||||
"Size 2",
|
||||
"Size 3",
|
||||
"Size 4",
|
||||
"Feedback Delay Min",
|
||||
"Feedback Delay Max",
|
||||
"Feedback Gain",
|
||||
};
|
||||
|
||||
const char * const pFUnitString[] =
|
||||
{
|
||||
"",
|
||||
"samples",
|
||||
"samples",
|
||||
"samples",
|
||||
"samples",
|
||||
"samples",
|
||||
"samples",
|
||||
"",
|
||||
};
|
||||
|
||||
enum {ORDER, SIZE_1, SIZE_2, SIZE_3, SIZE_4, FEEDBACK_DELAY_MIN, FEEDBACK_DELAY_XAX, FEEDBACK_GAIN};
|
||||
|
||||
AudioEffect* createEffectInstance (audioMasterCallback audioMaster)
|
||||
@@ -59,6 +34,15 @@ Plugin::Plugin(audioMasterCallback audioMaster)
|
||||
|
||||
m_feedback_delay[0] = 0;
|
||||
m_feedback_delay[1] = 0;
|
||||
|
||||
m_params[0] = new Param("Order", "", 0, 4, 4);
|
||||
m_params[1] = new Param("Delay 1", "ms", 0, 1000, 50);
|
||||
m_params[2] = new Param("Delay 2", "ms", 0, 1000, 100);
|
||||
m_params[3] = new Param("Delay 3", "ms", 0, 1000, 250);
|
||||
m_params[4] = new Param("Delay 4", "ms", 0, 1000, 500);
|
||||
m_params[5] = new Param("Feedback Delay Min", "ms", 0, 1000, 100);
|
||||
m_params[6] = new Param("Feedback Delay Max", "ms", 0, 1000, 200);
|
||||
m_params[7] = new Param("Feedback Gain", "%", 0, 100, 0);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------------
|
||||
@@ -84,31 +68,39 @@ void Plugin::setParameter(VstInt32 index, float value)
|
||||
{
|
||||
switch(index)
|
||||
{
|
||||
case ORDER:
|
||||
break;
|
||||
case ORDER:
|
||||
break;
|
||||
|
||||
case SIZE_1:
|
||||
case SIZE_2:
|
||||
case SIZE_3:
|
||||
case SIZE_4:
|
||||
{
|
||||
uint delay = (uint)(value*DELAY_MAX);
|
||||
m_reverb_1.setDelay(delay, index - SIZE_1);
|
||||
m_reverb_2.setDelay(delay, index - SIZE_1);
|
||||
break;
|
||||
}
|
||||
case SIZE_1:
|
||||
case SIZE_2:
|
||||
case SIZE_3:
|
||||
case SIZE_4:
|
||||
{
|
||||
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);
|
||||
break;
|
||||
}
|
||||
|
||||
case FEEDBACK_GAIN:
|
||||
m_reverb_1.setFeedbackGain(value);
|
||||
m_reverb_2.setFeedbackGain(value);
|
||||
break;
|
||||
case FEEDBACK_GAIN:
|
||||
{
|
||||
double p = m_params[index]->fromSlider(value)/100;
|
||||
m_reverb_1.setFeedbackGain(p);
|
||||
m_reverb_2.setFeedbackGain(p);
|
||||
break;
|
||||
}
|
||||
|
||||
case FEEDBACK_DELAY_MIN:
|
||||
case FEEDBACK_DELAY_XAX:
|
||||
m_feedback_delay[index-FEEDBACK_DELAY_MIN] = (uint)(value * DELAY_MAX);
|
||||
m_reverb_1.setFeedbackDelay(m_feedback_delay[0], m_feedback_delay[1]);
|
||||
m_reverb_2.setFeedbackDelay(m_feedback_delay[0], m_feedback_delay[1]);
|
||||
break;
|
||||
case FEEDBACK_DELAY_MIN:
|
||||
case FEEDBACK_DELAY_XAX:
|
||||
{
|
||||
double p = m_params[index]->fromSlider(value);
|
||||
uint delay = (uint)(p*sampleRate/1000);
|
||||
m_feedback_delay[index-FEEDBACK_DELAY_MIN] = delay;
|
||||
m_reverb_1.setFeedbackDelay(m_feedback_delay[0], m_feedback_delay[1]);
|
||||
m_reverb_2.setFeedbackDelay(m_feedback_delay[0], m_feedback_delay[1]);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -122,23 +114,14 @@ float Plugin::getParameter(VstInt32 index)
|
||||
switch(index)
|
||||
{
|
||||
case ORDER:
|
||||
value = (float)MAX_ORDER;
|
||||
break;
|
||||
|
||||
case SIZE_1:
|
||||
case SIZE_2:
|
||||
case SIZE_3:
|
||||
case SIZE_4:
|
||||
value = m_reverb_1.getDelay(index - SIZE_1);
|
||||
break;
|
||||
|
||||
case FEEDBACK_GAIN:
|
||||
value = m_reverb_1.getFeedbackGain();
|
||||
break;
|
||||
|
||||
case FEEDBACK_DELAY_MIN:
|
||||
case FEEDBACK_DELAY_XAX:
|
||||
value = m_feedback_delay[index-FEEDBACK_DELAY_MIN];
|
||||
value = m_params[index]->getSlider();
|
||||
break;
|
||||
|
||||
|
||||
@@ -159,7 +142,7 @@ void Plugin::getParameterName(VstInt32 index, char *label)
|
||||
case FEEDBACK_DELAY_MIN:
|
||||
case FEEDBACK_DELAY_XAX:
|
||||
case FEEDBACK_GAIN:
|
||||
strcpy(label,pFTypeString[index]);
|
||||
strcpy(label,m_params[index]->name().c_str());
|
||||
break;
|
||||
default:
|
||||
strcpy(label,"Unknown");
|
||||
@@ -180,10 +163,8 @@ void Plugin::getParameterDisplay(VstInt32 index, char *text)
|
||||
case SIZE_4:
|
||||
case FEEDBACK_DELAY_MIN:
|
||||
case FEEDBACK_DELAY_XAX:
|
||||
sprintf(text, "%d", (int)getParameter(index));
|
||||
break;
|
||||
case FEEDBACK_GAIN:
|
||||
sprintf(text, "%f", getParameter(index));
|
||||
sprintf(text, "%f", m_params[index]->getParameter());
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -201,7 +182,7 @@ void Plugin::getParameterLabel(VstInt32 index, char *label)
|
||||
case FEEDBACK_DELAY_MIN:
|
||||
case FEEDBACK_DELAY_XAX:
|
||||
case FEEDBACK_GAIN:
|
||||
strcpy(label, pFUnitString[index]);
|
||||
strcpy(label,m_params[index]->unit().c_str());
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user