# Sprint v0.1.7 Next Fecha: `2026-03-30` Objetivo del sprint: dejar de generar “sonidos sueltos” y empezar a generar un track que conserve identidad melodica, armonica y timbrica durante toda la cancion. ## Contexto obligatorio Antes de tocar codigo, leer: 1. `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\REFERENCE_TRACK_EJEMPLO_ANALYSIS.md` 2. `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\ANTHROPIC_COMPAT_PROVIDER_CHECK_2026-03-30.md` 3. `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\KIMI_K2_ACTIVE_HANDOFF.md` ## Estado de partida verificado por Codex - `pack_brain` ya puntua palettes y ahora debe castigar conflictos armonicos `bass/music` - `server.py` ya persiste `musical_theme` en manifest - `coherence_analyzer.py` ya no debe contar el budget por suma bruta de tracks duplicados - `ejemplo.mp3` muestra un contrato real: - repeticion alta - centro tonal estable - low-end dominante - pocas familias sonoras - cambios por energia y brillo, no por randomizacion de layers ## Problema principal a resolver El sistema todavia puede generar un track con: - demasiadas capas opcionales - bajo y material musical compatibles “en papel” pero flojos como cancion - secciones que cambian demasiado de mundo sonoro - hooks que no se perciben como una misma idea ## Trabajo del sprint ### 1. Theme persistence real - Verificar que `musical_theme` no solo exista en `config`, sino que gobierne de verdad: - `bass` - `chords/pad` - `lead/pluck` - Si algun rol melodico importante se genera por fuera del tema, corregirlo. - Dejar evidencia en manifest y logs. ### 2. Hook-family scoring - Crear un score adicional que premie: - reuso de contorno melodico - reuso de ritmo del motivo - misma familia tonal entre secciones - Penalizar si `lead/pluck/chords` parecen venir de ideas distintas. ### 3. Section coherence hardening - Cada seccion debe ser una variacion del mismo track, no otro track. - Para `intro/build/drop/break/outro`, limitar cambios a: - densidad - brillo - cantidad de capas activas - version del mismo motivo - No permitir que `break` u `outro` cambien a una palette incompatible. ### 4. Audio-layer sanity - Auditar por que se materializan demasiadas capas similares. - Detectar y evitar: - duplicados MIDI/audio de la misma funcion sin necesidad - `perc_main` y `perc_alt` con el mismo archivo - varios layers vocales/fx que no agregan contraste real ### 5. Reference-fit report - Crear un reporte de comparacion contra `ejemplo.mp3` con al menos: - BPM - key - low/mid/high ratio - RMS envelope general - onset density - motif reuse / recurrence proxy - budget por slots logicos - Ese reporte debe decir `closer` o `farther` respecto al intento anterior. ## Aceptacion minima No cerrar el sprint sin esto: 1. una generacion nueva en Live 2. manifest guardado con `musical_theme` 3. coherence report sin conteo bruto inflado 4. sin conflicto armonico claro entre `bass` y `music` 5. una nota honesta de escucha tecnica sobre si el resultado ya se parece mas a `ejemplo.mp3` ## No hacer en este sprint - no abrir otra integracion nueva de modelos si el problema sigue siendo musical - no agregar mas capas “para llenar” - no declarar exito por compilacion - no declarar exito porque el job async crea tracks ## Si Z.ai falla Fallback preferido: 1. `glm-5 @ DashScope` 2. `qwen3.5-plus @ DashScope` No usar `Fireworks / kimi-k2p5-turbo` como arbitro principal mientras siga obedeciendo peor el contrato simple de salida.