summaryrefslogtreecommitdiffstats
path: root/src/engine/filters/enginefilterbessel4.h
diff options
context:
space:
mode:
authorBe <be@mixxx.org>2019-01-06 01:16:23 -0600
committerBe <be@mixxx.org>2019-01-06 11:02:56 -0600
commit603f5e5ee910b146f0d3d0a00af7acd5a5cdd291 (patch)
tree421cc3a844fb77c02daef39ebbf29b4d4307233f /src/engine/filters/enginefilterbessel4.h
parentc3bea8f0217e3cc0791bdffa26062c7775ea8132 (diff)
move EngineFilter classes to their own folder
Diffstat (limited to 'src/engine/filters/enginefilterbessel4.h')
-rw-r--r--src/engine/filters/enginefilterbessel4.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/src/engine/filters/enginefilterbessel4.h b/src/engine/filters/enginefilterbessel4.h
new file mode 100644
index 0000000000..02fa3dd25e
--- /dev/null
+++ b/src/engine/filters/enginefilterbessel4.h
@@ -0,0 +1,34 @@
+#ifndef ENGINEFILTERBESSEL4_H
+#define ENGINEFILTERBESSEL4_H
+
+#include "engine/filters/enginefilteriir.h"
+
+class EngineFilterBessel4Low : public EngineFilterIIR<4, IIR_LP> {
+ Q_OBJECT
+ public:
+ EngineFilterBessel4Low(int sampleRate, double freqCorner1);
+ void setFrequencyCorners(int sampleRate, double freqCorner1);
+ // This function selects a corner frequency near the
+ // desiredCorner1Ratio freqCorner / sampleRate
+ // the produces an integer group delay at the passband
+ // Optimized for freqCorner / 20
+ int setFrequencyCornersForIntDelay(double desiredCorner1Ratio, int maxDelay);
+};
+
+class EngineFilterBessel4Band : public EngineFilterIIR<8, IIR_BP> {
+ Q_OBJECT
+ public:
+ EngineFilterBessel4Band(int sampleRate, double freqCorner1,
+ double freqCorner2);
+ void setFrequencyCorners(int sampleRate, double freqCorner1,
+ double freqCorner2);
+};
+
+class EngineFilterBessel4High : public EngineFilterIIR<4, IIR_HP> {
+ Q_OBJECT
+ public:
+ EngineFilterBessel4High(int sampleRate, double freqCorner1);
+ void setFrequencyCorners(int sampleRate, double freqCorner1);
+};
+
+#endif // ENGINEFILTERBESSEL4_H