Files
musica-ia/scripts/generate_versioned_als.py
renato97 85db177636 feat: Complete music project templates and generation system
🎵 Major Additions:

📁 2000s Pop Project Templates:
- Chords & melody patterns
- Drum patterns and rhythms
- Synth bass configurations
- Effects and mixing guides
- Complete project structure documentation

🧬 ALS Generation System:
- Fixed ALS generator with enhanced capabilities
- Setup scripts for easy deployment
- Comprehensive README and documentation
- Quick start guide for users
- Utility commands reference

🎼 Musical Projects:
- Salsa project (Hector Lavoe inspired) with full documentation
- 2000s Pop project with complete production guide

🔧 Utility Scripts:
- generate_salsa_project.py: Salsa-specific generator
- generate_versioned_als.py: Versioned project generation
- register_project.py: Project registration system

This significantly expands MusiaIA's capabilities with pre-built project templates and production-ready examples for multiple genres!

Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-02 01:14:03 +00:00

51 lines
1.4 KiB
Python
Executable File

#!/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()