Files
ableton-mcp-ai/docs/SPRINT_v0.1.20_NEXT_GLM.md

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:

  1. declara bloqueo total por jobs 5b6a3df6e04a y cff063342422, pero hoy existe un manifest mas nuevo persistido:
    • a6a4cc87e493
  2. declara instrumental-only compliant, pero la verdad persistida sigue mostrando capas con nombre vocal en manifests recientes
  3. declara anti-loop metrics implemented, pero el manifest seguia ciego en dos puntos:
    • no siempre persistia positions
    • no siempre persistia role

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 role desde nombres de layer
  • persistencia de positions en audio_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 layers
  • repetition_metrics
  • schema estable de coherencia

Validado por Codex en este turno:

  • py_compile pasa
  • test_piano_forward.py pasa
  • test_selection_coherence.py pasa

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

  1. Trabajar solo en el arbol canonico:

    • C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts
  2. No tocar wrappers MCP ni config salvo bug concreto y demostrado.

  3. Politica de vocals:

    • vocal_loop, vocal_build, vocal_peak, vocal_shot siguen siendo manual-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
  4. No mejorar coherencia matando creatividad.

  5. No mejorar creatividad abriendo caos de packs.

  6. No cerrar el sprint si cualquiera de estas falla:

    • coherence_score < 6.5
    • generation_mode != library-first-hybrid
    • mandatory_midi_hook.materialized != true
    • layer_selections.summary.total_layers <= 0
    • piano_presence.piano_layer_count < 1
    • repetition_metrics.verdict == repetitive
    • aparece cualquier layer o track vocal auto-generado
  7. No uses session ids inventados.

    • todo session_id citado debe existir en:
      • C:\Users\ren\.abletonmcp_ai\generation_manifests.json

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_id persistido
  • 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.py ya 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:

  1. revisar si queda fuga vocal en:
    • reference_listener.py
    • song_generator.py
    • cualquier path de report o manifest secundario
  2. asegurar que ningun track vocal automatico aparezca ni por nombre ni por rol
  3. revisar que clear/reset de 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_metrics por si solo no arregla nada si el pipeline sigue generando el mismo material

Lo que GLM tiene que hacer:

  1. revisar la cadena completa:
    • song_generator.py
    • PhrasePlan
    • MusicalTheme
    • pattern banks
    • consolidacion en server.py
  2. verificar que intro/build/drop/break no queden con la misma firma musical real
  3. medir reuse real de:
    • motivo armonico
    • source file musical
    • firma de seccion
  4. 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.py
  • AbletonMCP_AI\AbletonMCP_AI\MCP_Server\server.py
  • AbletonMCP_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:

  1. capas vocales manual-only purgadas de audio_layers
  2. repetition_metrics detectando secciones repetitivas reales
  3. generation_mode hibrido no degradado
  4. coherence_metrics estable
  5. ausencia de vocals auto-generadas en fallback
  6. 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 = reggaeton
  • style = perreo duro vieja escuela tipo safaera
  • referencia:
    • libreria\reggaeton\ejemplo.mp3

Tenes que demostrar con session_id real persistido:

  • coherence_score >= 6.5
  • generation_mode = library-first-hybrid
  • mandatory_midi_hook.materialized = true
  • piano_presence.piano_layer_count >= 1
  • layer_selections.summary.total_layers > 0
  • repetition_metrics.verdict != repetitive
  • repetition_metrics.harmonic_loop_reuse_ratio < 0.75
  • repetition_metrics.music_source_reuse_ratio < 0.80
  • variant_summary.total_layers_with_variants >= 3
  • variant_summary.total_variants >= 6
  • auto_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:

  1. Executive Summary
  2. Claims Verified Against Code
  3. Fresh Session Validation
  4. Manifest Truth
  5. Coherence Metrics
  6. Repetition Metrics
  7. Hybrid Truth (MIDI + Piano + Library)
  8. Instrumental-Only Compliance
  9. Open Issues
  10. Verdict

Y debe incluir:

  • session_id real
  • 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.py
  • AbletonMCP_AI\AbletonMCP_AI\MCP_Server\server.py
  • AbletonMCP_AI\AbletonMCP_AI\MCP_Server\reference_listener.py
  • tests:
    • AbletonMCP_AI\AbletonMCP_AI\MCP_Server\tests\test_piano_forward.py
    • AbletonMCP_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.