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
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
View File
@@ -1,5 +1,5 @@
/***************************************************************/
/* paramutils.h
// paramutils.h
/***************************************************************/
#ifndef PARAMUTILS_H
#define PARAMUTILS_H
+69 -106
View File
@@ -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);
}
-3
View File
@@ -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];