experiments/als_semantic_diff.py models device presence and order but not device parameter values. A save where the producer only moved a filter cutoff is currently reported as "no musical change", which is wrong and actively misleading.
Evidence this is real
docs/EXPERIMENTS.md §3 and §4 disagree with each other on 3 of 9 saves. The subtree-hashing approach in §3 detects changes the extractor in §4 misses. The hashing is right; the extractor is incomplete.
The task
Extend build_model() to capture device parameter values, then verify the two methods agree on which saves are musically empty.
Relevant structure (from a real Live 12 set):
- Stock devices expand to plain parameter elements in the XML.
- A single third-party VST contributed ~256
PluginFloatParameter entries in one observed save.
- Automation is currently compared by lane count only — breakpoint-level comparison is a related gap.
Design constraint — please read
Use a whitelist, not a blacklist. AGENTS.md explains why: we tried excluding "churn" tags and the result stayed noisy, because new churn tags keep appearing. Name the fields you care about.
Definition of done
The differ and a churn-excluded subtree hash agree on all 9 saves of a real chain, and knob-only edits are reported with the parameter name and old → new values.
experiments/als_semantic_diff.pymodels device presence and order but not device parameter values. A save where the producer only moved a filter cutoff is currently reported as "no musical change", which is wrong and actively misleading.Evidence this is real
docs/EXPERIMENTS.md§3 and §4 disagree with each other on 3 of 9 saves. The subtree-hashing approach in §3 detects changes the extractor in §4 misses. The hashing is right; the extractor is incomplete.The task
Extend
build_model()to capture device parameter values, then verify the two methods agree on which saves are musically empty.Relevant structure (from a real Live 12 set):
PluginFloatParameterentries in one observed save.Design constraint — please read
Use a whitelist, not a blacklist.
AGENTS.mdexplains why: we tried excluding "churn" tags and the result stayed noisy, because new churn tags keep appearing. Name the fields you care about.Definition of done
The differ and a churn-excluded subtree hash agree on all 9 saves of a real chain, and knob-only edits are reported with the parameter name and old → new values.