Files
ableton-mcp-ai/docs/SPRINT_v0.1.9_NEXT.md

174 lines
4.9 KiB
Markdown

# Sprint v0.1.9 Next
Ultima revision: 2026-03-30
## Objetivo
Pasar de "hints armonicos resueltos" a "generacion guiada por referencia con hook real".
La prioridad no es agregar mas capas.
La prioridad es que la cancion tenga:
- mismo centro tonal
- una familia armonica dominante clara
- menos tracks
- menos loops tirados al azar
- un hook reconocible que sobreviva entre secciones
## Punto de partida real
Ya esta demostrado:
- `ejemplo.mp3` fue analizado
- `reference_listener.py` devuelve `micro_stem_summary`
- `reference_listener.py` devuelve `harmonic_instrument_hints`
- `reference_listener.py` devuelve `synth_loop_hint`
- `reference_listener.py` devuelve `midi_preset_index_stats`
- el sistema puede resolver candidatos reales de `Bass`, `Pluck` y `Pad`
Todavia no esta demostrado:
- que la generacion use esos hints para crear un hook MIDI/preset dominante
- que `PhrasePlan` quede realmente reflejado en el audio final
- que el budget baje a un numero razonable de tracks
## Trabajo a hacer
### 1. Reference lock real
Objetivo:
- si se genera desde `ejemplo.mp3`, la generacion debe heredar:
- key de referencia
- BPM de referencia o BPM cercano justificado
- token/familia armonica dominante
No aceptar:
- `Am` en la referencia y `Dm` en la generacion sin razon explicita
Criterio de salida:
- manifest y generacion muestran key alineada con la referencia
### 2. Hook armonico obligatorio
Objetivo:
- crear al menos un track musical principal que no sea solo audio loop
- ese track debe salir de `harmonic_instrument_hints` o `PhrasePlan`
Minimo aceptable:
- 1 track MIDI armonico dominante
- familia musical explicita: `piano`, `keys`, `pluck`, `pad` o `lead`
- el hook debe repetirse con mutaciones entre secciones
No aceptar:
- solo `AUDIO SYNTH LOOP`
- solo pads de fondo sin hook
### 3. Materializacion hibrida real
Objetivo:
- cerrar el camino entre:
- `micro_stem_summary`
- `harmonic_instrument_hints`
- `PhrasePlan`
- generacion real en Live
Esto significa:
- si el hint principal es `pluck` o `piano`, la generacion debe intentar materializarlo como contenido musical real
- si no puede cargar preset, igual debe crear track MIDI con nombre correcto y notas intencionales
Criterio de salida:
- evidencia runtime de al menos 1 pista MIDI util creada por este flujo
### 4. Budget duro
Objetivo:
- bajar el proyecto a un budget razonable
Target:
- ideal: 12 tracks
- aceptable temporal: 16 tracks maximos
No aceptar:
- 40, 80 o 200 tracks
- duplicados musicales que no agregan contraste real
Chequeos:
- contar tracks reales creados
- contar capas musicales redundantes
- revisar si `optional_slots` esta explotando
### 5. Coherencia musical por seccion
Objetivo:
- el hook no debe desaparecer en cada seccion
- intro/build/drop/break/outro deben sentirse como variaciones del mismo tema
Minimo aceptable:
- misma familia dominante en las secciones musicales
- misma idea melodica con mutaciones controladas
- drops no deben cambiar de "mundo" sonoro sin razon
### 6. Validacion contra referencia
Objetivo:
- generar una cancion nueva guiada por `ejemplo.mp3`
- guardar evidencia tecnica y auditiva minima
Archivos de evidencia esperados:
- `temp/v019_reference_locked_generation.json`
- `temp/v019_runtime_summary.json`
- `docs/SPRINT_v0.1.9_CHANGES.md`
## Archivos a tocar primero
- `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\reference_listener.py`
- `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\server.py`
- `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\song_generator.py`
- `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\midi_preset_indexer.py`
## Archivos a leer antes
- `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\CONSOLIDADO_v0.1.8_PARA_CODEX.md`
- `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\REFERENCE_TRACK_EJEMPLO_ANALYSIS.md`
- `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\REFERENCE_TRACK_EJEMPLO_MICRO_STEMS.md`
- `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\MICRO_STEMS_APPROACH.md`
## Criterio de salida
El sprint solo se cierra si hay evidencia de estas 5 cosas:
1. la generacion usa la key de referencia o una variacion justificada
2. existe al menos 1 track MIDI armonico principal
3. el track count final queda en 16 o menos
4. el hook se reconoce en mas de una seccion
5. hay una escucha nueva que suena mas cerca de `ejemplo.mp3` que el intento anterior
## Regla dura para Kimi
No declares "materializacion hibrida completa" solo porque existan clases o helpers.
Solo puedes declararlo si:
- el runtime creo la pista
- el clip MIDI existe
- las notas fueron escritas
- el resultado aparece en la sesion real