Refuse every multi-track selected-tracks render, both scopes; make a failed mono collapse observable

This commit is contained in:
2026-08-01 22:40:54 -04:00
parent 6e6f4a6a15
commit f69c4bf6bf
14 changed files with 366 additions and 114 deletions
+14 -8
View File
@@ -74,11 +74,17 @@ detail not covered there:
each other (the former `ICaptureBackend` was removed) — do not reintroduce one
without a real second polymorphic call site.
- **The selected-tracks render (`&128`) is read as emitting one file per selected
track** — the single-file bit is documented for item/razor sources only (SDK header
~3041), and that is the whole basis for the reading; it is DAW-unverified. If it
holds, then since `RENDER_PATTERN` is one literal stem and success is a file-exists
check, N tracks would land one track's audio as a successful capture.
`renderOffline` refuses that shape for the RANGED ITEM capture only
(`render_settings::isMultiTrackRangedItemRender`). Track scope renders through the
same source with the same exposure and is deliberately untouched here — filed in
`docs/TODO.md`.
track** — the single-file bit `&(4<<16)` is documented for item/razor sources only
(SDK header ~3041), and that is the whole basis for the reading; it is DAW-unverified.
If it holds, then since `RENDER_PATTERN` is one literal stem and success is a
file-exists check, N tracks would land one track's audio as a successful capture.
`renderOffline` refuses EVERY multi-track render through that source
(`render_settings::isMultiTrackStemRender`) — the ranged item capture and the plain
track capture alike, each with its own way out
(`render_settings::multiTrackRefusalMessage`). The refusal is keyed on the render
SOURCE and not on the scope, so a future caller that reaches `&128` inherits it.
Re-opening a multi-track track capture needs the DAW check in
`docs/verify-track-scope-multitrack.md` to come back the other way first.
- **Realtime is the one capture path that accepts a multi-track selection**, and it is
correct to: its per-source-track sends sum in the one temp track, which is a real mix
rather than a stem collapse. The offline refusal above does not apply to it.