kitsound
Six clips, synthesised on the CPU from raw interleaved f32 PCM and baked into `.soundClip` assets. Nothing here calls a generation service, so the interface cannot be muted by a credit balance, a rate limit or a network error.
kitsound — the interface answers
Six clips, synthesised on the CPU from raw interleaved f32 PCM and baked into
.soundClip assets. Nothing here calls a generation service, so the interface
cannot be muted by a credit balance, a rate limit or a network error.
The kit owns its own sound because a button that does not answer reads as a
broken button. The world's sound — bells, footsteps, ambience, music, voices —
belongs to the audio slice and reaches the kit through NB.provide.
Provides
SOUND.ensure()— build the clips and the emitter once. Safe to call every frame; it does its work on the first call that succeeds.SOUND.play(name, volume?)— a one-shot. Never raises, never blocks, and is quiet about a name it does not know.SOUND.ready()— whether the bank is built.
The bank
| name | what it is |
|---|---|
click | a wooden tap — a dry noise transient over a short 180 Hz thunk |
hover | a tick at the edge of hearing |
open | a leaf of the case book turned: shaped noise with a slow attack |
close | the book shut, lower and shorter |
confirm | a small three-partial chime, a cousin of the tower bell |
deny | a dull refusal, two low sines and a thud |
Every clip is proved with audio.info before it becomes an asset: a payload
whose frame count or duration is zero never reaches a .soundClip.
Reads
game.nb for nothing but its namespace discipline; the synthesis is standalone.
Scoped to this part · feeds back into the world's score.