diff --git a/flow-state/DESIGN.md b/flow-state/DESIGN.md index 619b629..32fb25c 100644 --- a/flow-state/DESIGN.md +++ b/flow-state/DESIGN.md @@ -29,6 +29,14 @@ references, `MIGRATION.md` is the shader→stage migration recipe. is on. Section boundaries are NOT exact for free — the compositor's feedback buffer is global and carries across them. Clearing it per boundary would flash every transition; warm-up is the better trade. +- Previews link to their exact app frame (`src/ui/preview.js`: song + seed + + frame + venue/viz pins + the probe's warm-up length, both sides primed). + Exactness takes four agreements: the bank probes analyse the bank PCM + (peak-normalised 16-bit mono — `audio/songbank.js bankPcm`), file decode + is fixed at 44.1 kHz with bit-exact WAV parsing (never the context rate), + pins run before any layer builds (rebuilding mid-context renders + differently), and materials built mid-update compile synchronously + (`needsCompile`) so no warm-up frame draws against an unlinked program. ## 2. Lookahead diff --git a/flow-state/filmstrip.html b/flow-state/filmstrip.html index d783f44..5264133 100644 --- a/flow-state/filmstrip.html +++ b/flow-state/filmstrip.html @@ -105,7 +105,7 @@