Struct Multiplicative Smoother
pub struct MultiplicativeSmoother { /* private fields */ }Expand description
Positive f32 endpoints transition geometrically over an exact sample count. First output advances one of N multiplicative steps; the Nth snaps exactly to target. Zero duration is immediate. Identical targets retain an active ramp; changed targets restart from the current effective f32 value. Zero/negative endpoints reject without mutation (use a linear smoother for silence/crossing). Ratio design uses f64 logs/exp on retarget; sample processing uses one f64 multiply and bounded endpoint clipping. Rounding can repeat output values, especially for very long ramps; no hard real-time deadline claim is inferred. Construction, retarget, sample processing and reset allocate nothing.
Implementations§
§impl MultiplicativeSmoother
impl MultiplicativeSmoother
pub fn new(initial: f32, ramp_samples: u32) -> Result<Self, SmoothingError>
pub fn current(&self) -> f32
pub fn target(&self) -> f32
pub fn is_smoothing(&self) -> bool
pub fn set_target(&mut self, target: f32) -> Result<(), SmoothingError>
pub fn set_target(&mut self, target: f32) -> Result<(), SmoothingError>
Validate before mutation; changed target preserves the current output.
pub fn next_value(&mut self) -> f32
pub fn reset(&mut self)
pub fn reset(&mut self)
Snap to the latest target while retaining configured duration.
Trait Implementations§
§impl Clone for MultiplicativeSmoother
impl Clone for MultiplicativeSmoother
§fn clone(&self) -> MultiplicativeSmoother
fn clone(&self) -> MultiplicativeSmoother
1.0.0 (const: unstable) · §fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more