36 #ifndef DSPFILTERS_CHEBYSHEVI_H
37 #define DSPFILTERS_CHEBYSHEVI_H
43 #include "PoleFilter.h"
52 namespace ChebyshevI {
61 void design (
const int numPoles,
76 void design (
int numPoles,
92 void setup (
int order,
94 double cutoffFrequency,
100 void setup (
int order,
102 double cutoffFrequency,
108 void setup (
int order,
110 double centerFrequency,
111 double widthFrequency,
117 void setup (
int order,
119 double centerFrequency,
120 double widthFrequency,
126 void setup (
int order,
128 double cutoffFrequency,
135 void setup (
int order,
137 double cutoffFrequency,
144 void setup (
int order,
146 double centerFrequency,
147 double widthFrequency,
158 template <
int MaxOrder>
163 template <
int MaxOrder>
168 template <
int MaxOrder>
173 template <
int MaxOrder>
178 template <
int MaxOrder>
183 template <
int MaxOrder>
188 template <
int MaxOrder>
208 static int getNumParams ()
215 return ParamInfo::defaultCutoffFrequencyParam ();
220 return ParamInfo::defaultRippleDbParam ();
224 template <
class FilterClass>
227 void setParams (
const Params& params)
229 FilterClass::setup (
int(params[1]), params[0], params[2], params[3]);
240 static int getNumParams ()
247 return ParamInfo::defaultCenterFrequencyParam ();
252 return ParamInfo::defaultBandwidthHzParam ();
257 return ParamInfo::defaultRippleDbParam ();
261 template <
class FilterClass>
264 void setParams (
const Params& params)
266 FilterClass::setup (
int(params[1]), params[0], params[2], params[3], params[4]);
277 static int getNumParams ()
284 return ParamInfo::defaultCutoffFrequencyParam ();
289 return ParamInfo::defaultGainParam ();
294 return ParamInfo::defaultRippleDbParam ();
298 template <
class FilterClass>
301 void setParams (
const Params& params)
303 FilterClass::setup (
int(params[1]), params[0], params[2], params[3], params[4]);
314 static int getNumParams ()
321 return ParamInfo::defaultCenterFrequencyParam ();
326 return ParamInfo::defaultBandwidthHzParam ();
331 return ParamInfo::defaultGainParam ();
336 return ParamInfo::defaultRippleDbParam ();
340 template <
class FilterClass>
343 void setParams (
const Params& params)
345 FilterClass::setup (
int(params[1]), params[0], params[2], params[3], params[4], params[5]);
353 static Kind getKind () {
return kindLowPass; }
354 static const char* getName() {
return "Chebyshev I Low Pass"; }
359 static Kind getKind () {
return kindHighPass; }
360 static const char* getName() {
return "Chebyshev I High Pass"; }
365 static Kind getKind () {
return kindHighPass; }
366 static const char* getName() {
return "Chebyshev I Band Pass"; }
371 static Kind getKind () {
return kindHighPass; }
372 static const char* getName() {
return "Chebyshev I Band Stop"; }
377 static Kind getKind () {
return kindLowShelf; }
378 static const char* getName() {
return "Chebyshev I Low Shelf"; }
383 static Kind getKind () {
return kindHighShelf; }
384 static const char* getName() {
return "Chebyshev I High Shelf"; }
389 static Kind getKind () {
return kindBandShelf; }
390 static const char* getName() {
return "Chebyshev I Band Shelf"; }
394 template <
int MaxOrder,
395 template <
class>
class TypeClass,
396 template <
int>
class FilterClass>
401 return ParamInfo (idOrder,
"Order",
"Order",
403 &ParamInfo::Int_toControlValue,
404 &ParamInfo::Int_toNativeValue,
405 &ParamInfo::Int_toString);
416 template <
int MaxOrder>
422 template <
int MaxOrder>
428 template <
int MaxOrder>
434 template <
int MaxOrder>
440 template <
int MaxOrder>
446 template <
int MaxOrder>
452 template <
int MaxOrder>