256 lines
7.2 KiB
Markdown
256 lines
7.2 KiB
Markdown
# SPRINT v0.1.28 - NEXT
|
|
## Hybrid Harmonic Piano, Better Coherence, Less Choppy Reggaeton
|
|
|
|
**Owner:** Next worker
|
|
**Reviewer:** Codex
|
|
**Fecha:** 2026-04-02
|
|
**Baseline report:** `c3aa8a7e8fa3`
|
|
**Baseline real vigente:** `c3aa8a7e8fa3`
|
|
|
|
---
|
|
|
|
## 1. Runtime Truth
|
|
|
|
No cerrar este sprint leyendo solo el md anterior.
|
|
|
|
La verdad persistida actual en `C:\Users\ren\.abletonmcp_ai\generation_manifests.json` es:
|
|
|
|
- `session_id = c3aa8a7e8fa3`
|
|
- `generation_mode = library-first-hybrid`
|
|
- `mandatory_midi_hook.materialized = true`
|
|
- `mandatory_midi_hook.track_name = HARMONY_PIANO_MIDI`
|
|
- `coherence_score = 4.8`
|
|
- `coherence_verdict = WEAK`
|
|
- `family_adherence_rate = 0.5`
|
|
- `repetition_metrics.identical_section_signatures = 2`
|
|
- `repetition_metrics.music_source_reuse_ratio = 1.0`
|
|
|
|
Interpretacion correcta:
|
|
|
|
- el sistema SI esta usando el piano armonico MIDI en modo hibrido
|
|
- el problema principal ya no es “falta piano”
|
|
- el problema principal es coherencia, continuidad y lectura correcta del hibrido
|
|
|
|
---
|
|
|
|
## 2. Code Review Del Sprint v0.1.27
|
|
|
|
### 2.1 Que hizo bien Kimi
|
|
|
|
1. La estructura dejo de sonar tan clonada.
|
|
La sesion nueva ya no cae tan literalmente en la misma silueta de antes.
|
|
|
|
2. La continuidad de `synth_loop` y `top_loop` mejoro respecto a versiones mas viejas.
|
|
|
|
3. El report no mintio con el estado final: lo marco como parcial.
|
|
|
|
### 2.2 Que leyo mal o dejo abierto
|
|
|
|
1. Dijo `coherence_score = None`.
|
|
Eso es falso para `c3aa8a7e8fa3`. El manifest real ya tiene `4.8`.
|
|
|
|
2. Trato la ausencia de `AUDIO PIANO MELODY` como bug principal.
|
|
Eso no es la lectura correcta del producto.
|
|
|
|
El usuario aclaro que cuando dice “piano rolls” se refiere a:
|
|
- MIDI
|
|
- HARMONY_PIANO_MIDI
|
|
- soporte armonico mezclado con la libreria
|
|
|
|
Entonces:
|
|
- `AUDIO_PIANO_MELODY` puede ser un extra util
|
|
- pero NO es el criterio central de exito
|
|
- el criterio central es `MIDI harmony piano + audio library`
|
|
|
|
3. El report siguio leyendo `music_source_reuse_ratio = 1.0` como verdad cerrada.
|
|
Ojo:
|
|
- la sesion persistida sigue mostrando ese numero
|
|
- pero Codex ya corrigio el codigo para medir por sample-level source key y no solo por pack
|
|
- ese numero necesita revalidacion con una generacion nueva
|
|
|
|
4. El report mostro `pack: unknown` para capas de audio.
|
|
Eso venia de un problema de persistencia del manifest, no necesariamente de seleccion real.
|
|
Codex ya dejo preservacion de `pack`, `family`, `source` y `volume` en `audio_layers`.
|
|
|
|
5. El report se fue demasiado a la idea de “faltan samples melodicos de piano en la libreria”.
|
|
Eso puede ser cierto como mejora futura, pero hoy no es el cuello de botella correcto.
|
|
|
|
---
|
|
|
|
## 3. Aclaracion Del Usuario Que Ahora Es Regla
|
|
|
|
Cuando el usuario diga:
|
|
|
|
- `piano roll`
|
|
- `piano rolls`
|
|
- `piano armonico`
|
|
|
|
En este sistema debe interpretarse como:
|
|
|
|
- `HARMONY_PIANO_MIDI`
|
|
- hook MIDI/piano armonico materializado
|
|
- contenido armonico MIDI mezclado con capas de audio de la libreria
|
|
|
|
No perseguir por defecto:
|
|
|
|
- solo `AUDIO_PIANO_MELODY`
|
|
- solo loops de piano audio
|
|
|
|
Eso puede sumar.
|
|
No es el requerimiento principal.
|
|
|
|
---
|
|
|
|
## 4. Objetivo Real de v0.1.28
|
|
|
|
Recuperar coherencia y continuidad sin perder el modo hibrido correcto.
|
|
|
|
La salida buscada es:
|
|
|
|
- reggaeton con estructura clara
|
|
- menos cortes y menos huecos innecesarios
|
|
- `HARMONY_PIANO_MIDI` realmente integrado con la libreria
|
|
- mejor coherencia del material armonico
|
|
- drums mas selectivos segun contexto
|
|
|
|
La salida NO buscada es:
|
|
|
|
- perseguir audio piano melodico como si fuera el unico piano valido
|
|
- banear samples por nombre
|
|
- volver a vaciar Drop B para “diferenciarlo”
|
|
- cerrar con metrics stale o mal interpretadas
|
|
|
|
---
|
|
|
|
## 5. Trabajo Obligatorio
|
|
|
|
### P0. Hibrido armonico correcto
|
|
|
|
Revisar el path completo:
|
|
|
|
- `reference_listener.py`
|
|
- `server.py`
|
|
- manifest persistido
|
|
|
|
Y garantizar que el sistema represente y use correctamente:
|
|
|
|
- audio library as primary identity
|
|
- `HARMONY_PIANO_MIDI` como soporte armonico MIDI real
|
|
|
|
Trabajo concreto:
|
|
|
|
- hacer que las metricas/manifest reflejen explicitamente el blend `library + midi piano`
|
|
- no dejar que el reporte futuro lo lea como “solo audio piano”
|
|
- verificar si la coherencia estable actual esta subcontando el aporte del hook MIDI
|
|
|
|
### P0. Coherence accounting real
|
|
|
|
Hoy el sistema puede estar sonando mas hibrido de lo que las metricas reconocen.
|
|
|
|
Revisar:
|
|
|
|
- `coherence_score`
|
|
- `family_adherence_rate`
|
|
- `layer_selections.summary`
|
|
- cualquier metrica que ignore capas inyectadas o el hook MIDI materializado
|
|
|
|
Objetivo:
|
|
|
|
- no inflar metricas artificialmente
|
|
- pero tampoco subreportar coherencia cuando el hook MIDI si existe y si esta mezclado con la libreria
|
|
|
|
### P0. Menos cortes y huecos
|
|
|
|
La estructura mejoro, pero sigue habiendo sensacion de tema cortado.
|
|
|
|
Revisar:
|
|
|
|
- placements de `AUDIO SYNTH LOOP`
|
|
- placements de `AUDIO BASS LOOP`
|
|
- placements de `AUDIO TOP LOOP`
|
|
- relacion entre `build/drop/break`
|
|
|
|
Meta:
|
|
|
|
- variacion por seccion sin vaciar el groove
|
|
- continuidad musical mejor que `c3aa8a7e8fa3`
|
|
|
|
### P1. Selectividad contextual de snare/clap
|
|
|
|
No hard-banear `SS_RNBL_Me_Gustas_One_Shot_Snare.wav`.
|
|
|
|
Si entra, tiene que entrar porque el contexto lo pide.
|
|
|
|
Trabajo esperado:
|
|
|
|
- revisar ranking real de snare/clap con evidencia
|
|
- demostrar que un snare muy agresivo pierde cuando la seccion es mas suave o menos brillante
|
|
- si sigue ganando siempre, seguir refinando scoring contextual
|
|
|
|
No acepto:
|
|
|
|
- blacklist por filename
|
|
- if especial para un sample puntual
|
|
|
|
### P1. Revalidar music_source_reuse_ratio con codigo nuevo
|
|
|
|
El codigo ya fue corregido para medir source keys a nivel sample real.
|
|
|
|
Ahora hace falta demostrarlo con una sesion nueva.
|
|
|
|
Si sigue dando `1.0`, tiene que ser por repeticion real, no por una metrica vieja.
|
|
|
|
---
|
|
|
|
## 6. Exit Criteria
|
|
|
|
No cerrar el sprint si no hay una sesion nueva persistida que muestre:
|
|
|
|
- `generation_mode = library-first-hybrid`
|
|
- `mandatory_midi_hook.materialized = true`
|
|
- `mandatory_midi_hook.track_name = HARMONY_PIANO_MIDI`
|
|
- evidencia clara de blend `audio library + midi harmony piano`
|
|
- `coherence_score > 4.8`
|
|
- `family_adherence_rate > 0.5` o bien metrica corregida con explicacion tecnica clara
|
|
- `repetition_metrics.verdict != repetitive`
|
|
- `music_source_reuse_ratio` revalidado con el codigo nuevo
|
|
- `vocal_layers_auto = 0`
|
|
|
|
Criterio auditivo:
|
|
|
|
- menos sensacion de tema cortado que `c3aa8a7e8fa3`
|
|
- el piano armonico MIDI tiene que sentirse integrado a la libreria
|
|
- la cancion no debe sonar como “audio por un lado, MIDI por otro”
|
|
|
|
`AUDIO_PIANO_MELODY`:
|
|
|
|
- opcional
|
|
- suma si aparece
|
|
- no bloquea cierre si el hibrido `library + HARMONY_PIANO_MIDI` esta bien logrado
|
|
|
|
---
|
|
|
|
## 7. Validation Report Obligatorio
|
|
|
|
El proximo worker tiene que dejar:
|
|
|
|
`docs/SPRINT_v0.1.28_VALIDATION_REPORT.md`
|
|
|
|
Y debe incluir:
|
|
|
|
1. `session_id` real nuevo
|
|
2. comparativa contra `c3aa8a7e8fa3`
|
|
3. `mandatory_midi_hook` completo
|
|
4. `piano_presence` completo
|
|
5. si el sistema reporta blend `library + midi piano`
|
|
6. `audio_layers` relevantes con:
|
|
- `AUDIO SYNTH LOOP`
|
|
- `AUDIO BASS LOOP`
|
|
- `AUDIO TOP LOOP`
|
|
- `AUDIO KEYS SUPPORT`
|
|
- `HARMONY_PIANO_MIDI` en seccion de hook/manifest
|
|
7. ranking o evidencia de snare/clap contextual
|
|
8. `repetition_metrics.source_distribution`
|
|
|
|
Si el md vuelve a decir `coherence_score = None` cuando el manifest ya lo tiene, el sprint no cuenta.
|