Feat: UI/UX and ducking compressor

This commit is contained in:
2026-02-24 02:57:27 +01:00
parent 848d0e773f
commit 2de49bdeba
24 changed files with 402 additions and 71 deletions

View File

@@ -8,11 +8,17 @@ const BLOCKS: [char; 8] = ['\u{2581}', '\u{2582}', '\u{2583}', '\u{2584}', '\u{2
pub struct Spectrum<'a> {
data: &'a [f32; 32],
gain: f32,
}
impl<'a> Spectrum<'a> {
pub fn new(data: &'a [f32; 32]) -> Self {
Self { data }
Self { data, gain: 1.0 }
}
pub fn gain(mut self, g: f32) -> Self {
self.gain = g;
self
}
}
@@ -36,7 +42,7 @@ impl Widget for Spectrum<'_> {
if w == 0 {
continue;
}
let bar_height = mag * height;
let bar_height = (mag * self.gain).min(1.0) * height;
let full_cells = bar_height as usize;
let frac = bar_height - full_cells as f32;
let frac_idx = (frac * 8.0) as usize;