Skip to content

v2.9.0 — tempo-true durations, live Go/JS parity

Latest

Choose a tag to compare

@stackdump stackdump released this 26 Aug 23:16
· 25 commits to main since this release
1bd9fbc
  • Beat-relative note durations: durationSteps (sixteenth-steps, 1 step = 1/4 beat) becomes the canonical encoding for newly authored bindings, resolved to milliseconds at playback against the LIVE tempo. Sustains stop being tempo-blind - the bossa walking-bass dotted-quarter (and every other genre's tempo-relative sustain) now plays correctly under any tempo override. Every existing model's serialized bytes, CID and playback are byte-identical (legacy ms stays canonical when durationSteps is absent) - zero fixture regenerations were needed anywhere in the repo.
  • //tools/parity:model_cid_parity_test: a direct, live Go-vs-JS diff in bazel test //... - both the real Go producer and the real hermetic-Node JS producer run on one fixture and their canonical JSON + CID are byte-compared, not each checked against a separately-pinned fixture. The duration encoding above is inside the diffed surface, so the two languages cannot silently drift on it.
  • make test now includes both parity suites; bazel test //... 12/12.