Archive Milestone 3 in docs
Move completed M3 (offline capture spike) from PLAN.md to COMPLETED.md; close the render-command and bank-format open questions; add capture_paths_tests to the CLAUDE.md targets table and note M8 is dialog-free.
This commit is contained in:
@@ -67,3 +67,31 @@ preserved; bin count honored for arbitrary sample lengths (incl. remainder bin).
|
||||
- [x] Multi-channel handling (per-channel envelope; no silent fold).
|
||||
- [x] Tests: sine envelope ≈ ±amplitude; ramp envelope monotonic; DC/silence →
|
||||
zero envelope; short-buffer and non-divisible-length edge cases.
|
||||
|
||||
---
|
||||
|
||||
## Milestone 3 — Offline capture spike (REAPER shell)
|
||||
**Goal:** Offline-render the time-selection master mix to a wav in the project
|
||||
bank folder, add a `Sample`, log it. The render-driving spike. CONTEXT.md
|
||||
§REAPER API surface (offline render), Build order 3.
|
||||
**Verify (in DAW):** Render runs via `Main_OnCommand(42230)` ("Render using most
|
||||
recent settings") — REAPER always shows its offline-render progress window; no
|
||||
stock/header-documented fully-headless path exists. File lands in the
|
||||
project-relative bank folder at **32-bit float WAV** at project rate (lossless,
|
||||
dither-free → enables bit-identical/null-test). A `Sample` is added to the
|
||||
in-memory `BankIndex`. Non-destructive. Unsaved-project state triggers a
|
||||
Save-As prompt; capture is refused if the user cancels (no default-location
|
||||
fallback).
|
||||
**Bit-identical repeats:** two identical requests produce byte-identical files.
|
||||
**Exact bounds:** rendered length matches the requested range (no rounding, no
|
||||
added silence without an explicit tail).
|
||||
|
||||
- [x] `ICaptureBackend` interface + `CaptureRequest` (source mode, time range,
|
||||
wet/dry, tail, SR/bit-depth/channels, output path). CONTEXT.md §capture.
|
||||
- [x] `OfflineRenderBackend`: drive `GetSetProjectInfo` render settings +
|
||||
`GetSetProjectInfo_String` file/pattern/format; **verify every flag against
|
||||
`vendor/reaper-sdk/sdk/reaper_plugin_functions.h`.**
|
||||
- [x] Resolve the no-dialog render command/flag on the current REAPER build
|
||||
(open question) and confirm it runs headless.
|
||||
- [x] Populate a `Sample` from the finished file; hand to `bank_model`; console-log.
|
||||
- [x] Verify bit-identical repeats and exact-bounds by hand on a known range.
|
||||
|
||||
Reference in New Issue
Block a user