Sync: Complete project state with all MEGA SPRINT V1-V3 features and Codex stubs
This commit is contained in:
200
docs/SPRINT_v0.1.6_NEXT.md
Normal file
200
docs/SPRINT_v0.1.6_NEXT.md
Normal file
@@ -0,0 +1,200 @@
|
||||
# Sprint v0.1.6 - Coherencia Musical Real
|
||||
|
||||
Fecha: 2026-03-30
|
||||
|
||||
Este sprint reemplaza a `docs/SPRINT_v0.1.5_NEXT.md` como sprint activo.
|
||||
|
||||
## Problema principal
|
||||
|
||||
Las ultimas generaciones ya crean pistas y material en Ableton, pero el resultado suena desordenado:
|
||||
|
||||
- demasiadas capas
|
||||
- demasiados sonidos sin relacion clara entre si
|
||||
- poco hook
|
||||
- poca continuidad melodica entre secciones
|
||||
- demasiada sensacion de "samples buenos pero tirados al azar"
|
||||
|
||||
El objetivo ya no es solo que genere.
|
||||
|
||||
El objetivo ahora es que genere algo musicalmente coherente.
|
||||
|
||||
## Estado de partida real
|
||||
|
||||
- `reference_listener.py` elige muchos roles globales antes del loop de secciones
|
||||
- esa seleccion global no esta obligada a respetar una narrativa musical unica
|
||||
- el sistema puede abrir demasiados tracks y demasiadas capas opcionales
|
||||
- `song_generator.py` tiene herramientas para melodia, acordes, variantes y bancos de patrones
|
||||
- pero falta una capa que obligue a que bass, chords, lead y loops respondan al mismo tema
|
||||
|
||||
## Objetivo del sprint
|
||||
|
||||
Pasar de "genera material" a "genera un track con identidad sonora y direccion musical clara".
|
||||
|
||||
## Tarea 1 - Definir un contrato de coherencia
|
||||
|
||||
Problema:
|
||||
|
||||
- hoy no existe una definicion operativa de "coherente"
|
||||
- sin eso, Kimi puede cambiar mil cosas y seguir generando resultados flojos
|
||||
|
||||
Haz esto:
|
||||
|
||||
1. definir metricas simples de coherencia para una generacion
|
||||
2. guardarlas en un reporte legible
|
||||
3. usarlas como criterio de aceptacion del sprint
|
||||
|
||||
Metricas minimas:
|
||||
|
||||
- track_budget_total
|
||||
- core_vs_optional_layers
|
||||
- same_pack_ratio
|
||||
- tonal_consistency
|
||||
- motif_reuse
|
||||
- section_theme_consistency
|
||||
- redundant_layer_count
|
||||
|
||||
Archivos probables:
|
||||
|
||||
- `AbletonMCP_AI/AbletonMCP_AI/MCP_Server/server.py`
|
||||
- `AbletonMCP_AI/AbletonMCP_AI/MCP_Server/song_generator.py`
|
||||
- `docs/KNOWN_ISSUES.md`
|
||||
|
||||
Criterio de salida:
|
||||
|
||||
- existe una definicion tecnica de coherencia
|
||||
- el proximo agente puede decir si una generacion mejora o empeora
|
||||
|
||||
## Tarea 2 - Poner presupuesto de tracks y capas
|
||||
|
||||
Problema:
|
||||
|
||||
- hoy el sistema puede abrir demasiadas capas y eso destruye claridad
|
||||
- en reggaeton no hace falta materializar decenas de tracks para sonar profesional
|
||||
|
||||
Haz esto:
|
||||
|
||||
1. definir un presupuesto de tracks para modo reggaeton
|
||||
2. separar capas `core` de capas `optional`
|
||||
3. impedir que las capas opcionales exploten por defecto
|
||||
|
||||
Presupuesto sugerido inicial:
|
||||
|
||||
- drums core: kick, clap/snare, hat, perc main
|
||||
- bass core: 1
|
||||
- musical core: chords/pad + lead/pluck
|
||||
- vocal/fx core: maximo 1-2 utiles
|
||||
- optional layers: solo si agregan contraste real
|
||||
|
||||
Archivos probables:
|
||||
|
||||
- `AbletonMCP_AI/AbletonMCP_AI/MCP_Server/server.py`
|
||||
- `AbletonMCP_AI/AbletonMCP_AI/MCP_Server/reference_listener.py`
|
||||
|
||||
Criterio de salida:
|
||||
|
||||
- una generacion normal no dispara una lluvia de tracks innecesarios
|
||||
- el arreglo queda mas legible
|
||||
|
||||
## Tarea 3 - Crear un tema compartido para bass, chords y lead
|
||||
|
||||
Problema:
|
||||
|
||||
- hoy bass, chords y lead pueden salir correctos por separado
|
||||
- pero no necesariamente parecen partes de la misma cancion
|
||||
|
||||
Haz esto:
|
||||
|
||||
1. elegir o generar un motivo/hook base por track
|
||||
2. derivar bajo, acordes y lead desde ese mismo centro musical
|
||||
3. hacer que las secciones muten ese mismo tema en vez de generar ideas nuevas sin relacion
|
||||
|
||||
Ejemplos de mutacion valida:
|
||||
|
||||
- intro: motif parcial
|
||||
- build: motif tensionado
|
||||
- drop: hook completo
|
||||
- break: respuesta o version reducida
|
||||
- outro: motif degradado
|
||||
|
||||
Archivos probables:
|
||||
|
||||
- `AbletonMCP_AI/AbletonMCP_AI/MCP_Server/song_generator.py`
|
||||
|
||||
Criterio de salida:
|
||||
|
||||
- hay un tema reconocible entre secciones
|
||||
- no parecen loops independientes pegados
|
||||
|
||||
## Tarea 4 - Hacer que el palette global mande de verdad
|
||||
|
||||
Problema:
|
||||
|
||||
- hay `pack_brain`, same-pack y jueces
|
||||
- pero todavia falta obligar a que el resultado final viva dentro de una misma familia sonora
|
||||
|
||||
Haz esto:
|
||||
|
||||
1. endurecer la prioridad del pack principal
|
||||
2. evitar que `music`, `bass`, `vocal` y `fx` salten de familias sin necesidad
|
||||
3. si una capa no tiene match coherente, omitirla antes que meter relleno random
|
||||
|
||||
Archivos probables:
|
||||
|
||||
- `AbletonMCP_AI/AbletonMCP_AI/MCP_Server/server.py`
|
||||
- `AbletonMCP_AI/AbletonMCP_AI/MCP_Server/reference_listener.py`
|
||||
- `AbletonMCP_AI/AbletonMCP_AI/MCP_Server/sample_selector.py`
|
||||
|
||||
Criterio de salida:
|
||||
|
||||
- menos variedad basura
|
||||
- mas identidad de pack
|
||||
|
||||
## Tarea 5 - Validar con una generacion real y documentar resultado audible
|
||||
|
||||
Problema:
|
||||
|
||||
- la coherencia no se valida solo con compilacion o logs
|
||||
|
||||
Haz esto:
|
||||
|
||||
1. generar un track real de reggaeton
|
||||
2. escuchar y documentar:
|
||||
- que suena coherente
|
||||
- que sigue sonando aleatorio
|
||||
- que sobra
|
||||
- que falta
|
||||
3. actualizar el handoff activo con juicio auditivo simple, no solo tecnico
|
||||
|
||||
Comando sugerido:
|
||||
|
||||
```powershell
|
||||
python temp\smoke_test_async.py --use-track --genre reggaeton --bpm 95
|
||||
```
|
||||
|
||||
Criterio de salida:
|
||||
|
||||
- existe al menos una validacion auditiva simple del resultado
|
||||
- el siguiente sprint no vuelve a trabajar ciego
|
||||
|
||||
## Reglas duras
|
||||
|
||||
- no metas mas capas solo porque "puedes"
|
||||
- no mezcles loops y hooks sin una relacion tonal o tematica clara
|
||||
- si una capa no mejora el tema, quitala
|
||||
- si una capa no viene del pack correcto, penalizala fuerte o descartala
|
||||
- no declares "coherente" sin escuchar el resultado o sin evidencia musical clara
|
||||
|
||||
## Archivos que Kimi debe mirar primero en este sprint
|
||||
|
||||
- `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\reference_listener.py`
|
||||
- `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\song_generator.py`
|
||||
- `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\sample_selector.py`
|
||||
- `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\server.py`
|
||||
|
||||
## Nota importante
|
||||
|
||||
La sugerencia vieja de "pasar `current_kind/current_energy` en `reference_listener.py:3862`" no alcanza y no debe tomarse como fix principal.
|
||||
|
||||
Esa seleccion ocurre antes del loop de secciones.
|
||||
|
||||
El problema real es de arquitectura de seleccion y de narrativa musical, no de un parametro faltante aislado.
|
||||
Reference in New Issue
Block a user