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.
|
||||
|
||||
Reference in New Issue
Block a user