3.5 KiB
Reproduction commands
Run from the repository root. Prefix module invocations with:
build/build_common/python/bin/python3 build/build_tools/python_runner.py build/build_common/modulus
Full staged production build actually run:
-m generator --data-dir data --output-dir build/composer_repair/405066e/candidate --static-assets-dir package/assets --check --jobs 2 --composition-jobs 2 --composition-cache build/composer_repair/405066e/cache --engraving-cache build/build_common/engraving_cache --export-solo-xml --trace-level full --profile-output build/composer_repair/405066e/candidate-profile.json --progress
Post-generation comparison actually run, with explicit role and alignment conventions:
-m audition.solo_compare --generated-dir build/composer_repair/405066e/candidate/solo_xml --reference all_of_me/acoustic=build/all-of-me-solo-1.xml --reference all_of_me/electric=build/all-of-me-solo-2.xml --reference autumn_leaves/acoustic=build/autumn-leaves-solo-1.xml --reference autumn_leaves/electric=build/autumn-leaves-solo-2.xml --form-start autumn_leaves/acoustic=2 --form-start autumn_leaves/electric=2 --form-start all_of_me/acoustic=1 --form-start all_of_me/electric=1 --reference-pitch guitar-written --assets build/composer_repair/405066e/candidate --output build/composer_repair/405066e/references
The standalone production role interface remains available (example, not part of the benchmark measurements):
-m generator.compose --song data/songs/autumn_leaves.xml --role electric_solo --data-dir data --cache-dir build/build_common/composition_cache --output build/electric-role.json --solo-xml build/electric-role.xml
Both CLI and CMake support independent process workers. The CMake setting is VAMP_COMPOSITION_JOBS; default 2, accepted range 1–16. More workers can increase memory/CPU contention. Worker completion order is not a musical input.
All baseline/reference/audition paths are downstream evidence only. Deleting them is not a cache invalidation or musical configuration change. To test cold generation, use an empty composition cache directory, not a previous output score as an input.
Isolated single-role measurements actually run sequentially after regression and audition work completed:
-m audition.benchmark --source tests/evaluation_sources/after-youve-gone.xml --data-dir data --role electric_solo --cache build/composer_repair/405066e/benchmark-cache --output build/composer_repair/405066e/profile-cold --profile
-m audition.benchmark --source tests/evaluation_sources/after-youve-gone.xml --data-dir data --role electric_solo --cache build/composer_repair/405066e/benchmark-cache --output build/composer_repair/405066e/profile-warm
-m audition.benchmark --source tests/evaluation_sources/after-youve-gone.xml --data-dir data --role electric_solo --cache build/composer_repair/405066e/benchmark-unprofiled-cache --output build/composer_repair/405066e/benchmark-cold
The first run measures profiler overhead as well as generation. The third uses a separate initially empty cache to measure unprofiled cold generation. All three canonical musical hashes are checked in isolated-role-proof.json.
Isolated full warm-cache build actually run:
-m generator --data-dir data --output-dir build/composer_repair/405066e/warm --static-assets-dir package/assets --check --jobs 2 --composition-jobs 2 --composition-cache build/composer_repair/405066e/cache --engraving-cache build/build_common/engraving_cache --export-solo-xml --trace-level full --profile-output build/composer_repair/405066e/warm-profile.json --progress