livepilot 1.15.0-beta → 1.16.1
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 +206 -3
- package/README.md +11 -11
- package/m4l_device/LivePilot_Analyzer.amxd +0 -0
- package/m4l_device/livepilot_bridge.js +1 -1
- package/mcp_server/__init__.py +1 -1
- package/mcp_server/atlas/device_atlas.json +91219 -7161
- package/mcp_server/atlas/enrichments/audio_effects/pitch_hack.yaml +61 -0
- package/mcp_server/atlas/enrichments/audio_effects/pitchloop89.yaml +111 -0
- package/mcp_server/atlas/enrichments/audio_effects/re_enveloper.yaml +51 -0
- package/mcp_server/atlas/enrichments/audio_effects/snipper.yaml +36 -0
- package/mcp_server/atlas/enrichments/audio_effects/spectral_blur.yaml +64 -0
- package/mcp_server/atlas/enrichments/instruments/bell_tower.yaml +37 -0
- package/mcp_server/atlas/enrichments/instruments/granulator_iii.yaml +124 -0
- package/mcp_server/atlas/enrichments/instruments/harmonic_drone_generator.yaml +83 -0
- package/mcp_server/atlas/enrichments/instruments/impulse.yaml +47 -0
- package/mcp_server/atlas/enrichments/instruments/sting_iftah.yaml +44 -0
- package/mcp_server/atlas/enrichments/midi_effects/expressive_chords.yaml +38 -0
- package/mcp_server/atlas/enrichments/midi_effects/filler.yaml +32 -0
- package/mcp_server/atlas/enrichments/midi_effects/microtuner.yaml +83 -0
- package/mcp_server/atlas/enrichments/midi_effects/patterns_iftah.yaml +38 -0
- package/mcp_server/atlas/enrichments/midi_effects/phase_pattern.yaml +51 -0
- package/mcp_server/atlas/enrichments/midi_effects/polyrhythm.yaml +46 -0
- package/mcp_server/atlas/enrichments/midi_effects/retrigger.yaml +40 -0
- package/mcp_server/atlas/enrichments/midi_effects/slice_shuffler.yaml +39 -0
- package/mcp_server/atlas/enrichments/midi_effects/sq_sequencer.yaml +39 -0
- package/mcp_server/atlas/enrichments/midi_effects/stages.yaml +38 -0
- package/mcp_server/atlas/enrichments/utility/arrangement_looper.yaml +31 -0
- package/mcp_server/atlas/enrichments/utility/cv_clock_in.yaml +25 -0
- package/mcp_server/atlas/enrichments/utility/cv_clock_out.yaml +25 -0
- package/mcp_server/atlas/enrichments/utility/cv_envelope_follower.yaml +38 -0
- package/mcp_server/atlas/enrichments/utility/cv_in.yaml +26 -0
- package/mcp_server/atlas/enrichments/utility/cv_instrument.yaml +34 -0
- package/mcp_server/atlas/enrichments/utility/cv_lfo.yaml +38 -0
- package/mcp_server/atlas/enrichments/utility/cv_shaper.yaml +35 -0
- package/mcp_server/atlas/enrichments/utility/cv_triggers.yaml +26 -0
- package/mcp_server/atlas/enrichments/utility/cv_utility.yaml +37 -0
- package/mcp_server/atlas/enrichments/utility/performer.yaml +36 -0
- package/mcp_server/atlas/enrichments/utility/prearranger.yaml +36 -0
- package/mcp_server/atlas/enrichments/utility/rotating_rhythm_generator.yaml +35 -0
- package/mcp_server/atlas/enrichments/utility/surround_panner.yaml +40 -0
- package/mcp_server/atlas/enrichments/utility/variations.yaml +40 -0
- package/mcp_server/atlas/enrichments/utility/vector_map.yaml +36 -0
- package/mcp_server/atlas/tools.py +30 -2
- package/mcp_server/runtime/remote_commands.py +3 -0
- package/mcp_server/sample_engine/tools.py +738 -60
- package/mcp_server/server.py +18 -6
- package/mcp_server/splice_client/client.py +583 -65
- package/mcp_server/splice_client/http_bridge.py +434 -0
- package/mcp_server/splice_client/models.py +278 -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 +730 -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,208 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
+
## 1.16.1 — Post-publish live-verification bug sweep (April 22 2026)
|
|
4
|
+
|
|
5
|
+
Three rounds of live verification after 1.16.0 shipped caught five
|
|
6
|
+
runtime bugs that unit tests missed. All unit-test-clean paths that
|
|
7
|
+
failed on first live invocation against a running Splice desktop +
|
|
8
|
+
Ableton 12.4 are now both fixed and guarded by source-grep regression
|
|
9
|
+
tests. Plus one new tool and two observations addressed.
|
|
10
|
+
|
|
11
|
+
**Tool count**: 421 → 422 (+1: `verify_all_devices_health` —
|
|
12
|
+
session-wide silent-track detector).
|
|
13
|
+
**Domain count**: unchanged at 52.
|
|
14
|
+
**Tests**: 2627 → 2644 (+17 new regression guards). No regressions.
|
|
15
|
+
|
|
16
|
+
### Live-verified bugs fixed
|
|
17
|
+
|
|
18
|
+
- `add_drum_rack_pad` crashed with `ImportError` on first invocation
|
|
19
|
+
— inline `from .._analyzer_engine.sample import ...` resolved to
|
|
20
|
+
`mcp_server._analyzer_engine` (nonexistent; the real package is
|
|
21
|
+
`mcp_server.tools._analyzer_engine`). The helper is already imported
|
|
22
|
+
at module scope on line 29; inline form removed.
|
|
23
|
+
- `splice_preview_sample` returned "No preview URL available" for
|
|
24
|
+
un-downloaded catalog samples. `SampleInfo` RPC only carries
|
|
25
|
+
`PreviewURL` for downloaded/purchased items. Now falls back to
|
|
26
|
+
`SearchSamples(FileHash=...)` which always has catalog metadata.
|
|
27
|
+
- `splice_pack_info` crashed with
|
|
28
|
+
`AttributeError: 'AppStub' object has no attribute 'SamplePackInfo'`.
|
|
29
|
+
The `SamplePackInfoRequest/Response` messages exist in the proto
|
|
30
|
+
descriptor but no RPC on the `App` service binds them. Rewrote to
|
|
31
|
+
paginate `ListSamplePacks` + client-side UUID match. Limitation
|
|
32
|
+
documented: only finds packs the user has engaged with.
|
|
33
|
+
- `splice_pack_info` on an OWNED pack with an extended-format UUID
|
|
34
|
+
(43 chars, e.g. `...887a0dd7f26bf5a3951`) failed because the first
|
|
35
|
+
fix aggressively truncated to `[:36]`, discarding legitimate bytes.
|
|
36
|
+
Correct behavior: Splice uses both UUID formats; build a `targets`
|
|
37
|
+
set of the submitted form AND its canonical truncation, match each
|
|
38
|
+
server-returned UUID in both forms.
|
|
39
|
+
- Startup warning `STARTUP SELF-TEST WARNING — returned 385 tools,
|
|
40
|
+
expects 422`. `_get_all_tools()` took the first non-empty probe,
|
|
41
|
+
which could be a stale `_tool_manager._tools` view lagging behind
|
|
42
|
+
the authoritative `_local_provider._components`. Now takes the
|
|
43
|
+
largest view across all probes.
|
|
44
|
+
- Startup `RuntimeWarning: coroutine 'FastMCP.list_tools' was never
|
|
45
|
+
awaited` on every server import. The `list_tools` probe wrapped an
|
|
46
|
+
async coroutine in `list()` without awaiting. Removed with an
|
|
47
|
+
explanatory comment.
|
|
48
|
+
|
|
49
|
+
### Added
|
|
50
|
+
|
|
51
|
+
- `verify_all_devices_health(test_midi_note=60, skip_audio_tracks=True,
|
|
52
|
+
skip_empty_tracks=True, threshold=0.005)` — session-wide silent-
|
|
53
|
+
track detector. Fires a test note on every eligible track and reports
|
|
54
|
+
alive / dead / skipped with per-track peak-level evidence.
|
|
55
|
+
- `~/.livepilot/splice.json` config key `plan_kind_override` — pin
|
|
56
|
+
the Splice plan_kind when the gRPC classifier lands on a safe
|
|
57
|
+
default (e.g. `sounds_plan_id=6` with empty `features` map is
|
|
58
|
+
classified as SOUNDS_PLUS but may actually be any of several tiers).
|
|
59
|
+
Values: `ableton_live`, `sounds_plus`, `creator`, `creator_plus`,
|
|
60
|
+
`free`. `get_splice_credits` response now includes
|
|
61
|
+
`plan_kind_override: <value|null>`.
|
|
62
|
+
|
|
63
|
+
### Internal
|
|
64
|
+
|
|
65
|
+
- M4L bridge source (`livepilot_bridge.js`) ping version drift
|
|
66
|
+
`1.14.1 → 1.16.1` (source had been stale; binary had already been
|
|
67
|
+
patched in a prior release).
|
|
68
|
+
- `SpliceGRPCClient.get_pack_info` return signature changed from
|
|
69
|
+
`Optional[SplicePack]` to `tuple[Optional[SplicePack], Optional[str]]`.
|
|
70
|
+
Callers now receive a structured error message when the lookup
|
|
71
|
+
fails, instead of `None` swallowing the cause.
|
|
72
|
+
|
|
73
|
+
## 1.16.0 — Minimal-techno session bug batch + Splice plan model (April 22 2026)
|
|
74
|
+
|
|
75
|
+
Hardens the 1.15.0 beta into a full release. Resolves 18 of the 19 bugs
|
|
76
|
+
catalogued in `docs/2026-04-22-bugs-discovered.md` during an end-to-end
|
|
77
|
+
minimal-techno production session, ships a plan-aware Splice download
|
|
78
|
+
model, adds drum-rack pad-by-pad construction, and lands clip-length +
|
|
79
|
+
note-range invariants so programmatic workflows stop corrupting
|
|
80
|
+
arrangement timing.
|
|
81
|
+
|
|
82
|
+
**Tool count**: 403 → 421 (+18).
|
|
83
|
+
**Domain count**: unchanged at 52.
|
|
84
|
+
**Tests**: 49 new contract tests across five helper modules. No regressions.
|
|
85
|
+
|
|
86
|
+
### Added
|
|
87
|
+
|
|
88
|
+
**Drum Rack pad-by-pad construction (BUG #1)**
|
|
89
|
+
- `add_drum_rack_pad(track_index, pad_note, file_path)` — atomic tool
|
|
90
|
+
that does the full drum-rack build per pad: insert_rack_chain →
|
|
91
|
+
set_drum_chain_note → insert empty Simpler → load sample via native
|
|
92
|
+
Live 12.4 replace_sample with nested addressing. Returns
|
|
93
|
+
`{ok, chain_index, pad_note, nested_device_index}`. Requires Live 12.4+.
|
|
94
|
+
- `replace_simpler_sample` and `load_sample_to_simpler` now accept
|
|
95
|
+
`chain_index` + `nested_device_index` for deep addressing inside
|
|
96
|
+
drum-rack chains.
|
|
97
|
+
- Auto-increment of `in_note` on `insert_rack_chain` for drum racks
|
|
98
|
+
(BUG #13) — no more "all new chains pile up on note 36 (Multi)".
|
|
99
|
+
|
|
100
|
+
**Live-session device-alive verification (BUG #19)**
|
|
101
|
+
- `verify_device_alive(track_index, device_index)` — static check
|
|
102
|
+
returning `{alive, reason, recommendation}` based on parameter_count
|
|
103
|
+
and health_flags.
|
|
104
|
+
- Optional `fire_test_note=True` path for definitive answer: captures
|
|
105
|
+
pre-hit RMS, fires a scratch MIDI clip, samples the meter over the
|
|
106
|
+
duration, captures post-hit RMS. Scratch clip auto-cleaned.
|
|
107
|
+
- Remote Script handlers: `fire_test_note`, `cleanup_test_note`.
|
|
108
|
+
|
|
109
|
+
**Splice plan-aware download gating (2026-04-14 carry-over)**
|
|
110
|
+
- `SpliceGRPCClient.decide_download` with three branches: free samples
|
|
111
|
+
bypass, Ableton Live plan uses daily quota, credit-metered plans use
|
|
112
|
+
credit floor. Fixes the bug where the Ableton Live plan (100/day
|
|
113
|
+
unmetered) was blocked by the credit-floor check.
|
|
114
|
+
- `DailyQuotaTracker` persisting `~/.livepilot/splice_quota.json` keyed
|
|
115
|
+
by UTC date. 100/day default, 90 warn threshold.
|
|
116
|
+
- `classify_plan` reads feature flags (ableton_unmetered,
|
|
117
|
+
ableton_live_plan, unmetered_downloads, creator_plus) with precedence
|
|
118
|
+
locked down by regression-trap tests.
|
|
119
|
+
|
|
120
|
+
**Splice HTTPS bridge scaffolding**
|
|
121
|
+
- `mcp_server/splice_client/http_bridge.py` — auth + endpoint +
|
|
122
|
+
retry/timeout plumbing for the plugin-exclusive Describe-a-Sound and
|
|
123
|
+
Variations features. Tools return a clear "bridge not yet wired"
|
|
124
|
+
error until the real endpoint shapes are captured via mitmproxy.
|
|
125
|
+
|
|
126
|
+
**Extended analyzer perception**
|
|
127
|
+
- `analyze_loudness_live` (BUG #8) — LUFS + true-peak on the live
|
|
128
|
+
master without requiring a file render.
|
|
129
|
+
- `get_master_spectrum` now accepts `window_ms` (BUG #6) — stable
|
|
130
|
+
averaged reads vs the previous single-sample jitter.
|
|
131
|
+
|
|
132
|
+
**Clip length + note-range invariants (BUG #1c)**
|
|
133
|
+
- `create_clip(length=N)` now forces `loop_end = N` and `end_marker = N`
|
|
134
|
+
after creation. Response exposes both fields.
|
|
135
|
+
- `add_notes` auto-extends `loop_end` if any incoming note's
|
|
136
|
+
`start_time + duration` exceeds it. Response reports
|
|
137
|
+
`loop_end_extended_to` when extension fired.
|
|
138
|
+
|
|
139
|
+
**Smart Simpler defaults (BUG #17 + #18)**
|
|
140
|
+
- `load_browser_item(role=...)` applies post-load Simpler defaults:
|
|
141
|
+
- `drum`: Snap=0, Vol=0dB, Trigger Mode=0 (Trigger), root=C1 (36)
|
|
142
|
+
- `melodic`: Snap=1, Vol=0dB, Trigger Mode=1 (Gate), root=C3 (60)
|
|
143
|
+
- `texture`: Snap=0, Vol=-6dB, Trigger Mode=1 (Gate), root=C3 (60)
|
|
144
|
+
|
|
145
|
+
**Miscellaneous**
|
|
146
|
+
- `get_track_info(-1000)` returns master track info (BUG #11).
|
|
147
|
+
- `scan_full_library(max_per_category=5000)` — removed the hardcoded
|
|
148
|
+
1000 cap that silently truncated large categories (BUG #12).
|
|
149
|
+
- `batch_set_parameters` accepts `{index: N, value}` and `{name: "X", value}`
|
|
150
|
+
shapes — the keys `get_device_parameters` actually returns (BUG #3).
|
|
151
|
+
- `search_browser` / `search_samples` accept intuitive parameter aliases
|
|
152
|
+
(BUG #4).
|
|
153
|
+
- `get_browser_items` paginates when output would exceed the token cap
|
|
154
|
+
(BUG #5).
|
|
155
|
+
- `get_track_meters` returns consistent peak/L/R triple on a single time
|
|
156
|
+
window (BUG #7).
|
|
157
|
+
- `set_song_scale` accepts string root notes ("C", "F#", "Bb") and
|
|
158
|
+
handles Live 12.4.0's moved `scale_names` attribute via a tolerant
|
|
159
|
+
resolver with a built-in fallback scale list (BUG #2).
|
|
160
|
+
|
|
161
|
+
### Documentation
|
|
162
|
+
|
|
163
|
+
- `docs/load_browser_item-uri-grammar.md` (BUG #14) — the three URI
|
|
164
|
+
forms, failure modes, discovery recipe, top-level folder map. Moved
|
|
165
|
+
under `livepilot/skills/livepilot-devices/references/`.
|
|
166
|
+
- `livepilot-devices` SKILL — new "Custom Drum Rack Construction" and
|
|
167
|
+
"Parameter Name Quirks" sections (BUG #10, #16).
|
|
168
|
+
- `livepilot-arrangement` SKILL — documents the Live LOM limitation
|
|
169
|
+
behind BUG #1b (programmatic arrangement automation) with two
|
|
170
|
+
workaround patterns (session-clip + record, or stepped section
|
|
171
|
+
clips).
|
|
172
|
+
- `docs/M4L_BRIDGE.md` — drift fixes: bridge command count 28 → 30,
|
|
173
|
+
analyzer MCP tool count 20 → 33, Max 8 → Max 9 reference, new
|
|
174
|
+
Phase 3 section documenting 8 previously undocumented bridge
|
|
175
|
+
commands.
|
|
176
|
+
|
|
177
|
+
### Fixed
|
|
178
|
+
|
|
179
|
+
- `_live_caps` no longer caches the 12.0.0 fallback when
|
|
180
|
+
`get_session_info` returns no live_version — previously pinned the
|
|
181
|
+
entire session to the oldest capability tier.
|
|
182
|
+
|
|
183
|
+
### Changed
|
|
184
|
+
|
|
185
|
+
- `insert_rack_chain` on drum racks now auto-increments `in_note`
|
|
186
|
+
(BUG #13). Pass `auto_pad_note=false` to keep Live's default
|
|
187
|
+
collide-on-36 behavior.
|
|
188
|
+
|
|
189
|
+
### Deferred
|
|
190
|
+
|
|
191
|
+
- **BUG #15** — adding a sub_low (30-60 Hz) spectrum band requires a
|
|
192
|
+
Max 9 re-freeze of `LivePilot_Analyzer.amxd`. Deferred to the next
|
|
193
|
+
.amxd rebuild cycle. `get_mel_spectrum` provides finer-grained
|
|
194
|
+
perceptual bands as a workaround.
|
|
195
|
+
- **BUG #1b** — programmatic creation of arrangement automation
|
|
196
|
+
breakpoints. Live LOM limitation (per Ableton docs,
|
|
197
|
+
`Clip.automation_envelope` returns None for arrangement clips);
|
|
198
|
+
documented workaround patterns instead of a synthetic fix.
|
|
199
|
+
|
|
200
|
+
### Platform
|
|
201
|
+
|
|
202
|
+
- LivePilot_Analyzer.amxd ping version bytes patched 1.15.0 → 1.16.0
|
|
203
|
+
(in-place binary patch — source bumps don't auto-refresh the frozen
|
|
204
|
+
JS, lesson from two prior releases).
|
|
205
|
+
|
|
3
206
|
## 1.15.0-beta — Live 12.4 replace_sample native (April 21 2026)
|
|
4
207
|
|
|
5
208
|
First Live 12.4 beta support release. Adds a native fast path for
|
|
@@ -392,7 +595,7 @@ every bug now has a named regression guard in the test suite.
|
|
|
392
595
|
## 1.12.1 — Silent-failure fixes + slice classifier (April 18 2026)
|
|
393
596
|
|
|
394
597
|
Reconciles the "separate git stash" called out under v1.12.0's Known
|
|
395
|
-
limitations — the 2026-04-18
|
|
598
|
+
limitations — the 2026-04-18 minimal-groove session surfaced four
|
|
396
599
|
silent-failure bugs and the need for a drum-slice spectral classifier.
|
|
397
600
|
|
|
398
601
|
**+1 tool (397 → 398): `classify_simpler_slices`.** +43 regression
|
|
@@ -428,7 +631,7 @@ guards (pure-Python, run without a live Ableton).
|
|
|
428
631
|
FFT-based spectral analysis on a Simpler's slice boundaries, returns
|
|
429
632
|
each slice labeled as KICK / SNARE / HAT / ghost plus feature
|
|
430
633
|
breakdown (peak, rms, band %). Validated thresholds from the
|
|
431
|
-
2026-04-18
|
|
634
|
+
2026-04-18 minimal-groove session on "Break Ghosts 90 bpm":
|
|
432
635
|
- KICK: sub+low ≥ 45%, high < 40%
|
|
433
636
|
- HAT: high ≥ 70% AND mid < 25%
|
|
434
637
|
- SNARE: mid ≥ 25% AND high ≥ 40% AND peak ≥ 0.6
|
|
@@ -445,7 +648,7 @@ guards (pure-Python, run without a live Ableton).
|
|
|
445
648
|
|
|
446
649
|
### Documented bug entries
|
|
447
650
|
|
|
448
|
-
- `BUGS.md` gains a new **"F. 2026-04-18
|
|
651
|
+
- `BUGS.md` gains a new **"F. 2026-04-18 minimal-groove creative
|
|
449
652
|
session"** section: F1-F4 fixed here, F5-F7 scoped to v1.13+, F8
|
|
450
653
|
wontfix (workaround documented).
|
|
451
654
|
|
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
|
+
422 tools. 52 domains. Device atlas. Plan-aware Splice integration. Auto-composition. Spectral perception. Technique memory. Drum-rack pad builder. Live dead-device detection.
|
|
21
21
|
</p>
|
|
22
22
|
|
|
23
23
|
<br>
|
|
@@ -38,8 +38,8 @@ Most MCP servers are tool collections — they execute commands. LivePilot is an
|
|
|
38
38
|
| Layer | What it provides |
|
|
39
39
|
|-------|-----------------|
|
|
40
40
|
| **Deterministic Tools** | Direct control: transport, tracks, clips, notes, devices, scenes, mixing, arrangement, browser, automation |
|
|
41
|
-
| **Device Atlas** | Knowledge of every device in Ableton's library — 1305 devices indexed by name, URI, category, tag, and genre.
|
|
42
|
-
| **Sample Engine** | Three-source sample intelligence —
|
|
41
|
+
| **Device Atlas** | Knowledge of every device in Ableton's library — 1305 devices indexed by name, URI, category, tag, and genre. 107 enriched with sonic intelligence. 683 drum kits mapped |
|
|
42
|
+
| **Sample Engine** | Three-source sample intelligence — Ableton's browser, your filesystem, and Splice's catalog (plan-aware: Ableton Live plan uses daily quota, Sounds+/Creator uses credits, free samples bypass both). 6 fitness critics. 29 processing techniques. Collections, presets, preview-URL audition, HTTPS bridge scaffolding for Describe-a-Sound + Variations |
|
|
43
43
|
| **Spectral Perception** | Real-time ears via M4L — 8-band FFT, RMS/peak metering, Krumhansl-Schmuckler key detection, pitch tracking. Closes the feedback loop so the AI hears its own changes |
|
|
44
44
|
| **Technique Memory** | Persistent library of production decisions. Save a beat pattern, device chain, or mix template. Recall by mood, genre, or texture across sessions |
|
|
45
45
|
| **Creative Intelligence** | 12 engines that understand song identity, learn your taste, diagnose stuck sessions, generate creative options, and evaluate results before claiming success |
|
|
@@ -58,7 +58,7 @@ Most MCP servers are tool collections — they execute commands. LivePilot is an
|
|
|
58
58
|
│ │
|
|
59
59
|
│ Device Atlas 8-band FFT recall by mood, │
|
|
60
60
|
│ 1305 devices RMS / peak genre, texture │
|
|
61
|
-
│
|
|
61
|
+
│ 107 enriched pitch tracking 29 techniques │
|
|
62
62
|
│ 683 drum kits key detection replay into session │
|
|
63
63
|
│ │
|
|
64
64
|
│ Sample Engine Corpus Intelligence Taste Graph │
|
|
@@ -79,7 +79,7 @@ Most MCP servers are tool collections — they execute commands. LivePilot is an
|
|
|
79
79
|
│ └─────────────────┼──────────────────┘ │
|
|
80
80
|
│ ▼ │
|
|
81
81
|
│ ┌─────────────────┐ │
|
|
82
|
-
│ │
|
|
82
|
+
│ │ 422 MCP Tools │ │
|
|
83
83
|
│ │ 52 domains │ │
|
|
84
84
|
│ └────────┬────────┘ │
|
|
85
85
|
│ │ │
|
|
@@ -102,7 +102,7 @@ Most MCP servers are tool collections — they execute commands. LivePilot is an
|
|
|
102
102
|
|
|
103
103
|
**M4L Bridge** (`m4l_device/`) — Optional Max for Live Audio Effect on the master track. Provides deep LOM access through Max's LiveAPI that the ControlSurface API can't reach. UDP 9880 (M4L to server) carries spectral data and LiveAPI responses. OSC 9881 (server to M4L) sends commands. The 32 spectral/analyzer tools strictly require the bridge; device and sample tools that call the bridge also have graceful fallbacks, so core functionality works without it. Backed by 30 bridge commands for hidden parameters, Simpler internals, warp markers, display values, and Simpler warp / Compressor sidechain writes that live on child objects Python can't reach.
|
|
104
104
|
|
|
105
|
-
**Device Atlas** (`mcp_server/atlas/`) — In-memory indexed JSON database. 1305 devices with browser URIs,
|
|
105
|
+
**Device Atlas** (`mcp_server/atlas/`) — In-memory indexed JSON database. 1305 devices with browser URIs, 107 enriched with YAML sonic intelligence profiles (mood, genre, texture, recommended chains). 6 indexes: by_id, by_name, by_uri, by_category, by_tag, by_genre. The AI never hallucinates a device name or preset — it always resolves against the atlas first.
|
|
106
106
|
|
|
107
107
|
**Sample Engine** (`mcp_server/sample_engine/`) — Searches three sources simultaneously: BrowserSource (Ableton's library), SpliceSource (local Splice catalog via SQLite), FilesystemSource (user directories). Every result passes through a 6-critic fitness battery (key, tempo, spectral, genre, mood, technical). 29 processing techniques (Surgeon precision vs. Alchemist experimentation). Builds complete sample processing plans with warp, slice, and effect recommendations.
|
|
108
108
|
|
|
@@ -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 422 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
|
+
422 tools across 52 domains. Highlights below — [full catalog here](docs/manual/tool-catalog.md).
|
|
176
176
|
|
|
177
177
|
<br>
|
|
178
178
|
|
|
@@ -232,7 +232,7 @@ The atlas is an in-memory indexed database of Ableton's entire device library.
|
|
|
232
232
|
|
|
233
233
|
```
|
|
234
234
|
1305 devices total
|
|
235
|
-
|
|
235
|
+
107 enriched with sonic intelligence (mood, genre, texture, chains)
|
|
236
236
|
683 drum kits mapped with note assignments
|
|
237
237
|
6 indexes: by_id, by_name, by_uri, by_category, by_tag, by_genre
|
|
238
238
|
```
|
|
@@ -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 422 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 422 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.1"
|