feat: static gain-curve display for the selected channel
Add editor/gain_curve.rs: a square panel beside the scrolling plot showing the channel transfer (out vs in, -60..0 dB) for whichever channel the plot tab selects. Plots the full wet path — out = (in + pre_gain) + gain_reduction + makeup — using the shared Compressor::gain_computer (now pub) so it matches the DSP and the GR meter. Unity-reference diagonal + threshold marker; mix not folded in. Update README structure/status to reflect the editor/ widget module and the completed Stage 6 visualisers. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
+7
-1
@@ -20,6 +20,7 @@ use crate::params::{Codename206Params, CompressorParams};
|
||||
use crate::Codename206;
|
||||
|
||||
mod crossover;
|
||||
mod gain_curve;
|
||||
mod meter;
|
||||
mod plot;
|
||||
|
||||
@@ -75,7 +76,12 @@ pub(crate) fn create(params: Arc<Codename206Params>, meters: Arc<Meters>) -> Opt
|
||||
ui.heading(Codename206::NAME);
|
||||
meter::draw(ui, &meters, &mut state.meter);
|
||||
ui.separator();
|
||||
plot::draw(ui, &meters, &mut state.plot);
|
||||
// Gain curve (left, square) beside the scrolling plot (right, fills the rest).
|
||||
let selected = state.plot.selected;
|
||||
ui.horizontal_top(|ui| {
|
||||
ui.vertical(|ui| gain_curve::draw(ui, ¶ms, selected));
|
||||
ui.vertical(|ui| plot::draw(ui, &meters, &mut state.plot));
|
||||
});
|
||||
ui.separator();
|
||||
crossover::draw(ui, ¶ms, setter);
|
||||
ui.separator();
|
||||
|
||||
Reference in New Issue
Block a user