docs(plan): archive landed and abandoned work per PLAN.md convention
Moves the shipped 9000 rename, Milestone 9 (abandoned), Phase D2, Phase L, and S-VIEW-1-10 to COMPLETED.md. Restores the held-scope heading and deduplicates Phase L.
This commit is contained in:
+171
@@ -1249,6 +1249,113 @@ CONTEXT.md §Prune (Settled forks).
|
||||
> by the M/D/B/R/V/S pillars. Authoritative spec: **CONTEXT.md §Phase L**. Product
|
||||
> framing + settled decisions (DS-1/DS-2/DS-3): `docs/product/visual-design-language.md`.
|
||||
|
||||
> **New pillar, own lettered namespace, taken up by a parallel team.** Phase L is the
|
||||
> whole-system look-and-feel effort: a shared LICE drawing kit and the surfaces that
|
||||
> adopt it, so ReaSampler and ReaSampler 9000 shed the flat "temple os" drawing for a
|
||||
> modern, sleek 2026 dark synth look. It answers Daniel's post-DAW-test verdict on the
|
||||
> instrument ("this looks like temple os… the VST is dogshit… scope it for the whole
|
||||
> system… does Cockos have a toolkit?"). Namespaced **`L` (Look-and-feel)** so it is
|
||||
> orthogonal to and ungated by the M/D/B/R/V/S pillars — a parallel team owns it while
|
||||
> Phase S feature work proceeds independently. Authoritative spec: **CONTEXT.md §Phase L
|
||||
> — visual design language (design-system spec)**. Product framing, the settled decision
|
||||
> record (DS-1/DS-2/DS-3 all SETTLED 2026-07-26), palette, and the three visual
|
||||
> directions: `docs/product/visual-design-language.md`.
|
||||
>
|
||||
> **L1 (shared LICE drawing kit — the foundation), L2 (dock-panel layout redesign), L3
|
||||
> (VST editor + embed-strip restyle), L4 (dock-panel button layout enhancement), L5
|
||||
> (dock-panel button refinements), L6 (toolbar polish), and L7 (capture ordering, card
|
||||
> metadata, and selection styling) have all landed** —
|
||||
> `theme`/palette module, `component_geometry` geometry/hit-test helpers, `draw_kit` shell, GDI
|
||||
> `DrawText` retirement in `bank_panel` (L1); `action_bar` pure task-grouped layout module, full
|
||||
> M11-aware button inventory placed by task cluster, `bank_panel` redesigned through the L1 kit
|
||||
> (L2); VST editor (`reasampler_editor.cpp`) + embed strip (`reasampler_embed.cpp`) restyled
|
||||
> through the L1 kit — REAPER-grey neutrals + three pastel accents, pastel spectral keyboard
|
||||
> strip + zone bars, hover/pressed/drag states, local `kCol*` forest-green palette retired (L3);
|
||||
> three-zone layout (top capture/placement/maintenance toolbar, bottom Design-View toolbar,
|
||||
> footer toggle + Tail button + Prune), `footer_bar` pure module, `ActionCluster::Tagging`/
|
||||
> `Switching` in `action_bar` (L4); top-bar overflow menu (`overflow_menu` pure module),
|
||||
> custom LICE-kit hover-delay tooltips (`tooltip` pure module), opposite-mode Item/Track tag
|
||||
> buttons + Show Both, Toggle + Activate-Arrange/Design buttons removed, grouping spacing
|
||||
> widened (`mode_enable` pure module) (L5); single-row button faces, keybinding in tooltip,
|
||||
> Cancel RT moved to overflow, top-bar cluster order tidied (L6); per-bank `SlotMap`
|
||||
> (id→slot) in `bank_book`, sparse-grid rendering, `card_drag` + `card_meta` pure modules,
|
||||
> `captureTimeSigNum`/`captureTimeSigDenom` on `Sample`, tertiary-border selection (L7). See
|
||||
> individual entries above. **Phase L is complete.**
|
||||
>
|
||||
> **This section is self-contained for a team without Phase S context.** Where a point
|
||||
> touches a Phase S surface (the VST editor, the embed strip, the keyboard strip), the
|
||||
> gate is stated explicitly so the team does not chase files that are not on dev yet.
|
||||
>
|
||||
> **Settled decisions (Daniel, 2026-07-26 — see `docs/product/visual-design-language.md`
|
||||
> §6):**
|
||||
> - **DS-1 — toolkit: LICE + WDL free game, no external frameworks.** Draw the modern
|
||||
> look with LICE directly; reuse any useful WDL/vwnd piece (skin/image helpers, draw
|
||||
> idioms, a control like the scroll listbox) where it beats re-deriving — "don't
|
||||
> reinvent the wheel." Reject iPlug2 / JUCE / VSTGUI (external frameworks re-opening the
|
||||
> settled bare-SDK+LICE build shape). Keep hit-test geometry in pure CTest-covered
|
||||
> modules — do not import vwnd's retained-mode object model wholesale.
|
||||
> - **DS-2 — visual direction: Direction B ("Neon Console") + Direction C's spectral
|
||||
> keyboard strip. SETTLED 2026-07-26, REVISED 2026-07-26 (Daniel) — palette-only.**
|
||||
> *Neutral surfaces (revised):* the neutral ladder moved **from near-black up into REAPER's
|
||||
> mid-grey theme family** so the dock reads as part of REAPER, not a black slab — `bg/base`
|
||||
> ≈ `#2b2b2b`, `bg/panel` ≈ `#333333`, `bg/cell` ≈ `#3a3a3a`, `line/hairline` ≈ `#4a4a4a`,
|
||||
> `text/primary` ≈ `#dcdcdc`, `text/dim` ≈ `~#a0a0a0`+ (elevation-ladder discipline
|
||||
> unchanged). *Accent layer (revised):* now a **three-accent pastel system** —
|
||||
> `accent/primary` pastel lime green (live/active/selected), `accent/secondary` pastel teal
|
||||
> + `accent/tertiary` pastel purple (categorical distinctions) — replacing the original
|
||||
> single electric cyan. The spectral keyboard strip is a **pastel** sweep anchored on the
|
||||
> three accents. *Tight WCAG pairs to re-verify against the grey ladder:* `text/dim`-on-grey
|
||||
> (mid-grey-on-mid-grey, AA 4.5:1) and the three pastels-as-indicators on `bg/cell` (shrunk
|
||||
> from ~15:1 to ~6:1–7:1). **A stylish/bundled-font upgrade was considered and DECLINED
|
||||
> (Daniel):** no font bundling/redistribution — the kit keeps its current cached-font face,
|
||||
> no new typeface. The kit palette stays abstract (roles, one constants block — three accent
|
||||
> roles + grey neutrals), so the direction is a single-file change; final hex is locked
|
||||
> against the theme WCAG tests within the pastel intent. Detail:
|
||||
> `docs/product/visual-design-language.md` §2.1/§4/§6 + CONTEXT.md §Phase L.
|
||||
> - **DS-3 — dock-panel scope: a thorough layout redesign, not a light re-skin.** L2 lays
|
||||
> out the full button inventory (including M11's action-button additions) intuitively,
|
||||
> uncluttered, and useful — then applies the kit. Sequenced after M11 merges.
|
||||
|
||||
## Phase L — sequencing
|
||||
```
|
||||
L1 (shared kit) ──► L2 (dock-panel layout redesign) [LANDED]
|
||||
├─────────► L3 (VST editor + embed-strip restyle) [LANDED]
|
||||
└─────────► L4 (dock-panel button layout enhancement) [LANDED]
|
||||
└────► L5 (dock-panel button refinements; ungated, after L4) [LANDED]
|
||||
└────► L6 (toolbar polish; ungated, after L5) [LANDED]
|
||||
└────► L7 (capture ordering + card metadata + selection styling; ungated, after L6) [LANDED]
|
||||
```
|
||||
L1, L2, L3, L4, L5, L6, and L7 have all landed. **Phase L is complete.**
|
||||
|
||||
## Phase L — must-verify-before-build
|
||||
- **LICE design-kit surfaces (L1)** — `LICE_GradRect`, `LICE_RoundRect`, AA
|
||||
`LICE_Line`/`LICE_FLine`/`LICE_ThickFLine`/`LICE_Circle`/`LICE_FillCircle`/
|
||||
`LICE_DrawCBezier`, `LICE_FillTriangle`/`FillTrapezoid`/`FillConvexPolygon`, and the
|
||||
`LICE_CachedFont`/`LICE_IFont` font engine (`SetFromHFont`, AA `DrawText`, shadow/outline/
|
||||
glow FX flags). Verified *present* in `vendor/WDL/WDL/lice/lice.h` + `lice_text.h`
|
||||
(design-language doc §1.1); **confirm exact signatures + the `LICE_CachedFont`↔`HFONT`
|
||||
lifecycle at build.**
|
||||
- **WDL/vwnd reuse assessment (DS-1)** — at build time, evaluate whether a vwnd piece beats
|
||||
re-deriving it: `virtwnd-slider.cpp` / `vwnd_slider_drawknobstack` as the slider/knob
|
||||
drawing reference, `virtwnd-listbox.cpp` as a candidate scroll listbox, `virtwnd-controls.h`
|
||||
for `WDL_STYLE_*` gradient hooks, `virtwnd-skin.h` for image-skin helpers. Reuse where
|
||||
useful; keep hit-test geometry pure regardless.
|
||||
- **M11 button inventory (L2)** — resolved at L2 build: inventory taken against dev after
|
||||
M11 merged; all buttons placed by task cluster in the landed `action_bar` module.
|
||||
- **L4 re-home surface (L4)** — resolved at L4 build: three-zone layout confirmed against the
|
||||
post-palette-revision `bank_panel`; `action_bar` extended with `ActionCluster::Tagging` +
|
||||
`Switching`; new pure `footer_bar` module covers footer layout/hit-test.
|
||||
- **L5 refinement surface (L5)** — resolved at L5 build: `TrackPopupMenu` overflow menu
|
||||
confirmed; tooltip mechanism resolved as **custom LICE-kit hover-delay tooltip** (`tooltip`
|
||||
pure module; sourced from the registered action phrase, prefix stripped at draw time); item-move
|
||||
and track-tag action ids confirmed; active-mode read confirmed via the same
|
||||
`view().activeModeId()` the footer toggle uses.
|
||||
- **L7 model + tempo surface (L7)** — **RESOLVED at build (L7 landed).** Forks F1/F2/F3 all
|
||||
confirmed: `TimeMap_GetTimeSigAtTime` confirmed at build for the meter stamp; SWELL stock
|
||||
cursors chosen for drop-result cues (Reorder→IDC_SIZEALL, Move→IDC_HAND, Copy→IDC_UPARROW,
|
||||
Replace→IDC_SIZEWE); existing pool-privilege guard reused as-is for Alt-replace. Gap navigation
|
||||
in the grid = skip gaps (arrow keys skip empty slots). See individual entries §L7 above.
|
||||
|
||||
## L1 — shared LICE drawing kit (the foundation)
|
||||
**Goal:** Stand up the shared LICE-based drawing kit that every Phase L surface (L2 dock
|
||||
panel, L3 VST editor) consumes — palette/theme module, pure component geometry/hit-test
|
||||
@@ -2441,3 +2548,67 @@ interaction grammar (snapshot-at-grab → off-audio-thread commit). Shell: `reas
|
||||
- [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.
|
||||
|
||||
---
|
||||
|
||||
## Phase S — product name (ReaSampler 9000)
|
||||
The MIDI-playback instrument's product name is **ReaSampler 9000** (Daniel, 2026-07-26,
|
||||
on DAW-testing the S1–S6 instrument). The extension remains **ReaSampler**; the instrument
|
||||
is **ReaSampler 9000**. Framing + propagation surfaces:
|
||||
`docs/product/midi-playback.md` §Product name.
|
||||
|
||||
- [x] Propagate the display name **ReaSampler 9000** across user-visible surfaces: the VST3
|
||||
class **display name** string (in the factory registration), the `IPlugView` editor title
|
||||
band (currently "ReaSampler Instrument"), the S6 embed-strip label, and the Phase S docs.
|
||||
**Do NOT change the VST3 class UID** — instances in already-saved projects key off it; a
|
||||
UID change orphans every existing instance.
|
||||
- [x] **Rename the binary filename too (S-NAME-1 SETTLED, Daniel 2026-07-26):** rename the
|
||||
built VST3 module (CMake `OUTPUT_NAME` / target artifact — e.g. `reasampler_9000.vst3`)
|
||||
alongside the display strings, so the on-disk name matches the product name. Record the
|
||||
full rename surface: **CMake output name** (the second VST3 target's artifact name), the
|
||||
**factory vendor/name strings**, the **`IPlugView` editor title**, and the **S6 embed
|
||||
label**. Do NOT touch the **VST3 class UID** (unchanged — the compat anchor).
|
||||
|
||||
---
|
||||
|
||||
## Phase S — S-VIEW-1 through S-VIEW-10 (rolled-up)
|
||||
|
||||
- [x] **S-VIEW-1 through S-VIEW-10** — all landed (Wave 1 core + Wave 2 shell + Wave 3 velocity-curve editor UI). See entries §S-VIEW-1 through §S-VIEW-10 above for the full entry set.
|
||||
|
||||
---
|
||||
|
||||
# Phase D2 — Two-canvas (item-level mode projection; additive to D1)
|
||||
|
||||
> **Design View sub-phase.** Extends D1's track-level mode projection to **item
|
||||
> level** via REAPER 7 fixed lanes: on a track present in both stances, each mode
|
||||
> owns a fixed lane — the active mode's lane shows and plays, the inactive mode's is
|
||||
> hidden and silenced — so a Design take and an Arrange take can share the same
|
||||
> track and time position without colliding on the view. Nothing in D1 changes.
|
||||
> Runtime floor rises to **REAPER 7** for this sub-phase (no version-gate branch;
|
||||
> below v7 it is simply unavailable). Authoritative spec: **CONTEXT.md §Two-canvas
|
||||
> sub-phase (Phase D2 / Phase E)** and the surrounding §Design View — additive phase
|
||||
> spec. Product framing: `docs/product/design-view.md` §Two-canvas direction.
|
||||
>
|
||||
> **D2-W1 (pure lane extension), D2-W2 (shell: lane application + new-content
|
||||
> detection), D2-W3-A (lane minting + item→lane assignment + persist round-trip),
|
||||
> and D2-W3-B (item-level mode actions + W3-A polish) have all landed** — see
|
||||
> individual entries above. **Phase D2 is functionally complete.**
|
||||
>
|
||||
> **Deferred:** panel UI indicator for per-track lane/mode state (a per-track
|
||||
> lane-split marker). The mode switch already shows the active mode; no natural
|
||||
> cheap home for a per-track indicator was found in the bank panel. Explicitly
|
||||
> deferred — not silently dropped. Can be picked up later if wanted.
|
||||
|
||||
---
|
||||
|
||||
## Milestone 9 — slots (MPC-style)
|
||||
|
||||
> **Abandoned (Daniel, 2026-07-27) — will not be built.**
|
||||
|
||||
**Goal:** "Capture to slot N" / "insert slot N", MIDI-bindable. CONTEXT-ARCHIVE.md
|
||||
Build order 9.
|
||||
**Verify (in DAW):** Slot capture and slot insert fire from MIDI bindings; slot
|
||||
state persists via the index.
|
||||
|
||||
Slot model + slot↔sample assignment.
|
||||
"Capture to slot N" / "insert slot N" actions, MIDI-bindable.
|
||||
|
||||
Reference in New Issue
Block a user