refactored
This commit is contained in:
Vendored
-132
@@ -1,132 +0,0 @@
|
||||
[
|
||||
{
|
||||
"arguments": [
|
||||
"/usr/bin/clang++",
|
||||
"-fPIC",
|
||||
"-std=c++11",
|
||||
"-g",
|
||||
"-O3",
|
||||
"-DVST_2_4_EXTENSIONS=0",
|
||||
"-DVST_2_3_EXTENSIONS=1",
|
||||
"-I",
|
||||
"/home/jens/work/repos/JayFilter/src",
|
||||
"-I",
|
||||
"/home/jens/work/repos/JayFilter/sdk/vst/vstsdk2.4",
|
||||
"-c",
|
||||
"-o",
|
||||
"/home/jens/work/repos/JayFilter/build/linux/release/Filter/src/filter.o",
|
||||
"src/filter.cpp"
|
||||
],
|
||||
"directory": "/home/jens/work/repos/JayFilter",
|
||||
"file": "/home/jens/work/repos/JayFilter/src/filter.cpp",
|
||||
"output": "/home/jens/work/repos/JayFilter/build/linux/release/Filter/src/filter.o"
|
||||
},
|
||||
{
|
||||
"arguments": [
|
||||
"/usr/bin/clang++",
|
||||
"-fPIC",
|
||||
"-std=c++11",
|
||||
"-g",
|
||||
"-O3",
|
||||
"-DVST_2_4_EXTENSIONS=0",
|
||||
"-DVST_2_3_EXTENSIONS=1",
|
||||
"-I",
|
||||
"/home/jens/work/repos/JayFilter/src",
|
||||
"-I",
|
||||
"/home/jens/work/repos/JayFilter/sdk/vst/vstsdk2.4",
|
||||
"-c",
|
||||
"-o",
|
||||
"/home/jens/work/repos/JayFilter/build/linux/release/Filter/src/filterMain.o",
|
||||
"src/filterMain.cpp"
|
||||
],
|
||||
"directory": "/home/jens/work/repos/JayFilter",
|
||||
"file": "/home/jens/work/repos/JayFilter/src/filterMain.cpp",
|
||||
"output": "/home/jens/work/repos/JayFilter/build/linux/release/Filter/src/filterMain.o"
|
||||
},
|
||||
{
|
||||
"arguments": [
|
||||
"/usr/bin/clang++",
|
||||
"-fPIC",
|
||||
"-std=c++11",
|
||||
"-g",
|
||||
"-O3",
|
||||
"-DVST_2_4_EXTENSIONS=0",
|
||||
"-DVST_2_3_EXTENSIONS=1",
|
||||
"-I",
|
||||
"/home/jens/work/repos/JayFilter/src",
|
||||
"-I",
|
||||
"/home/jens/work/repos/JayFilter/sdk/vst/vstsdk2.4",
|
||||
"-c",
|
||||
"-o",
|
||||
"/home/jens/work/repos/JayFilter/build/linux/release/Filter//home/jens/work/repos/JayFilter/sdk/vst/vstsdk2.4/public.sdk/source/vst2.x/audioeffect.o",
|
||||
"/home/jens/work/repos/JayFilter/sdk/vst/vstsdk2.4/public.sdk/source/vst2.x/audioeffect.cpp"
|
||||
],
|
||||
"directory": "/home/jens/work/repos/JayFilter",
|
||||
"file": "/home/jens/work/repos/JayFilter/sdk/vst/vstsdk2.4/public.sdk/source/vst2.x/audioeffect.cpp",
|
||||
"output": "/home/jens/work/repos/JayFilter/build/linux/release/Filter/home/jens/work/repos/JayFilter/sdk/vst/vstsdk2.4/public.sdk/source/vst2.x/audioeffect.o"
|
||||
},
|
||||
{
|
||||
"arguments": [
|
||||
"/usr/bin/clang++",
|
||||
"-fPIC",
|
||||
"-std=c++11",
|
||||
"-g",
|
||||
"-O3",
|
||||
"-DVST_2_4_EXTENSIONS=0",
|
||||
"-DVST_2_3_EXTENSIONS=1",
|
||||
"-I",
|
||||
"/home/jens/work/repos/JayFilter/src",
|
||||
"-I",
|
||||
"/home/jens/work/repos/JayFilter/sdk/vst/vstsdk2.4",
|
||||
"-c",
|
||||
"-o",
|
||||
"/home/jens/work/repos/JayFilter/build/linux/release/Filter//home/jens/work/repos/JayFilter/sdk/vst/vstsdk2.4/public.sdk/source/vst2.x/audioeffectx.o",
|
||||
"/home/jens/work/repos/JayFilter/sdk/vst/vstsdk2.4/public.sdk/source/vst2.x/audioeffectx.cpp"
|
||||
],
|
||||
"directory": "/home/jens/work/repos/JayFilter",
|
||||
"file": "/home/jens/work/repos/JayFilter/sdk/vst/vstsdk2.4/public.sdk/source/vst2.x/audioeffectx.cpp",
|
||||
"output": "/home/jens/work/repos/JayFilter/build/linux/release/Filter/home/jens/work/repos/JayFilter/sdk/vst/vstsdk2.4/public.sdk/source/vst2.x/audioeffectx.o"
|
||||
},
|
||||
{
|
||||
"arguments": [
|
||||
"/usr/bin/clang",
|
||||
"-fPIC",
|
||||
"-g",
|
||||
"-O3",
|
||||
"-DVST_2_4_EXTENSIONS=0",
|
||||
"-DVST_2_3_EXTENSIONS=1",
|
||||
"-I",
|
||||
"/home/jens/work/repos/JayFilter/src",
|
||||
"-I",
|
||||
"/home/jens/work/repos/JayFilter/sdk/vst/vstsdk2.4",
|
||||
"-c",
|
||||
"-o",
|
||||
"/home/jens/work/repos/JayFilter/build/linux/release/Filter/src/iir.o",
|
||||
"src/iir.c"
|
||||
],
|
||||
"directory": "/home/jens/work/repos/JayFilter",
|
||||
"file": "/home/jens/work/repos/JayFilter/src/iir.c",
|
||||
"output": "/home/jens/work/repos/JayFilter/build/linux/release/Filter/src/iir.o"
|
||||
},
|
||||
{
|
||||
"arguments": [
|
||||
"/usr/bin/clang",
|
||||
"-fPIC",
|
||||
"-g",
|
||||
"-O3",
|
||||
"-DVST_2_4_EXTENSIONS=0",
|
||||
"-DVST_2_3_EXTENSIONS=1",
|
||||
"-I",
|
||||
"/home/jens/work/repos/JayFilter/src",
|
||||
"-I",
|
||||
"/home/jens/work/repos/JayFilter/sdk/vst/vstsdk2.4",
|
||||
"-c",
|
||||
"-o",
|
||||
"/home/jens/work/repos/JayFilter/build/linux/release/Filter/src/paramutils.o",
|
||||
"src/paramutils.c"
|
||||
],
|
||||
"directory": "/home/jens/work/repos/JayFilter",
|
||||
"file": "/home/jens/work/repos/JayFilter/src/paramutils.c",
|
||||
"output": "/home/jens/work/repos/JayFilter/build/linux/release/Filter/src/paramutils.o"
|
||||
}
|
||||
]
|
||||
@@ -1,6 +1,6 @@
|
||||
include make/defaults.mk
|
||||
NAME := Delay
|
||||
CONFIG ?= debug
|
||||
CONFIG ?= release
|
||||
TARGET ?= JayDelay.so
|
||||
|
||||
CFLAGS += -fPIC
|
||||
@@ -14,8 +14,9 @@ INCLUDES += -I $(realpath submodules/dsp)
|
||||
|
||||
DEFINES += -DVST_2_4_EXTENSIONS=0 -DVST_2_3_EXTENSIONS=1
|
||||
|
||||
GCC_SRCS := src/iir.c src/paramutils.c
|
||||
CXX_SRCS := src/filter.cpp src/filterMain.cpp
|
||||
GCC_SRCS := src/paramutils.c
|
||||
CXX_SRCS := src/plugin.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
|
||||
|
||||
|
||||
@@ -4,13 +4,8 @@
|
||||
|
||||
-----------------------------------------------------------------------------*/
|
||||
|
||||
#ifdef WIN32
|
||||
#include <windows.h>
|
||||
#endif
|
||||
#include <reverb/reverb.hpp>
|
||||
#include <stdio.h>
|
||||
#include "iir.h"
|
||||
#include "filter.hpp"
|
||||
#include "plugin.hpp"
|
||||
#include "paramutils.h"
|
||||
|
||||
#define NUM_PARMS 7
|
||||
@@ -37,11 +32,11 @@ char *pParmStr[NUM_PARMS] = {"Order","Filter-Type","Freq min","Freq max","Freque
|
||||
|
||||
AudioEffect* createEffectInstance (audioMasterCallback audioMaster)
|
||||
{
|
||||
return new Filter (audioMaster);
|
||||
return new Plugin (audioMaster);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------
|
||||
Filter::Filter(audioMasterCallback audioMaster)
|
||||
Plugin::Plugin(audioMasterCallback audioMaster)
|
||||
: AudioEffectX(audioMaster, 1, NUM_PARMS) // 1 program, 1 parameter only
|
||||
//, m_reverb_1({(uint)(48000*0.02), (uint)(48000*0.04), (uint)(48000*0.08), (uint)(48000*0.16)}, (uint)(48000*0.1), (uint)(48000*0.2))
|
||||
//, m_reverb_2({(uint)(48000*0.02), (uint)(48000*0.04), (uint)(48000*0.08), (uint)(48000*0.16)}, (uint)(48000*0.1), (uint)(48000*0.2))
|
||||
@@ -49,101 +44,75 @@ Filter::Filter(audioMasterCallback audioMaster)
|
||||
, m_reverb_2({(uint)(48000*0.48)}, (uint)(48000*0.1), (uint)(48000*0.2))
|
||||
{
|
||||
sampleRate = 48000;
|
||||
fg = 1000/sampleRate; // default to 1000 Hz
|
||||
order = 4;
|
||||
q = 1.0f/MAX_Q;
|
||||
type = IIR_FILTERTYPE_LOWPASS;
|
||||
setNumInputs(2); // stereo in
|
||||
setNumOutputs(2); // stereo out
|
||||
setUniqueID('Filt'); // 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
|
||||
IIRInit(filterCoeff_L, order);
|
||||
IIRInit(filterCoeff_R, order);
|
||||
sm_fg = fg;
|
||||
sm_q = q;
|
||||
testParam=0;
|
||||
|
||||
IIRCalcFilterCoeff(filterCoeff_L, sampleRate, sm_fg*sampleRate, sm_q, order, type);
|
||||
IIRCalcFilterCoeff(filterCoeff_R, sampleRate, sm_fg*sampleRate, sm_q, order, type);
|
||||
forder = (0.5f/MAX_ORDER)*(float)(order -1);
|
||||
ftype = (1.0f/MAX_TYPES)*(float)(type -1);
|
||||
f_fmin = 0;
|
||||
f_fmax = 17300.f/sampleRate;
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------------
|
||||
Filter::~Filter()
|
||||
Plugin::~Plugin()
|
||||
{
|
||||
// nothing to do here
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------------
|
||||
void Filter::setProgramName(char *name)
|
||||
void Plugin::setProgramName(char *name)
|
||||
{
|
||||
strcpy(programName, name);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------------
|
||||
void Filter::getProgramName(char *name)
|
||||
void Plugin::getProgramName(char *name)
|
||||
{
|
||||
strcpy(name, programName);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------------
|
||||
void Filter::setParameter(VstInt32 index, float value)
|
||||
void Plugin::setParameter(VstInt32 index, float value)
|
||||
{
|
||||
fg = f_fmin + value*(f_fmax-f_fmin);
|
||||
|
||||
|
||||
switch(index)
|
||||
{
|
||||
case TYPE:
|
||||
|
||||
ftype = ParamQuantize(value,1.0f/(MAX_TYPES-1));
|
||||
|
||||
type = 1 + (VstInt32)(ftype*(MAX_TYPES-1));
|
||||
IIRCalcFilterCoeff(filterCoeff_L, sampleRate, 0.5f*fg*sampleRate, q*MAX_Q, order, type);
|
||||
IIRCalcFilterCoeff(filterCoeff_R, sampleRate, 0.5f*fg*sampleRate, q*MAX_Q, order, type);
|
||||
sprintf(dbgStr, "Set Param: %f",ftype);
|
||||
break;
|
||||
|
||||
case ORDER:
|
||||
forder = ParamQuantize(value,1.0f/(MAX_ORDER/2-1));
|
||||
order = 2*(VstInt32)(1+forder*MAX_ORDER/2);
|
||||
sprintf(dbgStr, "value = %f, forder = %f, order = %d",value,forder,order);
|
||||
// OutputDebugString(dbgStr);
|
||||
IIRCalcFilterCoeff(filterCoeff_L, sampleRate, 0.5f*fg*sampleRate, q*MAX_Q, order, type);
|
||||
IIRCalcFilterCoeff(filterCoeff_R, sampleRate, 0.5f*fg*sampleRate, q*MAX_Q, order, type);
|
||||
sprintf(dbgStr, "Set Param: %f",forder);
|
||||
break;
|
||||
|
||||
case FMIN:
|
||||
f_fmin = value;
|
||||
sprintf(dbgStr, "Set Param: %f",value);
|
||||
break;
|
||||
|
||||
case FMAX:
|
||||
f_fmax = value;
|
||||
sprintf(dbgStr, "Set Param: %f",value);
|
||||
break;
|
||||
|
||||
case FG:
|
||||
f_fg_param = value;
|
||||
sprintf(dbgStr, "Set Param: %f",value);
|
||||
break;
|
||||
|
||||
case Q:
|
||||
q = value;
|
||||
sprintf(dbgStr, "Set Param: %f",value);
|
||||
break;
|
||||
|
||||
case TESTPARAM:
|
||||
testParam=ParamQuantize(value,1.0f/3);
|
||||
sprintf(dbgStr, "Set Param: %f",value);
|
||||
// OutputDebugString(dbgStr);
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------------
|
||||
float Filter::getParameter(VstInt32 index)
|
||||
float Plugin::getParameter(VstInt32 index)
|
||||
{
|
||||
float value = 0;
|
||||
|
||||
@@ -183,13 +152,13 @@ float Filter::getParameter(VstInt32 index)
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------------
|
||||
void Filter::getParameterName(VstInt32 index, char *label)
|
||||
void Plugin::getParameterName(VstInt32 index, char *label)
|
||||
{
|
||||
strcpy(label,pParmStr[index]);
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------------
|
||||
void Filter::getParameterDisplay(VstInt32 index, char *text)
|
||||
void Plugin::getParameterDisplay(VstInt32 index, char *text)
|
||||
{
|
||||
|
||||
switch(index)
|
||||
@@ -220,7 +189,7 @@ void Filter::getParameterDisplay(VstInt32 index, char *text)
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------------
|
||||
void Filter::getParameterLabel(VstInt32 index, char *label)
|
||||
void Plugin::getParameterLabel(VstInt32 index, char *label)
|
||||
{
|
||||
switch(index)
|
||||
{
|
||||
@@ -249,7 +218,7 @@ void Filter::getParameterLabel(VstInt32 index, char *label)
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------------
|
||||
void Filter::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
|
||||
void Plugin::processReplacing(float **inputs, float **outputs, VstInt32 sampleFrames)
|
||||
{
|
||||
float *in1 = inputs[0];
|
||||
float *in2 = inputs[1];
|
||||
@@ -272,7 +241,7 @@ void Filter::processReplacing(float **inputs, float **outputs, VstInt32 sampleFr
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------------
|
||||
void Filter::setSampleRate(float sampleRate)
|
||||
void Plugin::setSampleRate(float sampleRate)
|
||||
{
|
||||
this->sampleRate = sampleRate;
|
||||
sprintf(dbgStr, "Sample Rate = %f",sampleRate);
|
||||
@@ -280,7 +249,7 @@ void Filter::setSampleRate(float sampleRate)
|
||||
}
|
||||
|
||||
//-----------------------------------------------------------------------------------------
|
||||
void Filter::setBlockSize(VstInt32 blockSize)
|
||||
void Plugin::setBlockSize(VstInt32 blockSize)
|
||||
{
|
||||
this->blockSize = blockSize;
|
||||
sprintf(dbgStr, "Block Size = %d",blockSize);
|
||||
@@ -3,18 +3,17 @@
|
||||
� 1999, Steinberg Soft und Hardware GmbH, All Rights Reserved
|
||||
|
||||
-----------------------------------------------------------------------------*/
|
||||
#ifndef __FILTER_H
|
||||
#define __FILTER_H
|
||||
#ifndef __PLUGIN_H
|
||||
#define __PLUGIN_H
|
||||
|
||||
#include "public.sdk/source/vst2.x/audioeffectx.h"
|
||||
#include <reverb/reverb.hpp>
|
||||
#include "iir.h"
|
||||
|
||||
class Filter : public AudioEffectX
|
||||
class Plugin : public AudioEffectX
|
||||
{
|
||||
public:
|
||||
Filter(audioMasterCallback audioMaster);
|
||||
~Filter();
|
||||
Plugin(audioMasterCallback audioMaster);
|
||||
~Plugin();
|
||||
|
||||
// Processing
|
||||
virtual void processReplacing (float** inputs, float** outputs, VstInt32 sampleFrames);
|
||||
@@ -39,12 +38,10 @@ protected:
|
||||
VstInt32 type, order;
|
||||
char programName[32];
|
||||
char dbgStr[80];
|
||||
IIRPARAM filterParms;
|
||||
IIRCOEFF filterCoeff_L[8], filterCoeff_R[8];
|
||||
|
||||
private:
|
||||
Reverb<float, 8> m_reverb_1;
|
||||
Reverb<float, 8> m_reverb_2;
|
||||
};
|
||||
|
||||
#endif
|
||||
#endif // __PLUGIN_H
|
||||
+2
-2
@@ -3,7 +3,7 @@
|
||||
� 1999, Steinberg Soft und Hardware GmbH, All Rights Reserved
|
||||
|
||||
-----------------------------------------------------------------------------*/
|
||||
#include "filter.hpp" // *change*
|
||||
#include "plugin.hpp" // *change*
|
||||
|
||||
static AudioEffect *effect = 0;
|
||||
bool oome = false;
|
||||
@@ -14,7 +14,7 @@ AEffect *VSTPluginMain (audioMasterCallback audioMaster)
|
||||
if (!audioMaster (0, audioMasterVersion, 0, 0, 0, 0))
|
||||
return 0; // old version
|
||||
|
||||
effect = new Filter (audioMaster);
|
||||
effect = new Plugin (audioMaster);
|
||||
if (!effect)
|
||||
return 0;
|
||||
if (oome)
|
||||
|
||||
Reference in New Issue
Block a user