67 virtual void process(
int num_samples)
override;
75 void setupFilter(
const FilterState& filter_state)
override;
184 static force_inline poly_float saturate2(poly_float value) {
191 OnePoleFilter<> high_pass_1_;
192 OnePoleFilter<> high_pass_2_;
197 OnePoleFilter<> high_pass_feedback_;
198 OnePoleFilter<saturate> stage1_;
199 OnePoleFilter<> stage2_;
200 OnePoleFilter<> stage3_;
201 OnePoleFilter<saturate2> stage4_;
A diode ladder filter implementation for the Vital synthesizer.
Definition diode_filter.h:20
void hardReset() override
Performs a complete hard reset of all internal states (for all voices).
Definition diode_filter.cpp:32
force_inline void tick(poly_float audio_in, poly_float coefficient, poly_float high_pass_ratio, poly_float high_pass_amount, poly_float high_pass_feedback_coefficient, poly_float resonance, poly_float drive)
Processes a single sample of audio through the diode ladder filter stages.
Definition diode_filter.cpp:175
virtual ~DiodeFilter()
Virtual destructor.
Definition diode_filter.h:52
void reset(poly_mask reset_mask) override
Resets internal filter states (such as one-pole filters) with the given reset mask.
Definition diode_filter.cpp:17
poly_float getHighPassAmount()
Gets the current high-pass amount.
Definition diode_filter.h:137
static constexpr mono_float kMinCutoff
Minimum cutoff frequency in Hz (used internally).
Definition diode_filter.h:35
poly_float getHighPassRatio()
Gets the current high-pass ratio.
Definition diode_filter.h:131
poly_float getResonance()
Gets the current resonance setting of the filter.
Definition diode_filter.h:119
static constexpr mono_float kMinResonance
Minimum resonance value for the diode filter.
Definition diode_filter.h:25
void setupFilter(const FilterState &filter_state) override
Sets up filter parameters from the given FilterState.
Definition diode_filter.cpp:131
poly_float getDrive()
Gets the current drive setting of the filter.
Definition diode_filter.h:125
DiodeFilter()
Default constructor.
Definition diode_filter.cpp:9
virtual void process(int num_samples) override
Processes audio data through the diode filter.
Definition diode_filter.cpp:46
static constexpr mono_float kHighPassFrequency
High-pass cutoff frequency in Hz (used internally).
Definition diode_filter.h:40
virtual Processor * clone() const override
Creates a clone (deep copy) of the DiodeFilter object.
Definition diode_filter.h:58
static constexpr mono_float kMaxResonance
Maximum resonance value for the diode filter.
Definition diode_filter.h:30
Base class for all signal-processing units in Vital.
Definition processor.h:212
Abstract base class for Vital’s synthesizer filters.
Definition synth_filter.h:19
#define force_inline
Definition common.h:23
Contains faster but less accurate versions of utility math functions, such as exponential,...
force_inline poly_float tanh(poly_float value)
Approximates tanh function using a complex polynomial.
Definition futils.h:347
force_inline poly_float clamp(poly_float value, mono_float min, mono_float max)
Clamps each lane of a vector to [min, max].
Definition poly_utils.h:306
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