livepilot 1.15.0-beta → 1.16.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +133 -0
- package/README.md +6 -6
- package/m4l_device/LivePilot_Analyzer.amxd +0 -0
- package/mcp_server/__init__.py +1 -1
- package/mcp_server/atlas/device_atlas.json +91219 -7161
- package/mcp_server/atlas/tools.py +30 -2
- package/mcp_server/runtime/remote_commands.py +3 -0
- package/mcp_server/sample_engine/tools.py +692 -60
- package/mcp_server/splice_client/client.py +511 -65
- package/mcp_server/splice_client/http_bridge.py +361 -0
- package/mcp_server/splice_client/models.py +266 -2
- package/mcp_server/splice_client/quota.py +229 -0
- package/mcp_server/tools/_analyzer_engine/__init__.py +4 -0
- package/mcp_server/tools/_analyzer_engine/sample.py +73 -0
- package/mcp_server/tools/analyzer.py +581 -29
- package/mcp_server/tools/browser.py +164 -13
- package/mcp_server/tools/devices.py +56 -11
- package/mcp_server/tools/mixing.py +64 -15
- package/mcp_server/tools/scales.py +18 -6
- package/mcp_server/tools/tracks.py +92 -4
- package/package.json +2 -2
- package/remote_script/LivePilot/__init__.py +1 -1
- package/remote_script/LivePilot/_clip_helpers.py +86 -0
- package/remote_script/LivePilot/_drum_helpers.py +40 -0
- package/remote_script/LivePilot/_scale_helpers.py +87 -0
- package/remote_script/LivePilot/arrangement.py +44 -15
- package/remote_script/LivePilot/clips.py +182 -2
- package/remote_script/LivePilot/devices.py +82 -2
- package/remote_script/LivePilot/notes.py +17 -2
- package/remote_script/LivePilot/scales.py +31 -16
- package/remote_script/LivePilot/simpler_sample.py +105 -17
- package/server.json +3 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,138 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.16.0 — Villalobos session bug batch + Splice plan model (April 22 2026)
|
|
4
|
+
|
|
5
|
+
Hardens the 1.15.0 beta into a full release. Resolves 18 of the 19 bugs
|
|
6
|
+
catalogued in `docs/2026-04-22-bugs-discovered.md` during an end-to-end
|
|
7
|
+
Villalobos-style production session, ships a plan-aware Splice download
|
|
8
|
+
model, adds drum-rack pad-by-pad construction, and lands clip-length +
|
|
9
|
+
note-range invariants so programmatic workflows stop corrupting
|
|
10
|
+
arrangement timing.
|
|
11
|
+
|
|
12
|
+
**Tool count**: 403 → 421 (+18).
|
|
13
|
+
**Domain count**: unchanged at 52.
|
|
14
|
+
**Tests**: 49 new contract tests across five helper modules. No regressions.
|
|
15
|
+
|
|
16
|
+
### Added
|
|
17
|
+
|
|
18
|
+
**Drum Rack pad-by-pad construction (BUG #1)**
|
|
19
|
+
- `add_drum_rack_pad(track_index, pad_note, file_path)` — atomic tool
|
|
20
|
+
that does the full drum-rack build per pad: insert_rack_chain →
|
|
21
|
+
set_drum_chain_note → insert empty Simpler → load sample via native
|
|
22
|
+
Live 12.4 replace_sample with nested addressing. Returns
|
|
23
|
+
`{ok, chain_index, pad_note, nested_device_index}`. Requires Live 12.4+.
|
|
24
|
+
- `replace_simpler_sample` and `load_sample_to_simpler` now accept
|
|
25
|
+
`chain_index` + `nested_device_index` for deep addressing inside
|
|
26
|
+
drum-rack chains.
|
|
27
|
+
- Auto-increment of `in_note` on `insert_rack_chain` for drum racks
|
|
28
|
+
(BUG #13) — no more "all new chains pile up on note 36 (Multi)".
|
|
29
|
+
|
|
30
|
+
**Live-session device-alive verification (BUG #19)**
|
|
31
|
+
- `verify_device_alive(track_index, device_index)` — static check
|
|
32
|
+
returning `{alive, reason, recommendation}` based on parameter_count
|
|
33
|
+
and health_flags.
|
|
34
|
+
- Optional `fire_test_note=True` path for definitive answer: captures
|
|
35
|
+
pre-hit RMS, fires a scratch MIDI clip, samples the meter over the
|
|
36
|
+
duration, captures post-hit RMS. Scratch clip auto-cleaned.
|
|
37
|
+
- Remote Script handlers: `fire_test_note`, `cleanup_test_note`.
|
|
38
|
+
|
|
39
|
+
**Splice plan-aware download gating (2026-04-14 carry-over)**
|
|
40
|
+
- `SpliceGRPCClient.decide_download` with three branches: free samples
|
|
41
|
+
bypass, Ableton Live plan uses daily quota, credit-metered plans use
|
|
42
|
+
credit floor. Fixes the bug where the Ableton Live plan (100/day
|
|
43
|
+
unmetered) was blocked by the credit-floor check.
|
|
44
|
+
- `DailyQuotaTracker` persisting `~/.livepilot/splice_quota.json` keyed
|
|
45
|
+
by UTC date. 100/day default, 90 warn threshold.
|
|
46
|
+
- `classify_plan` reads feature flags (ableton_unmetered,
|
|
47
|
+
ableton_live_plan, unmetered_downloads, creator_plus) with precedence
|
|
48
|
+
locked down by regression-trap tests.
|
|
49
|
+
|
|
50
|
+
**Splice HTTPS bridge scaffolding**
|
|
51
|
+
- `mcp_server/splice_client/http_bridge.py` — auth + endpoint +
|
|
52
|
+
retry/timeout plumbing for the plugin-exclusive Describe-a-Sound and
|
|
53
|
+
Variations features. Tools return a clear "bridge not yet wired"
|
|
54
|
+
error until the real endpoint shapes are captured via mitmproxy.
|
|
55
|
+
|
|
56
|
+
**Extended analyzer perception**
|
|
57
|
+
- `analyze_loudness_live` (BUG #8) — LUFS + true-peak on the live
|
|
58
|
+
master without requiring a file render.
|
|
59
|
+
- `get_master_spectrum` now accepts `window_ms` (BUG #6) — stable
|
|
60
|
+
averaged reads vs the previous single-sample jitter.
|
|
61
|
+
|
|
62
|
+
**Clip length + note-range invariants (BUG #1c)**
|
|
63
|
+
- `create_clip(length=N)` now forces `loop_end = N` and `end_marker = N`
|
|
64
|
+
after creation. Response exposes both fields.
|
|
65
|
+
- `add_notes` auto-extends `loop_end` if any incoming note's
|
|
66
|
+
`start_time + duration` exceeds it. Response reports
|
|
67
|
+
`loop_end_extended_to` when extension fired.
|
|
68
|
+
|
|
69
|
+
**Smart Simpler defaults (BUG #17 + #18)**
|
|
70
|
+
- `load_browser_item(role=...)` applies post-load Simpler defaults:
|
|
71
|
+
- `drum`: Snap=0, Vol=0dB, Trigger Mode=0 (Trigger), root=C1 (36)
|
|
72
|
+
- `melodic`: Snap=1, Vol=0dB, Trigger Mode=1 (Gate), root=C3 (60)
|
|
73
|
+
- `texture`: Snap=0, Vol=-6dB, Trigger Mode=1 (Gate), root=C3 (60)
|
|
74
|
+
|
|
75
|
+
**Miscellaneous**
|
|
76
|
+
- `get_track_info(-1000)` returns master track info (BUG #11).
|
|
77
|
+
- `scan_full_library(max_per_category=5000)` — removed the hardcoded
|
|
78
|
+
1000 cap that silently truncated large categories (BUG #12).
|
|
79
|
+
- `batch_set_parameters` accepts `{index: N, value}` and `{name: "X", value}`
|
|
80
|
+
shapes — the keys `get_device_parameters` actually returns (BUG #3).
|
|
81
|
+
- `search_browser` / `search_samples` accept intuitive parameter aliases
|
|
82
|
+
(BUG #4).
|
|
83
|
+
- `get_browser_items` paginates when output would exceed the token cap
|
|
84
|
+
(BUG #5).
|
|
85
|
+
- `get_track_meters` returns consistent peak/L/R triple on a single time
|
|
86
|
+
window (BUG #7).
|
|
87
|
+
- `set_song_scale` accepts string root notes ("C", "F#", "Bb") and
|
|
88
|
+
handles Live 12.4.0's moved `scale_names` attribute via a tolerant
|
|
89
|
+
resolver with a built-in fallback scale list (BUG #2).
|
|
90
|
+
|
|
91
|
+
### Documentation
|
|
92
|
+
|
|
93
|
+
- `docs/load_browser_item-uri-grammar.md` (BUG #14) — the three URI
|
|
94
|
+
forms, failure modes, discovery recipe, top-level folder map. Moved
|
|
95
|
+
under `livepilot/skills/livepilot-devices/references/`.
|
|
96
|
+
- `livepilot-devices` SKILL — new "Custom Drum Rack Construction" and
|
|
97
|
+
"Parameter Name Quirks" sections (BUG #10, #16).
|
|
98
|
+
- `livepilot-arrangement` SKILL — documents the Live LOM limitation
|
|
99
|
+
behind BUG #1b (programmatic arrangement automation) with two
|
|
100
|
+
workaround patterns (session-clip + record, or stepped section
|
|
101
|
+
clips).
|
|
102
|
+
- `docs/M4L_BRIDGE.md` — drift fixes: bridge command count 28 → 30,
|
|
103
|
+
analyzer MCP tool count 20 → 33, Max 8 → Max 9 reference, new
|
|
104
|
+
Phase 3 section documenting 8 previously undocumented bridge
|
|
105
|
+
commands.
|
|
106
|
+
|
|
107
|
+
### Fixed
|
|
108
|
+
|
|
109
|
+
- `_live_caps` no longer caches the 12.0.0 fallback when
|
|
110
|
+
`get_session_info` returns no live_version — previously pinned the
|
|
111
|
+
entire session to the oldest capability tier.
|
|
112
|
+
|
|
113
|
+
### Changed
|
|
114
|
+
|
|
115
|
+
- `insert_rack_chain` on drum racks now auto-increments `in_note`
|
|
116
|
+
(BUG #13). Pass `auto_pad_note=false` to keep Live's default
|
|
117
|
+
collide-on-36 behavior.
|
|
118
|
+
|
|
119
|
+
### Deferred
|
|
120
|
+
|
|
121
|
+
- **BUG #15** — adding a sub_low (30-60 Hz) spectrum band requires a
|
|
122
|
+
Max 9 re-freeze of `LivePilot_Analyzer.amxd`. Deferred to the next
|
|
123
|
+
.amxd rebuild cycle. `get_mel_spectrum` provides finer-grained
|
|
124
|
+
perceptual bands as a workaround.
|
|
125
|
+
- **BUG #1b** — programmatic creation of arrangement automation
|
|
126
|
+
breakpoints. Live LOM limitation (per Ableton docs,
|
|
127
|
+
`Clip.automation_envelope` returns None for arrangement clips);
|
|
128
|
+
documented workaround patterns instead of a synthetic fix.
|
|
129
|
+
|
|
130
|
+
### Platform
|
|
131
|
+
|
|
132
|
+
- LivePilot_Analyzer.amxd ping version bytes patched 1.15.0 → 1.16.0
|
|
133
|
+
(in-place binary patch — source bumps don't auto-refresh the frozen
|
|
134
|
+
JS, lesson from two prior releases).
|
|
135
|
+
|
|
3
136
|
## 1.15.0-beta — Live 12.4 replace_sample native (April 21 2026)
|
|
4
137
|
|
|
5
138
|
First Live 12.4 beta support release. Adds a native fast path for
|
package/README.md
CHANGED
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
<p align="center">
|
|
19
19
|
An agentic production system for Ableton Live 12.<br>
|
|
20
|
-
|
|
20
|
+
421 tools. 52 domains. Device atlas. Splice integration. Auto-composition. Spectral perception. Technique memory.
|
|
21
21
|
</p>
|
|
22
22
|
|
|
23
23
|
<br>
|
|
@@ -79,7 +79,7 @@ Most MCP servers are tool collections — they execute commands. LivePilot is an
|
|
|
79
79
|
│ └─────────────────┼──────────────────┘ │
|
|
80
80
|
│ ▼ │
|
|
81
81
|
│ ┌─────────────────┐ │
|
|
82
|
-
│ │
|
|
82
|
+
│ │ 421 MCP Tools │ │
|
|
83
83
|
│ │ 52 domains │ │
|
|
84
84
|
│ └────────┬────────┘ │
|
|
85
85
|
│ │ │
|
|
@@ -120,7 +120,7 @@ Most MCP servers are tool collections — they execute commands. LivePilot is an
|
|
|
120
120
|
|
|
121
121
|
## The Intelligence Layer
|
|
122
122
|
|
|
123
|
-
12 engines sit on top of the
|
|
123
|
+
12 engines sit on top of the 421 tools. They give the AI musical judgment, not just musical execution.
|
|
124
124
|
|
|
125
125
|
### SongBrain — What the Song Is
|
|
126
126
|
|
|
@@ -172,7 +172,7 @@ Every engine follows: **measure before → act → measure after → compare**.
|
|
|
172
172
|
|
|
173
173
|
## Tools
|
|
174
174
|
|
|
175
|
-
|
|
175
|
+
421 tools across 52 domains. Highlights below — [full catalog here](docs/manual/tool-catalog.md).
|
|
176
176
|
|
|
177
177
|
<br>
|
|
178
178
|
|
|
@@ -360,7 +360,7 @@ The V2 intelligence layer. These tools analyze, diagnose, plan, evaluate, and le
|
|
|
360
360
|
| Creative Constraints | 5 | constraint activation, reference-inspired variants |
|
|
361
361
|
| Preview Studio | 5 | variant creation, preview rendering, comparison, commit |
|
|
362
362
|
|
|
363
|
-
> **[View all
|
|
363
|
+
> **[View all 421 tools →](docs/manual/tool-catalog.md)**
|
|
364
364
|
|
|
365
365
|
<br>
|
|
366
366
|
|
|
@@ -587,7 +587,7 @@ See [CONTRIBUTING.md](CONTRIBUTING.md) for architecture details, code guidelines
|
|
|
587
587
|
|
|
588
588
|
| Document | What's inside |
|
|
589
589
|
|----------|---------------|
|
|
590
|
-
| [Manual](docs/manual/index.md) | Complete reference: architecture, all
|
|
590
|
+
| [Manual](docs/manual/index.md) | Complete reference: architecture, all 421 tools, workflows |
|
|
591
591
|
| [Intelligence Layer](docs/manual/intelligence.md) | How the 12 engines connect — conductor, moves, preview, evaluation |
|
|
592
592
|
| [Device Atlas](docs/manual/device-atlas.md) | 1305 devices indexed — search, suggest, chain building |
|
|
593
593
|
| [Samples & Slicing](docs/manual/samples.md) | 3-source search, fitness critics, slice workflows |
|
|
Binary file
|
package/mcp_server/__init__.py
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"""LivePilot MCP Server — bridges MCP protocol to Ableton Live."""
|
|
2
|
-
__version__ = "1.
|
|
2
|
+
__version__ = "1.16.0"
|