renato97 1838099923 🎵 Initial commit: MusiaIA - AI Music Generator
 Features:
- ALS file generator (creates Ableton Live projects)
- ALS parser (reads and analyzes projects)
- AI clients (GLM4.6 + Minimax M2)
- Multiple music genres (House, Techno, Hip-Hop)
- Complete documentation

🤖 Ready to generate music with AI!
2025-12-01 19:26:44 +00:00

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_TOKEN
    • anthropic-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

  1. Actualizar ai_clients.py - mapeo de géneros
  2. Agregar samples en source/{genre}/
  3. Crear template en example_usage.py

📚 Documentación Adicional

🎉 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

  1. Fork el repo
  2. Crea branch: git checkout -b feature/nueva-funcionalidad
  3. Commit: git commit -m "Agregar nueva funcionalidad"
  4. Push: git push origin feature/nueva-funcionalidad
  5. 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
🎵 MusiaIA - AI Music Generator. Generate Ableton Live projects with AI.
Readme 192 MiB
Languages
Python 54.5%
Common Lisp 26.4%
TypeScript 7%
CSS 5.7%
Shell 2.9%
Other 3.5%