12 KiB
SPRINT v0.1.39 - NEXT GLM
Open-Project Editing, Anti-Symmetry, Continuity, Coherence
Owner: GLM via OpenCode
Reviewer: Codex
Fecha: 2026-04-03
Mode: Edit existing project, not generate a new song
Project target: C:\Users\ren\Desktop\song Project\song.als
0. Executive Summary
El MCP mejoró de verdad para inspección y edición básica de proyectos abiertos, pero el problema musical actual ya no es “falta de wrappers”.
El problema real del proyecto abierto es este:
- La canción sigue siendo demasiado simétrica.
- Los roles principales repiten exactamente los mismos clips/sample blocks en patrones demasiado previsibles.
- Hay demasiados huecos y silencios entre bloques.
- La armonía MIDI sigue sin sostener el tema en Arrangement.
- La coherencia existe a nivel de pack/familia, pero la libertad sonora es demasiado baja y termina sonando mecánica.
Este sprint no es para “agregar más tools porque sí”.
Es para conectar las métricas actuales con herramientas de reparación reales sobre el .als abierto.
1. Runtime Truth You Must Start From
No tomar SPRINT_v0.1.38_VALIDATION_REPORT.md como verdad suficiente.
La verdad runtime al momento de este handoff es:
- Proyecto abierto a
95 BPM 16tracks4return tracks6scenes- La pista armónica está hoy como
HARMONY_AMIN_PLUCK - Esa pista tiene
1session clip y0arrangement clips
El problema no es abstracto. Está visible también en el Arrangement:
AUDIO KICKrepite el mismo one-shot en bloques a32, 64, 96, 128, 160, 192, 224, 256AUDIO CLAPhace prácticamente lo mismoAUDIO HAThace prácticamente lo mismoAUDIO PERC MAINrepite el mismo loop de16beats a lo largo del temaAUDIO PERC ALTrepite el mismo loop en menos bloquesAUDIO TOP LOOPrepite el mismo top loop en secciones espejadasAUDIO SYNTH LOOPusa el mismo clip largo en pocos bloquesAUDIO SYNTH PEAKentra en islas pequeñas, dejando demasiado vacío entre apariciones
Eso explica exactamente el feedback del usuario:
- “simétrico”
- “todo lo mismo”
- “muchos silencios”
- “falta libertad”
2. Code Review Summary
2.1 What GLM got right
- Las tools de inspección de proyecto abierto ya son útiles:
get_session_infoget_tracksget_clipsget_devicesget_track_info
- Las tools básicas de edición Session ya funcionan razonablemente:
create_clipadd_notes_to_clipset_clip_nameset_clip_loopdelete_clipfire_clipstop_clip
- La auditoría de coherencia del proyecto abierto ya detecta huecos, sobreuso y pistas vacías.
2.2 What was still overclaimed or incomplete
create_arrangement_clipyduplicate_clip_to_arrangementseguían siendo frágiles porque dependen del fallbackSession -> Arrangement.- El reporte v0.1.38 validó edición de Session, no cierre fuerte de edición Arrangement.
HARMONY_PIANO_MIDIo su equivalente armónico seguía sin backbone real en Arrangement.
2.3 Bugs fixed by Codex in this review
No reabrir estos temas salvo que fallen con evidencia nueva:
-
create_arrangement_clip/duplicate_clip_to_arrangement- Se ampliaron timeouts del lado server y runtime para que el fallback no muera por grabación en tiempo real.
-
get_device_parameters- Se corrigió el acceso a
value_itemsen parámetros no cuantizados.
- Se corrigió el acceso a
-
validate_key_conflicts- Se corrigió el uso roto de helper legacy y ahora vuelve a leer el estado real vía conexión live.
-
validate_set_detailedydiagnose_bus_routing- Dejaron de depender de wrappers legacy inconsistentes.
-
humanize_set- Ya no se queda en
0clips por leer mal la forma deget_all_tracks; ahora re-inspecciona session clips.
- Ya no se queda en
-
COMMAND_TIMEOUTS- Ya cubren edición de Arrangement MIDI, no solo audio pattern generation.
3. Product Direction For This Sprint
3.1 Primary goal
Convertir el MCP de “inspección + edición mínima” a “edición guiada por coherencia del proyecto abierto”.
3.2 Musical goal
Reducir simetría y silencios sin romper coherencia.
Eso significa:
- más libertad de elección de sonidos
- menos repetición exacta del mismo clip
- más continuidad entre secciones
- más columna armónica MIDI en Arrangement
- pero sin convertir el tema en un collage caótico
3.3 Important clarification about “piano”
Cuando el usuario habla de “piano roll”, interpretarlo como:
- columna armónica MIDI
- backbone de notas en Arrangement
No interpretarlo como:
- obligar timbre de piano acústico
- volver el track piano-forward
La pista HARMONY_PIANO_MIDI o HARMONY_* debe funcionar como backbone MIDI armónico mezclado con la librería del usuario.
No hace falta perseguir un timbre de piano si musicalmente no corresponde.
4. Multi-Agent Requirement
Este sprint debe ejecutarse con dos focos de revisión paralelos:
-
Agent Runtime- tools MCP
- edición de Arrangement
- persistencia/re-inspection
- timeouts
- track/device/clip truth
-
Agent Musical- repetición
- simetría
- huecos
- backbone armónico
- libertad sonora con coherencia
No cerrar el sprint sin integrar findings de ambos.
5. Scope
P0.1 Arrangement-first project editing truth
Implementar o cerrar una API de edición/inspección realmente útil sobre proyecto abierto.
Entregables mínimos:
-
get_project_edit_state(...)- Debe devolver una vista consolidada del proyecto abierto:
- tracks
- clips
- devices
- longest gaps
- repeated clip overuse
- harmonic backbone status
- Debe devolver una vista consolidada del proyecto abierto:
-
get_arrangement_clip_info(...)- Debe permitir inspeccionar clips de Arrangement por
track_index + start_time - No puede depender solo de
clip_slots
- Debe permitir inspeccionar clips de Arrangement por
-
materialize_session_clip_to_arrangement(...)- Tool explícita para pasar un clip Session a Arrangement sin ambigüedad de propósito
- Debe re-inspeccionar después
P0.2 Harmonic backbone repair
Crear una tool de reparación de columna armónica para proyecto abierto:
repair_harmonic_gaps(...)
Debe:
- detectar huecos armónicos largos
- usar la pista armónica MIDI existente
- materializar clips/notas en Arrangement
- rellenar huecos sin invadir todo el tema
- respetar la identidad del proyecto abierto
No vale “crear un clip de 4 bars en Session y listo”.
P0.3 Anti-symmetry / anti-loop repair
Crear una tool real de reducción de simetría:
reduce_repeated_clip_overuse(...)ovary_repeated_audio_sections(...)
Debe actuar sobre el proyecto abierto ya cargado.
Debe:
- detectar clips/sample blocks excesivamente repetidos
- variar por secciones
- no romper coherencia de pack/familia
- no introducir samples arbitrarios por puro cambio
Regla musical:
- no repetir exactamente el mismo clip de audio en la misma función estructural durante todo el tema
- permitir anchors coherentes
- prohibir mirror placements triviales tipo
32/64/96/128/160/192/...si no hay transformación real
P0.4 Continuity repair
Crear una tool:
extend_track_continuity(...)
Debe:
- reducir silencios innecesarios
- extender continuidad de drum/musical support
- usar el material ya presente o variantes coherentes
- no llenar huecos con ruido o FX aleatorios
P1.1 Device inspection/editing completeness
Mejorar herramientas públicas de edición:
get_track_info(track_type=...)debe seguir siendo consistenteget_device_parameters(...)debe funcionar sobre Wavetable y otros devices comunesset_device_parameter(parameter_name=...)debe quedar validado con nombres reales del proyecto abierto
P1.2 Project coherence audit -> repair linkage
audit_project_coherence() y/o audit_current_project() ya no deben ser solo diagnóstico.
Agregar salida accionable:
- suggested repairs
- target tracks
- target gaps
- repeated source hotspots
- harmonic support gaps
6. Musical Rules
6.1 Freedom without chaos
Queremos más libertad sonora, pero con coherencia.
Eso significa:
- permitir más de un sample/loop por rol a lo largo de la canción
- mantener compatibilidad por pack/familia/bus
- variar por secciones
- no clonar exactamente el mismo bloque en cada sección
No significa:
- meter sonidos nuevos por meter
- romper el carácter del track
- cambiar de pack cada 8 bars
6.2 Anti-symmetry rules
El proyecto actual cae demasiado en:
- mismos inicios de clip
- mismas duraciones
- misma ausencia/presencia entre bloques equivalentes
Tu trabajo es romper esa simetría de manera musical.
Ejemplos válidos:
- variar
AUDIO TOP LOOPentre secciones A y B - hacer que
AUDIO SYNTH LOOPsostenga más y no aparezca como isla aislada - introducir continuidad armónica MIDI donde hoy hay hueco
- crear variación por transformación, no por borrado
Ejemplos inválidos:
- mutear media canción para “crear contraste”
- duplicar exactamente el mismo loop en nuevas posiciones
- reemplazar todo por samples random
6.3 Silence policy
Los silencios deben ser intencionales, no consecuencia de un planner pobre.
No aceptar:
- huecos largos sin función estructural clara
- tramos donde se cae drums + armonía a la vez sin justificación
Sí aceptar:
- breaks intencionales
- drops con respiración medida
- intros/outros relativamente más aireados
6.4 Harmonic MIDI policy
HARMONY_PIANO_MIDI o su equivalente debe:
- existir como backbone MIDI audible
- estar en Arrangement
- cubrir una parte significativa del tema
- ayudar a cerrar huecos
- convivir con la librería del usuario
No perseguir “piano” como timbre obligatorio.
Perseguir backbone MIDI armónico.
7. Acceptance Criteria
No marcar COMPLETED si falta cualquiera de estos puntos.
Runtime / MCP
get_project_edit_state(...)existe y funciona sobresong.alsget_arrangement_clip_info(...)o equivalente existe y prueba clips reales de Arrangementmaterialize_session_clip_to_arrangement(...)o equivalente queda validada con re-inspectionget_device_parameters(...)funciona sobre un device real del proyecto abiertoset_device_parameter(parameter_name=...)se valida con re-inspection
Musical / coherence
- La pista armónica MIDI deja de estar vacía en Arrangement
longest_harmonic_gapbaja de forma reallongest_drum_gapbaja de forma real- Baja
repeated_clip_overuse - Se rompe la simetría excesiva de placements
- Disminuyen los silencios inútiles
Truth
- Validación solo sobre proyecto abierto real
- Re-inspection después de cada edición relevante
- No basarse solo en manifest ni en reporte textual
8. Required Validation Steps
Step 1
Reiniciar OpenCode y Ableton antes de validar, porque hubo cambios en:
server.pyabletonmcp_init.pyabletonmcp_runtime.py
Step 2
Obtener baseline real:
get_session_info()get_tracks()get_track_info(track_index=<harmonic_track>)audit_current_project()audit_project_coherence()
Step 3
Aplicar edición real al proyecto abierto.
No generar una canción nueva.
Step 4
Re-inspeccionar:
- clips
- arrangement clips
- devices
- gaps
- repeated clips
Step 5
Comparar before/after con números reales.
9. Required Report
Guardar en:
docs/SPRINT_v0.1.39_VALIDATION_REPORT.md
Estructura obligatoria:
- Runtime truth before
- Tools added/changed
- Live edit actions performed
- Re-inspection after edits
- Before/after metrics
- Remaining blockers
- Reviewer conclusion
No usar COMPLETED si la pista armónica sigue sin Arrangement o si la canción sigue espejada y vacía.
10. Explicit Do-Nots
- No generar un tema nuevo
- No declarar cierre usando solo Session clips
- No usar “más libertad” como excusa para romper coherencia
- No rellenar huecos con FX basura
- No convertir “piano roll” en “piano timbre obligatorio”
- No cerrar el sprint si el proyecto sigue viéndose como bloques simétricos con silencios entre medio
11. Reviewer Note
El sistema va muy bien en una cosa importante:
- ya puede inspeccionar el proyecto real
- ya empieza a editarlo
- ya puede medir dónde está fallando
El siguiente salto de calidad no viene de más heurísticas de generación.
Viene de editar bien el proyecto abierto y usar la coherencia para decidir qué reparar, qué extender, qué variar y qué dejar quieto.