`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]>
16 lines
1.4 KiB
JSON
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}
|
|
]
|
|
}
|