docs(product): scope ReaSampler 9000 UX overhaul (S10-S13) + record instrument name

Post-DAW-test: name the instrument ReaSampler 9000; spec the better-than-RS5K
overhaul — S10 keyboard-strip keymap editor, S11 waveform + draggable loop
points, S12 scroll/search/direct-entry/ADSR, S13 drop-to-load via the S8 relay.
VST3 class UID locked unchangeable; S-NAME-1 (binary filename) is Daniel's call.
This commit is contained in:
2026-07-26 19:03:26 -04:00
parent dc5d36ff43
commit 8c9cf38780
3 changed files with 328 additions and 5 deletions
+68 -5
View File
@@ -7,7 +7,10 @@ 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-26 (r4)**. The
Status: framed by product-designer (2026-07-26), **revised 2026-07-26 (r5)**. r5 records
the post-DAW-test directives on the S1S6 instrument: the product name **ReaSampler 9000**
and the **"better than RS5K" UX overhaul** (Phase S points S10S13) — see the Addendum in
§4. r4 (below) settled the four residual forks D-A..D-D. The
"no PLAN.md footprint" era is **over** — with D-A through D-D settled (below), the
instrument was scoped into **Phase S** (codename Daniel's: "S" for Sampler, because "D"
collides with the existing Design View phase). **PLAN.md §Phase S is now the
@@ -658,6 +661,56 @@ with the honest SDK reality verified against the vendored headers:
ME merely-selected-file read (b), and the drop-onto-editor cross-artifact relay (c). Both
are honestly-flagged as spikes in PLAN.md S8, not promised.
### Addendum — product name + UX overhaul (Daniel, 2026-07-26, post-S1S6 DAW test)
Daniel DAW-tested the S1S6 instrument and set two directives. These are **settled
directions**, specced as new Phase S points (S10S13) and a product-name convention — not
open forks (the two flagged forks below are the only calls left to Daniel).
**The instrument's product name is `ReaSampler 9000`.** The extension stays **ReaSampler**
(capture + organization); the instrument is **ReaSampler 9000** (playback). Propagation is
a checklist item (PLAN.md §Phase S — product name; CONTEXT.md §Product name): the VST3
class **display name** string, the `IPlugView` editor title band (today "ReaSampler
Instrument"), the S6 embed-strip label, and the docs. **Compat guard (load-bearing):** the
**VST3 class UID must NOT change** — instances in saved projects key off it; a UID change
orphans every existing instance. The name change is **display-string-only** on the code
side. *Fork S-NAME-1 (Daniel's call):* the on-disk **binary filename** — renaming it
(`reasampler_9000.vst3`) carries compat weight (REAPER keys a saved project's plugin
reference partly by filename), so the lean is **keep the filename, change only display
strings**; flagged, not decided.
**The UX bar is "better than ReaSamplOMatic5000."** Verdict verbatim: "okay it works, but
the UX is awful." The S1S6 editor was spike-grade — a clickable list, zone rows with
**seven ±1 nudge/delete mini-buttons** each, text labels, **no keyboard, no waveform, no
drag, no scroll.** Setting a zone range by ±1 clicks is the catastrophe. The overhaul
(S10S13) makes "better than RS5K" *specific*:
- **RS5K's strengths, matched or beaten.** Drag-a-file-onto-it load (→ S13 relay);
note-range + a visual keyboard (→ S10 — RS5K uses two *number fields*, so a **draggable
keyboard strip** beats it); waveform with draggable start/end/loop markers (→ S11); ADSR
sliders (→ S12). Velocity layers / round-robin stay Tier 2 (held).
- **RS5K's weaknesses, our opening.** RS5K is **one-sample-per-instance** (forcing track
sprawl — one instance per drum) with **no multi-zone view in a single instance**.
ReaSampler 9000 is **multi-zone in one instrument** (S5), so the keyboard-strip editor
showing *every* zone at once is a capability RS5K structurally lacks. That is the
sharpest "better than RS5K" claim, and it's free — it falls out of the existing model.
The overhaul honors every settled constraint: **LICE/SWELL only** (D-A), **pure geometry
modules** for all layout/hit-test (mirror of `mode_switch`/`editor_geometry`/`embed_strip`),
**RT discipline untouched** (edits commit off-thread), the instrument stays a **read-only
bank consumer** (loop/root/ADSR edits are the instrument's performance map, D-B — never
written to the bank). Component-state persistence and read-only-over-bank stay settled.
*Sequencing (product recommendation).* **S10 leads** — the nudge-button zone editor is the
friction Daniel hits on every test pass, so removing it buys the most felt improvement per
unit of work and de-risks the drag-state machine S11/S12 reuse. Against the queued **S7
(stereo)**: S10 should land **before or interleaved with** S7 — S7 is real engine work but
the *reason* Daniel keeps smoke-testing is the editor, and every test pass is currently
taxed by the UX; the two are orthogonal (S7 = engine/bus, S10 = editor/geometry), so there
is no hard ordering, but the live wound is the editor. Honest counter: if the stereo
*sound* is what blocks real use, S7-first is defensible — but "it works, the UX is awful"
names the editor as the wound.
---
## Where this landed
@@ -683,12 +736,22 @@ Two further directions set post-scoping (2026-07-26; see the Addendum in §4):
hands-free refresh** (**S9**) — one-gesture capture/import + assign; the instrument stays
a read-only consumer.
Post-DAW-test directives (2026-07-26; see the "product name + UX overhaul" Addendum in §4):
7. **Product name → `ReaSampler 9000`** (display-string-only; VST3 class UID unchanged;
binary filename = fork S-NAME-1, Daniel's call).
8. **UX overhaul → "better than RS5K"** (**S10S13**): direct-manipulation keyboard-strip
keymap editor (S10), waveform + draggable loop points (S11), scale/ergonomics — scroll,
search, direct numeric entry, ADSR (S12), and drop-to-load folding in the S8 relay (S13).
**Authoritative from here:** **PLAN.md §Phase S** is the roadmap (S1S6 the original
dependency chain: spike → `Sample` fields → pure sampler core → Tier 0 → Tier 1 → embedded
UI; then **S7** stereo, **S8** ingest, **S9** change-detection); **CONTEXT.md §Phase S** is
the spec (seam-field semantics, scope contracts, the channel-mode / ingest / bank-generation
contracts, the pure/shell split, the must-verify SDK/bridge surfaces). This doc is the
framing/decision record they point back to. The "no PLAN.md footprint" era is over.
UI; then **S7** stereo, **S8** ingest, **S9** change-detection, **S10S13** the ReaSampler
9000 UX overhaul); **CONTEXT.md §Phase S** is the spec (seam-field semantics, scope
contracts, the channel-mode / ingest / bank-generation contracts, the UX-overhaul spec, the
product-name convention, the pure/shell split, the must-verify SDK/bridge surfaces). This
doc is the framing/decision record they point back to. The "no PLAN.md footprint" era is
over.
---