estimated visitors
Technical explainer · 2 MIN READ
Cutting on the Beat Without Cutting the Stream
Prepared segments can change on musical boundaries while one persistent transport keeps receivers stable.
Choose a good cut, then make it smooth
Finding a fitting visual and showing it without a hitch are separate jobs. Analysis finds candidate segments and describes their palette, motion, intensity, quality, visual tempo, and phrase fit. Playback then has to get the chosen segment onto the screen without disrupting the stream.
Keep the output chain continuous
The transport layer solves continuity. Rather than rebuilding the entire RTP pipeline for every clip, Visualizer Stream keeps one output chain, one payloader identity, one clock, and one UDP socket alive. Finite source branches enter and leave that persistent path, preserving a stable stream identity for receivers.
Change sources, keep the output alive
The active and prepared branches use the persistent output chain. At the cut, the prepared branch takes over.
flowchart TD
Active[Active source branch] --> Output[Persistent output chain]
Standby[Prepared standby branch] -.-> Output
Output --> RTP[One RTP stream identity]
RTP --> Receiver[Render node]
Prepare the next generation early
While one segment is active, the queue can resolve and prepare one bounded standby segment. An adaptive policy learns how much lead time different media paths need, raises the lead quickly after a missed deadline, and decays it conservatively as more observations arrive. At the cut, the prepared branch can take over without asking the receiver to rediscover an entirely new stream.
Generation-scoped timing metrics connect the server's selection, resolution, readiness, activation, and first-packet events with bounded observations from render nodes. That instrumentation makes transition quality measurable rather than subjective. The long-term goal is not simply to hide a pause; it is to understand every stage between musical intent and the next displayed frame.
PROJECT