Docs: reconcile to two-scope capture model (master removed)
Update the CLAUDE.md FX-scope invariant to item+track only; note master removal in COMPLETED.md; drop master references from the tail spec and PLAN Milestone T; realtime now taps the selected track.
This commit is contained in:
@@ -173,7 +173,7 @@ as configurable — noted below — not to let a single request uncap it.)
|
||||
The request already has `renderTail: bool` + `tailMs: double`. The auto-trim mode
|
||||
adds a third state, so the wiring is a small enum, not a bool:
|
||||
|
||||
- **None** (default for null-test / verify captures, and the current three-scope
|
||||
- **None** (default for null-test / verify captures, and the current two-scope
|
||||
action defaults): `RENDER_TAILFLAG = 0`, `RENDER_TAILMS = 0`, normalize =
|
||||
disable-all. Exact bounds. Byte-identical to today.
|
||||
- **Auto** (the new user-facing default for tail-on captures): tailFlag `1`,
|
||||
@@ -194,8 +194,8 @@ applies the returned values.
|
||||
## The realtime path (parallel, follow-on)
|
||||
|
||||
The M8 `RealtimeRecordBackend` (`src/capture_realtime.cpp`) does **not** drive
|
||||
`RENDER_*` at all — it records the master send into a hidden temp track over a time
|
||||
selection. So none of the offline tail machinery reaches it. It needs a **parallel**
|
||||
`RENDER_*` at all — it taps the selected track's own output (post-fader, pre-parent)
|
||||
into a hidden temp track over a time selection (track scope only). So none of the offline tail machinery reaches it. It needs a **parallel**
|
||||
tail path, and it is explicitly a **follow-on to the offline tail** (offline lands
|
||||
first; realtime tail is a later increment).
|
||||
|
||||
@@ -260,7 +260,7 @@ held to bit-identical repeats.
|
||||
dry no-tail capture re-inserted at its source position must null against the
|
||||
source; a tail would extend the file past the source region and break the null.
|
||||
**The tail must be OFF for null-test and verification captures** — this is a hard
|
||||
rule, not a default. (The three-scope capture *actions* may default to a tail once
|
||||
rule, not a default. (The two capture *actions* may default to a tail once
|
||||
this ships; the *verify* action never does.)
|
||||
- **Determinism holds for offline.** The offline auto-trim path is deterministic:
|
||||
fixed threshold + fixed cap + a boundary-only trim = two identical requests
|
||||
@@ -270,8 +270,6 @@ held to bit-identical repeats.
|
||||
The tail render still goes through `FxBypassGuard` for track/item scopes
|
||||
(`render_settings.h §FxBypassPlan`, `CLAUDE.md §Capture FX scope`). This is
|
||||
exactly what we want: the tail is the *in-scope FX decay*.
|
||||
- **Master scope:** whole chain in scope → the tail is the full master-chain
|
||||
reverb/release decay. Correct.
|
||||
- **Track scope:** the track's own FX are in scope, ancestors/master bypassed →
|
||||
the tail is **the track's own reverb/delay decay**, not the parent bus's. A track
|
||||
with a reverb plugin captures that reverb's tail; a track feeding a folder reverb
|
||||
@@ -386,8 +384,8 @@ Neither is in scope now; both are single-constant seams so promotion is cheap.
|
||||
trailing edge, and the tail is appended after `ENDPOS`. But a range that itself
|
||||
ends in near-silence before a loud transient is the edge case to check the trim
|
||||
doesn't over-eat.)
|
||||
- **Auto as the action default?** Should the three shipped capture actions
|
||||
(`CAPTURE_ITEM` / `CAPTURE_TRACK` / `CAPTURE_MASTER`, currently all TailMode::None
|
||||
- **Auto as the action default?** Should the two shipped capture actions
|
||||
(`CAPTURE_ITEM` / `CAPTURE_TRACK`, currently all TailMode::None
|
||||
per `render_settings.cpp §captureActionTable`) flip to Auto tail by default once
|
||||
this ships, or should tail be a separate action variant / a modifier? Product call
|
||||
for Daniel. **Leaning:** a per-action-family toggle or a paired "…with tail"
|
||||
|
||||
Reference in New Issue
Block a user