mooxide

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

commit 921165e96aefedca2dcf9580b2a60277fafc6d67
parent d3f23fa226260647d65010013cca61c9b8eaa18a
Author: minerva-jupiter <ryouturn@gmail.com>
Date:   Sat, 18 Apr 2026 08:29:15 +0900

``

Diffstat:
Msrc/lib.rs | 11++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/src/lib.rs b/src/lib.rs @@ -183,7 +183,10 @@ impl Default for MooxideParams { filter_emphasis: FloatParam::new( "Filter Emphasis", 0.5, - FloatRange::Linear { min: 0.0, max: 1.0 }, + FloatRange::Linear { + min: 0.01, + max: 1.0, + }, ), filter_contour: FloatParam::new( "Filter Contour", @@ -315,7 +318,8 @@ impl Mooxide { // https://www.utsbox.com/?page_id=523 let openture = self.midi_note_frequency * (2.0 + self.filter_envelope() + (self.params.filter_cutoff.value() / 5.0)); - let omega = 2.0 * std::f32::consts::PI * openture / self.sample_rate; + let omega = (2.0 * std::f32::consts::PI * openture / self.sample_rate) + .clamp(0.01, std::f32::consts::PI - 0.01); let alpha = omega.sin() / 2.0 / self.params.filter_emphasis.value(); let a0 = 1.0 + alpha; let a1 = -2.0 * omega.cos(); @@ -470,8 +474,9 @@ impl Plugin for Mooxide { * self.midi_note_velocity.next(), ) * self.envelope() }; + let output = displacement * util::db_to_gain_fast(gain); for sample in channel_samples { - *sample = displacement * util::db_to_gain_fast(gain); + *sample = output.clamp(-1.0, 1.0); } self.note_time += 1; }