Vital
Loading...
Searching...
No Matches
iir_halfband_decimator.h
Go to the documentation of this file.
1#pragma once
2
3#include "processor.h"
4#include "synth_constants.h"
5
6namespace vital {
7
18 public:
22 static constexpr int kNumTaps9 = 2;
23
27 static constexpr int kNumTaps25 = 6;
28
33
38
43 enum {
46 };
47
52
57
62 virtual Processor* clone() const override {
63 VITAL_ASSERT(false);
64 return nullptr;
65 }
66
71 virtual void process(int num_samples) override;
72
77 void reset(poly_mask reset_mask) override;
78
83 force_inline void setSharpCutoff(bool sharp_cutoff) { sharp_cutoff_ = sharp_cutoff; }
84
85 private:
89 bool sharp_cutoff_;
90
96 poly_float in_memory_[kNumTaps25];
97
103 poly_float out_memory_[kNumTaps25];
104
105 JUCE_LEAK_DETECTOR(IirHalfbandDecimator)
106 };
107} // namespace vital
An IIR-based half-band decimator for downsampling audio by a factor of 2.
Definition iir_halfband_decimator.h:17
force_inline void setSharpCutoff(bool sharp_cutoff)
Enables or disables the sharper 25-tap cutoff mode.
Definition iir_halfband_decimator.h:83
static constexpr int kNumTaps9
Number of taps in the lighter (9-tap) filter mode.
Definition iir_halfband_decimator.h:22
virtual void process(int num_samples) override
Processes audio data by decimating it (halving the sample rate).
Definition iir_halfband_decimator.cpp:44
static poly_float kTaps25[kNumTaps25]
Coefficients for the 25-tap IIR half-band filter, stored as pairs of poly_float.
Definition iir_halfband_decimator.h:37
static poly_float kTaps9[kNumTaps9]
Coefficients for the 9-tap IIR half-band filter, stored as pairs of poly_float.
Definition iir_halfband_decimator.h:32
static constexpr int kNumTaps25
Number of taps in the sharper (25-tap) filter mode.
Definition iir_halfband_decimator.h:27
virtual ~IirHalfbandDecimator()
Virtual destructor.
Definition iir_halfband_decimator.h:56
IirHalfbandDecimator()
Constructs an IirHalfbandDecimator and initializes its memory.
Definition iir_halfband_decimator.cpp:32
@ kNumInputs
Total number of inputs for this processor.
Definition iir_halfband_decimator.h:45
@ kAudio
Main audio input for decimation.
Definition iir_halfband_decimator.h:44
virtual Processor * clone() const override
Cloning is not supported for this processor.
Definition iir_halfband_decimator.h:62
void reset(poly_mask reset_mask) override
Resets the filter states (delay lines) for the specified voices.
Definition iir_halfband_decimator.cpp:92
Base class for all signal-processing units in Vital.
Definition processor.h:212
#define VITAL_ASSERT(x)
Definition common.h:11
#define force_inline
Definition common.h:23
Contains classes and functions used within the Vital synthesizer framework.
Declares the Processor class and related structures for handling audio processing in a polyphonic con...
Represents a vector of floating-point values using SIMD instructions.
Definition poly_values.h:600
Represents a vector of integer values using SIMD instructions.
Definition poly_values.h:56