Skip to main content
Demo · In the standard

Music.
Ship the composition, not the recording.

Spatial audio carries recorded sound objects; a wai.audio.score carries no recording at all, just the notes. The sink is a computer: the note events become music your browser synthesizes with the same deterministic Rust engine (compiled to WASM) that made the conformance corpus, and checks the BLAKE3 of the rendered PCM against the corpus's: mixdown-equivalence, the same criterion spatial audio uses. The reference synth is trig-free — a phase accumulator and a linear envelope in the fixed-point floor — so every machine renders bit-identical samples. A sink with a soundfont or a neural instrument may play the same score its own way; that is presentation. Press play.

notes — samples — rate — Hz mixdown hash —

Composition as instructions

A note is pitch, timing and envelope. The whole piece is the note list, and the sink synthesizes the music from the score instead of receiving a recording.

Mixdown-equivalence

The reference render is bit-exact: the wai.det.fixed64 floor, a phase-accumulator oscillator, a linear ADSR — trig-free, so + − × ÷ alone reproduce it on any machine. The hash in the HUD equals the corpus's expected_hashes.json. Pitch is a per-sample phase increment authored once — the floor never needs an exponential.

The same floor as spatial audio

The same fixed-point floor and mixdown discipline as spatial audio: recorded objects there, synthesized notes here. A sink with a richer instrument may play the same score its own way; the reference render is what the corpus hashes.

The score extension, its reference engine and its conformance corpus are in the open-standards repo under Apache-2.0. The scores this tab plays are the corpus files. The waveforms are deliberately simple deterministic timbres; a sink with another instrument renders the same score its own way, which is presentation, not conformance.

Read the score extension text on this site.