From 6773cf3e2036afbd8807a25f2a8732fb1ddb0bbf Mon Sep 17 00:00:00 2001 From: Jens Ahrensfeld Date: Tue, 11 Nov 2025 15:24:29 +0100 Subject: [PATCH] cleaned up --- src/.gitignore | 1 - src/config.mk | 0 src/iir.c | 225 ------------------------- src/iir.h | 70 -------- src/{filterMain.cpp => pluginMain.cpp} | 0 5 files changed, 296 deletions(-) delete mode 100644 src/.gitignore delete mode 100644 src/config.mk delete mode 100644 src/iir.c delete mode 100644 src/iir.h rename src/{filterMain.cpp => pluginMain.cpp} (100%) diff --git a/src/.gitignore b/src/.gitignore deleted file mode 100644 index 567609b..0000000 --- a/src/.gitignore +++ /dev/null @@ -1 +0,0 @@ -build/ diff --git a/src/config.mk b/src/config.mk deleted file mode 100644 index e69de29..0000000 diff --git a/src/iir.c b/src/iir.c deleted file mode 100644 index 88a7a59..0000000 --- a/src/iir.c +++ /dev/null @@ -1,225 +0,0 @@ -/************************************************************************* -** iir.c -**************************************************************************/ -#include "stdio.h" -#include "math.h" -#include "iir.h" - -/************************************************************************* -** Global Variables -**************************************************************************/ -const char *filterTypeString[] = -{ - "Unknown filter type", - "Butterworth-Lowpass", - "Butterworth-Highpass", - "Butterworth-Bandpass", - "Butterworth-Bandstop", - "Peaking-EQ", - "Low Shelving-EQ", - "High Shelving-EQ" -}; - -/******************************************************************************/ -void IIRCalcFilterCoeff(struct _sIIRCoeff *pCoeff, float fa, float fg, float q, unsigned order, unsigned filterType) -{ - unsigned p; - float qp; - - //IIRInit(pCoeff, order); - - for(p=0; p < order/2;p++) - { - qp = q * IIRCalcQp(p+1, order); - IIRCalcPartFilterCoeff2(&pCoeff[p], 1.0, fa, fg, qp, filterType); - } -} - -int IIRCalcPartFilterCoeff1(struct _sIIRCoeff *pCoeff, float fa, float fg, float Qi, unsigned filterType) -{ - float K, a0; - float alpha, omega, ks, kc; - unsigned error; - - omega = (float)(2*pi*fg/fa); - ks = (float)sin(omega); - kc = (float)cos(omega); - alpha = (float)(0.5*ks /Qi); - - K = IIRBilTrans(fg, fa); - a0 = K/Qi + 1; - - switch(filterType) - { - case IIR_FILTERTYPE_LOWPASS: - - pCoeff->ak0 = 1.0; - pCoeff->ak1 = (1 - K/Qi)/a0; - pCoeff->ak2 = 0.0; - - pCoeff->bk0 = (float)(1.0/a0); - pCoeff->bk1 = (float)(1.0/a0); - pCoeff->bk2 = (float)0.0; - - break; - - case IIR_FILTERTYPE_HIGHPASS: - - pCoeff->ak0 = 1.0; - pCoeff->ak1 = (1 - K/Qi) /a0; - pCoeff->ak2 = 0.0; - - pCoeff->bk0 = (float)(1.0*K /a0); - pCoeff->bk1 = (float)(-1.0*K /a0); - pCoeff->bk2 = (float)0.0; - - break; - - default: - error = -1; - break; - } - return error; -} - -int IIRCalcPartFilterCoeff2(struct _sIIRCoeff *pCoeff, float A, float fa, float fg, float qp, unsigned filterType) -{ - float a0; - float alpha, omega, ks, kc; - unsigned error; - - omega = (float)(2*pi*fg/fa); - ks = (float)sin(omega); - kc = (float)cos(omega); - alpha = (float)(0.5*ks /qp); - - error = 0; - switch(filterType) - { - case IIR_FILTERTYPE_LOWPASS: - - a0 = 1 + alpha; - pCoeff->ak0 = 1.0; - pCoeff->ak1 = (float)(-2.0*kc /a0); - pCoeff->ak2 = (1 - alpha) /a0; - - pCoeff->bk0 = (float)(0.5*(1 - kc) /a0); - pCoeff->bk1 = (1 - kc) /a0; - pCoeff->bk2 = (float)(0.5*(1 - kc) /a0); - - break; - - case IIR_FILTERTYPE_HIGHPASS: - - a0 = 1 + alpha; - pCoeff->ak0 = 1.0; - pCoeff->ak1 = (float)(-2.0*kc /a0); - pCoeff->ak2 = (1 - alpha) /a0; - - pCoeff->bk0 = (float)(0.5*(1 + kc) /a0); - pCoeff->bk1 = -(1 + kc) /a0; - pCoeff->bk2 = (float)(0.5*(1 + kc) /a0); - - break; - - case IIR_FILTERTYPE_BANDPASS: - - a0 = 1 + alpha; - pCoeff->ak0 = 1.0; - pCoeff->ak1 = (float)(-2.0*kc /a0); - pCoeff->ak2 = (1 - alpha) /a0; - - pCoeff->bk0 = alpha /a0; - pCoeff->bk1 = 0; - pCoeff->bk2 = -alpha /a0; - - break; - - case IIR_FILTERTYPE_BANDSTOP: - - a0 = 1 + alpha; - pCoeff->ak0 = 1.0; - pCoeff->ak1 = (float)(-2.0*kc /a0); - pCoeff->ak2 = (1 - alpha) /a0; - - pCoeff->bk0 = (float)(1.0 /a0); - pCoeff->bk1 = (float)(-2.0*kc /a0); - pCoeff->bk2 = (float)(1.0 /a0); - - break; - - case IIR_FILTERTYPE_PEAKING: - - a0 = 1 + (alpha/A); - pCoeff->ak0 = 1.0; - pCoeff->ak1 = (float)(-2.0*kc /a0); - pCoeff->ak2 = (1 - (alpha/A)) /a0; - - pCoeff->bk0 = (1 + (alpha*A)) /a0; - pCoeff->bk1 = (float)(-2.0*kc /a0); - pCoeff->bk2 = (1 - (alpha*A)) /a0; - - break; - - default: - error = -1; - break; - } - return error; -} - -void IIR(struct _sIIRCoeff *pCoeff, float *xn, float *yn, unsigned order, unsigned numPoints) -{ - float xp, yp; - unsigned i, p; - unsigned numSec = order/2; - - for (i=0; i - -#define pi 3.1415926535897932384626433832795 - -#define IIR_FILTERTYPE_UNKNOWN 0x00000000 -#define IIR_FILTERTYPE_LOWPASS 0x00000001 -#define IIR_FILTERTYPE_HIGHPASS 0x00000002 -#define IIR_FILTERTYPE_BANDPASS 0x00000003 -#define IIR_FILTERTYPE_BANDSTOP 0x00000004 -#define IIR_FILTERTYPE_PEAKING 0x00000005 -#define IIR_FILTERTYPE_LOWSHELF 0x00000006 -#define IIR_FILTERTYPE_HIGHSHELF 0x00000007 - -#if defined(__cplusplus) -extern "C" { -#endif -/******************************************************************************/ -typedef struct _sComplex -{ - float pRealData, pImagData; -} Complex; - -typedef struct _sIIRCoeff -{ - - float ak0, ak1, ak2; - float bk0, bk1, bk2; - float xn1, xn2; - float yn1, yn2; - -}IIRCOEFF; - -typedef struct _sIIRParam -{ - /* General Params */ - float fg, Qf; - - /* for shelving EQs */ - float beta; - - /* for peaking and shelving EQs */ - float A; -}IIRPARAM; - -/******************************************************************************/ -void IIRInit(struct _sIIRCoeff *pCoeff, unsigned order); -int IIRCalcPartFilterCoeff1(struct _sIIRCoeff *pCoeff, float fa, float fg, float qp, unsigned filterType); -int IIRCalcPartFilterCoeff2(struct _sIIRCoeff *pCoeff, float A, float fa, float fg, float qp, unsigned filterType); -void IIRCalcFilterCoeff(struct _sIIRCoeff *pCoeff, float fa, float fg, float q, unsigned order, unsigned filterType); - -float IIRBilTrans(float fg, float fa); -float IIRCalcQp(unsigned p, unsigned N); -void IIR(struct _sIIRCoeff *pCoeff, float *xn, float *yn, unsigned order, unsigned numPoints); -void IIRPrintCoeff(FILE *pFile, struct _sIIRCoeff *pCoeff, unsigned N); -void ScaleCoeff(struct _sIIRCoeff *pCoeff); -float MinMag(float val1, float val2); -float MaxMag(float val1, float val2); - -/******************************************************************************/ -#if defined(__cplusplus) -} -#endif - -#endif /* IIR_H */ diff --git a/src/filterMain.cpp b/src/pluginMain.cpp similarity index 100% rename from src/filterMain.cpp rename to src/pluginMain.cpp