Files
ableton-mcp-ai/AbletonMCP_AI_BAK_20260328_200801/README.md
renato97 6ec8663954 Initial commit: AbletonMCP-AI complete system
- MCP Server with audio fallback, sample management
- Song generator with bus routing
- Reference listener and audio resampler
- Vector-based sample search
- Master chain with limiter and calibration
- Fix: Audio fallback now works without M4L
- Fix: Full song detection in sample loader

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-28 22:53:10 -03:00

6.8 KiB

AbletonMCP-AI

Sistema hibrido para controlar Ableton Live 12 desde MCP y generar proyectos musicales complejos, orientados a Arrangement View.

Combina:

  • un Remote Script dentro de Live
  • un servidor MCP en Python (52+ tools)
  • seleccion de samples desde biblioteca local con busqueda semantica ML
  • reconstruccion guiada por referencias
  • fallback de audio y capas MIDI/instrumentos
  • buses, returns y snapshots de mezcla por seccion
  • mezcla harmonica Camelot wheel para DJ sets
  • generacion Tech House DJ-ready con intro/outro extendidas

Esta es la snapshot del proyecto al 2026-03-28.

Estado actual

El sistema ya puede:

  • generar proyectos completos en Arrangement View con samples de la biblioteca local
  • crear estructura, tracks, scenes, cue points y guide track
  • combinar MIDI, instrumentos stock y audio de biblioteca local (827 samples indexados)
  • analizar un track de referencia y reconstruir un resultado original inspirado en ese material
  • materializar capas AUDIO ... con samples reales (kick, bass, synth, vocal, FX, etc.)
  • aplicar snapshots por seccion a tracks y returns durante el commit Session -> Arrangement
  • operar con returns desde el runtime y desde el MCP
  • buses de mezcla (DRUM BUS, BASS BUS, MUSIC WIDE, VOCAL BUS, FX WASH)
  • capas derivadas (RESAMPLE REVERSE FX, RISER, DOWNLIFTER, STUTTER)
  • generar estructuras DJ-ready con intro/outro de 32 compases para beatmatching
  • mezcla harmonica con Camelot wheel (compatible keys, sugerencias de transicion)
  • auto-descubrir tracks de referencia desde librerias/reference/
  • previsualizar blueprints sin crear nada en Ableton
  • regenerar secciones individuales
  • persistir historia de generaciones y diversidad de samples entre sesiones
  • busqueda semantica enriquecida por genero (tech-house, house, techno, trance, etc.)
  • auto-reindexar la biblioteca cuando cambian los archivos
  • validar automaticamente el set post-generacion

Arquitectura resumida

  1. __init__.py Remote Script principal. Vive dentro de Ableton, abre el socket TCP y ejecuta comandos sobre la API de Live.
  2. MCP_Server/server.py Servidor MCP/FastMCP. Expone tools, normaliza aliases y habla con el Remote Script.
  3. MCP_Server/song_generator.py Generador musical. Construye blueprint de tracks, sections, performance, locators y returns.
  4. MCP_Server/reference_listener.py Escucha el audio de referencia y arma un plan de reconstruccion usando la biblioteca local.
  5. MCP_Server/sample_manager.py, sample_selector.py, audio_analyzer.py Indexado, busqueda, scoring y analisis de samples.
  6. MaxForLive/ Devices .amxd para la ruta hibrida con M4L.

Layout del repo

AbletonMCP_AI/
|-- __init__.py
|-- Remote_Script.py
|-- start_server.bat
|-- .mcp.json
|-- README.md
|-- CLAUDE.md
|-- MaxForLive/
|   |-- AbletonMCP_Engine.amxd
|   |-- AbletonMCP_Engine.maxpat
|   `-- AbletonMCP_SamplerPro.amxd
|-- MCP_Server/
|   |-- server.py
|   |-- song_generator.py
|   |-- reference_listener.py
|   |-- audio_analyzer.py
|   |-- sample_manager.py
|   |-- sample_selector.py
|   |-- sample_index.py
|   |-- socket_smoke_test.py
|   |-- template_analyzer.py
|   |-- ABLETUNES_TEMPLATE_NOTES.md
|   `-- requirements.txt
`-- docs/
    |-- AI_HANDOFF.md
    |-- ARCHITECTURE.md
    |-- GPU_DIRECTML.md
    |-- MCP_TOOLS.md
    |-- PROJECT_CONTEXT.md
    |-- REMOTE_PROTOCOL.md
    `-- SETUP_WINDOWS.md

Documentacion

Leer primero:

Quick start

1. Clonar y colocar en la carpeta de Ableton

# Clonar el repo
git clone https://gitea.cbcren.online/renato97/ableton-mcp-ai.git

# Copiar a la carpeta de MIDI Remote Scripts
cp -r ableton-mcp-ai "C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI"

2. Instalar dependencias Python

cd "C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\MCP_Server"
python -m pip install -r requirements.txt

3. Seleccionar el Control Surface en Live

  • Abrir Ableton Live 12.
  • Ir a Preferences > Link/Tempo/MIDI.
  • Elegir AbletonMCP_AI como Control Surface.

4. Levantar el servidor MCP

cd "C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI"
python MCP_Server/server.py

O:

start_server.bat

5. Probar conexion

cd "C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\MCP_Server"
python socket_smoke_test.py

Ubicaciones externas esperadas

Este repo no incluye bibliotecas pesadas ni material generado. El stack espera estos recursos fuera del repo:

  • biblioteca principal de samples (organizada por categorias): ..\librerias\organized_samples (827 samples indexados)
  • biblioteca raw original: ..\librerias\all_tracks
  • vector store para matching ML: ..\librerias\vector_store
  • Ableton User Library para instalar el sampler M4L: %USERPROFILE%\Documents\Ableton\User Library
  • referencias MP3/WAV que se quieran analizar: ..\sample
  • proyectos .als, renders y stems

Flujo recomendado

  1. Resetear el set.
  2. Generar un track desde MCP o por socket.
  3. Validar que el commit termine en Arrangement View.
  4. Revisar audio tracks AUDIO ... y returns.
  5. Ajustar perfiles, matching y snapshots.

Comandos utiles

Generacion completa:

generate_track(genre="tech-house", style="latin-industrial", bpm=0, key="", structure="standard")
generate_track(genre="tech-house", style="groovy", bpm=126, key="Am", structure="tech-house-dj")
generate_song(genre="tech-house", style="latin-industrial", bpm=0, key="", structure="club")

DJ / Harmonic mixing:

get_harmonic_keys(key="Am")
get_compatible_keys(key="Am")
export_stems_config()
discover_reference_track()
get_reference_suggestions()

Utilidades de generacion:

preview_generation(genre="tech-house", style="groovy", bpm=126, key="Am", structure="tech-house-dj")
regenerate_section(section_name="DROP A")
get_generation_history()

Transporte:

start_playback()
stop_playback()
set_tempo(126)

Samples:

search_samples("kick", category="kick", limit=10)
advanced_search_samples(query="vocal", category="vocals", bpm=128, key="F#m")
analyze_audio_file("C:\\ruta\\track.mp3")

Licencia

Sin licencia publicada por ahora. Tratar este repo como privado/interno hasta definirla.