8 filter_1_(nullptr), filter_2_(nullptr),
9 filter_1_filter_input_(nullptr), filter_2_filter_input_(nullptr) {
63 for (
int i = 0; i < num_samples; ++i)
64 output_buffer[i] = filter_1_buffer[i] + filter_2_buffer[i];
83 for (
int i = 0; i < num_samples; ++i)
84 filter_2_input_buffer[i] = filter_1_output_buffer[i] + filter_2_straight_input[i];
106 for (
int i = 0; i < num_samples; ++i)
107 filter_1_input_buffer[i] = filter_2_output_buffer[i] + filter_1_straight_input[i];
A versatile filter module supporting multiple filter models and mixing options.
Definition filter_module.h:25
@ kMidi
Definition filter_module.h:39
@ kReset
Definition filter_module.h:37
@ kKeytrack
Definition filter_module.h:38
@ kAudio
Definition filter_module.h:36
const Value * getOnValue()
Retrieves the "on" Value for controlling the filter state if it was created.
Definition filter_module.h:115
void init() override
Initializes the FiltersModule, creating parameter controls and instantiating filter submodules.
Definition filters_module.cpp:15
FiltersModule()
Constructs the FiltersModule, initializing internal states and creating outputs for filter inputs.
Definition filters_module.cpp:6
FilterModule * filter_2_
The second filter module instance.
Definition filters_module.h:110
void processSerialBackward(int num_samples)
Processes filters in the reverse serial mode, with filter 2 feeding into filter 1.
Definition filters_module.cpp:90
std::shared_ptr< Output > filter_1_input_
Internal output buffer feeding filter 1.
Definition filters_module.h:115
Value * filter_2_filter_input_
Determines if filter 2 is connected in series/parallel routing.
Definition filters_module.h:113
FilterModule * filter_1_
The first filter module instance.
Definition filters_module.h:109
Value * filter_1_filter_input_
Determines if filter 1 is connected in series/parallel routing.
Definition filters_module.h:112
@ kReset
Definition filters_module.h:32
@ kMidi
Definition filters_module.h:31
@ kFilter1Input
Definition filters_module.h:28
@ kKeytrack
Definition filters_module.h:30
@ kFilter2Input
Definition filters_module.h:29
void processSerialForward(int num_samples)
Processes filters in serial mode, with filter 1 feeding into filter 2.
Definition filters_module.cpp:67
void process(int num_samples) override
Processes a block of samples, applying either parallel or serial filter configurations based on param...
Definition filters_module.cpp:113
void processParallel(int num_samples)
Processes both filters in parallel, mixing their outputs.
Definition filters_module.cpp:46
std::shared_ptr< Output > filter_2_input_
Internal output buffer feeding filter 2.
Definition filters_module.h:116
force_inline Input * input(unsigned int index=0) const
Retrieves the Input pointer at a given index.
Definition processor.h:587
void useInput(Input *input)
Uses an existing Input object as this Processor's first input.
Definition processor.cpp:126
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 init()
Called after constructor, used for any additional initialization. Subclasses can override....
Definition processor.h:258
Processor * getLocalProcessor(const Processor *global_processor)
Retrieves the local instance of a globally defined Processor.
Definition processor_router.cpp:376
virtual void addProcessor(Processor *processor)
Adds a Processor to be managed by this router.
Definition processor_router.cpp:121
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
void addSubmodule(SynthModule *module)
Adds a submodule to this SynthModule.
Definition synth_module.h:289
force_inline mono_float value() const
Returns the current mono_float value of the first lane.
Definition value.h:60
force_inline void copyBuffer(mono_float *dest, const mono_float *source, int size)
Copies data from a source mono buffer to a destination mono buffer.
Definition poly_utils.h:586
Contains classes and functions used within the Vital synthesizer framework.
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