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