feat(ui): MAIN and ADVANCED pages, Anvil main page around Mode, Split and Sub level
Producers found the panels crowded: every control had the same weight. The header now carries a MAIN / ADVANCED switch (common-ui header_paged). The main page keeps the controls a first result needs; the advanced page shows everything, as before. - Anvil: Mode (Replace or Enhance), Split and Sub level, plus Octave, Ghost, Keep and Output. Kick lock, Dynamics, Drive, Glide, Phase, Gate and the pitch switches move to Advanced. The note readout says when the original sub plays because tracking is unsure. - Lathe, Temper, Knurl, Planish, Braze: tracking and fine-tuning controls (Gate, Smooth, Snap, Harmonics, Push at, Floor, Bright, Normalize, band gains, Phase) move to Advanced. Lathe labels the octaves of the note in Hz on the harmonic axis. - Forge passes the page to its module pages. - Weld: the main page shows the level won back at full height, Mode, Response and Output; the phase plot, Sections, Low, High and Gate move to Advanced. - editor-check renders the advanced pages with --advanced.
This commit is contained in:
1 parent
d6939a753a
commit
01fd3241eb
10 files changed
+594
-227
No files matched your search
+26
-12
@@ -14,6 +14,8 @@ pub struct State {
|
||||
pub knurl: knurl_ui::State,
|
||||
/// Module whose page is shown.
|
||||
pub page: Stage,
|
||||
/// Module pages show their advanced controls. Not saved.
|
||||
pub advanced: bool,
|
||||
latency: u32,
|
||||
sample_rate: f32,
|
||||
/// True while a pointer button is held, so knob drags become one host gesture.
|
||||
@@ -27,6 +29,7 @@ impl Default for State {
|
||||
temper: temper_ui::State::default(),
|
||||
knurl: knurl_ui::State::default(),
|
||||
page: Stage::Lathe,
|
||||
advanced: false,
|
||||
latency: 0,
|
||||
sample_rate: 48000.,
|
||||
gesture_active: false,
|
||||
@@ -121,18 +124,29 @@ pub fn show(ui: &mut egui::Ui, settings: &mut Settings, state: &mut State) {
|
||||
state.gesture_active = ui.input(|i| i.pointer.any_down());
|
||||
settings.share();
|
||||
ui.add_space(2.);
|
||||
header(ui, "FORGE", "TRACKED CHANNEL STRIP", |ui| {
|
||||
let r = ui
|
||||
.selectable_label(settings.bypass, RichText::new("BYPASS").size(13.))
|
||||
.on_hover_text("Crossfade to the delayed dry signal.");
|
||||
if r.clicked() {
|
||||
settings.bypass = !settings.bypass;
|
||||
}
|
||||
ui.separator();
|
||||
let mut mode = settings.source.mode();
|
||||
pitch_from(ui, &mut mode, &mut settings.pitch);
|
||||
settings.source = Source::from_mode(mode);
|
||||
});
|
||||
let mut advanced = state.advanced;
|
||||
header_paged(
|
||||
ui,
|
||||
"FORGE",
|
||||
"TRACKED CHANNEL STRIP",
|
||||
Some(&mut advanced),
|
||||
|ui| {
|
||||
let r = ui
|
||||
.selectable_label(settings.bypass, RichText::new("BYPASS").size(13.))
|
||||
.on_hover_text("Crossfade to the delayed dry signal.");
|
||||
if r.clicked() {
|
||||
settings.bypass = !settings.bypass;
|
||||
}
|
||||
ui.separator();
|
||||
let mut mode = settings.source.mode();
|
||||
pitch_from(ui, &mut mode, &mut settings.pitch);
|
||||
settings.source = Source::from_mode(mode);
|
||||
},
|
||||
);
|
||||
state.advanced = advanced;
|
||||
state.lathe.advanced = advanced;
|
||||
state.temper.advanced = advanced;
|
||||
state.knurl.advanced = advanced;
|
||||
ui.add_space(6.);
|
||||
panel(ui, |ui| {
|
||||
ui.set_width(ui.available_width());
|
||||
|
||||
Reference in new issue
Block a user