Vital
Loading...
Searching...
No Matches
dc_filter.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 class DcFilter : public Processor {
17 public:
24 static constexpr mono_float kCoefficientToSrConstant = 1.0f;
25
30 enum {
34 };
35
39 DcFilter();
40
42 virtual ~DcFilter() { }
43
48 virtual Processor* clone() const override { return new DcFilter(*this); }
49
55 virtual void process(int num_samples) override;
56
63 virtual void processWithInput(const poly_float* audio_in, int num_samples) override;
64
70 void setSampleRate(int sample_rate) override;
71
78 void tick(const poly_float& audio_in, poly_float& audio_out);
79
80 private:
86 void reset(poly_mask reset_mask) override;
87
91 mono_float coefficient_;
92
96 poly_float past_in_;
97
101 poly_float past_out_;
102
103 JUCE_LEAK_DETECTOR(DcFilter)
104 };
105} // namespace vital
A simple DC blocking filter implemented as a one-pole high-pass filter.
Definition dc_filter.h:16
virtual void processWithInput(const poly_float *audio_in, int num_samples) override
Processes a block of samples using the provided input buffer.
Definition dc_filter.cpp:39
@ kReset
Reset trigger input.
Definition dc_filter.h:32
@ kNumInputs
Definition dc_filter.h:33
@ kAudio
Audio input buffer.
Definition dc_filter.h:31
void setSampleRate(int sample_rate) override
Sets the sample rate for this filter, recalculating the filter’s coefficient.
Definition dc_filter.cpp:18
virtual Processor * clone() const override
Creates a clone of this DcFilter via copy constructor.
Definition dc_filter.h:48
virtual void process(int num_samples) override
Processes a block of samples, pulling from the kAudio input.
Definition dc_filter.cpp:28
virtual ~DcFilter()
Default destructor.
Definition dc_filter.h:42
DcFilter()
Constructs a DcFilter Processor with default parameters.
Definition dc_filter.cpp:8
static constexpr mono_float kCoefficientToSrConstant
A constant used to compute the one-pole filter’s coefficient from the sample rate.
Definition dc_filter.h:24
void tick(const poly_float &audio_in, poly_float &audio_out)
Processes a single sample pair (input to output).
Definition dc_filter.cpp:56
Base class for all signal-processing units in Vital.
Definition processor.h:212
Contains classes and functions used within the Vital synthesizer framework.
float mono_float
Definition common.h:33
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