Archive Milestone 7 in docs
Move completed M7 (wet capture action family) from PLAN.md to COMPLETED.md with a wet-only decision note; add an M10 forward note that true dry needs FX-bypass or the realtime pre-FX path, not a render bit.
This commit is contained in:
@@ -236,3 +236,23 @@ toggle + mode-jumps MIDI-bindable; tag/untag acts on the current track selection
|
||||
raises it; `main.cpp`'s timer drains it) — `persist` stays model-only.
|
||||
- A pure `nextModeId` free function added to `view_mode_model` (the N-mode cycle
|
||||
decision behind "toggle"), unit-tested in the existing `view_mode_model_tests`.
|
||||
|
||||
---
|
||||
|
||||
## 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.
|
||||
**Verify (in DAW):** Each action registered (bindable in Actions list), routes to
|
||||
the offline backend, and honors wet/dry + tail. **Load-bearing principle:** none
|
||||
auto-inserts into the arrange.
|
||||
|
||||
- [x] Source resolvers: master mix, selected tracks, selected items, razor area
|
||||
(`GetSet_LoopTimeRange`, `P_RAZOREDITS`, `CountSelectedMediaItems`, etc.).
|
||||
- [x] Register each as a bindable action (`command_id`/`gaccel`/`hookcommand`).
|
||||
- [x] Wet-dry + tail options per action.
|
||||
- [x] Review gate: confirm no capture path touches the timeline.
|
||||
|
||||
**Notes/decisions:**
|
||||
- Four **wet** bindable capture actions — master mix, selected tracks, selected items, razor area — registered under the `CEREBELLUM_REASAMPLER_CAPTURE_*` command-id prefix. Each routes to `OfflineRenderBackend` (RENDER_* snapshot/restore, dither/normalize off, 32-bit float), produces a `Sample`, adds it to the bank, persists, and calls `MarkProjectDirty`. The M3 spike action was retired.
|
||||
- **Wet-only decision (Daniel):** REAPER offline render has no true pre-FX "dry" bit — the only wet/dry-adjacent lever (`&8192` pre-fader stems) is post-FX. Approximate-dry action variants were removed rather than ship a "dry" that isn't. `CaptureRequest.wetDry` is retained as the seam for true dry (M10).
|
||||
- Pure `render_settings` module maps source mode → RENDER_SETTINGS bits and parses `P_RAZOREDITS` (union of track-audio areas), unit-tested. No capture path inserts into the arrange (load-bearing gate); non-destructive (selection/razor read-only).
|
||||
|
||||
@@ -14,19 +14,6 @@ it here and appends it to `COMPLETED.md`.
|
||||
|
||||
---
|
||||
|
||||
## 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.
|
||||
**Verify (in DAW):** Each action registered (bindable in Actions list), routes to
|
||||
the offline backend, and honors wet/dry + tail. **Load-bearing principle:** none
|
||||
auto-inserts into the arrange.
|
||||
|
||||
- [ ] Source resolvers: master mix, selected tracks, selected items, razor area
|
||||
(`GetSet_LoopTimeRange`, `P_RAZOREDITS`, `CountSelectedMediaItems`, etc.).
|
||||
- [ ] Register each as a bindable action (`command_id`/`gaccel`/`hookcommand`).
|
||||
- [ ] Wet-dry + tail options per action.
|
||||
- [ ] Review gate: confirm no capture path touches the timeline.
|
||||
|
||||
## Milestone 8 — RealtimeRecordBackend
|
||||
**Goal:** Realtime record behind the same `ICaptureBackend`, producing identical
|
||||
bank entries. CONTEXT.md §capture (realtime), §Precision invariants.
|
||||
@@ -65,6 +52,8 @@ tool's trust anchor and must pass.
|
||||
- [ ] Null-test verification action (capture → re-insert at source pos → assert
|
||||
silence sum).
|
||||
|
||||
**Note (from M7):** The null test requires a TRUE pre-FX dry capture, which REAPER offline render cannot produce via RENDER_SETTINGS (there is no pre-FX bit). True dry must be obtained by bypassing the source FX around an offline render (snapshot→bypass→render→restore) OR via the M8 realtime pre-FX path — so the dry-capture mechanism should be designed as part of the M10 null-test work.
|
||||
|
||||
## Milestone 11 — polish
|
||||
**Goal:** Batch capture (per selected item / per razor area),
|
||||
resample-and-mute-source, conform-on-insert, native OS drag-out. CONTEXT.md
|
||||
|
||||
Reference in New Issue
Block a user