docs(s-view): spec the r11 Sample-face recomposition (knob deck, curve popup, full-width hero) for Wave B

Adds S-VIEW-11/12/13 to PLAN, r11 addendum, and forks R11-F1 (window default height) + R11-F2 (Zone-panel knob parity) for Daniel.
This commit is contained in:
2026-07-27 18:25:32 -04:00
parent e2bd4f4351
commit a4e33b1c04
3 changed files with 274 additions and 9 deletions
+70 -1
View File
@@ -7,7 +7,13 @@ the **product framing behind a scoped phase**. Its build roadmap lives in **PLAN
*why* (the plugin-format reasoning, the bare-VST3-vs-JUCE assessment, the settled
decision record).
Status: framed by product-designer (2026-07-26), **revised 2026-07-27 (r9)**. r9 records the
Status: framed by product-designer (2026-07-26), **revised 2026-07-27 (r11)**. r11 records the
**Sample-face recomposition** (Daniel's post-landing DAW pass, 2026-07-27): all linear sliders →
grouped radial knobs, compact mode toggles, the inline velocity-curve box → a preview button +
popup editor with right-click node delete, and the hero waveform full-width — the layout spec for
the Wave B editor rebuild. Two new forks open (R11-F1 hero height/default window, R11-F2
Zone-panel parity); all r9/r10 forks — including S-VIEW-F3 — are settled and landed. See the r11
Addendum in §4. r9 records the
**three-view editor redesign** (Sample / Browse / Zone) and its follow-up settlements: the
S-VIEW-F1 and S-VIEW-F2 forks are now **SETTLED** (2026-07-27) — **preview velocity persists** via
the instrument's own VST3 component state (envelope bump to v6, *not* the extension's project
@@ -1217,6 +1223,69 @@ Addendum is the *why*; those are the *what/how*.
---
### Addendum — Sample-face recomposition: knob deck, curve popup, full-width hero (Daniel, 2026-07-27, r11)
**Framing.** S-VIEW-1..10 landed and Daniel DAW-tested the three-view editor. The verdict on the
*model* is good (Sample-as-home holds); the verdict on the *composition* is not: a 12-row stack of
full-width horizontal sliders and full-width two-segment toggles reads as a settings form, not an
instrument. r11 recomposes the Sample face into the hardware-sampler grammar the references
(Simpler, Phase Plant, and every hardware groovebox) actually use — **a big waveform and a deck of
small labelled knobs in functional clusters** — and drives the **Wave B editor rebuild**.
**Directives (Daniel, 2026-07-27, relayed):**
- **Radial knobs (issue 4).** All the linear sliders become smaller radial knobs — minimal arc
(~6→4 o'clock), needle indicator, vertical drag. The knob *primitive* is being built on its own
track; r11 specs the layout that consumes it. Group the controls "in a reasonable way," and
**group the envelope controls together intuitively** as a unit.
- **Mode toggles (issue 4).** The pitch-engine and Gate/Trigger toggles must **not** be
full-width — size and place them sensibly within the grouped composition.
- **Velocity curve as button + popup (issue 3d).** Replace the inline curve box with a **small
square preview button** (the curve drawn on it in miniature) **to the right of the
preview-velocity control**; clicking it opens a **popup** hosting the full-size curve editor.
This frees the **waveform preview to become full-width**.
- **Right-click delete (issue 3c).** In the popup curve editor, right-click removes a control
point.
**The composition calls (r11).**
1. **Three fenced knob groups: AMP ENVELOPE / PITCH / PITCH ENV.** The grouping follows the
parameter taxonomy the engine already has, not an invented one. AMP ENVELOPE hosts the
Gate|Trigger toggle in its caption row (the toggle *selects the envelope shape*, so it heads
the envelope group — that is the "envelope controls as a unit" directive made structural) over
the AHDSR knobs (Gate) or Fade In · Length % · Fade Out (Trigger, reordered to time order).
PITCH hosts the Varisp|Preserve toggle + the Key Track knob (key tracking is repitch math — it
lives with the engine that applies it). PITCH ENV is its own small envelope unit (Off|On
caption toggle + P.Attack/P.Decay/P.Depth), mirroring AMP ENVELOPE's grammar.
2. **Toggles live in the group caption rows.** Compact two-segment toggles (Mono/Stereo-sized)
right-anchored in each group's micro-caps caption row — not-full-width, and *placed where they
explain themselves* (each toggle captions the knobs it reconfigures).
3. **The hero inverts from fixed to elastic.** Collapsing ~312px of slider rows into a ~92px deck
makes the control surface the fixed band and the full-width waveform the elastic one — the
Simpler/Phase-Plant proportion. Fork **R11-F1** (Daniel): keep the 840×620 default (hero
~430px, waveform-dominant — the lean) or shrink the default to ~840×520.
4. **Popup over inline for the velocity curve.** The inline box bought a permanently visible
editor at the cost of 168px of hero width for a control most sessions touch once. The
mini-button keeps the curve *visible* (live miniature, glanceable) while the popup gives the
*editor* more room than the inline box ever had. All landed interactions carry over; right-click
becomes the primary node-delete, with Alt-click and drag-off kept as alternates — nothing
dropped.
5. **One grammar on both surfaces (fork R11-F2, lean yes).** The Zone param panel should adopt the
same knob deck + button/popup — Sample and Zone already edit one storage site (S15-F2); the lean
is that they should speak one control grammar too. Daniel's call (it grows Wave B scope).
**What does NOT change (guardrails).** Zero engine/state/persistence change — this is a view
recomposition of *existing* controls; no new params, no component-state bump, VST3 class UID
unchanged. All drawing through the L1 kit by palette role; all layout/hit-test in new pure modules
(`knob_deck`, `curve_popup` — mirrors of `action_bar`/`overflow_menu`); the knobs and the hero's
envelope nodes remain two surfaces on one param model (S-VIEW-F2's structural sync, untouched).
The full inventory contract (every landed element → its r11 home) is in the CONTEXT.md spec.
**Where the spec lives:** CONTEXT.md §Phase S — editor view-model redesign (S-VIEW) → "The
Sample-face recomposition (r11)"; PLAN.md §Phase S — editor Wave B (S-VIEW-11/12/13 + forks
R11-F1/R11-F2). This Addendum is the *why*; those are the *what/how*.
---
## Where this landed
With D1/D5/D6 locked and **D-A..D-D all settled (2026-07-26)**, the instrument is scoped