A keyframe class holding parameters for slew-rate limits at a given position.
More...
#include <slew_limit_modifier.h>
|
static float | linearTween (float point_from, float point_to, float t) |
| Performs linear interpolation between two points.
|
|
static float | cubicTween (float point_prev, float point_from, float point_to, float point_next, float range_prev, float range, float range_next, float t) |
| Performs cubic interpolation taking into account a previous and next point for smoother curves.
|
|
A keyframe class holding parameters for slew-rate limits at a given position.
The SlewLimitModifierKeyframe stores two values: slew_up_run_rise_
and slew_down_run_rise_
, which represent inverse slew limits for upward and downward amplitude changes respectively. Interpolating between keyframes allows changing these limits gradually across a wavetable.
◆ SlewLimitModifierKeyframe()
SlewLimitModifier::SlewLimitModifierKeyframe::SlewLimitModifierKeyframe |
( |
| ) |
|
Constructs a keyframe with default slew limit values.
◆ ~SlewLimitModifierKeyframe()
virtual SlewLimitModifier::SlewLimitModifierKeyframe::~SlewLimitModifierKeyframe |
( |
| ) |
|
|
inlinevirtual |
◆ copy()
void SlewLimitModifier::SlewLimitModifierKeyframe::copy |
( |
const WavetableKeyframe * | keyframe | ) |
|
|
overridevirtual |
Copies the state from another keyframe of the same type.
- Parameters
-
keyframe | The source keyframe to copy from. |
Implements WavetableKeyframe.
◆ getSlewDownLimit()
float SlewLimitModifier::SlewLimitModifierKeyframe::getSlewDownLimit |
( |
| ) |
|
|
inline |
Gets the downward slew limit.
This limit defines how quickly amplitude can fall from one sample to the next.
- Returns
- The downward slew limit parameter.
◆ getSlewUpLimit()
float SlewLimitModifier::SlewLimitModifierKeyframe::getSlewUpLimit |
( |
| ) |
|
|
inline |
Gets the upward slew limit.
This limit defines how quickly amplitude can rise from one sample to the next.
- Returns
- The upward slew limit parameter.
◆ interpolate()
Linearly interpolates between two keyframes.
- Parameters
-
from_keyframe | The starting keyframe. |
to_keyframe | The ending keyframe. |
t | The interpolation factor [0,1]. |
Implements WavetableKeyframe.
◆ jsonToState()
void SlewLimitModifier::SlewLimitModifierKeyframe::jsonToState |
( |
json | data | ) |
|
|
overridevirtual |
Restores the keyframe's state from a JSON object.
- Parameters
-
data | The JSON object containing the keyframe's state. |
Reimplemented from WavetableKeyframe.
◆ render()
void SlewLimitModifier::SlewLimitModifierKeyframe::render |
( |
vital::WaveFrame * | wave_frame | ) |
|
|
overridevirtual |
Renders the waveform of this keyframe into a WaveFrame.
- Parameters
-
wave_frame | The WaveFrame to fill with this keyframe's waveform data. |
Implements WavetableKeyframe.
◆ setSlewDownLimit()
void SlewLimitModifier::SlewLimitModifierKeyframe::setSlewDownLimit |
( |
float | slew_down_limit | ) |
|
|
inline |
Sets the downward slew limit parameter.
- Parameters
-
slew_down_limit | The new downward slew limit. |
◆ setSlewUpLimit()
void SlewLimitModifier::SlewLimitModifierKeyframe::setSlewUpLimit |
( |
float | slew_up_limit | ) |
|
|
inline |
Sets the upward slew limit parameter.
- Parameters
-
slew_up_limit | The new upward slew limit. |
◆ stateToJson()
json SlewLimitModifier::SlewLimitModifierKeyframe::stateToJson |
( |
| ) |
|
|
overridevirtual |
Serializes the state of this keyframe to a JSON object.
- Returns
- A JSON object representing the keyframe.
Reimplemented from WavetableKeyframe.
◆ slew_down_run_rise_
float SlewLimitModifier::SlewLimitModifierKeyframe::slew_down_run_rise_ |
|
protected |
Parameter controlling downward slew rate.
◆ slew_up_run_rise_
float SlewLimitModifier::SlewLimitModifierKeyframe::slew_up_run_rise_ |
|
protected |
Parameter controlling upward slew rate.
The documentation for this class was generated from the following files: