open-standards/wai/score-conformance/notes/scale.json
Transaction Science a220d16a48 wai: wai generate and wai score build|render, with native pins a sink checks against
`wai generate` makes a wai.generate.spectral picture with the reference generator at
any size and prints its SHA-256; with --instr it makes a listed size of an instruction
object of form v0, which it reads as a sink does, and --write-instr writes one.
`wai score build` writes a WSCR from integer note fields only; `wai score render`
prints samples, pcm_sha256, mixdown_blake3 and score_hash, and --pcm writes the samples.

Vectors: tests/vectors/generate/sizes.json (256x128, 640x320) and instr-v0.json (the
object, its four listed sizes and 28 objects a sink refuses); score-conformance gains
pcm_sha256 for every vector and notes/<name>.json, the authoring form, which
`wai score build` turns back into the committed WSCR byte for byte. Every pin was made
natively and equals the shared browser binding's output.

`wai wrap` refuses a wai.generate.spectral payload that is not a form-v0 object, in
every build. No library source changes.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-09 10:01:31 -04:00

16 lines
1.4 KiB
JSON

{
"sample_rate": 22050,
"channels": 1,
"duration": 34000,
"numeric": "wai.det.fixed64",
"notes": [
{"start": 0, "dur": 3500, "phase_inc": 50960238, "gain": 1717986918, "waveform": 0, "attack": 220, "decay": 600, "sustain": 2791728742, "release": 1500},
{"start": 4000, "dur": 3500, "phase_inc": 57200933, "gain": 1717986918, "waveform": 0, "attack": 220, "decay": 600, "sustain": 2791728742, "release": 1500},
{"start": 8000, "dur": 3500, "phase_inc": 64205876, "gain": 1717986918, "waveform": 0, "attack": 220, "decay": 600, "sustain": 2791728742, "release": 1500},
{"start": 12000, "dur": 3500, "phase_inc": 68023757, "gain": 1717986918, "waveform": 0, "attack": 220, "decay": 600, "sustain": 2791728742, "release": 1500},
{"start": 16000, "dur": 3500, "phase_inc": 76354085, "gain": 1717986918, "waveform": 0, "attack": 220, "decay": 600, "sustain": 2791728742, "release": 1500},
{"start": 20000, "dur": 3500, "phase_inc": 85704563, "gain": 1717986918, "waveform": 0, "attack": 220, "decay": 600, "sustain": 2791728742, "release": 1500},
{"start": 24000, "dur": 3500, "phase_inc": 96200119, "gain": 1717986918, "waveform": 0, "attack": 220, "decay": 600, "sustain": 2791728742, "release": 1500},
{"start": 28000, "dur": 3500, "phase_inc": 101920476, "gain": 1717986918, "waveform": 0, "attack": 220, "decay": 600, "sustain": 2791728742, "release": 1500}
]
}