compile clean and loadable
This commit is contained in:
@@ -16,7 +16,7 @@ DEFINES += -DVST_2_4_EXTENSIONS=0 -DVST_2_3_EXTENSIONS=1
|
||||
|
||||
GCC_SRCS := src/paramutils.c
|
||||
CXX_SRCS := src/plugin.cpp
|
||||
CXX_SRCS := src/pluginMain.cpp
|
||||
CXX_SRCS += src/pluginMain.cpp
|
||||
CXX_SRCS += $(VST2_SDK_PATH)/public.sdk/source/vst2.x/audioeffect.cpp
|
||||
CXX_SRCS += $(VST2_SDK_PATH)/public.sdk/source/vst2.x/audioeffectx.cpp
|
||||
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
/***************************************************************/
|
||||
/* paramutils.h
|
||||
// paramutils.h
|
||||
/***************************************************************/
|
||||
#ifndef PARAMUTILS_H
|
||||
#define PARAMUTILS_H
|
||||
|
||||
+69
-106
@@ -6,29 +6,35 @@
|
||||
|
||||
#include <reverb/reverb.hpp>
|
||||
#include "plugin.hpp"
|
||||
#include <cstdlib>
|
||||
#include <cstdio>
|
||||
|
||||
#include "paramutils.h"
|
||||
|
||||
#define NUM_PARMS 7
|
||||
#define MAX_ORDER 10
|
||||
#define MAX_TYPES 4
|
||||
#define MAX_Q 10.0f
|
||||
#define ALPHA 0.2f
|
||||
#define BETA (1.0f-ALPHA)
|
||||
#define NUM_PARMS 6
|
||||
#define MAX_ORDER 4
|
||||
|
||||
const char * const pFTypeString[8] =
|
||||
const char * const pFTypeString[] =
|
||||
{
|
||||
"Unknown",
|
||||
"Lowpass",
|
||||
"Highpass",
|
||||
"Bandpass",
|
||||
"Bandstop",
|
||||
"Peaking",
|
||||
"Low-Shelving",
|
||||
"High-Shelving"
|
||||
"Order",
|
||||
"Size 1",
|
||||
"Size 2",
|
||||
"Size 3",
|
||||
"Size 4",
|
||||
"Feedback",
|
||||
};
|
||||
|
||||
enum {ORDER, TYPE, FMIN, FMAX, FG, Q, TESTPARAM};
|
||||
char *pParmStr[NUM_PARMS] = {"Order","Filter-Type","Freq min","Freq max","Frequency","Resonance","Test-Param"};
|
||||
const char * const pFUnitString[] =
|
||||
{
|
||||
"Order",
|
||||
"Size 1",
|
||||
"Size 2",
|
||||
"Size 3",
|
||||
"Size 4",
|
||||
"Feedback",
|
||||
};
|
||||
|
||||
enum {ORDER, SIZE_1, SIZE_2, SIZE_3, SIZE_4, FEEDBACK};
|
||||
|
||||
AudioEffect* createEffectInstance (audioMasterCallback audioMaster)
|
||||
{
|
||||
@@ -46,11 +52,10 @@ Plugin::Plugin(audioMasterCallback audioMaster)
|
||||
sampleRate = 48000;
|
||||
setNumInputs(2); // stereo in
|
||||
setNumOutputs(2); // stereo out
|
||||
setUniqueID('Filt'); // identify
|
||||
setUniqueID('DLY1'); // identify
|
||||
canMono(); // makes sense to feed both inputs with the same signal
|
||||
canProcessReplacing(); // supports both accumulating and replacing output
|
||||
strcpy(programName, "Default"); // default program name
|
||||
testParam=0;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------------
|
||||
@@ -76,36 +81,24 @@ void Plugin::setParameter(VstInt32 index, float value)
|
||||
{
|
||||
switch(index)
|
||||
{
|
||||
case TYPE:
|
||||
|
||||
ftype = ParamQuantize(value,1.0f/(MAX_TYPES-1));
|
||||
sprintf(dbgStr, "Set Param: %f",ftype);
|
||||
break;
|
||||
|
||||
case ORDER:
|
||||
forder = ParamQuantize(value,1.0f/(MAX_ORDER/2-1));
|
||||
sprintf(dbgStr, "Set Param: %f",forder);
|
||||
break;
|
||||
|
||||
case FMIN:
|
||||
sprintf(dbgStr, "Set Param: %f",value);
|
||||
case FEEDBACK:
|
||||
m_reverb_1.setFeedbackGain(value);
|
||||
m_reverb_2.setFeedbackGain(value);
|
||||
break;
|
||||
|
||||
case FMAX:
|
||||
sprintf(dbgStr, "Set Param: %f",value);
|
||||
case SIZE_1:
|
||||
break;
|
||||
|
||||
case FG:
|
||||
sprintf(dbgStr, "Set Param: %f",value);
|
||||
case SIZE_2:
|
||||
break;
|
||||
|
||||
case Q:
|
||||
sprintf(dbgStr, "Set Param: %f",value);
|
||||
case SIZE_3:
|
||||
break;
|
||||
|
||||
case TESTPARAM:
|
||||
testParam=ParamQuantize(value,1.0f/3);
|
||||
sprintf(dbgStr, "Set Param: %f",value);
|
||||
case SIZE_4:
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -118,35 +111,30 @@ float Plugin::getParameter(VstInt32 index)
|
||||
|
||||
switch(index)
|
||||
{
|
||||
case TYPE:
|
||||
value = (float)ftype;
|
||||
break;
|
||||
|
||||
case ORDER:
|
||||
value = (float)forder;
|
||||
value = (float)MAX_ORDER;
|
||||
break;
|
||||
|
||||
case FMIN:
|
||||
value = f_fmin;
|
||||
case SIZE_1:
|
||||
value = 1;
|
||||
break;
|
||||
|
||||
case FMAX:
|
||||
value = f_fmin;
|
||||
case SIZE_2:
|
||||
value = 2;
|
||||
break;
|
||||
|
||||
case FG:
|
||||
value = f_fg_param;
|
||||
case SIZE_3:
|
||||
value = 3;
|
||||
break;
|
||||
|
||||
case Q:
|
||||
value = q;
|
||||
case SIZE_4:
|
||||
value = 4;
|
||||
break;
|
||||
|
||||
case TESTPARAM:
|
||||
value = testParam;
|
||||
sprintf(dbgStr, "Get Param: %f",value);
|
||||
// OutputDebugString(dbgStr);
|
||||
case FEEDBACK:
|
||||
value = 0.707;
|
||||
break;
|
||||
|
||||
}
|
||||
return value;
|
||||
}
|
||||
@@ -154,7 +142,20 @@ float Plugin::getParameter(VstInt32 index)
|
||||
//-----------------------------------------------------------------------------------------
|
||||
void Plugin::getParameterName(VstInt32 index, char *label)
|
||||
{
|
||||
strcpy(label,pParmStr[index]);
|
||||
switch(index)
|
||||
{
|
||||
case ORDER:
|
||||
case SIZE_1:
|
||||
case SIZE_2:
|
||||
case SIZE_3:
|
||||
case SIZE_4:
|
||||
case FEEDBACK:
|
||||
strcpy(label,pFTypeString[index]);
|
||||
break;
|
||||
default:
|
||||
strcpy(label,"Unknown");
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------------
|
||||
@@ -163,28 +164,14 @@ void Plugin::getParameterDisplay(VstInt32 index, char *text)
|
||||
|
||||
switch(index)
|
||||
{
|
||||
case TYPE:
|
||||
strcpy(text, pFTypeString[type]);
|
||||
break;
|
||||
case ORDER:
|
||||
snprintf(text, kVstMaxParamStrLen, "%d", order);
|
||||
case SIZE_1:
|
||||
case SIZE_2:
|
||||
case SIZE_3:
|
||||
case SIZE_4:
|
||||
case FEEDBACK:
|
||||
strcpy(text, pFTypeString[index]);
|
||||
break;
|
||||
case FMIN:
|
||||
float2string(0.5f*f_fmin*sampleRate,text, kVstMaxParamStrLen);
|
||||
break;
|
||||
case FMAX:
|
||||
float2string(0.5f*f_fmax*sampleRate,text, kVstMaxParamStrLen);
|
||||
break;
|
||||
case FG:
|
||||
float2string(0.5f*fg*sampleRate,text, kVstMaxParamStrLen);
|
||||
break;
|
||||
case Q:
|
||||
float2string(q*MAX_Q,text, kVstMaxParamStrLen);
|
||||
break;
|
||||
case TESTPARAM:
|
||||
float2string(testParam,text, kVstMaxParamStrLen);
|
||||
break;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -193,26 +180,13 @@ void Plugin::getParameterLabel(VstInt32 index, char *label)
|
||||
{
|
||||
switch(index)
|
||||
{
|
||||
case TYPE:
|
||||
strcpy(label, " ");
|
||||
break;
|
||||
case ORDER:
|
||||
strcpy(label, " ");
|
||||
break;
|
||||
case FMIN:
|
||||
strcpy(label, " Hz ");
|
||||
break;
|
||||
case FMAX:
|
||||
strcpy(label, " Hz ");
|
||||
break;
|
||||
case FG:
|
||||
strcpy(label, " Hz ");
|
||||
break;
|
||||
case Q:
|
||||
strcpy(label, " ");
|
||||
break;
|
||||
case TESTPARAM:
|
||||
strcpy(label, " Test ");
|
||||
case SIZE_1:
|
||||
case SIZE_2:
|
||||
case SIZE_3:
|
||||
case SIZE_4:
|
||||
case FEEDBACK:
|
||||
strcpy(label, pFUnitString[index]);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -225,17 +199,6 @@ void Plugin::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
|
||||
float *out1 = outputs[0];
|
||||
float *out2 = outputs[1];
|
||||
|
||||
sm_fg = BETA*sm_fg+ALPHA*fg;
|
||||
sm_q = BETA*sm_q+ALPHA*q*MAX_Q;
|
||||
|
||||
IIRCalcFilterCoeff(filterCoeff_L, sampleRate, 0.5f*sm_fg*sampleRate, sm_q, order, type);
|
||||
IIRCalcFilterCoeff(filterCoeff_R, sampleRate, 0.5f*sm_fg*sampleRate, sm_q, order, type);
|
||||
|
||||
// IIR(filterCoeff_L, in1, out1, order, sampleFrames);
|
||||
// IIR(filterCoeff_R, in2, out2, order, sampleFrames);
|
||||
|
||||
m_reverb_1.setFeedbackGain(sm_fg);
|
||||
m_reverb_2.setFeedbackGain(sm_fg);
|
||||
m_reverb_1.process_multi(in1, out1, sampleFrames);
|
||||
m_reverb_2.process_multi(in2, out2, sampleFrames);
|
||||
}
|
||||
|
||||
@@ -33,9 +33,6 @@ public:
|
||||
virtual void setBlockSize(VstInt32 blockSize);
|
||||
|
||||
protected:
|
||||
float ftype, forder, fg, q, sm_fg, sm_q, testParam;
|
||||
float f_fmin, f_fmax, f_fg_param;
|
||||
VstInt32 type, order;
|
||||
char programName[32];
|
||||
char dbgStr[80];
|
||||
|
||||
|
||||
Reference in New Issue
Block a user