748ffc15de14a0991f649110d1afd203b97cd06c
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 M2 (para conversación)
ANTHROPIC_AUTH_TOKEN=tu_auth_token_aqui
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 🎵🤖
Description
Languages
Python
54.5%
Common Lisp
26.4%
TypeScript
7%
CSS
5.7%
Shell
2.9%
Other
3.5%