🎼 New Features: - Pattern Library: Advanced pattern generation system for music projects - Enhanced ALS Generator: Improved with pattern library integration - Better music structure generation for diverse genres This adds sophisticated pattern generation capabilities to MusiaIA's ALS generator, making it even more capable of creating complex musical arrangements! Generated with Claude Code Co-Authored-By: Claude <noreply@anthropic.com>
MusiaIA - AI Music Generator
Generador de música por IA que crea proyectos compatibles con Ableton Live (.als) mediante un chatbot conversacional.
🎯 Características Principales
- ✅ Generación de archivos ALS: Crea proyectos válidos para Ableton Live programáticamente
- ✅ Chat IA: Conversa con GLM4.6 y Minimax M2 para entender tus ideas musicales
- ✅ Análisis inteligente: Extrae BPM, tonalidad, estilo y mood de tu mensaje
- ✅ Samples automáticos: Selecciona samples apropiados para cada género
- ✅ Múltiples géneros: House, Techno, Hip-Hop, Pop y más
- ✅ Estructura profesional: Tracks, clips, routing y efectos
🏗️ Arquitectura
📁 MusiaIA
├── 🎼 als/ # Archivos ALS de ejemplo
├── 🎵 source/ # Biblioteca de samples
│ ├── kicks/
│ ├── snares/
│ ├── bass/
│ └── ...
├── ⚙️ src/backend/ # Backend Python
│ ├── ai/ # Clientes de IA
│ ├── als/ # Generador ALS
│ ├── api/ # Endpoints REST
│ └── core/ # Lógica principal
├── 💻 src/dashboard/ # Frontend React
├── 📊 output/ # Proyectos generados
└── 📚 docs/ # Documentación
🚀 Inicio Rápido
1. Configurar API Keys
Edita el archivo .env y agrega tus API keys reales:
# GLM4.6 API (para generación estructurada)
GLM46_API_KEY=tu_api_key_aqui
# Minimax / Claude CLI (para conversación)
ANTHROPIC_AUTH_TOKEN=tu_auth_token_aqui
CLI de Claude listo siempre
Para no tener que manualmente hacer export ANTHROPIC_* cada vez que abras el proyecto, usa el wrapper incluido:
./scripts/claude-cli.sh
Ese script lee el .env, exporta ANTHROPIC_BASE_URL y ANTHROPIC_AUTH_TOKEN, y lanza claude --dangerously-skip-permissions .... Puedes pasarle los mismos argumentos que usarías normalmente (por ejemplo, ./scripts/claude-cli.sh --print "hola"), y el backend también reutiliza esas mismas variables, así que la única fuente de verdad queda en .env.
2. Instalar Dependencias
pip install -r requirements.txt
3. Generar un Proyecto de Ejemplo
from src.backend.als.example_usage import create_house_project
# Genera un track de house automáticamente
als_path = create_house_project()
print(f"✅ Proyecto creado: {als_path}")
4. Abrir en Ableton Live
¡Abre el archivo .als generado directamente en Ableton Live 11+!
🎵 Ejemplo de Uso
Chat de Generación
from src.backend.ai.example_ai import test_orchestrator
# Genera un proyecto desde un mensaje
await test_orchestrator()
# Input: "Create an uplifting house track with piano"
# Output: Configuración completa de Ableton Live
API Directa
from src.backend.ai.ai_clients import AIOrchestrator
from src.backend.als.als_generator import ALSGenerator
# 1. Analizar mensaje
orchestrator = AIOrchestrator()
config = await orchestrator.generate_music_project(
"energetic techno track at 130 BPM"
)
# 2. Generar ALS
generator = ALSGenerator()
als_path = generator.generate_project(config)
# 3. ¡Listo para Ableton!
print(f"Proyecto: {als_path}")
📦 Estructura de un Proyecto ALS
{
"name": "AI House Track",
"bpm": 124,
"key": "Am",
"tracks": [
{
"type": "AudioTrack",
"name": "Drums",
"samples": [
"kicks/kick_001.wav",
"snares/snare_001.wav"
],
"color": 35
},
{
"type": "MidiTrack",
"name": "Bass",
"midi": {
"notes": [45, 47, 52, 50]
},
"color": 12
}
]
}
🔧 Componentes Principales
ALS Generator (src/backend/als/als_generator.py)
Genera archivos Ableton Live Set (.als) desde configuraciones:
- ✅ Parsea y crea XML válido
- ✅ Comprime con gzip
- ✅ Crea estructura de carpetas
- ✅ Referencias a samples correctas
AI Clients (src/backend/ai/ai_clients.py)
Clientes para APIs de IA:
- GLM4.6: Análisis musical y generación estructurada
- Minimax M2: Conversación y chat
- Orchestrator: Selecciona el mejor modelo para cada tarea
ALS Parser (src/backend/als/als_parser.py)
Lee y analiza archivos ALS existentes:
- ✅ Extrae información de tracks
- ✅ Lista samples usados
- ✅ Valida integridad de archivos
🎼 Géneros Soportados
| Género | BPM Típico | Tracks Característicos |
|---|---|---|
| House | 120-130 | Kick, Bass, Leads, FX |
| Techno | 125-135 | Kick, Hat, Acid Bass |
| Hip-Hop | 80-100 | Kick, Snare, Bass, Vox |
| Pop | 100-130 | Drums, Bass, Keys, Vox |
| Trance | 130-150 | Kick, Bass, Pads, Leads |
📊 Estados del Proyecto
- ✅ Completado: Generador ALS (100% funcional)
- ✅ Completado: Parser ALS (100% funcional)
- ✅ Completado: Clientes AI (listo para API keys)
- 🔄 En progreso: Dashboard web
- 📋 Pendiente: Base de datos
- 📋 Pendiente: Sistema de samples
- 📋 Pendiente: API REST
- 📋 Pendiente: Tests completos
🔑 API Keys Necesarias
GLM4.6
- Endpoint:
https://api.z.ai/api/paas/v4 - Modelo:
glm-4.6 - Headers:
Authorization: Bearer TU_API_KEY
Minimax M2
- Endpoint:
https://api.minimax.io/anthropic - Modelo:
MiniMax-M2 - Headers:
Authorization: Bearer TU_AUTH_TOKENanthropic-version: 2023-06-01
🧪 Testing
# Probar generador ALS
python3 src/backend/als/example_usage.py
# Probar parser ALS
python3 src/backend/als/test_parser.py
# Probar clientes AI (requiere API keys configuradas)
python3 src/backend/ai/example_ai.py
📁 Archivos de Ejemplo
Explora la carpeta output/als/ para ver proyectos generados:
output/als/
├── AI House Track_73011964/
│ └── Ableton Live Project/
│ └── AI House Track Project/
│ └── AI House Track.als # ¡Abre en Ableton!
├── AI Techno Track_54b0d430/
└── AI Hip-Hop Beat_159ae17f/
🛠️ Desarrollo
Estructura de Código
# src/backend/als/als_generator.py
class ALSGenerator:
def generate_project(config: Dict) -> str:
"""Crea proyecto ALS completo"""
# 1. Crear estructura
# 2. Generar XML
# 3. Comprimir
# 4. Retornar path
# src/backend/ai/ai_clients.py
class AIOrchestrator:
async def generate_music_project(message: str) -> Dict:
"""Genera configuración desde chat"""
# 1. Analizar con GLM4.6
# 2. Estructurar config
# 3. Retornar configuración
Agregar Nuevo Género
- Actualizar
ai_clients.py- mapeo de géneros - Agregar samples en
source/{genre}/ - Crear template en
example_usage.py
📚 Documentación Adicional
docs/arquitectura.md- Arquitectura completadocs/generador_als.md- Detalles técnicos ALSdocs/api_chatbot.md- API y chatbot
🎉 Logros Actuales
- ✅ Parser/Generador ALS: 100% funcional
- ✅ Estructura XML: Completa y válida
- ✅ Compresión Gzip: Funcionando
- ✅ Múltiples géneros: House, Techno, Hip-Hop
- ✅ Clientes AI: Integrados y listos
- 🔄 Dashboard: En desarrollo
🤝 Contribuir
- Fork el repo
- Crea branch:
git checkout -b feature/nueva-funcionalidad - Commit:
git commit -m "Agregar nueva funcionalidad" - Push:
git push origin feature/nueva-funcionalidad - Abre un Pull Request
📝 Licencia
MIT License - libre para uso personal y comercial.
🙏 Créditos
Desarrollado con:
- Python 3.10+
- FastAPI
- GLM4.6 (Z.AI)
- Minimax M2
- Ableton Live
MusiaIA - Donde la IA encuentra la música 🎵🤖