open-standards/wai/score-conformance
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Transaction Science 3fac029a71 wai: every corpus states the provenance of its content
Each *-conformance/README.md now has a line that begins **Provenance.**:
the generator that writes the corpus and its input, and for an input not
generated here its source and licence. OER/2's corpus is settled and left
as it is. byte-exact-conformance and quantum-ops-conformance get a README.
wai-rs/tests/vectors/README.md gives a row per vector directory. Where the
staged-delivery, staged-measurement and telemetry READMEs called their
content "synthetic", that sentence is now their provenance line.

Two vectors are recorded as not generated, from the provenance audit:
int_video's video_real (a pan over a third-party picture) and
neural-conformance's photo (a third-party picture, with a decoder trained on
unrecorded images). Their lines say so and that they are to be replaced;
the photo bullet no longer names the picture's source product.

tests/corpus_provenance.rs requires the line in every corpus and a row for
every vector directory; CI runs it with the carriage tests. CONTRIBUTING
states the rule: corpus content is generated here, or recorded with a
licence that permits redistribution, and a word like "synthetic" is not a
provenance line.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-07 10:09:21 -04:00
..
vectors wai: music as instructions — wai.audio.score (Phase 6) 2026-06-14 04:29:10 -04:00
expected_hashes.json wai: music as instructions — wai.audio.score (Phase 6) 2026-06-14 04:29:10 -04:00
README.md wai: every corpus states the provenance of its content 2026-10-07 10:09:21 -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).
  • expected_hashes.json — per score: notes, duration, score_hash (identity), and mixdown_hash (the conformance quantity).

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 and score-hash equality.