open-standards/wai/score-conformance
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 3770d1ab8e
Some checks failed
no-vanity-metrics / Scan committed Markdown for vanity metrics (pull_request) Successful in 4s
no-vanity-metrics / WAI public text names no comparison (pull_request) Successful in 4s
no-vanity-metrics / WAI public text names no company or product (pull_request) Successful in 4s
standards workspaces build + test / arl-rs (pull_request) Successful in 1m8s
standards workspaces build + test / eoc-rs (pull_request) Successful in 1m55s
standards workspaces build + test / jcp-rs (pull_request) Successful in 1m28s
standards workspaces build + test / joule-ui-rs (pull_request) Successful in 1m9s
standards workspaces build + test / joulehook-rs (pull_request) Successful in 1m9s
standards workspaces build + test / proof-rs (pull_request) Successful in 1m13s
standards workspaces build + test / sandbox-rs (pull_request) Successful in 2m12s
standards workspaces build + test / sense-rs (pull_request) Successful in 1m6s
standards workspaces build + test / smart-byte-rs (pull_request) Successful in 3m37s
WAI conformance / cargo-class corpora · linux (pull_request) Successful in 6m43s
WAI conformance / v2 vocabulary · manifests validate as stated (pull_request) Successful in 13s
WAI conformance / independent verifiers · claims, JWP, key discovery and integer payloads (Python) (pull_request) Successful in 13m5s
WAI conformance / delivery telemetry · CMCD and CMSD against an independent library (pull_request) Successful in 8s
WAI conformance / cross-arch byte-equality · linux (pull_request) Successful in 24s
WAI conformance / C2PA manifest emission · signed, read back, validated (pull_request) Successful in 48s
WAI energy receipts / energy receipts · linux (pull_request) Successful in 1m51s
WAI HTTP delivery / HTTP corpus · falsification and differential (pull_request) Successful in 1h19m26s
WAI HTTP delivery / cache rules · controls and labelled caches (pull_request) Successful in 1m5s
WAI JPEG-AI whole decode (pinned inputs, required) / fetch pinned JPEG-AI inputs → whole decode + pixel hash, required (pull_request) Successful in 1m2s
WAI neural sink gates / model-free refusals of the neural sink (pull_request) Successful in 1m7s
wai-pack / wai-pack · does this change touch it (pull_request) Successful in 4s
WAI section references / cited sections exist (pull_request) Successful in 10s
WAI mbt2018_mean integer decode (regenerated vectors) / regenerate mbt2018_mean integer vectors → Rust decode, required (pull_request) Successful in 4m18s
wai-web wasm32 / wai-web wasm32 build · corpus, menu and writers (pull_request) Successful in 2m42s
workflow hygiene / every workflow supersedes its own queue (pull_request) Successful in 5s
standards workspaces build + test / jouleclaw-rs (pull_request) Successful in 28m35s
standards workspaces build + test / aac-rs (pull_request) Successful in 10m55s
standards workspaces build + test / joule-code-rs (pull_request) Successful in 6m27s
standards workspaces build + test / joulecontract-rs (pull_request) Successful in 5m23s
standards workspaces build + test / map-rs (pull_request) Successful in 4m43s
standards workspaces build + test / mesh-rs (pull_request) Successful in 1m31s
standards workspaces build + test / openpay (pull_request) Successful in 4m3s
WAI conformance / cargo-class corpora · linux-arm64 (pull_request) Successful in 9m13s
WAI conformance / cross-arch byte-equality · linux-arm64 (pull_request) Successful in 2m3s
WAI energy receipts / energy receipts · linux-arm64 (pull_request) Successful in 3m53s
wai-pack / wai-pack · linux (pull_request) Successful in 1m8s
wai-pack / wai-pack · independent verifier (Python) (pull_request) Successful in 1m40s
wai-pack / wai-pack · the floor through a media prober (pull_request) Successful in 22s
wai-pack / wai-pack · dependency licences (pull_request) Successful in 1m7s
wai-pack / wai-pack · linux-arm64 (pull_request) Successful in 3m10s
standards workspaces build + test / jouledesk-rs (pull_request) Has been cancelled
standards workspaces build + test / macOS energy backends (pull_request) Has been cancelled
WAI conformance / cargo-class corpora · macos (pull_request) Has been cancelled
WAI conformance / cross-arch byte-equality · macos (pull_request) Has been cancelled
WAI energy receipts / energy receipts · macos (pull_request) Has been cancelled
wai-pack / wai-pack · macos (pull_request) Has been cancelled
wai SPEC §5: the payload of wai.generate.spectral is an instruction object (form v0)
The registration is completed as §8 permits: the row named the generator and no byte
layout. The payload is one canonical JSON object naming the model by its SHA-256 and
giving the prompt, the seed, the steps and every size a sink makes, each within stated
bounds and with one serialization per object, so an envelope's content hash names the
instructions. A sink makes only listed sizes, with that model only; conformance is
generation-equivalence at each listed size, and a sink holding a size's SHA-256 does
not present a picture that differs or accept one on a 64-bit FNV-1a alone. The
envelope's intent is `create`: a generator does not back `replicate` (§7), and this
keeps that rule.

The registry row names the payload; §8 lists the completion. score §2.3 documents the
integer authoring form `wai score build` reads, and §4 the pcm_sha256 every vector now
states. CI builds the `wai` binary with `generate` and `score` in both profiles of the
integer-kernel steps and runs tests/cli_generate_score.rs there; the two larger listed
sizes of instr-v0.json run in the release step.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-09 10:20:14 -04:00
..
notes wai: wai generate and wai score build|render, with native pins a sink checks against 2026-10-09 10:01:31 -04:00
vectors wai: music as instructions — wai.audio.score (Phase 6) 2026-06-14 04:29:10 -04:00
expected_hashes.json wai: wai generate and wai score build|render, with native pins a sink checks against 2026-10-09 10:01:31 -04:00
README.md wai SPEC §5: the payload of wai.generate.spectral is an instruction object (form v0) 2026-10-09 10:20:14 -04:00

Score Conformance Corpus

Vectors for the score extension (wai.audio.score). The criterion is mixdown-equivalence: given the same score, a conforming sink MUST render the identical canonical i16 PCM via the deterministic reference synth, hence the identical BLAKE3 — on every machine, no tolerance parameter. The music counterpart of spatial audio's mixdown-equivalence, with the recorded sound objects replaced by note events.

Provenance. Generated here: wai_score_vectors gen writes every score from notes authored in code. No recording.

The reference synth is trig-free: a phase accumulator drives a piecewise-linear oscillator (saw / square / triangle / pulse) shaped by a linear ADSR envelope, all in the wai.det.fixed64 floor. Pitch is carried as a per-sample phase increment authored off-line, so the floor never evaluates an exponential. A sink with a soundfont or neural instrument renders the same score richly — that is presentation, not conformance.

Layout

  • vectors/<name>.wscr — the WSCR container (contract + note events).
  • notes/<name>.json — the same score in the authoring form (score §2.3): the contract and every note field as an integer, the input of wai score build.
  • expected_hashes.json — per score: notes, duration, score_hash (identity), mixdown_hash (the conformance quantity), and pcm_sha256, the SHA-256 of the same i16le samples (SPEC §7 Digests).

Vectors:

  • scale — a C-major scale ascending (saw).
  • chord — a C-major triad held together (triangle, polyphony).
  • arp — a four-step arpeggio that changes timbre across the phrase.

Running

cd ../wai-rs
cargo run --features score --bin wai_score_vectors -- verify ../score-conformance
cargo run --features score --bin wai_score_vectors -- gen    ../score-conformance   # regenerate

Pass = mixdown-hash, PCM SHA-256 and score-hash equality, and each notes/<name>.json exactly the vector's notes in the authoring form.

With the wai tool (a build with score):

wai score build  ../score-conformance/notes/scale.json -o scale.wscr   # the committed WSCR, byte for byte
wai score render scale.wscr --pcm scale.s16 --json                     # samples, pcm_sha256, mixdown_blake3, score_hash

tests/cli_generate_score.rs runs both over every vector.