Skip to content

Replace Dim unused with the Signal control, and light the Model D's panel live (t-150) - #122

Merged
JohnD-EE merged 4 commits into
mainfrom
feature/t150-live-panel
Oct 30, 2026
Merged

JohnD-EE merged 4 commits into
mainfrom
feature/t150-live-panel

Conversation

@JohnD-EE

Copy link
Copy Markdown
Contributor

What changed

The top rail's Dim unused toggle is now Signal, a menu with three modes:

  • Off: nothing over the panel.
  • In use: what Dim unused did, unchanged and kept with the account settings as before.
  • Live: In use, plus the routing view's lamps drawn on the panel's face over each part's controls, lit as signal passes through them when you play.

Live is offered on the Model D only for now. t-151 extends it to every routed synth.

The step that turns meters into ActivityMeters moves out of the routing view into a shared reader (components/app/synth/live-meters.ts), so both views use it. Under reduced motion it raises every wave to FAST_HZ (steadyMeters), so the LFO and slow oscillators glow steady on both views.

Why this shape

Live is kept in this browser only (kys.live), not with the account settings. So Live adds nothing to the account's settings, its API or the data export. In use stays the existing dim setting, so nobody's stored preference moves.

Review round

The security review found nothing. Code-review fixes are in a separate commit:

  • The trigger's accessible name now says the mode (Signal on the panel: Live). Before, it announced the same thing whatever the mode.
  • The chevron that marks Signal as a menu has its own class. The rail's rule that hides the toggles' close mark was hiding it.
  • Off now clears Live, so if the account sync turns dim back on, the panel opens In use, not Live. Choosing In use on a synth without Live no longer clears the Model D's Live.
  • kys.live now sits with the other browser-only keys, after the account-stamped settings.

Findings I did not act on, deliberately:

  • The live layer's rAF loop queries the DOM every frame while Live is on, even when the synth is idle. Caching the parts and idling the loop once every glow has settled is a reasonable follow-up, but it isn't a defect.
  • LIVE_SYNTHS is a hard-coded set; t-151 removes it.
  • Reduced motion is read once at mount, as the routing view already did.

Still open

The by-eye check of the Live glow on the panel is left for the owner's end-of-build pass.

🤖 Generated with Claude Code

JohnD-EE and others added 4 commits October 30, 2026 17:31
…anel live (t-150)

The top rail's Dim unused toggle becomes Signal, with a menu of Off / In use /
Live. In use is Dim unused unchanged, kept with the account settings as before.
Live draws the routing view's lamps on the panel's face, over each part's
controls, and is kept in this browser only. That way Live adds nothing to the
account's settings, its API or the data export.

The meters-to-ActivityMeters step moves out of the routing view into a shared
reader that both views use. Under reduced motion it raises every wave to
FAST_HZ (steadyMeters), so the LFO and slow oscillators glow steady on both
views. Live is offered on the Model D only; t-151 extends it to every routed
synth.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…(t-150)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…Live where it was chosen (t-150)

From the code review: the trigger's accessible name now carries the mode, the
chevron has its own class so the rail's rule for hiding the close mark no longer
hides it, Off clears Live so a dim synced back on opens In use, and In use on a
synth without Live no longer clears the Model D's choice. kys.live moves below
the account-stamped settings, beside the other browser-only keys.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@JohnD-EE
JohnD-EE merged commit c16c8f2 into main Oct 30, 2026
19 checks passed
@JohnD-EE
JohnD-EE deleted the feature/t150-live-panel branch October 30, 2026 18:17
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.

1 participant