40#include "PoleFilter.h"
56class IIR_EXPORT AnalogLowPass :
public LayoutBase
61 void design (
const int numPoles);
72class IIR_EXPORT AnalogLowShelf :
public LayoutBase
77 void design (
int numPoles,
double gainDb);
81 double m_gainDb = 0.0;
88 void setup (
int order,
89 double cutoffFrequency);
94 void setup (
int order,
95 double cutoffFrequency);
100 void setup (
int order,
101 double centerFrequency,
102 double widthFrequency);
107 void setup (
int order,
108 double centerFrequency,
109 double widthFrequency);
114 void setup (
int order,
115 double cutoffFrequency,
121 void setup (
int order,
122 double cutoffFrequency,
128 void setup (
int order,
129 double centerFrequency,
130 double widthFrequency,
145template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
146struct LowPass : PoleFilter <LowPassBase, StateType, FilterOrder>
154 double cutoffFrequency) {
155 LowPassBase::setup (FilterOrder,
156 cutoffFrequency / sampleRate);
167 double cutoffFrequency) {
168 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
169 LowPassBase::setup (reqOrder,
170 cutoffFrequency / sampleRate);
179 LowPassBase::setup (FilterOrder,
189 double cutoffFrequency) {
190 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
191 LowPassBase::setup (reqOrder,
201template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
202struct HighPass : PoleFilter <HighPassBase, StateType, FilterOrder>
211 double cutoffFrequency) {
212 HighPassBase::setup (FilterOrder,
213 cutoffFrequency / sampleRate);
223 double cutoffFrequency) {
224 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
225 HighPassBase::setup (reqOrder,
226 cutoffFrequency / sampleRate);
235 HighPassBase::setup (FilterOrder,
244 double cutoffFrequency) {
245 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
246 HighPassBase::setup (reqOrder,
256template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
257struct BandPass : PoleFilter <BandPassBase, StateType, FilterOrder, FilterOrder*2>
266 double centerFrequency,
267 double widthFrequency) {
268 BandPassBase::setup(FilterOrder,
269 centerFrequency / sampleRate,
270 widthFrequency / sampleRate);
282 double centerFrequency,
283 double widthFrequency) {
284 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
285 BandPassBase::setup(reqOrder,
286 centerFrequency / sampleRate,
287 widthFrequency / sampleRate);
298 double widthFrequency) {
299 BandPassBase::setup(FilterOrder,
311 double centerFrequency,
312 double widthFrequency) {
313 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
314 BandPassBase::setup(reqOrder,
326template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
327struct BandStop : PoleFilter <BandStopBase, StateType, FilterOrder, FilterOrder*2>
336 double centerFrequency,
337 double widthFrequency) {
338 BandStopBase::setup (FilterOrder,
339 centerFrequency / sampleRate,
340 widthFrequency / sampleRate);
352 double centerFrequency,
353 double widthFrequency) {
354 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
355 BandStopBase::setup (reqOrder,
356 centerFrequency / sampleRate,
357 widthFrequency / sampleRate);
368 double widthFrequency) {
369 BandStopBase::setup (FilterOrder,
381 double centerFrequency,
382 double widthFrequency) {
383 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
384 BandStopBase::setup (reqOrder,
397template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
398struct LowShelf : PoleFilter <LowShelfBase, StateType, FilterOrder>
407 double cutoffFrequency,
409 LowShelfBase::setup (FilterOrder,
410 cutoffFrequency / sampleRate,
423 double cutoffFrequency,
425 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
426 LowShelfBase::setup (reqOrder,
427 cutoffFrequency / sampleRate,
441 LowShelfBase::setup (FilterOrder,
453 double cutoffFrequency,
455 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
456 LowShelfBase::setup (reqOrder,
470template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
471struct HighShelf : PoleFilter <HighShelfBase, StateType, FilterOrder>
480 double cutoffFrequency,
482 HighShelfBase::setup (FilterOrder,
483 cutoffFrequency / sampleRate,
496 double cutoffFrequency,
498 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
499 HighShelfBase::setup (reqOrder,
500 cutoffFrequency / sampleRate,
513 HighShelfBase::setup (FilterOrder,
525 double cutoffFrequency,
527 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
528 HighShelfBase::setup (reqOrder,
541template <
int FilterOrder = DEFAULT_FILTER_ORDER,
class StateType = DEFAULT_STATE>
542struct BandShelf : PoleFilter <BandShelfBase, StateType, FilterOrder, FilterOrder*2>
552 double centerFrequency,
553 double widthFrequency,
555 BandShelfBase::setup (FilterOrder,
556 centerFrequency / sampleRate,
557 widthFrequency / sampleRate,
571 double centerFrequency,
572 double widthFrequency,
574 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
575 BandShelfBase::setup (reqOrder,
576 centerFrequency / sampleRate,
577 widthFrequency / sampleRate,
590 double widthFrequency,
592 BandShelfBase::setup (FilterOrder,
606 double centerFrequency,
607 double widthFrequency,
609 if (reqOrder > FilterOrder) throw_invalid_argument(orderTooHigh);
610 BandShelfBase::setup (reqOrder,
Definition PoleFilter.h:90
Definition Butterworth.cpp:41
Definition Butterworth.h:99
Definition Butterworth.h:258
void setup(int reqOrder, double sampleRate, double centerFrequency, double widthFrequency)
Definition Butterworth.h:280
void setupN(int reqOrder, double centerFrequency, double widthFrequency)
Definition Butterworth.h:310
void setup(double sampleRate, double centerFrequency, double widthFrequency)
Definition Butterworth.h:265
void setupN(double centerFrequency, double widthFrequency)
Definition Butterworth.h:297
Definition Butterworth.h:127
Definition Butterworth.h:543
void setup(double sampleRate, double centerFrequency, double widthFrequency, double gainDb)
Definition Butterworth.h:551
void setupN(double centerFrequency, double widthFrequency, double gainDb)
Definition Butterworth.h:589
void setupN(int reqOrder, double centerFrequency, double widthFrequency, double gainDb)
Definition Butterworth.h:605
void setup(int reqOrder, double sampleRate, double centerFrequency, double widthFrequency, double gainDb)
Definition Butterworth.h:569
Definition Butterworth.h:106
Definition Butterworth.h:328
void setup(double sampleRate, double centerFrequency, double widthFrequency)
Definition Butterworth.h:335
void setupN(int reqOrder, double centerFrequency, double widthFrequency)
Definition Butterworth.h:380
void setup(int reqOrder, double sampleRate, double centerFrequency, double widthFrequency)
Definition Butterworth.h:350
void setupN(double centerFrequency, double widthFrequency)
Definition Butterworth.h:367
Definition Butterworth.h:93
Definition Butterworth.h:203
void setupN(int reqOrder, double cutoffFrequency)
Definition Butterworth.h:243
void setupN(double cutoffFrequency)
Definition Butterworth.h:234
void setup(int reqOrder, double sampleRate, double cutoffFrequency)
Definition Butterworth.h:221
void setup(double sampleRate, double cutoffFrequency)
Definition Butterworth.h:210
Definition Butterworth.h:120
Definition Butterworth.h:472
void setup(double sampleRate, double cutoffFrequency, double gainDb)
Definition Butterworth.h:479
void setupN(int reqOrder, double cutoffFrequency, double gainDb)
Definition Butterworth.h:524
void setup(int reqOrder, double sampleRate, double cutoffFrequency, double gainDb)
Definition Butterworth.h:494
void setupN(double cutoffFrequency, double gainDb)
Definition Butterworth.h:511
Definition Butterworth.h:87
Definition Butterworth.h:147
void setup(int reqOrder, double sampleRate, double cutoffFrequency)
Definition Butterworth.h:165
void setup(double sampleRate, double cutoffFrequency)
Definition Butterworth.h:153
void setupN(double cutoffFrequency)
Definition Butterworth.h:178
void setupN(int reqOrder, double cutoffFrequency)
Definition Butterworth.h:188
Definition Butterworth.h:113
Definition Butterworth.h:399
void setupN(int reqOrder, double cutoffFrequency, double gainDb)
Definition Butterworth.h:452
void setup(int reqOrder, double sampleRate, double cutoffFrequency, double gainDb)
Definition Butterworth.h:421
void setup(double sampleRate, double cutoffFrequency, double gainDb)
Definition Butterworth.h:406
void setupN(double cutoffFrequency, double gainDb)
Definition Butterworth.h:439