# 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