Skip to content

v0.6.0 UI6-M6 + UI6-M7: value-display polish + explicit focus order - #13

Open
SeamusMullan wants to merge 1 commit into
v0.6.0/ui6-m1-decomposefrom
v0.6.0/ui6-m6-tooltips
Open

v0.6.0 UI6-M6 + UI6-M7: value-display polish + explicit focus order#13
SeamusMullan wants to merge 1 commit into
v0.6.0/ui6-m1-decomposefrom
v0.6.0/ui6-m6-tooltips

Conversation

@SeamusMullan

Copy link
Copy Markdown
Member

Summary

Two threshold items folded together because both are coverage-pass items already mostly satisfied by the UI6-M1 decomposition.

UI6-M6 — value display polish

  • Loop HPF / Loop LPF sliders auto-promote to kHz at and above 1 kHz. Loop LPF at 12500 Hz used to render as "12500.00 Hz"; now "12.50 kHz".
  • Relay feedback slider renders its 0..1.55 ratio as a percent so the readout matches its tooltip ("values above 100% are allowed for bloom").
  • All other sliders already carry per-control tooltips + unit suffixes (added during UI6-M1 / UI6-C1).

UI6-M7 — explicit keyboard focus order

  • Top-row knobs Input / Output / Drive / Mix are 1..4.
  • SpectrumVisualizer, GlobalControls, controlTabs are 5..7.
  • GlobalControls combos numbered locally 1..4 (Bands, Min dB, Max dB, FFT).
  • GateControls 1..7 (Threshold, Reduction, Smoothing, Tilt, Flip, Solo, Mute).
  • RelayStrip 1..20 — Enable, Clear, time-mode combo, time, sync combo, then row-1 / row-2 sliders following the visual layout.

JUCE assigns focus by Z-order by default; with explicit orders, Tab cycles in visual reading order regardless of construction order.

Refs v0.6.0-threshold.md UI6-M6 + UI6-M7.

Dependencies

Test plan

  • cmake --build build --target BandGate_VST3 succeeds.
  • Open the editor, twist Loop LPF past 1 kHz, confirm the display flips to kHz.
  • Twist Relay FB above 100 % and confirm the readout shows "… %".
  • Click anywhere in the editor and press Tab — confirm focus walks left-to-right, top-to-bottom across the visible tab.

🤖 Generated with Claude Code

UI6-M6 — value display polish:
- Loop HPF / Loop LPF sliders now auto-promote to kHz at and above 1 kHz
  (Loop LPF 12 500 Hz used to render as "12500.00 Hz", now "12.50 kHz").
- Relay feedback slider now renders its 0..1.55 ratio as a percent so the
  readout matches its tooltip ("values above 100% are allowed for bloom").

UI6-M7 — explicit keyboard focus order across the editor:
- Top-row knobs 1..4 (Input / Output / Drive / Mix).
- Spectrum, GlobalControls, controlTabs at 5..7.
- GlobalControls combos numbered locally 1..4 (Bands, Min dB, Max dB, FFT).
- GateControls 1..7 (Threshold, Reduction, Smoothing, Tilt, Flip, Solo, Mute).
- RelayStrip 1..20 (Enable, Clear, time-mode combo, time, sync combo, then
  the row-1 / row-2 sliders following the visual layout).

JUCE assigns focus by Z-order by default; with explicit orders, Tab now
cycles in visual reading order regardless of construction order.

Refs v0.6.0-threshold.md UI6-M6 + UI6-M7.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 25, 2026 18:29

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR targets UI6 threshold items by polishing slider value readouts (Hz→kHz auto-display and ratio→percent display) and by introducing explicit keyboard focus ordering across the editor and its sub-panels, so Tab traversal matches the visual layout rather than JUCE’s default Z-order.

Changes:

  • Added explicit focus order indices for top-level editor controls and for controls within GlobalControls, GateControls, and RelayStrip.
  • Updated RelayStrip slider readouts: Loop HPF/LPF now auto-display kHz at ≥ 1 kHz, and Relay feedback now displays as percent.

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
source/PluginEditor.cpp Sets explicit focus order for top-level editor components (top knobs → spectrum → global strip → tabs).
source/Editor/RelayStrip.cpp Adds formatting helpers for Hz/kHz and percent readouts; assigns explicit focus order within the relay panel.
source/Editor/GlobalControls.cpp Adds explicit focus order for global combo boxes.
source/Editor/GateControls.cpp Adds explicit focus order for gate sliders/buttons.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines 57 to +63
setupKnob (timeSlider, timeLabel, "Delay", "ms",
"Main delay length when Delay mode is Free. Effective echo spacing also includes diffusion.");
setupKnob (feedbackSlider, feedbackLabel, "Rly FB", {},
"Feedback around the relay path. Values above 100% are allowed for bloom; internal limiting "
"keeps the loop stable.", 54);
feedbackSlider.textFromValueFunction = formatRatioAsPercent;
feedbackSlider.updateText();
Comment on lines +10 to +15
// UI6-M6: Hz value >= 1 kHz becomes "X.XX kHz"; under 1 kHz stays "XX Hz".
juce::String formatHzAuto (double valueHz)
{
if (valueHz >= 1000.0)
return juce::String (valueHz / 1000.0, 2) + " kHz";
return juce::String (juce::roundToInt (valueHz)) + " Hz";
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants