=============================================================================== COMANDOS ÚTILES - GENERADOR .ALS =============================================================================== 🎵 GENERACIÓN DE PROYECTOS ------------------------------------------------------------------------------- # Generar proyecto básico (crea generated_project.als) python3 als_generator.py # Generar proyecto y mostrar información python3 als_analyzer.py generated_project.als info # Generar 3 proyectos en lote for i in {1..3}; do python3 -c " from als_generator import ALSGenerator g = ALSGenerator() g.create_full_als('Proyecto_$i', 5, 8) g.save_als(g.create_full_als('Proyecto_$i', 5, 8), 'proyecto_$i.als') " done 🔍 ANÁLISIS DE PROYECTOS ------------------------------------------------------------------------------- # Ver información completa del proyecto python3 als_analyzer.py archivo.als info # Exportar información a archivo de texto python3 als_analyzer.py archivo.als export info.txt # Analizar estructura detallada python3 -c " from als_analyzer import ALSAnalyzer a = ALSAnalyzer('archivo.als') a.load_als() tracks = a.get_tracks_info() clips = a.get_clips_info() print(f'Tracks: {len(tracks)}') print(f'Clips: {len(clips)}') for track in tracks: print(f' - {track[\"name\"]} ({track[\"type\"]})') " ✏️ MODIFICACIÓN DE PROYECTOS ------------------------------------------------------------------------------- # Randomizar velocidades (rango: 70-127) python3 als_analyzer.py archivo.als randomize-vel 70 127 # Transponer +5 semitonos python3 als_analyzer.py archivo.als transpose 5 # Transponer -3 semitonos python3 als_analyzer.py archivo.als transpose -3 # Duplicar clips (track 1, crear 4 duplicados) python3 als_analyzer.py archivo.als duplicate 1 4 # Crear variación completa python3 -c " from als_analyzer import ALSModificator m = ALSModificator('archivo.als') m.load_als() m.randomize_velocities(80, 120) m.transpose_notes(2) m.duplicate_clips(2, 2) m.save_als('variacion.als') " 🎨 CREAR VARIACIONES AUTOMÁTICAS ------------------------------------------------------------------------------- # Crear 5 variaciones con parámetros diferentes python3 -c " import random for i in range(5): from als_analyzer import ALSModificator m = ALSModificator('jukeblocks - Pop.als') m.load_als() # Parámetros aleatorios trans = random.choice([-5, -3, -2, 0, 2, 3, 5]) min_v = random.randint(60, 80) max_v = random.randint(100, 127) m.randomize_velocities(min_v, max_v) m.transpose_notes(trans) output = f'variacion_{i+1}.als' m.save_als(output) print(f'✅ {output} creado') " 📊 ESTADÍSTICAS DEL PROYECTO ------------------------------------------------------------------------------- # Contar notas MIDI totales python3 -c " from als_analyzer import ALSAnalyzer a = ALSAnalyzer('archivo.als') a.load_als() clips = a.get_clips_info() total = sum(c['note_count'] for c in clips) print(f'Total de notas MIDI: {total}') print(f'Total de clips: {len(clips)}') " # Análisis por track python3 -c " from als_analyzer import ALSAnalyzer a = ALSAnalyzer('archivo.als') a.load_als() tracks = a.get_tracks_info() for i, track in enumerate(tracks): print(f'{i}: {track[\"name\"]} [{track[\"type\"]}] Color: {track[\"color\"]}') " 🧪 PRUEBAS Y VALIDACIÓN ------------------------------------------------------------------------------- # Verificar archivo .als file archivo.als # Comprobar que se puede cargar python3 als_analyzer.py archivo.als info | head -10 # Ejecutar suite completa de pruebas ./setup.sh # Ejecutar demostración completa python3 ejemplo_uso.py 💡 CONSEJOS Y TRUCOS ------------------------------------------------------------------------------- # 1. Usar el archivo original como base cp "jukeblocks - Pop.als" mi_base.als # 2. Crear múltiples modificaciones for vel in 60 80 100 120; do python3 als_analyzer.py mi_base.als randomize-vel $vel 127 done # 3. Encadenar modificaciones python3 -c " from als_analyzer import ALSModificator m = ALSModificator('mi_base.als') m.load_als() m.randomize_velocities(70, 127) # Paso 1 m.transpose_notes(2) # Paso 2 m.duplicate_clips(1, 3) # Paso 3 m.save_als('resultado_final.als') # Guardar " # 4. Generar con parámetros personalizados python3 -c " from als_generator import ALSGenerator g = ALSGenerator() # Proyecto con muchos tracks tree = g.create_full_als('Proyecto_Grande', num_tracks=12, num_clips=20) g.save_als(tree, 'proyecto_grande.als') # Proyecto con pocos clips tree = g.create_full_als('Proyecto_Minimal', num_tracks=3, num_clips=4) g.save_als(tree, 'proyecto_minimal.als') " # 5. Automatizar generación en lote python3 -c " for num_tracks in 3 5 8 10; do for num_clips in 4 8 12 16; do from als_generator import ALSGenerator g = ALSGenerator() name = f'proyecto_{num_tracks}t_{num_clips}c' tree = g.create_full_als(name, num_tracks, num_clips) g.save_als(tree, f'{name}.als') echo \"✅ Creado: {name}.als\" done done " 🔧 SOLUCIÓN DE PROBLEMAS ------------------------------------------------------------------------------- # Error: archivo no encontrado ls -la *.als # Error: Python no encontrado which python3 python3 --version # Verificar estructura XML gunzip -c archivo.als | head -20 # Debug: cargar y mostrar errores python3 -c " from als_analyzer import ALSModificator try: m = ALSModificator('archivo.als') if m.load_als(): print('✅ Carga exitosa') else: print('❌ Error en la carga') except Exception as e: print(f'❌ Error: {e}') import traceback traceback.print_exc() " =============================================================================== ¡LISTO PARA USAR! =============================================================================== Todos estos comandos están listos para usar directamente en tu terminal. Los archivos .als generados se pueden abrir en Ableton Live 12 Suite. Para más información: README.md Resumen del proyecto: RESUMEN.md ===============================================================================