notespatial: commit the scores, because one of them cannot be made again master
Three .nsscore files have been sitting untracked in the CultureHub folder — hardfield, monosine, wildfield — on a single 8 GB laptop, thirteen days before the performance they are for. The generators that made them have been committed since 23f0b22433. The scores themselves never were. That distinction matters more than it looks, because the generators do not all behave the same way. wildfield-gen.mjs opens `let seed = 20260908` and runs an LCG from it, so its score is a pure function of committed code and can be rebuilt byte for byte. hardfield-gen.mjs calls Math.random() directly, with nothing seeding it. Its score is not the output of a program that still exists; it is the output of one particular run of that program, in August, on this machine. Losing the file loses the piece — re-running the generator would give a different 175 BPM hardcore score, not that one. So all three are tracked, at 11 KB, 85 KB and 160 KB of readable JSON: movements, levels, tilts, the spatial field. Small, diffable, and the actual composition. The renders are not. A .wav is nsscore-bake-audio.mjs applied to the score beside it, and a -diagram.mp4 is render-notespatial-diagram.mjs applied to the same pair; both are reproducible, and they run 7 to 95 MB each. A .gitignore says which is which and why, so the next person does not have to infer the rule from whatever happens to be present. If hardfield's exact score is ever wanted from a clean checkout again, that is now possible. Before this commit it was not. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01A1xZ1BonXHyds6EzF5H9Hb