docs(phase-s): close out S-VIEW-10 — Phase S three-view editor redesign complete
Move S-VIEW-10 (velocity-curve editor UI) to COMPLETED; all ten S-VIEW points landed. No open S-VIEW items remain.
This commit is contained in:
+27
-2
@@ -2277,8 +2277,9 @@ shrink below the floor. Final tuning deferred to T-SHELL.
|
||||
# Phase S — editor view-model redesign (three views: Sample / Browse / Zone)
|
||||
|
||||
> **Additive Phase S sub-phase (S-VIEW; Daniel, 2026-07-27, r9).** Merged to dev (Wave 1
|
||||
> 2026-07-27, Wave 2 2026-07-27 — `Merge pS-w2-t1-shell` + `Merge pS-w2-t2-velcurve`).
|
||||
> Integrated suite 52/52 green. S-VIEW-10 (velocity-curve editor UI) remains open in `PLAN.md`.
|
||||
> 2026-07-27, Wave 2 2026-07-27 — `Merge pS-w2-t1-shell` + `Merge pS-w2-t2-velcurve`,
|
||||
> Wave 3 2026-07-27 — `Merge pS-w3-velcurve-ui`). Integrated suite green.
|
||||
> **S-VIEW complete — all ten points landed.**
|
||||
|
||||
## S-VIEW-1 — three-view navigation model
|
||||
**Goal:** Retire the flat Browser|Zones toggle; introduce Sample (home/default), Browse (modal
|
||||
@@ -2416,3 +2417,27 @@ accepted by Daniel.
|
||||
flat y=1; `velocity_curve_tests` CTest target.
|
||||
- [x] Applied at `Voice::start()` — `velocityGain_` now set from `curve.eval(velocity)`.
|
||||
- [x] Default flat y=1 — back-compat caveat documented and accepted.
|
||||
|
||||
---
|
||||
|
||||
## S-VIEW-10 — velocity-curve editor UI (shell, Sample + Zone views)
|
||||
**Goal:** Draggable transfer-curve editor rendered through the L1 kit in BOTH the Sample view (a
|
||||
curve box beside the hero band) and the Zone per-zone param panel: the velocity→amp spline drawn
|
||||
as the `eval` polyline over a 0–127 × 0–1 box, with draggable control points — add on empty-click
|
||||
(inside the mapping box), move, Alt-click delete interior, drag-off-box delete with a warn-state
|
||||
affordance. All coordinate math in the pure `velocity_curve` module (two new tested helpers
|
||||
`pixelFromPoint`/`pointFromPixel`); reads/writes the existing per-`PerformanceZone`
|
||||
`velocityCurve` field (zones payload v7 — no schema change). Mirrors the S-VIEW-3 envelope-node
|
||||
interaction grammar (snapshot-at-grab → off-audio-thread commit). Shell: `reasampler_editor.cpp`.
|
||||
|
||||
- [x] `pixelFromPoint` / `pointFromPixel` helpers added to `velocity_curve` — coordinate mapping
|
||||
between curve-point space (velocity 0–127, amp 0–1) and pixel box; unit-tested in
|
||||
`velocity_curve_tests`.
|
||||
- [x] Curve editor drawn in Sample view (curve box beside hero waveform band): `eval` polyline in
|
||||
accent hue over 0–127 × 0–1 grid, draggable node markers per control point.
|
||||
- [x] Add on empty-space click inside the box; move on drag; Alt-click to delete interior points;
|
||||
drag-off-box delete with warn-state affordance.
|
||||
- [x] Same editor in Zone per-zone param panel (one curve per zone, same interaction grammar).
|
||||
- [x] Snapshot-at-grab → off-audio-thread commit, matching S-VIEW-3 envelope-node pattern.
|
||||
- [x] Reads/writes existing `velocityCurve` on `PerformanceZone`; zones payload remains v7 — no
|
||||
schema change.
|
||||
|
||||
@@ -207,16 +207,8 @@ fenced root + preview-trigger + control strip) with no scroll; Browse opens as a
|
||||
Sample, select+confirm loads a new capture; Zone opens on its own button, key-tracking + the
|
||||
piano-key pattern work; drop-a-capture-onto-FX instantiates a playing instance.
|
||||
|
||||
- [x] **S-VIEW-1 through S-VIEW-9** — all landed (Wave 1 core + Wave 2 shell). See `COMPLETED.md`
|
||||
- [x] **S-VIEW-1 through S-VIEW-10** — all landed (Wave 1 core + Wave 2 shell + Wave 3 velocity-curve editor UI). See `COMPLETED.md`
|
||||
§S-VIEW for the full entry set.
|
||||
- [ ] **S-VIEW-10 — velocity-curve editor UI (shell, Sample + Zone views, r10).** A compact transfer-
|
||||
curve editor band on the **Sample view** adjacent to the envelope overlay (X = velocity 0–127, Y =
|
||||
amp 0–1; spline curve traced in an accent hue; draggable node markers per control point; add on
|
||||
empty-space click, delete on modifier-click/drag-off), drawn through the **L1 kit**; the same
|
||||
editor in the Zone per-zone param panel (one curve per zone). Shell (`reasampler_editor.cpp`) does
|
||||
the LICE draw + mouse routing; **all geometry/hit-test/clamp math in the pure `velocity_curve`
|
||||
module**. Foundation (S-VIEW-9) is landed — unblocked on the module; needs the Sample-view
|
||||
curve-editor UI.
|
||||
|
||||
### Phase S editor prerequisites — routed to staff-engineer (bug + default; NOT design forks)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user