70 void process(
int num_samples)
override;
A class for generating and storing a line shape, defined by a series of points and associated powers.
Definition line_generator.h:20
A processor that applies a modulation signal to a parameter, performing mapping, scaling,...
Definition modulation_connection_processor.h:18
Value * bypass_
Controls if the modulation connection is bypassed.
Definition modulation_connection_processor.h:218
std::shared_ptr< LineGenerator > map_generator_
The line mapping function for remapping modulation.
Definition modulation_connection_processor.h:226
void setBaseValue(mono_float value)
Sets the base value of the modulation connection.
Definition modulation_connection_processor.h:140
LineGenerator * lineMapGenerator()
Retrieves the LineGenerator (map_generator_) used for remapping the modulation.
Definition modulation_connection_processor.h:210
ModulationConnectionProcessor(int index)
Constructs a ModulationConnectionProcessor with a given index.
Definition modulation_connection_processor.cpp:6
void processAudioRateRemappedAndMorphed(int num_samples, const Output *source, poly_float power)
Audio-rate processing with both remapping and morphing power applied.
Definition modulation_connection_processor.cpp:157
force_inline void setDestinationScale(mono_float scale)
Sets the scaling factor for the destination parameter.
Definition modulation_connection_processor.h:196
void processAudioRateLinear(int num_samples, const Output *source)
Audio-rate processing with a linear transform (no remap, no morph).
Definition modulation_connection_processor.cpp:90
@ kModulationOutput
Definition modulation_connection_processor.h:44
@ kModulationPreScale
Definition modulation_connection_processor.h:45
@ kNumOutputs
Definition modulation_connection_processor.h:47
@ kModulationSource
Definition modulation_connection_processor.h:46
mono_float currentBaseValue() const
Retrieves the current base value of the modulation connection.
Definition modulation_connection_processor.h:133
void process(int num_samples) override
Processes a block of samples, handling both control-rate and audio-rate modulation.
Definition modulation_connection_processor.cpp:39
void init() override
Initializes the processor, creating and connecting parameter controls (e.g., bipolar,...
Definition modulation_connection_processor.cpp:23
void initializeBaseValue(Value *base_value)
Initializes a base value for this modulation connection, used as a starting point.
Definition modulation_connection_processor.h:121
int index_
Unique identifier for this modulation connection.
Definition modulation_connection_processor.h:213
virtual Processor * clone() const override
Creates a clone of this processor.
Definition modulation_connection_processor.h:114
bool isStereo() const
Checks if the modulation is stereo, applying a different scale factor to the right channel.
Definition modulation_connection_processor.h:175
Value * bipolar_
Controls if the modulation is bipolar.
Definition modulation_connection_processor.h:216
std::shared_ptr< mono_float > destination_scale_
The scale factor for final modulation output.
Definition modulation_connection_processor.h:223
force_inline int index() const
Gets the index identifier of this modulation connection.
Definition modulation_connection_processor.h:203
void setBipolar(bool bipolar)
Sets whether the modulation should be bipolar.
Definition modulation_connection_processor.h:168
poly_float power_
Stored current power for morphing modulation.
Definition modulation_connection_processor.h:220
bool polyphonic_
True if modulation is polyphonic.
Definition modulation_connection_processor.h:214
void processAudioRateMorphed(int num_samples, const Output *source, poly_float power)
Audio-rate processing with morphing power applied (no remapping).
Definition modulation_connection_processor.cpp:113
void setPolyphonicModulation(bool polyphonic)
Sets whether the modulation should be treated as polyphonic.
Definition modulation_connection_processor.h:154
void setStereo(bool stereo)
Sets whether the modulation should be stereo.
Definition modulation_connection_processor.h:182
bool isPolyphonicModulation() const
Checks if the modulation is polyphonic (per-voice).
Definition modulation_connection_processor.h:147
void processAudioRateRemapped(int num_samples, const Output *source)
Audio-rate processing with remapping via LineGenerator, but no morphing power.
Definition modulation_connection_processor.cpp:213
poly_float modulation_amount_
The current modulation amount scaled by the destination scale.
Definition modulation_connection_processor.h:221
mono_float last_destination_scale_
The last known destination scale to detect changes.
Definition modulation_connection_processor.h:224
virtual ~ModulationConnectionProcessor()
Definition modulation_connection_processor.h:56
void processAudioRate(int num_samples, const Output *source)
Processes the modulation at audio-rate using the provided source output.
Definition modulation_connection_processor.cpp:58
bool isBypassed() const
Checks if the modulation connection is bypassed.
Definition modulation_connection_processor.h:189
@ kReset
Definition modulation_connection_processor.h:32
@ kNumInputs
Definition modulation_connection_processor.h:33
@ kModulationAmount
Definition modulation_connection_processor.h:30
@ kModulationInput
Definition modulation_connection_processor.h:29
@ kModulationPower
Definition modulation_connection_processor.h:31
bool isBipolar() const
Checks if the modulation is bipolar (range -1 to 1).
Definition modulation_connection_processor.h:161
Value * current_value_
The base or initial value for the modulation.
Definition modulation_connection_processor.h:215
void initializeMapping()
Sets the mapping function to a linear mapping in the internal LineGenerator.
Definition modulation_connection_processor.h:126
void processControlRate(const Output *source)
Processes the modulation at control-rate (once per block), when modulation or source is not audio-rat...
Definition modulation_connection_processor.cpp:249
Value * stereo_
Controls if the modulation is stereo.
Definition modulation_connection_processor.h:217
Base class for all signal-processing units in Vital.
Definition processor.h:212
A ProcessorRouter that encapsulates a cohesive unit of functionality in the synthesizer.
Definition synth_module.h:129
A Processor that maintains and outputs a constant poly_float value.
Definition value.h:24
virtual void set(poly_float value)
Sets the internal value to a new poly_float.
Definition value.cpp:17
force_inline mono_float value() const
Returns the current mono_float value of the first lane.
Definition value.h:60
#define force_inline
Definition common.h:23
Contains classes and functions used within the Vital synthesizer framework.
float mono_float
Definition common.h:33
Holds and manages a buffer of samples (poly_float) for a Processor's output.
Definition processor.h:35
Represents a vector of floating-point values using SIMD instructions.
Definition poly_values.h:600
Defines the SynthModule class which extends ProcessorRouter to form a building block of the Vital syn...