11 KiB
SPRINT v0.1.30 - NEXT FOR KIMI
Arrangement-backed Harmonic MIDI, Selective Snare, Fewer Empty Gaps
Owner: Kimi via OpenCode
Reviewer: Codex
Fecha: 2026-04-02
Baseline session: 7b65596ef69a
Reference for production quality: Ableton demo project reviewed live by Codex via MCP
1. Runtime Truth
Do not trust only docs/SPRINT_v0.1.29_VALIDATION_REPORT.md.
Validate against:
C:\Users\ren\.abletonmcp_ai\generation_manifests.json- current Live session via MCP
- active code in:
C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\reference_listener.pyC:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\song_generator.pyC:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\server.pyC:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\abletonmcp_init.py
Baseline truth:
session_id = 7b65596ef69ageneration_mode = library-first-hybridcoherence_score = 4.9family_adherence_rate = 0.5repetition_metrics.verdict = repetitivemusic_source_reuse_ratio = 1.0mandatory_midi_hook.track_name = HARMONY_PIANO_MIDI
Critical runtime truth found by Codex in Live:
HARMONY_PIANO_MIDIexists- it has
device_count = 1 - but in the current Live session it has
session_clip_count = 1 - and
arrangement_clip_count = 0
That means:
- the report over-read the hook as solved
- the harmonic MIDI exists as a concept
- but in Arrangement playback it is not actually carrying the song
This matches the user's audible complaint:
- the MIDI does not really sound in the song
- the song still has good 4-second islands followed by empty space
2. What Codex Fixed In This Turn
These fixes are already in code and must not be reverted.
2.1 Snare selectivity bug
The snare penalty logic in reference_listener.py had a real bug:
- aggressive snare penalty was computed
- but the final return clamped the multiplier to minimum
1.0 - so penalties never actually applied
Codex fixed:
- penalties can now go below
1.0 snare/clapsection context is now aggregated across intro/build/drop/break instead of only reading the first energetic section
Interpretation:
SS_RNBL_Me_Gustas_One_Shot_Snare.wavis no longer protected by a math bug- do not reintroduce that clamp
2.2 Harmonic MIDI hook planning bug
The hook planner was too section-local.
Codex fixed song_generator.py so the hook plan now stores:
- per-section hook notes for the role itself
- plus
arrangement_notes - plus
arrangement_length_beats
Meaning:
HARMONY_PIANO_MIDIcan now be materialized as a song-long harmonic line- not only as a local section clip
2.3 Arrangement MIDI materialization bug
Codex fixed the path in server.py to:
- prefer
arrangement_notes - create a long arrangement clip
- retry note insertion instead of falling back immediately
Also fixed the runtime in:
abletonmcp_init.pyAbletonMCP_AI/abletonmcp_runtime.py
The runtime now caches newly created arrangement clips so add_notes_to_arrangement_clip can find them reliably.
2.4 Manifest / validation truth bugs
Codex fixed:
mandatory_midi_hook.materialization_modewas lying with"created"instead of the real modeactual_runtimewas missing totals- senior validation was under-reading
family_adherence_ratefrom stale paths
Do not undo these fixes.
2.5 Tests added / hardened
Codex added or tightened tests for:
- snare penalty below
1.0in soft context - hook planning across the full phrase plan
3. Read This User Clarification Correctly
The user comes from FL Studio and says:
piano rollpiano armonico
In this project that means:
- harmonic MIDI content
HARMONY_PIANO_MIDI- song-wide harmonic support or phrase identity
It does not mean:
- only
AUDIO PIANO MELODY - only piano loops from the library
The correct product goal is:
HARMONY_PIANO_MIDIacross the song- blended with library audio
- used to fill and unify harmonic space
4. Code Review Of v0.1.29
4.1 What Kimi improved
Kimi did improve one real thing:
- Arrangement structure is less cloned than older versions
- visually it looks more like a song and less like the exact same layout every time
That improvement is real and should be preserved.
4.2 What remained wrong
-
The hook was reported as solved too early. In runtime it was still Session-backed, not Arrangement-backed.
-
The snare issue was not really solved. The code had a penalty path, but the math clamp cancelled it.
-
The song still relies too much on clip islands. It creates a nice fragment, then leaves too much empty space.
-
The MIDI harmony is still under-used in audible continuity. This is the main missing glue.
-
The report still leaned too much toward "need piano audio melody". That is not the main blocker.
4.3 Main design failure now
The current generator still behaves too much like:
- one good loop
- then space
- then another good loop
Instead of:
- one coherent harmonic spine
- with audio layers entering and leaving around it
That is the central issue of v0.1.30.
5. Production Target From Ableton Demo
Copy the production discipline, not the genre.
What the demo showed:
- long phrases
- role clarity
- MIDI carrying a lot of identity
- atmosphere and support tracks keeping continuity
- section evolution by arrangement, not by constant reset
Translate that into our generator:
HARMONY_PIANO_MIDImust behave like a structural role- not like a decorative extra
- the song should stay alive between loops because harmonic content remains present
6. Required Work In v0.1.30
P0. Restart Live before validating
Codex changed:
abletonmcp_init.pyAbletonMCP_AI/abletonmcp_runtime.py
These runtime changes require reloading Live.
Do not validate v0.1.30 against a Live session that still has the old runtime loaded.
P0. Make HARMONY_PIANO_MIDI Arrangement-backed and audible
This is the top priority.
Required outcome:
HARMONY_PIANO_MIDImust have arrangement clips- it must not be only a Session clip
- it must cover the song in musically useful form
Required evidence:
- MCP
get_track_info()forHARMONY_PIANO_MIDI arrangement_clip_count > 0- report actual clip spans or arrangement note coverage
Not acceptable:
session_clip_count = 1andarrangement_clip_count = 0- calling that "materialized"
P0. Use the harmonic MIDI to reduce empty spaces
The user explicitly said:
- there are still holes
- it feels like 4 seconds of something good and then 3 seconds empty
Required logic:
HARMONY_PIANO_MIDIshould fill continuity gaps- it must survive across intro/build/drop/break in transformed form
- it should act as glue when audio loops thin out
Acceptable transformations:
- lower density
- higher density
- voicing changes
- register changes
- shorter response version in breaks
Not acceptable:
- disappearing for long stretches without replacement
P0. Add continuity metrics for harmonic coverage
The current metrics are not enough. Add at least one of these, preferably both:
harmonic_coverage_ratiomax_harmonic_gap_beats
Definition:
- evaluate the union of active harmonic support across:
HARMONY_PIANO_MIDIAUDIO KEYS SUPPORTAUDIO SYNTH LOOPAUDIO SYNTH PEAK- any other harmonic layer
Goal:
- detect whether the song has long empty harmonic holes
Suggested threshold:
max_harmonic_gap_beats <= 8
If there is a section with a longer gap, Kimi must justify it musically.
P1. Keep the aggressive snare selective, not banned
Target sample:
SS_RNBL_Me_Gustas_One_Shot_Snare.wav
Rules:
- do not blacklist it
- do not filename-ban it
- do not special-case it with a hard if
Required:
- prove that contextual scoring now makes it lose in softer contexts
- if it still wins, show the ranking and explain why
This time the evidence must be from the actual ranking flow, not just from a helper.
P1. Do not solve continuity by adding random sounds
Do not react to monotony by making the music bus noisy.
The right fix is:
- stronger harmonic spine
- more phrase variation
- fewer dead gaps
Not:
- more unrelated layers
- more random packs
P1. Keep auto vocals disabled
Still mandatory:
- no vocal layers auto-generated
- no vocal fallback
- no vocal shots
The user will record vocals manually.
7. Files Kimi Must Review
Required:
C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\reference_listener.pyC:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\song_generator.pyC:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\server.pyC:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\abletonmcp_init.pyC:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\abletonmcp_runtime.pyC:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\SPRINT_v0.1.29_VALIDATION_REPORT.md
Optional but recommended:
C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\SPRINT_v0.1.29_NEXT_KIMI.md
8. Exit Criteria
Do not close the sprint without a new persisted session.
Required:
generation_mode = library-first-hybridmandatory_midi_hook.track_name = HARMONY_PIANO_MIDImandatory_midi_hook.materialized = truemandatory_midi_hook.materialization_mode = arrangementorembeddedmandatory_midi_hook.arrangement_backed = truecoherence_score > 4.9family_adherence_rate > 0.5music_source_reuse_ratio <= 1.0with honest explanationvocal_layers_auto = 0
Continuity criteria:
HARMONY_PIANO_MIDIis audible through the song- fewer empty harmonic gaps than
7b65596ef69a - no obvious "good loop then empty hole" behavior
Snare criteria:
- aggressive snare no longer wins by default
- if it wins, evidence must show why the context justified it
9. Validation Report Required
Kimi must produce:
C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\SPRINT_v0.1.30_VALIDATION_REPORT.md
It must include:
- real
session_id - comparison against
7b65596ef69a - MCP evidence for
HARMONY_PIANO_MIDI get_track_info()summary forHARMONY_PIANO_MIDIarrangement_clip_countsession_clip_countmandatory_midi_hook.materialization_modemandatory_midi_hook.arrangement_backedpiano_presenceharmonic_coverage_ratioand/ormax_harmonic_gap_beatsrepetition_metrics- snare/clap ranking evidence
- explicit confirmation that automatic vocals remain disabled
The report is invalid if it says:
- hook solved while it is still Session-only
- "missing piano" while
HARMONY_PIANO_MIDIexists - "snare selectivity implemented" without ranking evidence
10. Final Instruction To Kimi
Think like a senior producer-engineer.
The next improvement is not:
- more audio clutter
- more random variation
- more empty breaks
It is:
- Arrangement-backed harmonic MIDI
- less silence as fake variation
- more continuity
- more disciplined snare context
If the next result still sounds like one good loop followed by empty space, the sprint is not closed.