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:
@@ -14,18 +14,6 @@ it here and appends it to `COMPLETED.md`.
|
||||
|
||||
---
|
||||
|
||||
## 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.
|
||||
|
||||
## Open questions to resolve during build
|
||||
Carried from CONTEXT.md §Open questions — keep visible until each is closed by a
|
||||
landed milestone.
|
||||
@@ -40,21 +28,7 @@ landed milestone.
|
||||
|
||||
# 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. When a
|
||||
> point lands, doc-keeper moves it to `COMPLETED.md`.
|
||||
>
|
||||
> **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
|
||||
> `COMPLETED.md`. **Phase D2 is functionally complete.**
|
||||
> **Phase D2 is functionally complete** — D2-W1, D2-W2, D2-W3-A, D2-W3-B all landed; see `COMPLETED.md`.
|
||||
>
|
||||
> **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
|
||||
@@ -90,58 +64,12 @@ landed milestone.
|
||||
ingest path. Requires (a) a new instrument WRITE seam into ext-state and (b) an
|
||||
extension-side timer poller + claim/clear nonce. A future wave when the design is ready.
|
||||
|
||||
## Phase S — held and optional-forever (noted, not specified)
|
||||
|
||||
> S3–S11 have landed; archived in `COMPLETED.md`. S12 and S13 (partial) have also
|
||||
> landed; archived in `COMPLETED.md`. The cross-artifact relay (S13) remains deferred — see §S13 above.
|
||||
|
||||
> S8 has landed; archived in `COMPLETED.md`.
|
||||
|
||||
> S9 has landed; archived in `COMPLETED.md`.
|
||||
|
||||
> **S0-DS moved to Phase L (2026-07-26).** The shared LICE drawing kit that stood here is
|
||||
> now **Phase L point L1** on `dev` — see PLAN.md §Phase L + CONTEXT.md §Phase L and
|
||||
> `docs/product/visual-design-language.md` (all on `dev`). S10–S13 below build with the
|
||||
> current drawing and **adopt the L1 kit when it lands — not gated on Phase L.**
|
||||
|
||||
> S10, S10-Z, and S11 have landed; archived in `COMPLETED.md`.
|
||||
|
||||
> S12 has landed; archived in `COMPLETED.md`.
|
||||
|
||||
> S13 (drop-to-load) has partially landed; archived in `COMPLETED.md`. Cross-artifact relay remains deferred — see §S13 above.
|
||||
|
||||
> S15 has landed; archived in `COMPLETED.md`.
|
||||
|
||||
> S16 has landed; archived in `COMPLETED.md`.
|
||||
|
||||
> S17 has landed; archived in `COMPLETED.md`.
|
||||
|
||||
> S18 has landed; archived in `COMPLETED.md`.
|
||||
|
||||
> **S14 moved to Phase L (2026-07-26).** The dock-panel refresh that stood here is now
|
||||
> **Phase L point L2** on `dev` — and, per Daniel's DS-3 call, expanded from a light re-skin
|
||||
> into a **thorough dock-panel layout redesign** that lays out the full M11-aware button
|
||||
> inventory before applying the kit. See PLAN.md §Phase L + CONTEXT.md §Phase L and
|
||||
> `docs/product/visual-design-language.md` (all on `dev`). The design-system forks DS-1/
|
||||
> DS-2/DS-3 are all **SETTLED (2026-07-26)** and recorded in the Phase L docs on `dev`.
|
||||
|
||||
## 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.
|
||||
|
||||
- [ ] 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.
|
||||
- [ ] **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).
|
||||
- [ ] **Compat verification (must-DAW-verify before shipping the rename):** the working
|
||||
assumption is that REAPER **rebinds a saved instance by its VST3 class UID, not by the
|
||||
module filename**, so a filename rename with an unchanged UID keeps saved projects working
|
||||
@@ -153,6 +81,8 @@ is **ReaSampler 9000**. Framing + propagation surfaces:
|
||||
state. If REAPER does key partly on filename, fall back to keeping the current filename
|
||||
(display-strings-only) and record that as the shipped choice.
|
||||
|
||||
## Phase S — held and optional-forever (noted, not specified)
|
||||
|
||||
- **Tier 2 — "expressive" (HELD).** Velocity layers, round-robin (anti-machine-gun),
|
||||
full ADSR, per-sample tuning/gain trim, sustain loops. The next depth increment once
|
||||
Tier 0–1 proves the instrument belongs — **its points are not drawn up here.**
|
||||
@@ -207,9 +137,6 @@ 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-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.
|
||||
|
||||
### Phase S editor Wave B — Sample-face recomposition (r11; Daniel, 2026-07-27)
|
||||
|
||||
> Daniel's post-landing DAW pass on the S-VIEW editor: **all linear sliders → small radial
|
||||
@@ -251,12 +178,6 @@ piano-key pattern work; drop-a-capture-onto-FX instantiates a playing instance.
|
||||
fork ledger: **R11-F1** hero height vs. default window (lean: elastic hero, keep 840×620);
|
||||
**R11-F2** Zone-panel parity (lean: yes — one grammar).
|
||||
|
||||
### Phase S editor prerequisites — routed to staff-engineer (bug + default; NOT design forks)
|
||||
|
||||
> Framed in CONTEXT.md §S-VIEW; both are functional prerequisites with the SDK swept and no
|
||||
> platform ceiling — a diagnosis and a one-line default, not product decisions.
|
||||
> **S-VIEW-BUG-1 and S-VIEW-SIZE-1 have both landed (Wave 1) — see `COMPLETED.md`.**
|
||||
|
||||
### Phase S editor redesign — forks (Daniel's to call)
|
||||
*(r9/r10 forks all settled: S-VIEW-F1 and S-VIEW-F2 SETTLED 2026-07-27 — folded into S-VIEW-4 /
|
||||
S-VIEW-3. F1: preview velocity persists via envelope-v6 `ComponentState`. F2: envelope nodes are
|
||||
@@ -267,117 +188,6 @@ full-window modal over Sample (landed in S-VIEW-1/S-VIEW-5). **r11 opens two new
|
||||
|
||||
---
|
||||
|
||||
# Phase L — Look-and-feel (system-wide visual design language)
|
||||
|
||||
> **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`. When a point lands, doc-keeper
|
||||
> moves it to `COMPLETED.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
|
||||
> `COMPLETED.md`. **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 `COMPLETED.md` §L7.
|
||||
---
|
||||
|
||||
# Phase Q — Quality (structural reorganization; zero-runtime-cost)
|
||||
|
||||
> **New pillar, own lettered namespace, and — uniquely — the LAST structural pillar.** Phase
|
||||
|
||||
Reference in New Issue
Block a user