77 if (order_value < 1.0f) {
81 else if (order_value > 1.0f) {
94 poly_float delta_mix = (
mix_ - current_mix) * (1.0f / num_samples);
98 for (
int i = 0; i < num_samples; ++i) {
99 current_mix += delta_mix;
A state-variable filter (SVF) implementation, supporting multiple filter types (12/24 dB,...
Definition digital_svf.h:17
void setDriveCompensation(bool drive_compensation)
Enables or disables drive compensation (reducing drive as resonance increases).
Definition digital_svf.h:407
void processWithInput(const poly_float *audio_in, int num_samples) override
Processes a block of samples using a provided input buffer.
Definition digital_svf.cpp:41
void setBasic(bool basic)
Sets whether this filter should use a simpler, “basic” processing path.
Definition digital_svf.h:400
A Processor that applies various types of distortion to an audio signal.
Definition distortion.h:16
virtual void processWithInput(const poly_float *audio_in, int num_samples) override
Processes a block of audio using a provided input buffer.
Definition distortion.cpp:210
@ kType
Distortion type (see Type enum)
Definition distortion.h:44
@ kDrive
Drive amount in dB.
Definition distortion.h:45
Output * distortion_mix_
Control for blending between dry and distorted signal.
Definition distortion_module.h:66
DistortionModule()
Constructs a new DistortionModule.
Definition distortion_module.cpp:8
DigitalSvf * filter_
The internal digital state-variable filter processor.
Definition distortion_module.h:65
virtual ~DistortionModule()
Destroys the DistortionModule, releasing its internal resources.
Definition distortion_module.cpp:14
Value * filter_order_
Determines the order of filtering relative to distortion.
Definition distortion_module.h:64
virtual void processWithInput(const poly_float *audio_in, int num_samples) override
Processes a block of samples with given input audio, applying distortion and filtering.
Definition distortion_module.cpp:66
virtual void init() override
Initializes the DistortionModule, setting up internal controls and connecting processors.
Definition distortion_module.cpp:18
virtual void setSampleRate(int sample_rate) override
Sets the sample rate for the module, ensuring time-dependent parameters scale properly.
Definition distortion_module.cpp:54
poly_float mix_
The current effective mix value for wet/dry blending.
Definition distortion_module.h:67
Distortion * distortion_
The internal Distortion processor.
Definition distortion_module.h:63
void useOutput(Output *output)
Uses an existing Output object as this Processor's first output.
Definition processor.cpp:138
void plug(const Output *source)
Connects an external Output to this Processor's first input.
Definition processor.cpp:79
virtual void process(int num_samples)=0
Main processing function. Called by the ProcessorRouter.
force_inline Output * output(unsigned int index=0) const
Retrieves the Output pointer at a given index.
Definition processor.h:616
virtual void setSampleRate(int sample_rate)
Updates the sample rate of this Processor (scaled by oversampling).
Definition processor.h:285
virtual void init()
Called after constructor, used for any additional initialization. Subclasses can override....
Definition processor.h:258
virtual void addIdleProcessor(Processor *processor)
Adds a Processor that should remain idle (not processed) in the router.
Definition processor_router.cpp:146
@ kPassBlend
Blending parameter for low-pass, high-pass, band-pass.
Definition synth_filter.h:62
@ kResonance
Resonance parameter.
Definition synth_filter.h:58
@ kMidiCutoff
MIDI-based cutoff parameter.
Definition synth_filter.h:57
A ProcessorRouter that encapsulates a cohesive unit of functionality in the synthesizer.
Definition synth_module.h:129
Value * createBaseControl(std::string name, bool audio_rate=false, bool smooth_value=false)
Creates a simple control processor for a given parameter name.
Definition synth_module.cpp:22
Output * createMonoModControl(std::string name, bool audio_rate=false, bool smooth_value=false, Output *internal_modulation=nullptr)
Creates a monophonic mod control, including applying parameter scaling.
Definition synth_module.cpp:104
A Processor that maintains and outputs a constant poly_float value.
Definition value.h:24
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
force_inline poly_float interpolate(poly_float from, poly_float to, mono_float t)
Performs a linear interpolation between two poly_floats using a scalar t in [0..1].
Definition poly_utils.h:182
Contains classes and functions used within the Vital synthesizer framework.
Holds and manages a buffer of samples (poly_float) for a Processor's output.
Definition processor.h:35
poly_float * buffer
Pointer to the output buffer.
Definition processor.h:110
Represents a vector of floating-point values using SIMD instructions.
Definition poly_values.h:600