Give it audio bytes and it hands you reliable, gapless playback on an owned WebAudio clock — plus a bounded, pause-gated sequence scheduler. It owns no network, no key, no model. Every beat below runs the real engine live, with synthesized tones — no key needed.
Press play, or pick a beat below.
Driven by the real engine (@/lib/suono): createStage() → the owned clock +
player, sequence(stage).items(…).produce(…).gap(…).onItemStart(…).play() → the fluent
scheduler (the library's chained front door). The byte source here is a synthesized tone
(encodeWav); connect a key and it becomes real speech, each sentence's measured onset
re-anchoring a caption — the same onItemStart → reader.align tie
@/lib/cadenza uses. A plain DOM page, no framework — the proof the core is standalone.