Rebuild the live engine: continuous ring-buffer playback, click-free by construction

The per-bar stem cache rendered byte-clean audio then chopped it into separately-scheduled AudioBufferSourceNodes whose seams could not be sample-welded — the source of the travel clicks.

• stream-renderer.js: persistent stateful FULL-MIX renderer (voices + drums + found + fx_bus reverb/delay/master). open() = whole-song, BYTE-EQUAL to press.js (segment-parity-test.js, incl.

• ring-player.js: AudioWorklet reading the ring; two rings + equal-power crossfade; monotonic read cursor; underrun => silence (never loops).

• stream-worker.js: browser Worker wrapping the renderer, fills the ring.

• ring-conductor.js: two producers ping-ponging, bridge + crossfade state machine, rapid-change coalescing.

Verified: green: segment-parity byte-equal, engine.test ALL PASS, ?clicktest 1/2/3 clickMon clicks=0 + underruns=0, real cross-genre ride 0 clicks/0 errors.

▶ Play it: Rail Replacement Rapture — a bed-heavy genre where the found-sound layer carries the room https://stellate.app/?genre=transitwave&seed=9797&path=749.12536,768.12569,730.12569&xdur=13.122

723702b https://github.com/aboard-io/stellate/commit/723702b5c705ebfd45cc9619d6fa3d7fd5f64f7a