mirror of
https://github.com/thestk/stk
synced 2026-01-12 04:21:52 +00:00
45 lines
1.1 KiB
C++
45 lines
1.1 KiB
C++
/*******************************************/
|
|
/*
|
|
One Pole Filter Class,
|
|
by Perry R. Cook, 1995-96.
|
|
Added methods by Julius Smith, 2000.
|
|
|
|
The parameter gain is an additional
|
|
gain parameter applied to the filter
|
|
on top of the normalization that takes
|
|
place automatically. So the net max
|
|
gain through the system equals the
|
|
value of gain. sgain is the combina-
|
|
tion of gain and the normalization
|
|
parameter, so if you set the poleCoeff
|
|
to alpha, sgain is always set to
|
|
gain * (1.0 - fabs(alpha)).
|
|
*/
|
|
/*******************************************/
|
|
|
|
#if !defined(__OnePole_h)
|
|
#define __OnePole_h
|
|
|
|
#include "Filter.h"
|
|
|
|
class OnePole : public Filter
|
|
{
|
|
protected:
|
|
MY_FLOAT poleCoeff;
|
|
MY_FLOAT sgain;
|
|
public:
|
|
OnePole();
|
|
OnePole(MY_FLOAT thePole);
|
|
~OnePole();
|
|
void clear();
|
|
void setB0(MY_FLOAT aValue); /* set numerator b0 in b0/(1+a1/z) */
|
|
void setNum(MY_FLOAT *values);
|
|
void setA1(MY_FLOAT aValue); /* set denominator a1 in b0/(1+a1/z) */
|
|
void setDen(MY_FLOAT *values);
|
|
void setPole(MY_FLOAT aValue);
|
|
void setGain(MY_FLOAT aValue);
|
|
MY_FLOAT tick(MY_FLOAT sample);
|
|
};
|
|
|
|
#endif
|