#!/usr/bin/env python3 """Utility to generate ALS files tagged with different Ableton versions.""" import os import sys from pathlib import Path ROOT = Path(__file__).resolve().parents[1] sys.path.append(str(ROOT / "src" / "backend")) from als.als_generator import ALSGenerator # noqa: E402 OUTPUT_DIR = ROOT / "output" / "als" / "version_tests" VARIANTS = [ ("Ableton Live 11.0", "11.0_0"), ("Ableton Live 11.2", "11.2_5"), ("Ableton Live 11.3", "11.3_10"), ("Ableton Live 12.0", "12.0_0"), ("Ableton Live 12.1", "12.1_5"), ] def build_config(label: str) -> dict: return { "name": f"Version Test {label}", "bpm": 100, "key": "C", "tracks": [ {"type": "AudioTrack", "name": "Drums", "samples": [], "color": 10}, {"type": "MidiTrack", "name": "Keys", "samples": [], "color": 25}, ], } def main() -> None: OUTPUT_DIR.mkdir(parents=True, exist_ok=True) for creator, minor_version in VARIANTS: os.environ["ABLETON_LIVE_CREATOR"] = creator os.environ["ABLETON_LIVE_MINOR_VERSION"] = minor_version generator = ALSGenerator(output_dir=str(OUTPUT_DIR)) config = build_config(f"{creator} ({minor_version})") path = generator.generate_project(config) print(f"Generated {path} for {creator} / {minor_version}") if __name__ == "__main__": main()