chore: publish current ableton mcp ai workspace
This commit is contained in:
130
README.md
Normal file
130
README.md
Normal file
@@ -0,0 +1,130 @@
|
||||
# Ableton MCP AI
|
||||
|
||||
Sistema MCP + Remote Script para controlar Ableton Live 12 desde clientes tipo Claude Code, Codex y opencode, con foco en generacion musical y flujo de produccion en Arrangement View.
|
||||
|
||||
## Estado actual
|
||||
|
||||
- Wrapper estable por `stdio` para Claude Code, Codex y opencode.
|
||||
- Remote Script `AbletonMCP_AI` cargable desde `Preferences > Link/Tempo/MIDI > Control Surface`.
|
||||
- Runtime canonico en `abletonmcp_init.py` con fallback desde `AbletonMCP_AI/__init__.py`.
|
||||
- MCP server en `AbletonMCP_AI/AbletonMCP_AI/MCP_Server/server.py`.
|
||||
- Generacion de canciones y tracks con fallback de audio en Arrangement.
|
||||
- Seleccion de samples endurecida para reggaeton usando la libreria local del usuario.
|
||||
- Pack brain y jueces externos preparados para trabajar con Z.ai via API Anthropic-compatible.
|
||||
|
||||
## Que contiene este repo
|
||||
|
||||
- `AbletonMCP_AI/`
|
||||
Remote Script entrypoint, runtime espejo y paquete principal.
|
||||
- `AbletonMCP_AI/AbletonMCP_AI/MCP_Server/`
|
||||
Servidor MCP, generador musical, seleccion de samples, jobs async y utilidades.
|
||||
- `_Framework/`
|
||||
Shim minimo necesario para que el runtime no dependa de imports rotos de `ableton.v2`.
|
||||
- `abletonmcp_init.py`
|
||||
Runtime canonico que corre dentro de Ableton Live.
|
||||
- `mcp_wrapper.py`
|
||||
Launcher estable para clientes MCP por `stdio`.
|
||||
- `CLAUDE.md`
|
||||
Documentacion operativa para agentes.
|
||||
- `MCP_CLAUDE_OPENCODE_SETUP.md`
|
||||
Setup puntual para Claude Code y opencode.
|
||||
- `docs/KNOWN_ISSUES.md`
|
||||
Problemas abiertos y limites reales.
|
||||
- `docs/TODO.md`
|
||||
Trabajo pendiente priorizado.
|
||||
|
||||
## Lo que no contiene
|
||||
|
||||
- La libreria privada del usuario en `libreria/reggaeton`.
|
||||
- Audio generado, caches, embeddings pesados y logs.
|
||||
- Recovery files, estados temporales y artefactos de ejecucion local.
|
||||
|
||||
## Requisitos
|
||||
|
||||
- Windows nativo.
|
||||
- Ableton Live 12 instalado en:
|
||||
`C:\ProgramData\Ableton\Live 12 Suite\Program\Ableton Live 12 Suite.exe`
|
||||
- Python accesible como `python`.
|
||||
- Este repo ubicado dentro de:
|
||||
`C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts`
|
||||
|
||||
## Arranque rapido
|
||||
|
||||
1. Copia el repo a `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts`.
|
||||
2. Abre Ableton Live.
|
||||
3. En `Preferences > Link/Tempo/MIDI`, selecciona `AbletonMCP_AI` como `Control Surface`.
|
||||
4. Arranca el MCP con:
|
||||
|
||||
```powershell
|
||||
python C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\mcp_wrapper.py --transport stdio
|
||||
```
|
||||
|
||||
5. Para lanzamiento manual simple:
|
||||
|
||||
```bat
|
||||
start_mcp.bat
|
||||
```
|
||||
|
||||
## Configuracion de clientes
|
||||
|
||||
### Claude Code
|
||||
|
||||
Usa `.mcp.json` o config equivalente apuntando a:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcpServers": {
|
||||
"ableton-mcp-ai": {
|
||||
"type": "stdio",
|
||||
"command": "python",
|
||||
"args": [
|
||||
"C:/ProgramData/Ableton/Live 12 Suite/Resources/MIDI Remote Scripts/mcp_wrapper.py"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### Codex / opencode
|
||||
|
||||
Usa el mismo wrapper `mcp_wrapper.py` por `stdio`. Hay ejemplos ya preparados en `opencode.json`.
|
||||
|
||||
## Libreria de samples
|
||||
|
||||
La libreria principal usada durante las pruebas esta fuera del repo:
|
||||
|
||||
`C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\libreria\reggaeton`
|
||||
|
||||
El codigo esta preparado para trabajar con esa ruta local, pero no se publica por tamano y por contenido privado.
|
||||
|
||||
## Z.ai / jueces externos
|
||||
|
||||
Si quieres usar jueces externos y no solo heuristicas locales:
|
||||
|
||||
```powershell
|
||||
$env:ANTHROPIC_BASE_URL = "https://api.z.ai/api/anthropic"
|
||||
$env:ANTHROPIC_AUTH_TOKEN = "<token>"
|
||||
$env:ANTHROPIC_MODEL = "glm-5.1"
|
||||
```
|
||||
|
||||
El sistema usa fallback heuristico si la API no responde o devuelve rate limit.
|
||||
|
||||
## Flujo recomendado
|
||||
|
||||
1. Verifica socket y estado con `get_session_info`.
|
||||
2. Usa `generate_song_async` o `generate_track_async` desde clientes MCP para evitar timeouts largos.
|
||||
3. Si trabajas localmente desde Python, puedes invocar `server.generate_song(...)` directo.
|
||||
4. Despues de generar, fuerza `show_arrangement_view`, `jump_to 0` y `start_playback`.
|
||||
|
||||
## Documentacion adicional
|
||||
|
||||
- `CLAUDE.md`
|
||||
- `MCP_CLAUDE_OPENCODE_SETUP.md`
|
||||
- `KIMI_K2_CODEBASE_FIXES.md`
|
||||
- `KIMI_K2_NOTE_API_FIX.md`
|
||||
- `docs/KNOWN_ISSUES.md`
|
||||
- `docs/TODO.md`
|
||||
|
||||
## Nota honesta
|
||||
|
||||
El sistema ya genera sets utilizables y estabilizo la conexion Live <-> MCP, pero todavia no esta en un punto de "produccion profesional sin supervision". El estado real y lo pendiente estan documentados en `docs/KNOWN_ISSUES.md` y `docs/TODO.md`.
|
||||
Reference in New Issue
Block a user