11 KiB
Sprint v0.1.20 - GLM Coherence Recovery, No Vocals, Anti-Loop
Owner: GLM via OpenCode
Reviewer: Codex
Fecha: 2026-04-01
Baseline real vigente: a6a4cc87e493
Estado de cierre v0.1.19: rechazado
1. Verdad operativa despues del review de Codex
El reporte [SPRINT_v0.1.19_VALIDATION_REPORT.md](C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\SPRINT_v0.1.19_VALIDATION_REPORT.md) no se acepta como verdad final del sistema.
Motivos concretos:
- declara bloqueo total por jobs
5b6a3df6e04aycff063342422, pero hoy existe un manifest mas nuevo persistido:a6a4cc87e493
- declara
instrumental-only compliant, pero la verdad persistida sigue mostrando capas con nombre vocal en manifests recientes - declara
anti-loop metrics implemented, pero el manifest seguia ciego en dos puntos:- no siempre persistia
positions - no siempre persistia
role
- no siempre persistia
Codex ya corrigio en [server.py](C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\server.py):
- sanitizacion defensiva de capas vocales manual-only
- inferencia consistente de
roledesde nombres de layer - persistencia de
positionsenaudio_layers - repeticion calculada sobre layers ya sanitizados
- purge defensivo tambien en materializacion y fallback layer records
Codex tambien endurecio [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) con tests nuevos para:
manual-only vocal layersrepetition_metrics- schema estable de coherencia
Validado por Codex en este turno:
py_compilepasatest_piano_forward.pypasatest_selection_coherence.pypasa
No hubo generacion nueva en este turno. La verdad runtime vigente sigue viniendo de manifests ya existentes y del feedback auditivo del usuario.
2. Feedback de producto que manda este sprint
El usuario ya dio el veredicto auditivo y hay que tomarlo como dato de producto, no como opinion accesoria:
- la cancion sigue demasiado loopeada
- sigue siendo poco creativa
- sigue sintiendose demasiado parecida a otras generaciones
- sigue metiendo vocals, aunque la politica del producto es manual-only
Eso significa que v0.1.19 no resolvio lo importante.
No quiero otro sprint de “code deployed, validation blocked”. Quiero una mejora real en el resultado musical.
3. Reglas no negociables
-
Trabajar solo en el arbol canonico:
C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts
-
No tocar wrappers MCP ni config salvo bug concreto y demostrado.
-
Politica de vocals:
vocal_loop,vocal_build,vocal_peak,vocal_shotsiguen siendomanual-only- no se seleccionan
- no se materializan
- no se persisten en
audio_layers - no se justifican como “fx”
- no se usan para levantar color o energia
-
No mejorar coherencia matando creatividad.
-
No mejorar creatividad abriendo caos de packs.
-
No cerrar el sprint si cualquiera de estas falla:
coherence_score < 6.5generation_mode != library-first-hybridmandatory_midi_hook.materialized != truelayer_selections.summary.total_layers <= 0piano_presence.piano_layer_count < 1repetition_metrics.verdict == repetitive- aparece cualquier layer o track vocal auto-generado
-
No uses session ids inventados.
- todo
session_idcitado debe existir en:C:\Users\ren\.abletonmcp_ai\generation_manifests.json
- todo
4. Problemas reales abiertos
P0. Reportes que no reflejan la verdad actual
Problema:
- GLM no puede volver a basarse en reports que dicen “bloqueado” mientras ya existe una nueva sesion persistida
- eso genera debugging sobre fantasmas
Que hacer:
- usar como baseline real el ultimo
session_idpersistido - si hay una generacion nueva en Live pero no en manifest, no la cuentes como cierre
- en el report final incluir extracto real del manifest
P1. Fuga vocal todavia abierta a nivel producto
Problema:
- aunque parte del pipeline ya filtra vocals, el usuario sigue viendo resultado con vocals
- eso indica que el bloqueo no estaba cerrado end-to-end
Estado despues de Codex:
server.pyya sanea layers vocales en:- materializacion
- manifest
- fallback layer records
_build_audio_pattern_positions()ya no agrega posiciones vocales de forma activa
Lo que GLM tiene que hacer:
- revisar si queda fuga vocal en:
reference_listener.pysong_generator.py- cualquier path de report o manifest secundario
- asegurar que ningun track vocal automatico aparezca ni por nombre ni por rol
- revisar que
clear/resetde sesion no deje tracks vocales residuales que luego parezcan parte de la generacion nueva
P2. Anti-loop de verdad, no solo metrica decorativa
Problema:
- la cancion sigue demasiado plana y repetitiva
repetition_metricspor si solo no arregla nada si el pipeline sigue generando el mismo material
Lo que GLM tiene que hacer:
- revisar la cadena completa:
song_generator.pyPhrasePlanMusicalTheme- pattern banks
- consolidacion en
server.py
- verificar que intro/build/drop/break no queden con la misma firma musical real
- medir reuse real de:
- motivo armonico
- source file musical
- firma de seccion
- no conformarse con logs
- demostrarlo en manifest
P3. Creatividad recuperada sin perder identidad
Problema:
- hubo un retroceso: antes habia mas sensacion de tema, ahora parece “la misma pista” con cambios menores
Hipotesis principal:
- demasiada consolidacion
- demasiado cierre del bus
music - demasiado reuse de un unico material musical
Objetivo:
- una base coherente
- pero con contraste real entre secciones
- sin volver a mezclar packs arbitrarios
P4. Hibrido instrumental todavia flojo
Problema:
- el sistema sigue olvidandose de:
- armonias MIDI
- presencia real de piano/keys
- hook materializado
No quiero:
- solo audio loops
- solo pluck suelto
- piano solo en metadata
Quiero:
- libreria del usuario
- soporte armonico MIDI real
- piano/keys/rhodes cuando sumen
- hook materializado y verificable
5. Trabajo obligatorio
A. No romper los fixes de Codex
No reabras ni simplifiques:
- sanitizacion de vocal layers
- inferencia de
role - persistencia de
positions - schema estable de
coherence_metrics
Si vas a tocar eso, tiene que ser para mejorarlo con evidencia.
B. Auditar creatividad en el codigo real
Tenes que leer y verificar:
AbletonMCP_AI\AbletonMCP_AI\MCP_Server\song_generator.pyAbletonMCP_AI\AbletonMCP_AI\MCP_Server\server.pyAbletonMCP_AI\AbletonMCP_AI\MCP_Server\reference_listener.py
Busco especialmente:
- donde se repite exactamente el mismo motivo
- donde se consolidan capas que deberian seguir separadas
- donde una capa musical de soporte queda igual en todas las secciones
- donde el sistema vuelve a elegir el mismo material aunque existan variantes validas
C. Endurecer la verdad del manifest
El manifest final de una generacion valida debe dejar clarisimo:
- que capas armonicas hubo realmente
- si hubo hook MIDI materializado
- si hubo piano real
- cuanta repeticion hubo
- cuanta variacion real hubo
- que roles se omitieron por politica
manual-only
Si el manifest no puede mostrar eso, el sprint no esta cerrado.
D. Mantener instrumental-only estricto
GLM no puede “resolver creatividad” con voces.
Si necesitas subir energia o memoria:
- usa armonia
- usa contraste de seccion
- usa textura instrumental
- usa mejor variacion ritmica
No vocals.
6. Casos de test obligatorios
Como minimo, tenes que dejar o endurecer tests para:
- capas vocales manual-only purgadas de
audio_layers repetition_metricsdetectando secciones repetitivas realesgeneration_modehibrido no degradadocoherence_metricsestable- ausencia de vocals auto-generadas en fallback
- presencia real de variacion entre secciones armonicas
No borres los tests que Codex agrego. Si cambias el comportamiento, actualizalos con criterio senior y explicacion en el report.
7. Validacion final obligatoria
Al final del sprint tenes que hacer una validacion real con una generacion nueva.
Parametros:
genre = reggaetonstyle = perreo duro vieja escuela tipo safaera- referencia:
libreria\reggaeton\ejemplo.mp3
Tenes que demostrar con session_id real persistido:
coherence_score >= 6.5generation_mode = library-first-hybridmandatory_midi_hook.materialized = truepiano_presence.piano_layer_count >= 1layer_selections.summary.total_layers > 0repetition_metrics.verdict != repetitiverepetition_metrics.harmonic_loop_reuse_ratio < 0.75repetition_metrics.music_source_reuse_ratio < 0.80variant_summary.total_layers_with_variants >= 3variant_summary.total_variants >= 6auto_vocal_layers_enabled = false- cero layers vocales auto-generados
Si no llegas:
- no cierres el sprint
- no lo maquilles como “blocked”
- explicita exactamente si fallo por:
- creatividad
- coherencia
- hook
- piano
- vocals
- materializacion
8. Formato obligatorio del validation report
El md final de GLM debe tener estas secciones, en este orden:
Executive SummaryClaims Verified Against CodeFresh Session ValidationManifest TruthCoherence MetricsRepetition MetricsHybrid Truth (MIDI + Piano + Library)Instrumental-Only ComplianceOpen IssuesVerdict
Y debe incluir:
session_idreal- extracto real de
generation_manifests.json - archivos tocados
- tests corridos
- thresholds con PASS/FAIL
No acepto:
- “validation blocked” sin probar el codigo actual
- “instrumental-only compliant” si aparecen vocals en tracks o manifest
- “anti-loop implemented” si la cancion sigue igual de plana
- “sin regresiones” sin evidencia
9. Archivos probables a tocar
AbletonMCP_AI\AbletonMCP_AI\MCP_Server\song_generator.pyAbletonMCP_AI\AbletonMCP_AI\MCP_Server\server.pyAbletonMCP_AI\AbletonMCP_AI\MCP_Server\reference_listener.py- tests:
AbletonMCP_AI\AbletonMCP_AI\MCP_Server\tests\test_piano_forward.pyAbletonMCP_AI\AbletonMCP_AI\MCP_Server\tests\test_selection_coherence.py
Toca menos archivos si podes.
Pero no esquives song_generator.py si ahi esta el origen real del aplanado musical.
10. Criterio de cierre
Este sprint solo cierra si GLM demuestra simultaneamente:
- mas coherencia
- menos loop plano
- mas creatividad real por seccion
- hibrido instrumental verdadero
- cero vocals automaticas
- y sin romper MCP ni runtime
Si mejora solo una parte, el sprint sigue abierto.