From cd7d09bc61a6467554ec28bd847db19bad64acae Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Tue, 11 Nov 2025 16:17:37 +0100 Subject: [PATCH] compile clean and loadable --- Makefile | 2 +- src/paramutils.h | 2 +- src/plugin.cpp | 183 +++++++++++++++++++---------------------------- src/plugin.hpp | 3 - 4 files changed, 75 insertions(+), 115 deletions(-) diff --git a/Makefile b/Makefile index f3912a0..497cada 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/src/paramutils.h b/src/paramutils.h index 0edff7e..5c8d01d 100755 --- a/src/paramutils.h +++ b/src/paramutils.h @@ -1,5 +1,5 @@ /***************************************************************/ -/* paramutils.h +// paramutils.h /***************************************************************/ #ifndef PARAMUTILS_H #define PARAMUTILS_H diff --git a/src/plugin.cpp b/src/plugin.cpp index b56c4e5..bac9d26 100755 --- a/src/plugin.cpp +++ b/src/plugin.cpp @@ -6,29 +6,35 @@ #include #include "plugin.hpp" +#include +#include + #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); - 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; - + case ORDER: + case SIZE_1: + case SIZE_2: + case SIZE_3: + case SIZE_4: + case FEEDBACK: + strcpy(text, pFTypeString[index]); + break; } } @@ -193,27 +180,14 @@ 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 "); - break; + case ORDER: + 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); } diff --git a/src/plugin.hpp b/src/plugin.hpp index 6b8f9b2..4eb7fac 100755 --- a/src/plugin.hpp +++ b/src/plugin.hpp @@ -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];