diff --git a/src/lib.rs b/src/lib.rs index 7fc4488..0af3e28 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -55,7 +55,7 @@ struct Ring6PluginParams { #[id = "effect-adaa"] effect_adaa: BoolParam, - #[id = "dc-block-decay"] + #[id = "release-ms"] release_ms: FloatParam, #[id = "effect-balance"] @@ -122,7 +122,7 @@ impl Default for Ring6PluginParams { post_lp_cutoff: cutoff_param("Post Low-Pass", 20000.0, 100.0, 20000.0), post_lp: BoolParam::new("Post Low-Pass Enabled", false), release_ms: FloatParam::new( - "Decay", + "Release", 15.0, FloatRange::Linear { min: 0.0, @@ -250,10 +250,12 @@ fn ladder_effect(samples: &mut [f32], params: &mut LadderEffectParams<'_>) { for sample in samples { // Apply a slow release during quiet periods to clean up used headroom. // TODO: should this fall back if threshold==0? - if sample.abs() < params.threshold { - *pz_release_level *= pz_release_factor; - } else { + if sample.abs() >= params.threshold { *pz_release_level = 1.0; + } else if *pz_release_level <= 1e-6 { + *pz_release_level = 0.0; + } else { + *pz_release_level *= pz_release_factor; } let pz_offs = params.pz_offs * *pz_release_level;