369 lines
11 KiB
Markdown
369 lines
11 KiB
Markdown
# SPRINT v0.1.29 - NEXT FOR KIMI
|
|
## Coherence First, Harmonic Piano Roll, Less Choppy Arrangement
|
|
|
|
**Owner:** Kimi via OpenCode
|
|
**Reviewer:** Codex
|
|
**Fecha:** 2026-04-02
|
|
**Baseline session:** `c3aa8a7e8fa3`
|
|
**Production reference reviewed live by Codex:** Ableton Live demo set currently open in Live
|
|
|
|
---
|
|
|
|
## 1. Runtime Truth
|
|
|
|
Do not start from the previous md only. Start from the persisted manifest and the current code.
|
|
|
|
Current baseline truth from `C:\Users\ren\.abletonmcp_ai\generation_manifests.json`:
|
|
|
|
- `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 - Lacks coherence, needs structural fixes`
|
|
- `family_adherence_rate = 0.5`
|
|
- `repetition_metrics.identical_section_signatures = 2`
|
|
- `repetition_metrics.music_source_reuse_ratio = 1.0`
|
|
- `repetition_metrics.source_distribution.midilatino = 4`
|
|
|
|
Interpretation:
|
|
|
|
- the system is already using harmonic MIDI piano in hybrid mode
|
|
- the main failure is not "missing piano"
|
|
- the main failures are continuity, phrase identity, over-looping, and weak harmonic integration with the library
|
|
|
|
Also note:
|
|
|
|
- `get_system_metrics()` had a real import bug in `server.py`; Codex fixed it in this turn
|
|
- do not re-open that bug by importing `get_cross_generation_state` from `song_generator`
|
|
|
|
---
|
|
|
|
## 2. What The User Clarified
|
|
|
|
When the user says:
|
|
|
|
- `piano roll`
|
|
- `piano rolls`
|
|
- `piano armonico`
|
|
|
|
In this project that means:
|
|
|
|
- MIDI harmony content
|
|
- `HARMONY_PIANO_MIDI`
|
|
- piano-like harmonic writing that blends with the audio library
|
|
|
|
It does **not** mean:
|
|
|
|
- forcing `AUDIO_PIANO_MELODY` as the only valid solution
|
|
- claiming the library is unusable unless melodic piano loops exist
|
|
|
|
`AUDIO_PIANO_MELODY` can help, but it is optional.
|
|
|
|
The real requirement is:
|
|
|
|
- harmonic MIDI piano that carries phrase identity
|
|
- blended with coherent library audio layers
|
|
|
|
---
|
|
|
|
## 3. New Production Benchmark From Ableton Demo
|
|
|
|
Codex inspected the open Ableton demo project live by MCP.
|
|
|
|
Relevant production facts from that set:
|
|
|
|
- `15` tracks, `2` returns, `13` scenes
|
|
- strong role clarity
|
|
- long phrases instead of hyper-fragmented placements
|
|
- recurring motifs with section evolution, not constant sound replacement
|
|
- MIDI carries a lot of the identity
|
|
- atmosphere/glue tracks help continuity
|
|
- vocal architecture is intentional, not random chops
|
|
- simple send philosophy: `Reverb` and `Delay`, not endless routing tricks
|
|
|
|
What we should copy from that quality target:
|
|
|
|
1. Fewer but stronger identities.
|
|
The demo does not feel empty because each role has purpose.
|
|
|
|
2. Longer phrase continuity.
|
|
The track evolves without sounding chopped into many tiny edits.
|
|
|
|
3. Harmonic identity from MIDI plus selective audio support.
|
|
This is exactly the direction we want with `HARMONY_PIANO_MIDI + library`.
|
|
|
|
4. Section changes by orchestration, density, and phrasing.
|
|
Not by removing half the groove every time.
|
|
|
|
5. Production quality comes from discipline, not from more layers.
|
|
|
|
Do **not** copy from the demo:
|
|
|
|
- automatic vocals
|
|
- genre-specific harmony or tempo
|
|
|
|
We only take the production discipline and arrangement quality target.
|
|
|
|
---
|
|
|
|
## 4. Code Review Of The Current Failure Mode
|
|
|
|
This is the main code review for Kimi.
|
|
|
|
### 4.1 Why it still sounds like the same song
|
|
|
|
The likely causes are:
|
|
|
|
1. The generator still reuses the same harmonic source family too globally.
|
|
It changes details, but the identity engine is not evolving enough section by section.
|
|
|
|
2. Variation often comes from subtraction instead of transformation.
|
|
That creates cuts and spaces instead of musical evolution.
|
|
|
|
3. The arrangement is too placement-driven and not phrase-driven.
|
|
Too many decisions are made as "where to drop a clip" instead of "what is the motif doing now".
|
|
|
|
4. The piano role is underused as a phrase carrier.
|
|
`HARMONY_PIANO_MIDI` exists, but it is not yet acting as a true harmonic spine.
|
|
|
|
5. Coherence scoring is still not selective enough about over-reuse.
|
|
It detects some repetition, but not strongly enough to force better variation.
|
|
|
|
### 4.2 Why it feels too chopped
|
|
|
|
The current system is still likely doing at least one of these:
|
|
|
|
- muting or omitting harmonic support for too many bars
|
|
- rotating loops too often without preserving a continuous anchor
|
|
- over-using section boundaries as permission to reset the groove
|
|
- letting top/synth/bass placements thin out instead of reshaping
|
|
|
|
### 4.3 Why the piano is still not doing enough
|
|
|
|
This is not mainly an audio-library problem.
|
|
|
|
The issue is that the system is not using MIDI harmony piano as:
|
|
|
|
- recurring phrase anchor
|
|
- sectional motif transformer
|
|
- bridge between the library layers and the hook identity
|
|
|
|
If Kimi keeps chasing `AUDIO_PIANO_MELODY`, he is solving the wrong problem.
|
|
|
|
---
|
|
|
|
## 5. Work Required In v0.1.29
|
|
|
|
### P0. Make `HARMONY_PIANO_MIDI` the harmonic spine
|
|
|
|
Review:
|
|
|
|
- `song_generator.py`
|
|
- `reference_listener.py`
|
|
- `server.py`
|
|
|
|
Required behavior:
|
|
|
|
- `HARMONY_PIANO_MIDI` must carry phrase identity, not just support chords
|
|
- it should survive across sections in transformed form
|
|
- it must blend with the selected audio library layers
|
|
|
|
Acceptable section evolution:
|
|
|
|
- same motif with different register
|
|
- same motif with density change
|
|
- same motif with rhythmic simplification or embellishment
|
|
- same motif voiced differently for intro/build/drop/break
|
|
|
|
Not acceptable:
|
|
|
|
- deleting the piano role for long stretches and calling that variation
|
|
- replacing the whole identity every section
|
|
|
|
### P0. Reduce cuts and dead spaces
|
|
|
|
The target is not "full all the time".
|
|
The target is continuity.
|
|
|
|
Kimi must review actual placement logic for:
|
|
|
|
- `AUDIO SYNTH LOOP`
|
|
- `AUDIO BASS LOOP`
|
|
- `AUDIO TOP LOOP`
|
|
- `AUDIO KEYS SUPPORT`
|
|
- `HARMONY_PIANO_MIDI`
|
|
|
|
Required result:
|
|
|
|
- fewer unnecessary holes
|
|
- more phrase continuity across section boundaries
|
|
- build and drop keep enough anchor to feel intentional
|
|
|
|
Hard rule:
|
|
|
|
- do not create variation mainly by silence
|
|
- create variation by phrasing, layering, register, density, and accent pattern
|
|
|
|
### P0. Coherence-first selection, not more sounds
|
|
|
|
The user explicitly said the track gets trapped in 3-4 sounds but still sounds too looped.
|
|
That does **not** mean "add many more random sounds".
|
|
|
|
The correct response is:
|
|
|
|
- keep a coherent identity
|
|
- derive more phrase variation from the same identity
|
|
- add only a small number of complementary sources when they solve monotony
|
|
|
|
Required logic:
|
|
|
|
- one dominant harmonic identity
|
|
- one secondary support identity at most
|
|
- one or two controlled variant sources for contrast
|
|
|
|
Do not let music bus become a collage of unrelated packs.
|
|
|
|
### P1. Make coherence more selective for aggressive drums
|
|
|
|
Specific user note:
|
|
|
|
- `SS_RNBL_Me_Gustas_One_Shot_Snare.wav` is too strong in many contexts
|
|
|
|
Do **not** blacklist it.
|
|
Do **not** hardcode a filename ban.
|
|
|
|
Instead:
|
|
|
|
- make snare/clap selection more context-sensitive
|
|
- score transient aggression against section energy, brightness, and surrounding kit
|
|
- make harsh snares lose in softer or smoother sections
|
|
- only let that snare win when the full drum context supports it
|
|
|
|
Kimi must provide evidence from scoring or ranking.
|
|
Not just "I think it is more selective now".
|
|
|
|
### P1. Use the demo set as arrangement-quality reference
|
|
|
|
Do not copy genre.
|
|
Copy these arrangement principles:
|
|
|
|
- long musical phrases
|
|
- a few strong roles
|
|
- section evolution without constant reset
|
|
- atmosphere/glue that keeps continuity
|
|
- simple effect philosophy
|
|
|
|
Translate that into the reggaeton generator.
|
|
|
|
### P1. Keep automatic vocals disabled
|
|
|
|
This remains mandatory:
|
|
|
|
- no auto vocal layers
|
|
- no vocal shots
|
|
- no vocal loops
|
|
- no vocal fallback
|
|
|
|
The user will record vocals manually.
|
|
|
|
---
|
|
|
|
## 6. Files Kimi Must Review
|
|
|
|
Minimum required files:
|
|
|
|
1. `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\song_generator.py`
|
|
2. `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\reference_listener.py`
|
|
3. `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\server.py`
|
|
4. `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\sample_selector.py`
|
|
5. `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\SPRINT_v0.1.27_VALIDATION_REPORT.md`
|
|
6. `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\SPRINT_v0.1.28_NEXT.md`
|
|
|
|
Do not restrict the work to `reference_listener.py` only.
|
|
The current problem is cross-file and runtime-facing.
|
|
|
|
---
|
|
|
|
## 7. Exit Criteria
|
|
|
|
Do not close the sprint unless there is a new persisted session proving improvement.
|
|
|
|
Minimum required:
|
|
|
|
- `generation_mode = library-first-hybrid`
|
|
- `mandatory_midi_hook.materialized = true`
|
|
- `mandatory_midi_hook.track_name = HARMONY_PIANO_MIDI`
|
|
- `coherence_score > 4.8`
|
|
- `family_adherence_rate > 0.5`
|
|
- `music_source_reuse_ratio < 1.0`
|
|
- `vocal_layers_auto = 0`
|
|
- evidence that the harmonic piano is blended with the library
|
|
- fewer unnecessary cuts than `c3aa8a7e8fa3`
|
|
|
|
Musical exit criteria:
|
|
|
|
- the arrangement should feel less chopped
|
|
- the piano roll / harmonic MIDI should be audibly relevant
|
|
- the track should not sound like "the same loop with mutes"
|
|
- the track should not sound like "audio on one side, MIDI on the other"
|
|
|
|
Section-level criteria:
|
|
|
|
- section change must come mainly from transformation, not removal
|
|
- `drop B` must be recognizably related to `drop A` but not a clone
|
|
- `build` must keep enough bass/harmonic anchor to avoid empty holes
|
|
|
|
Drum selectivity criteria:
|
|
|
|
- the aggressive snare must not dominate by default
|
|
- if it wins, Kimi must explain why it wins in that exact context
|
|
|
|
---
|
|
|
|
## 8. Validation Report Required
|
|
|
|
Kimi must produce:
|
|
|
|
`C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\SPRINT_v0.1.29_VALIDATION_REPORT.md`
|
|
|
|
The report must include:
|
|
|
|
1. real `session_id`
|
|
2. comparison against `c3aa8a7e8fa3`
|
|
3. `mandatory_midi_hook` details
|
|
4. `piano_presence` details
|
|
5. explicit statement on whether the project uses `library + HARMONY_PIANO_MIDI`
|
|
6. `repetition_metrics`
|
|
7. `music_source_reuse_ratio`
|
|
8. snare/clap ranking evidence
|
|
9. exact evidence for reduced cuts or improved continuity
|
|
10. explicit note that automatic vocals remain disabled
|
|
|
|
The report is invalid if it says:
|
|
|
|
- `coherence_score = None` when the manifest already has a value
|
|
- `missing piano` while `HARMONY_PIANO_MIDI` is present
|
|
- "lack of library piano loops" as the main blocker without proving the MIDI path is insufficient
|
|
|
|
---
|
|
|
|
## 9. Final Instruction To Kimi
|
|
|
|
Think like a senior producer-engineer, not like a patch machine.
|
|
|
|
The goal is not:
|
|
|
|
- more layers
|
|
- more packs
|
|
- more tricks
|
|
|
|
The goal is:
|
|
|
|
- stronger phrase identity
|
|
- better continuity
|
|
- coherent harmonic MIDI blended with the library
|
|
- disciplined variation
|
|
|
|
If the next result still sounds like the same loop with cuts, the sprint is not closed.
|