11 KiB
SPRINT v0.1.38 - NEXT FOR GLM
Expand Open-Project Editing Tools And Add Real Coherence Auditing
Owner: GLM via OpenCode
Reviewer: Codex
Fecha: 2026-04-02
Mode: Edit existing project, not generate new song
Primary benchmark project:
C:\Users\ren\Desktop\song Project\song.als
Reference docs:
C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\PROJECT_AUDIT_song_2026-04-03.mdC:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\SPRINT_v0.1.37_VALIDATION_REPORT.mdC:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\SPRINT_v0.1.37_NEXT_GLM_PROJECT_EDITING.md
1. Reviewer Summary
GLM did advance the editing runtime path, but the report in SPRINT_v0.1.37_VALIDATION_REPORT.md still overclaimed closure.
Codex reviewed:
- the report
- the active code
- the live MCP state against the currently open benchmark set
- the editing runtime and tests
The real outcome of v0.1.37
- good progress
- not complete
The main reason is simple:
- the report claimed
HARMONY_PIANO_MIDIhad an arrangement clip - the live MCP state now shows
HARMONY_PIANO_MIDIwith:session_clip_count = 0arrangement_clip_count = 0
So the report cannot be treated as final truth for the actual open benchmark project.
2. What Codex Fixed After The Report
These fixes are already in the tree and are the new baseline.
2.1 MCP/runtime fixes
Codex fixed:
get_clipsrouting in both runtimestrack_typepropagation for new editing commands- arrangement clip fallback via session-record-to-arrangement when direct
track.create_clip(...)is unavailable set_device_parameter(...)public API now supportsparameter_name- public
get_device_parameters(...)was added audit_current_project()now reportsrepeated_clip_overuse
2.2 Product-level cleanup
Codex also fixed:
- duplicate MCP tool definitions in
server.py - broken
create_clip(...)validation path that used nonexistent_validate_float - fragile side effect where arrangement fallback could leave tracks armed; it now preserves/restores arm state more safely
get_track_info(...)now carries more useful nested clip/device details for editing workflows
2.3 Current validated tests
Passing locally:
test_runtime_truth.pytest_selection_coherence.pytest_piano_forward.py
3. Live Truth You Must Respect
Codex re-checked the current project through MCP.
Current live facts:
- Ableton is reachable
- session is at
95 BPM - current project has
16tracks and6scenes HARMONY_PIANO_MIDIis still present as track15- but it is still empty in Arrangement in the current live set
So for this sprint:
- do not use the v0.1.37 report as your source of truth
- use live MCP responses as the source of truth
4. Code Review Findings
4.1 Main report failure
The report treated a transient or unpersisted edit as if it were benchmark truth.
That is not acceptable for project-editing work.
If a report claims a live edit succeeded, you must prove:
- the edit exists in the open set
- MCP sees it
- it still exists after re-inspection
If not:
- status is not
COMPLETED
4.2 Editing tools are improving, but still not complete enough
The MCP now has useful editing surface:
get_clipsget_devicesget_device_parameterscreate_clipadd_notes_to_clipcreate_arrangement_clipadd_notes_to_arrangement_clipduplicate_clip_to_arrangement- track mute/pan/send/device control
audit_current_project
But serious open-project editing still needs more public tools.
4.3 Coherence is still under-tooled for open projects
Right now the project audit sees structural issues, but not enough musical ones.
The system still lacks a first-class project coherence audit for an already-open song.
That is the next real product gap.
5. Product Direction For v0.1.38
We now have two parallel goals:
- give MCP more real edit tools for already-open projects
- make coherence measurable on the open project itself
This sprint is not about a new generation path. It is about:
- editing a real
.als - auditing coherence in that real
.als
6. Important Semantic Rule
The user comes from FL and may say piano roll.
For this product, that must be interpreted as:
- harmonic MIDI editing
- note editing
- arrangement MIDI support
It does not mean:
- force piano timbre
- add more piano sounds
- make the song piano-forward
If the track is named HARMONY_PIANO_MIDI, treat it as:
- a harmonic MIDI support lane
Do not turn this sprint into piano sound design.
7. P0 Tasks
P0.1 Re-validate the live benchmark truth
Before any new work, restart:
- Ableton
- OpenCode
Then reconnect MCP and inspect the live benchmark again.
You must verify:
get_session_info()get_tracks()get_track_info(track_index=15)
The goal is to start from real live state, not from old screenshots or stale outputs.
Required evidence:
- exact responses
P0.2 Add missing public edit tools for real project work
The MCP still needs more low-level editing primitives exposed publicly.
Add public MCP tools in server.py for:
Session / clip editing
delete_clip(track_index, clip_index)set_clip_name(track_index, clip_index, name)set_clip_loop(track_index, clip_index, loop_start, loop_end, loop_length=0.0, looping=True)fire_clip(track_index, clip_index)stop_clip(track_index, clip_index)
These already exist or are very close in runtime support. Expose them cleanly.
Transport / editing support
jump_to(time)set_loop(enabled)set_loop_region(start, length)show_arrangement_view()
Do not rely on shell or hidden helpers when MCP can own these editing actions.
Track inspection quality
Extend get_track_info(...) so it can optionally accept:
track_type="track" | "return" | "master"
and do not leave return/master inspection as second-class behavior.
P0.3 Add a first-class project coherence audit
Add a new public MCP tool:
audit_project_coherence()
This is not a generation manifest audit. It is an audit of the currently open live project.
Minimum required outputs:
longest_drum_gaplongest_harmonic_gaptracks_with_zero_arrangement_clipsharmonic_midi_tracks_without_arrangement_clipsdominant_repeated_audio_sourcesrepetition_by_trackharmonic_coverage_ratiodrum_coverage_ratiosame_sample_overuse_flagscoherence_summary
The audit must use:
- current track names
- arrangement clips
- device presence
- real repeated source names
Do not fake this from manifests alone.
P0.4 Make the coherence audit useful for this actual benchmark
The benchmark project currently shows exactly the kind of issues we care about:
- repetitive one-shots
- arrangement islands
- empty harmonic MIDI support
- continuity depending too much on audio bass only
audit_project_coherence() must be able to make those issues visible.
At minimum it must highlight:
HARMONY_PIANO_MIDIexists but has no arrangement clipsAUDIO KICK,AUDIO CLAP,AUDIO HAT,AUDIO PERC MAINreuse the same small set of sources heavilyAUDIO SYNTH LOOPandAUDIO SYNTH PEAKare sparse- the song still has continuity/coherence gaps despite looking more structured
P0.5 Validate real editing persistence
Pick one real edit on song.als and prove it persists across re-inspection.
Examples:
- create a session clip on
HARMONY_PIANO_MIDI - add notes to it
- duplicate it to arrangement
- rename the created session clip
- inspect again
Required proof:
- action call
- immediate success result
- re-inspection result showing it exists
If re-inspection does not confirm it:
- the edit does not count as validated
8. P1 Tasks
P1.1 Add arrangement-specific clip inspection
Current get_clip_info(...) remains session-slot-centric.
That is still too weak for serious arrangement editing.
Implement one of:
get_arrangement_clip_info(track_index, clip_start_time, track_type="track")- or extend
get_clip_info(...)with aviewargument
This tool should report:
- clip name
- start time
- length
- audio vs MIDI
- loop state when available
Do not leave arrangement inspection ambiguous.
P1.2 Add a safe orchestration helper for project refinement
Only after P0 works.
Add a tool like:
refine_existing_project_section(...)
This must not be a fake black box. It must return:
- actions taken
- tracks touched
- clips created/duplicated/edited
Good first scope:
- fill one harmonic gap
- extend one rhythmic section
- reduce one repeated-source hotspot
Keep it bounded.
9. Non-Goals
Do not spend this sprint on:
- new genre generation logic
- reference remake quality
- new piano timbre logic
- vocal generation
- cosmetic md writing
The focus is:
- project editing tools
- live project coherence visibility
10. Required Files
Primary:
C:\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\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\tests\test_runtime_truth.py
Benchmark:
C:\Users\ren\Desktop\song Project\song.als
11. Required Validation
Minimum local:
python -m py_compile "C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\server.py" "C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\abletonmcp_init.py" "C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\abletonmcp_runtime.py"
python "C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\AbletonMCP_AI\AbletonMCP_AI\MCP_Server\tests\test_runtime_truth.py"
Required live validation:
- inspect benchmark project with MCP
- run at least one real edit
- re-inspect to prove persistence
- run
audit_current_project() - run
audit_project_coherence()
12. Deliverable
Write:
C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\SPRINT_v0.1.38_VALIDATION_REPORT.md
Must include:
A. Runtime truth
- restart evidence
- MCP connection evidence
- benchmark loaded evidence
B. Tool results
- exact call
- exact output
- pass/fail
C. Coherence audit results
- exact output of
audit_project_coherence() - interpretation against the benchmark project
D. Real edit proof
- action
- success result
- re-inspection result
E. Reviewer conclusion
Only one of:
COMPLETEDPARTIALBLOCKED
If the live benchmark still contradicts the report, it is not COMPLETED.
13. Final Rule
Do not close this sprint because the MCP can call editing commands.
Close it only if:
- the editing commands work on the open benchmark project
- the effects are visible on re-inspection
- the new coherence audit makes the benchmark's musical problems legible