compile clean and loadable

This commit is contained in:
2025-11-11 16:17:37 +01:00
parent 453fb493f3
commit cd7d09bc61
4 changed files with 75 additions and 115 deletions
+1 -1
View File
@@ -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
View File
@@ -1,5 +1,5 @@
/***************************************************************/ /***************************************************************/
/* paramutils.h // paramutils.h
/***************************************************************/ /***************************************************************/
#ifndef PARAMUTILS_H #ifndef PARAMUTILS_H
#define PARAMUTILS_H #define PARAMUTILS_H
+69 -106
View File
@@ -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);
} }
-3
View File
@@ -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];