Vital
Loading...
Searching...
No Matches
fir_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
16 public:
20 static constexpr int kNumTaps = 32;
21
26 enum {
29 };
30
37
42
47 virtual Processor* clone() const override { return new FirHalfbandDecimator(*this); }
48
55 void saveMemory(int num_samples);
56
61 virtual void process(int num_samples) override;
62
63 private:
68 void reset(poly_mask reset_mask) override;
69
73 poly_float memory_[kNumTaps / 2 - 1];
74
78 poly_float taps_[kNumTaps / 2];
79
80 JUCE_LEAK_DETECTOR(FirHalfbandDecimator)
81 };
82} // namespace vital
A FIR half-band decimator for downsampling audio by a factor of 2.
Definition fir_halfband_decimator.h:15
virtual ~FirHalfbandDecimator()
Virtual destructor.
Definition fir_halfband_decimator.h:41
virtual Processor * clone() const override
Clones (deep copies) this decimator.
Definition fir_halfband_decimator.h:47
FirHalfbandDecimator()
Constructs a FirHalfbandDecimator and initializes taps.
Definition fir_halfband_decimator.cpp:12
@ kAudio
The main audio input.
Definition fir_halfband_decimator.h:27
@ kNumInputs
Total number of inputs for this processor.
Definition fir_halfband_decimator.h:28
virtual void process(int num_samples) override
Processes the input audio by decimating it, producing half the number of output samples.
Definition fir_halfband_decimator.cpp:58
static constexpr int kNumTaps
Number of FIR taps in the filter.
Definition fir_halfband_decimator.h:20
void saveMemory(int num_samples)
Saves the last few samples of audio to memory, preparing for the next processing block.
Definition fir_halfband_decimator.cpp:38
Base class for all signal-processing units in Vital.
Definition processor.h:212
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