Tab Generation
ci / checks (push) Successful in 1h19m14s

This commit is contained in:
khodowany
2026-09-20 16:20:43 -05:00
parent 68ded4d8c8
commit cf7c0c010c
423 changed files with 1422 additions and 1332 deletions
+7 -5
View File
@@ -9,7 +9,7 @@ from time import monotonic
from generator.arrange.generate import generate_performance_scores
from generator.practice.generate import generate_practice_scores
from generator.score import count_json_files, validate_generated_tree
from generator.summary import validate_expected_performance_summary, validate_practice_variants
from generator.summary import validate_expected_performance_summary, validate_practice_parts
from generator.musicxml import load_musicxml
from generator.engraving import engrave_tree
from generator.playback import compile_tree
@@ -52,19 +52,21 @@ def generate_assets(args: argparse.Namespace) -> None:
report('validating MusicXML sources')
for source in sorted(data_dir.rglob('*.xml')):
if source.parent not in (data_dir / 'practice', data_dir / 'songs'):
raise ValueError(f'{source}: MusicXML sources belong directly under data/practice or data/songs')
load_musicxml(source)
output_dir.parent.mkdir(parents=True, exist_ok=True)
with tempfile.TemporaryDirectory(prefix='.vamp-assets-', dir=output_dir.parent) as temporary:
staged = Path(temporary) / 'assets'
staged.mkdir(parents=True, exist_ok=True)
copy_runtime_fonts(static_assets_dir, staged)
report('generating performance parts and practice variants')
report('generating performance and practice parts')
performance_count = generate_performance_scores(data_dir / 'songs', staged / 'songs')
practice_count = generate_practice_scores(data_dir, staged / 'practice')
practice_count = generate_practice_scores(data_dir / 'practice', staged / 'practice')
validate_generated_tree(staged)
if args.check:
validate_expected_performance_summary(data_dir / 'expected' / 'performance_summary.json', staged / 'songs')
validate_practice_variants(staged / 'practice')
validate_practice_parts(staged / 'practice')
report('compiling playback')
compile_tree(staged)
report('engraving pages')
@@ -84,7 +86,7 @@ def generate_assets(args: argparse.Namespace) -> None:
raise
report('publishing complete')
print(f'Generated Product Vamp assets: {performance_count} performance scores, '
f'{practice_count} practice score variants, {count_json_files(output_dir)} total JSON files.')
f'{practice_count} practice parts, {count_json_files(output_dir)} total JSON files.')
if args.check:
print('Generator check passed.')