36 #ifndef DSPFILTERS_RBJ_H
37 #define DSPFILTERS_RBJ_H
61 void setup (
double sampleRate,
62 double cutoffFrequency,
68 void setup (
double sampleRate,
69 double cutoffFrequency,
76 void setup (
double sampleRate,
77 double centerFrequency,
84 void setup (
double sampleRate,
85 double centerFrequency,
91 void setup (
double sampleRate,
92 double centerFrequency,
98 void setup (
double sampleRate,
99 double cutoffFrequency,
106 void setup (
double sampleRate,
107 double cutoffFrequency,
114 void setup (
double sampleRate,
115 double centerFrequency,
122 void setup (
double sampleRate,
123 double phaseFrequency,
142 static int getNumParams ()
149 return ParamInfo::defaultCutoffFrequencyParam ();
154 return ParamInfo::defaultQParam ();
158 template <
class FilterClass>
161 void setParams (
const Params& params)
163 FilterClass::setup (params[0], params[1], params[2]);
174 static int getNumParams ()
181 return ParamInfo::defaultCenterFrequencyParam ();
186 return ParamInfo::defaultBandwidthParam ();
190 template <
class FilterClass>
193 void setParams (
const Params& params)
195 FilterClass::setup (params[0], params[1], params[2]);
206 static int getNumParams ()
213 return ParamInfo::defaultCutoffFrequencyParam ();
218 return ParamInfo::defaultGainParam ();
223 return ParamInfo::defaultSlopeParam ();
227 template <
class FilterClass>
230 void setParams (
const Params& params)
232 FilterClass::setup (params[0], params[1], params[2], params[3]);
243 static int getNumParams ()
250 return ParamInfo::defaultCenterFrequencyParam ();
255 return ParamInfo::defaultGainParam ();
260 return ParamInfo::defaultBandwidthParam ();
264 template <
class FilterClass>
267 void setParams (
const Params& params)
269 FilterClass::setup (params[0], params[1], params[2], params[3]);
277 static Kind getKind () {
return kindLowPass; }
278 static const char* getName() {
return "RBJ Low Pass"; }
283 static Kind getKind () {
return kindHighPass; }
284 static const char* getName() {
return "RBJ High Pass"; }
289 static Kind getKind () {
return kindBandPass; }
290 static const char* getName() {
return "RBJ Band Pass 1"; }
295 static Kind getKind () {
return kindBandPass; }
296 static const char* getName() {
return "RBJ Band Pass 2"; }
301 static Kind getKind () {
return kindBandStop; }
302 static const char* getName() {
return "RBJ Band Stop"; }
307 static Kind getKind () {
return kindLowShelf; }
308 static const char* getName() {
return "RBJ Low Shelf"; }
313 static Kind getKind () {
return kindHighShelf; }
314 static const char* getName() {
return "RBJ High Shelf"; }
319 static Kind getKind () {
return kindBandShelf; }
320 static const char* getName() {
return "RBJ Band Shelf"; }
325 static Kind getKind () {
return kindOther; }
326 static const char* getName() {
return "RBJ All Pass"; }