Description:
Let
Text
widgets show live or snapshot values from
other widgets
(faders, toggles, radios, menus, meters, clip/mixer props), triggered by
On Press
,
On Select
,
On Change
,
On Release
, or
Timed Poll
. Provide a simple templating syntax, formatting options, and safe cross-page references.
Problem:
Labels often need to mirror state elsewhere (e.g., show the value of a hidden fader or the currently selected radio item). Today this requires ad-hoc variables/macros and isn’t discoverable. There’s no direct way to say “when I press/select here, display that control’s value there,” with formatting, scope, and low latency.
Proposed Solution:
  • Binding & Templating:
- Inline tokens:
{widget:<nameOrId>.value}
,
{clip.selected.name}
,
{mixer.track[2].pan}
, etc.
- Multiple tokens per label with text, e.g.,
Delay: {widget:DelayMix.value|pct0} @ {tempo.bpm|0.0}
.
-
Format pipes
:
|0
,
|0.0
,
|pct0
,
|ms
,
|Hz
,
|signed
,
|pad2
,
|upper
, custom
|map
tables.
  • Triggers (per Text widget):
-
On Press
(of a target widget),
On Release
,
On Select
(radio/menu),
On Change
(value changed),
Interval
(e.g., 10 Hz), and
Manual Refresh
.
- “
Snapshot vs. Live
” mode: one-off capture at trigger vs. continuous subscription until dismissed.
-
Debounce/Throttle
to avoid spam during fast moves;
hold/long-press
variants.
  • Targeting & Scope:
- Reference
by name, tag, color, or ID
; choose
Nearest on Page
,
This Page
, or
Project-wide
(cross-page safe).
- Safe failure text (e.g., “—”) and warnings for missing/ambiguous targets; picker UI to resolve conflicts.
  • Styling & Layout:
- Auto-fit text, min/max font size, marquee for overflow, number alignment options, prefix/suffix units, conditional color (e.g., red when > −6 dB).
- Optional
icon/pictogram
alongside value; supports
Genmoji
and embedded assets.
  • Actions & Variables:
- Actions:
Text → Bind To Widget…
,
Set Template Text
,
Refresh Now
,
Start/Stop Live Subscription
,
Set Trigger (Press/Select/Change/Interval)
.
- Vars:
text.boundTargets[]
,
text.lastValue
,
text.isLive
,
text.refreshHz
,
text.error
.
  • Debug & Safety:
- Inspector shows resolved tokens and current values; “copy resolved text” for logs.
- Sandboxed cross-page reads (read-only) with permission toggle; rate limit for background polling.
  • Advanced:
-
Conditional templates
:
{if widget:Rec.state=="record"}● REC{else}idle{end}
.
-
Aggregation
:
{avg widget:Band*.gainDb|0.0} dB
,
{max group:"Sends".value|pct0}
.
-
Event queue
: buffer last N changes for quick flick-through (“previous value” recall).
Benefits:
  • Clear, at-a-glance feedback without exposing the source controls.
  • Faster programming—no fragile macro webs for simple readouts.
  • Consistent, formatted labels across pages and projects.
  • Performance-safe updates with throttling and subscriptions.
Examples:
  • A
    Text
    widget on the Master page shows
    Reverb {widget:RevMix.value|pct0}
    when the Reverb button is pressed
    , then stays live while held.
  • A
    Radio
    for delay times updates a nearby label
    On Select
    :
    Delay: {widget:DelayTime.selectedLabel}
    .
  • A compact header displays
    BPM {tempo.bpm|0} • Grid {edit.grid|note}
    with a
    10 Hz
    interval trigger.
  • Press a
    “Show Current Send”
    button: text snapshots
    {mixer.track[Vox].sendA|pct0}
    without subscribing.
This summary was automatically generated by GPT-5 Thinking on 2025-11-04.