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.
|
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
|
- 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`.
|
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
|
## Milestone 8 — RealtimeRecordBackend
|
||||||
**Goal:** Realtime record behind the same `ICaptureBackend`, producing identical
|
**Goal:** Realtime record behind the same `ICaptureBackend`, producing identical
|
||||||
bank entries. CONTEXT.md §capture (realtime), §Precision invariants.
|
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
|
- [ ] Null-test verification action (capture → re-insert at source pos → assert
|
||||||
silence sum).
|
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
|
## Milestone 11 — polish
|
||||||
**Goal:** Batch capture (per selected item / per razor area),
|
**Goal:** Batch capture (per selected item / per razor area),
|
||||||
resample-and-mute-source, conform-on-insert, native OS drag-out. CONTEXT.md
|
resample-and-mute-source, conform-on-insert, native OS drag-out. CONTEXT.md
|
||||||
|
|||||||
Reference in New Issue
Block a user