A keyframe class holding parameters for slew-rate limits at a given position.
Definition slew_limit_modifier.h:27
void interpolate(const WavetableKeyframe *from_keyframe, const WavetableKeyframe *to_keyframe, float t) override
Linearly interpolates between two keyframes.
Definition slew_limit_modifier.cpp:22
float getSlewUpLimit()
Gets the upward slew limit.
Definition slew_limit_modifier.h:49
SlewLimitModifierKeyframe()
Constructs a keyframe with default slew limit values.
Definition slew_limit_modifier.cpp:10
void jsonToState(json data) override
Restores the keyframe's state from a JSON object.
Definition slew_limit_modifier.cpp:63
json stateToJson() override
Serializes the state of this keyframe to a JSON object.
Definition slew_limit_modifier.cpp:56
virtual ~SlewLimitModifierKeyframe()
Definition slew_limit_modifier.h:33
void render(vital::WaveFrame *wave_frame) override
Renders the waveform of this keyframe into a WaveFrame.
Definition slew_limit_modifier.cpp:33
float getSlewDownLimit()
Gets the downward slew limit.
Definition slew_limit_modifier.h:58
void copy(const WavetableKeyframe *keyframe) override
Copies the state from another keyframe of the same type.
Definition slew_limit_modifier.cpp:16
float slew_down_run_rise_
Parameter controlling downward slew rate.
Definition slew_limit_modifier.h:76
float slew_up_run_rise_
Parameter controlling upward slew rate.
Definition slew_limit_modifier.h:75
void setSlewDownLimit(float slew_down_limit)
Sets the downward slew limit parameter.
Definition slew_limit_modifier.h:72
void setSlewUpLimit(float slew_up_limit)
Sets the upward slew limit parameter.
Definition slew_limit_modifier.h:65
A WavetableComponent that applies slew-rate limiting to a wave’s time-domain signal.
Definition slew_limit_modifier.h:18
SlewLimitModifierKeyframe * getKeyframe(int index)
Retrieves a SlewLimitModifierKeyframe by index.
Definition slew_limit_modifier.cpp:85
virtual ~SlewLimitModifier()
Definition slew_limit_modifier.h:87
SlewLimitModifier()
Constructs a SlewLimitModifier.
Definition slew_limit_modifier.h:86
SlewLimitModifierKeyframe compute_frame_
A keyframe used for intermediate computations.
Definition slew_limit_modifier.h:102
WavetableComponentFactory::ComponentType getType() override
Returns the type of this WavetableComponent.
Definition slew_limit_modifier.cpp:81
WavetableKeyframe * createKeyframe(int position) override
Creates a new keyframe at a given position.
Definition slew_limit_modifier.cpp:69
void render(vital::WaveFrame *wave_frame, float position) override
Renders the waveform at a given position into a WaveFrame.
Definition slew_limit_modifier.cpp:75
ComponentType
Enumerates all known WavetableComponents, including sources and modifiers.
Definition wavetable_component_factory.h:28
A base class representing a component in a wavetable synthesis chain.
Definition wavetable_component.h:32
Represents a single state of a waveform at a specific position in a wavetable.
Definition wavetable_keyframe.h:35
Represents a single frame of a wavetable, containing both time-domain and frequency-domain data.
Definition wave_frame.h:16
nlohmann::json json
Definition line_generator.h:7