From bd5ca2f8615ce7243dfbcd67eb5011b6cd0708d1 Mon Sep 17 00:00:00 2001 From: daniel-c-harvey Date: Thu, 23 Jul 2026 06:13:22 -0400 Subject: [PATCH] Archive Milestone 6 in docs Move completed M6 (insert placement onto selected tracks at edit cursor) from PLAN.md to COMPLETED.md with a decisions note. --- COMPLETED.md | 18 ++++++++++++++++++ PLAN.md | 11 ----------- 2 files changed, 18 insertions(+), 11 deletions(-) diff --git a/COMPLETED.md b/COMPLETED.md index 6120419..1456d37 100644 --- a/COMPLETED.md +++ b/COMPLETED.md @@ -136,6 +136,24 @@ plays selected sample; multi-select + keyboard nav work. --- +## Milestone 6 — insert (placement) +**Goal:** "Insert selected sample at edit cursor" via `InsertMedia`. CONTEXT.md +§insert, Build order 6. +**Verify (in DAW):** Selected sample inserts at the edit cursor wrapped in +`Undo_BeginBlock2` / `Undo_EndBlock2`; conform-to-tempo is an explicit flag — +**no silent time-stretch** when off. + +- [x] `InsertMedia(path, mode)` at edit cursor (verify mode bits against SDK). +- [x] Conform-to-project-tempo vs literal as an explicit flag (never silent). +- [x] Undo-block wrapping. + +**Notes/decisions:** +- Placement target: inserts the focused bank sample onto the **currently selected track(s) at the edit cursor** (Daniel's directive — not a new track). Uses `InsertMedia` base mode 0; for multiple selected tracks the sample is placed on each at the same cursor position, then the original track selection and edit-cursor position are restored — non-destructive to editing state. The entire operation is one undo block. +- No silent time-stretch: the `&4` stretch-to-time-selection bit is never set; a pure `insert_plan` test asserts this across all mode combinations. Conform-to-project-tempo is an explicit separate action (`&8`), never on the default path. +- Non-destructive to the bank: insert only adds arrange items — no bank/file/ext-state writes. + +--- + ## D1 — view_mode_model (pure) **Goal:** REAPER-free mode registry + membership index + folder-tree-aware visibility derivation + parking/restore planner + JSON round-trip. The heart of the diff --git a/PLAN.md b/PLAN.md index 476278e..a50d009 100644 --- a/PLAN.md +++ b/PLAN.md @@ -14,17 +14,6 @@ it here and appends it to `COMPLETED.md`. --- -## Milestone 6 — insert (placement) -**Goal:** "Insert selected sample at edit cursor" via `InsertMedia`. CONTEXT.md -§insert, Build order 6. -**Verify (in DAW):** Selected sample inserts at the edit cursor wrapped in -`Undo_BeginBlock2` / `Undo_EndBlock2`; conform-to-tempo is an explicit flag — -**no silent time-stretch** when off. - -- [ ] `InsertMedia(path, mode)` at edit cursor (verify mode bits against SDK). -- [ ] Conform-to-project-tempo vs literal as an explicit flag (never silent). -- [ ] Undo-block wrapping. - ## Milestone 7 — capture action family **Goal:** Bindable capture actions for master / selected tracks / selected items / razor area, each with wet-dry + tail options. CONTEXT.md §actions, Build order 7.