Sync: Complete project state with all MEGA SPRINT V1-V3 features and Codex stubs

This commit is contained in:
renato97
2026-04-08 17:58:47 -03:00
parent c9d3528900
commit 6d080d43b3
372 changed files with 189715 additions and 8590 deletions

View File

@@ -0,0 +1,475 @@
# 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.md`
- `C:\ProgramData\Ableton\Live 12 Suite\Resources\MIDI Remote Scripts\docs\SPRINT_v0.1.37_VALIDATION_REPORT.md`
- `C:\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_MIDI` had an arrangement clip
- the live MCP state now shows `HARMONY_PIANO_MIDI` with:
- `session_clip_count = 0`
- `arrangement_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_clips` routing in both runtimes
- `track_type` propagation 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 supports `parameter_name`
- public `get_device_parameters(...)` was added
- `audit_current_project()` now reports `repeated_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.py`
- `test_selection_coherence.py`
- `test_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 `16` tracks and `6` scenes
- `HARMONY_PIANO_MIDI` is still present as track `15`
- 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:
1. the edit exists in the open set
2. MCP sees it
3. 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_clips`
- `get_devices`
- `get_device_parameters`
- `create_clip`
- `add_notes_to_clip`
- `create_arrangement_clip`
- `add_notes_to_arrangement_clip`
- `duplicate_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:
1. give MCP more real edit tools for already-open projects
2. 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:
1. Ableton
2. 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_gap`
- `longest_harmonic_gap`
- `tracks_with_zero_arrangement_clips`
- `harmonic_midi_tracks_without_arrangement_clips`
- `dominant_repeated_audio_sources`
- `repetition_by_track`
- `harmonic_coverage_ratio`
- `drum_coverage_ratio`
- `same_sample_overuse_flags`
- `coherence_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_MIDI` exists but has no arrangement clips
- `AUDIO KICK`, `AUDIO CLAP`, `AUDIO HAT`, `AUDIO PERC MAIN` reuse the same small set of sources heavily
- `AUDIO SYNTH LOOP` and `AUDIO SYNTH PEAK` are 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:
1. action call
2. immediate success result
3. 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 a `view` argument
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.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`
- `C:\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:
```powershell
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:
- `COMPLETED`
- `PARTIAL`
- `BLOCKED`
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