9.4 KiB
Sprint v0.1.18 - Coherence-First Instrumental Mode
Owner: Kimi via OpenCode
Reviewer: Codex
Fecha: 2026-04-01
Baseline real vigente: 0de71b5cf9c7
Estado de cierre v0.1.17: no cerrado
1. Verdad operativa después del review de Codex
El reporte [SPRINT_v0.1.17_VALIDATION_REPORT.md](C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\SPRINT_v0.1.17_VALIDATION_REPORT.md) fue honestamente INCOMPLETE, pero seguía mezclando dos problemas:
- problemas reales de coherencia e hibridación
- una política de vocals que nunca estuvo bien definida y contaminaba selección, budget y coherencia
Codex ya dejó aplicada una política nueva y explícita:
- vocals pasan a ser
manual-only - el pipeline automático ya no debe seleccionar ni materializar
vocal_loop,vocal_build,vocal_peaknivocal_shot - el usuario grabará las voces manualmente
Cambios reales ya aplicados por Codex:
- [reference_listener.py](C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\reference_listener.py) ahora define
MANUAL_RECORDING_ROLES, filtra esos roles antes y después de selección, y exponemanual_recording_roles/auto_vocal_layers_enabled=falseen el plan. - [server.py](C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\server.py) ya no materializa vocals en audio fallback.
- [test_piano_forward.py](C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\tests\test_piano_forward.py) ahora fija esta política con tests.
Validado por Codex:
py_compilepasatest_piano_forward.pypasatest_selection_coherence.pypasa
Lo que sigue abierto:
- la coherencia sigue por debajo de lo requerido
- el sistema todavía necesita mejorar
generation_mode,mandatory_midi_hooky la verdad del manifest - los reportes siguen siendo frágiles porque leen métricas desde lugares inconsistentes o desactualizados
2. Objetivo del sprint
Cerrar la transición de:
genera instrumental sin vocals automáticas
a:
genera instrumental coherente de verdadlibrary-first-hybridconsistentehook MIDI + piano truth + librería del usuariomanifest legible, estable y audit-ready
La prioridad absoluta de este sprint es la coherencia.
No quiero features cosméticas nuevas. No quiero “más cosas sonando”. Quiero menos dispersión, mejor criterio y verdad persistida.
3. Reglas no negociables
-
Trabajar solo en el árbol canónico:
C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts
-
No tocar wrappers/config MCP salvo bug concreto.
-
No generar vocals automáticas.
- prohibido seleccionar
- prohibido materializar
- prohibido usar samples de voz grabada o chops como reemplazo de hook o FX decorativo
-
Si en algún punto querés dejar soporte para grabación manual:
- solo un placeholder explícito y vacío
- no audio materializado
- no sample retrieval
- no uso de la librería vocal
- y solo si hace falta de verdad
-
No reportar métricas desde paths inventados.
- si la métrica vive en
layer_selections.summary, se reporta desde ahí - si querés un alias top-level, lo implementás de forma explícita y lo documentás
- si la métrica vive en
-
No cerrar el sprint si cualquiera de estas falla:
coherence_score < 6.5generation_mode != library-first-hybridmandatory_midi_hook.materialized != truefamily_adherence_rate < 0.60pack_coherence.overall < 0.50pack_coherence.music < 0.65- aparece cualquier rol vocal auto-generado en
audio_layers,selected,layer_selectionso tracks creados
-
No aceptar session ids que no existan hoy en:
C:\Users\ren\.abletonmcp_ai\generation_manifests.json
4. Problemas concretos a resolver
P0. Coherence metrics con schema estable y senior-proof
Problema:
- el sistema mezcla métricas entre top-level,
layer_selections.summaryy reportes auxiliares - eso hace que Kimi lea “faltan métricas” cuando en realidad están en otro path
Qué tenés que hacer:
- definir un schema de manifest claro y estable para coherencia
- mínimo esperado:
coherence_scorecoherence_verdictcoherence_metrics.family_adherence_ratecoherence_metrics.pack_coherence.overallcoherence_metrics.pack_coherence.musiccoherence_metrics.pack_coherence.drumscoherence_metrics.pack_coherence.fxcoherence_metrics.harmonic_layers_evaluatedcoherence_metrics.manual_vocals_enabled
Importante:
- podés mantener compatibilidad con
layer_selections.summary - pero el reporte nuevo no debe depender de adivinar el path correcto
P1. Coherencia musical real del bus music
Problema:
- el bus
musicsigue siendo el cuello de botella principal - hoy mezcla demasiado entre packs/familias y la armonía pierde identidad
Qué tenés que hacer:
- endurecer selección del bus
music - permitir:
- 1 pack dominante principal
- 1 pack secundario solo si tiene función clara
- reforzar:
primary_harmonic_familypreferred_secondary_families- relación entre hook, synth loop, layer secundaria y piano support
No quiero:
- tres packs musicales compitiendo entre sí
- pads/pianos random que suben el KPI pero bajan identidad
P2. Instrumental-only debe mejorar la coherencia, no solo quitar vocals
Problema:
- si quitamos vocals pero el sistema sigue calculando como si el bus vocal importara igual, no ganamos claridad real
Qué hacer:
- cuando
auto_vocal_layers_enabled=false, el sistema no debe:- gastar budget en vocals
- seleccionar candidates vocales
- introducir tokens vocales en scoring armónico principal
- degradar la lectura de coherencia por ausencia de vocales
Esperado:
- instrumental-only es un modo de producto real
- no una ausencia accidental de layers
P3. Hook MIDI y piano truth deben seguir vivos
Problema:
- el usuario quiere más coherencia, no un sistema “mudo” o solo de loops
- quitar vocals no puede matar el híbrido
Qué hacer:
- mantener
mandatory_midi_hookreal - mantener
piano truthreal - la combinación esperada sigue siendo:
- librería del usuario como base
- hook MIDI de soporte/anchor cuando aplique
- piano/keys/rhodes solo si ayuda a la coherencia
No quiero:
- instrumental-only convertido en
drums + bass + loops random - hook planeado pero no materializado
piano_presence = 0cuando el híbrido sí existe
P4. Limpiar fuga de vocals en subsistemas secundarios
Codex ya deshabilitó el path principal, pero quiero que revises si quedan fugas en:
sample_selector.pypack_brain.pyreference_listener.pyserver.py- manifests/reporting
Objetivo:
- ningún rol vocal automático debe influir el resultado final
Esto incluye:
- no usar folders vocales para justificar coherencia
- no contar samples vocales como mejora de color o FX
- no dejar
vocal_shotcomo reemplazo encubierto de transición
P5. Validación senior real
Tenés que hacer una única validación real al final del sprint, pero instrumental-only.
Parámetros:
genre = reggaetonstyle = perreo duro vieja escuela tipo safaera- referencia:
libreria\reggaeton\ejemplo.mp3
Tenés que demostrar:
session_idnuevo- persistencia real en
generation_manifests.json generation_mode = library-first-hybridmandatory_midi_hook.materialized = truecoherence_score >= 6.5coherence_metrics.pack_coherence.overall >= 0.50coherence_metrics.pack_coherence.music >= 0.65coherence_metrics.family_adherence_rate >= 0.60auto_vocal_layers_enabled = false- ausencia total de roles vocales auto-generados
5. Archivos probables a tocar
AbletonMCP_AI\AbletonMCP_AI\MCP_Server\reference_listener.pyAbletonMCP_AI\AbletonMCP_AI\MCP_Server\server.pyAbletonMCP_AI\AbletonMCP_AI\MCP_Server\sample_selector.pyAbletonMCP_AI\AbletonMCP_AI\MCP_Server\pack_brain.py- tests:
AbletonMCP_AI\AbletonMCP_AI\MCP_Server\tests\test_piano_forward.pyAbletonMCP_AI\AbletonMCP_AI\MCP_Server\tests\test_selection_coherence.py
6. Casos de test obligatorios
- Un test donde
auto_vocal_layers_enabled=falseimplique que ningún rol vocal entra a selección. - Un test donde
audio fallbackno cree tracks vocales ni posiciones vocales. - Un test donde
coherence_metricstenga schema estable y no obligue a leer paths ambiguos. - Un test donde
musicmantenga mejor coherencia sin vocals automáticas. - Un test donde el hook MIDI siga materializándose en instrumental-only.
7. Formato de entrega
Archivo obligatorio:
docs/SPRINT_v0.1.18_VALIDATION_REPORT.md
Debe incluir:
- qué arreglaste realmente
- session id real
- path exacto desde donde leíste cada métrica
- métricas reales
- lista de tracks/layers auto-generados
- prueba explícita de que no hay vocals automáticas
- qué quedó abierto si no cerrás el sprint
No acepto:
- claims de “coherencia mejoró” sin números
- claims de “faltan métricas” si estaban en otro path
- sessions inexistentes
- vocales automáticas escondidas como FX o chops
8. Criterio de cierre
Solo podés cerrar v0.1.18 si:
- el sistema sigue siendo
library-first-hybrid - la coherencia sube de verdad
- el manifest es claro
- no hay vocals auto-generadas
- el sistema deja una base instrumental coherente y grabable por el usuario
Si no llegás, no lo declares terminado.