Suono

the scheduler
← Lattice

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.

Owned clock 0.00sidle
Now playing
produce() calls0
Cache hits0

The storyboard

Cloud voice — hear real words instead of tones (optional) no key

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.