Files
product-vamp/docs/composer/dependency_proof.md
T
khodowany f234dd6d51 Save
2026-10-04 15:51:18 -05:00

4.2 KiB

Independent-input and reproducibility evidence

The normal dependency is original source → immutable SourceAnalysis → generate_role(role, settings, data) → assembly. No pairwise winner selection, generated foreground prediction, responsive comping or other-role grip reuse was introduced. Acoustic/electric accompaniment remains canonical by source form position. Source-defined windows suppress a guitar's accompaniment while that same guitar solos and protect the returning vocal pickup before construction.

generator.input_audit.composition installs a scoped Python audit hook. Composition reads are restricted to production data, generator code, Python runtime and that role's cache directory. Read/write handles do not bypass the rule. Reads of optional references, audition snapshots, previously published scores or another role's concrete cache are rejected. Original source content is supplied explicitly as immutable canonical analysis, before this scope. Rendering/assembly legitimately consume finished assets outside the scope.

This is an internal dependency guard, not a hostile-code security sandbox. Provenance review is still needed: a runtime deletion test alone would not detect target-derived material already copied into production data. All newly authored rules were reviewed as general operations; no target score contents were consulted during production authoring.

Command actually run through the repository Python runner:

-m audition.dependency_check --output build/composer_repair/405066e/dependency

dependency/dependency.json records actual read paths and canonical hashes for six roles using an independently authored one-bar C7 source and real production catalogs. All roles matched across standalone cold builds, reversed warm builds, reversed two-process cold builds, deliberately invalid optional target files present, targets deleted, and generation after an electric-only setting change. This is a dependency test, not a claim of whole-chorus artistic equivalence.

Role Stable document SHA-256
Acoustic accompaniment 2c3cc9efe4c6fbe7c1f8206d57e7f7d3a66bdadc9dbc2c657ea3d2d600425741
Electric accompaniment b89eedfd82fcfe83475c13cdf461c7123a8c99137bb0452875e3d2509267e183
Electric melody b8d18ef6fd65b204bd2fc2b69e660068890cb30aea6db827c3f3b506284ea2a1
Vocal melody e3348117b9c63771cfa0439f276bdadf0d26dd6e560c9676c97e12a4a713737b
Acoustic solo 2d91f4f14615f6aa65c8f46ff0c8d858da1e808d8d132723c37342c20ea13e5b
Electric solo 78640b8c8776735638141f1d34cf820a737b2891cae4c4529b6907a448c272f3

Required tests also check irrelevant title/export-ID changes, changed original melody under unchanged harmony, unrelated song addition, role-specific settings, tuplets through assembly, and cache digest validation. Optional reference adapters remain under audition/; production rejects supplied reference objects. Performance measurements and observed read lists are excluded from stable asset reports, so timing variation does not make otherwise equal assets differ.

Cache identity covers source semantics/notation, relevant role data, shared musical resources, role settings, algorithm version and relevant code. Code edits can invalidate caches; instrumentation does not intentionally alter musical choice seeds. Concrete route caches retain sounding timing/endpoints/collection context, and phrase caches retain incoming history and theme. Process completion order only determines reporting order, never a musical winner.

Full-song cold/warm evidence: the isolated warm two-process rebuild of both current songs matched all twelve complete role documents and stable reports, plus all four exported solo XML files, against the staged build with cold solo caches. The proof and per-role hashes record 12.045 seconds and twelve cache hits. The separate four-bar cold/profiled/warm role runs also match one canonical document hash; see isolated role evidence. These checks supplement the role-order/parallel/reference-presence exercise; the full-song warm check by itself does not exercise every role-order permutation cold.