livepilot 1.10.6 → 1.10.8
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 +168 -0
- package/README.md +12 -10
- package/bin/livepilot.js +168 -30
- package/installer/install.js +117 -11
- package/m4l_device/LivePilot_Analyzer.amxd +0 -0
- package/m4l_device/livepilot_bridge.js +215 -3
- package/mcp_server/__init__.py +1 -1
- package/mcp_server/atlas/__init__.py +132 -33
- package/mcp_server/atlas/tools.py +56 -15
- package/mcp_server/composer/layer_planner.py +27 -0
- package/mcp_server/composer/prompt_parser.py +15 -6
- package/mcp_server/connection.py +11 -3
- package/mcp_server/corpus/__init__.py +14 -4
- package/mcp_server/creative_constraints/tools.py +206 -33
- package/mcp_server/experiment/engine.py +7 -9
- package/mcp_server/hook_hunter/analyzer.py +62 -9
- package/mcp_server/hook_hunter/tools.py +60 -9
- package/mcp_server/m4l_bridge.py +68 -12
- package/mcp_server/musical_intelligence/detectors.py +32 -0
- package/mcp_server/performance_engine/tools.py +112 -29
- package/mcp_server/preview_studio/engine.py +89 -8
- package/mcp_server/preview_studio/tools.py +22 -6
- package/mcp_server/project_brain/automation_graph.py +71 -19
- package/mcp_server/project_brain/builder.py +2 -0
- package/mcp_server/project_brain/tools.py +55 -5
- package/mcp_server/reference_engine/profile_builder.py +129 -3
- package/mcp_server/reference_engine/tools.py +47 -6
- package/mcp_server/runtime/execution_router.py +66 -2
- package/mcp_server/runtime/mcp_dispatch.py +75 -3
- package/mcp_server/runtime/remote_commands.py +10 -2
- package/mcp_server/sample_engine/analyzer.py +131 -4
- package/mcp_server/sample_engine/critics.py +29 -8
- package/mcp_server/sample_engine/models.py +42 -4
- package/mcp_server/sample_engine/tools.py +48 -14
- package/mcp_server/semantic_moves/__init__.py +1 -0
- package/mcp_server/semantic_moves/compiler.py +9 -1
- package/mcp_server/semantic_moves/device_creation_compilers.py +47 -0
- package/mcp_server/semantic_moves/mix_compilers.py +170 -0
- package/mcp_server/semantic_moves/mix_moves.py +1 -1
- package/mcp_server/semantic_moves/models.py +5 -0
- package/mcp_server/semantic_moves/sound_design_compilers.py +22 -59
- package/mcp_server/semantic_moves/tools.py +15 -4
- package/mcp_server/semantic_moves/transition_compilers.py +12 -19
- package/mcp_server/server.py +75 -5
- package/mcp_server/services/singletons.py +68 -0
- package/mcp_server/session_continuity/models.py +4 -0
- package/mcp_server/session_continuity/tracker.py +14 -1
- package/mcp_server/song_brain/builder.py +110 -12
- package/mcp_server/song_brain/tools.py +77 -13
- package/mcp_server/sound_design/tools.py +112 -1
- package/mcp_server/splice_client/client.py +29 -8
- package/mcp_server/stuckness_detector/detector.py +90 -0
- package/mcp_server/stuckness_detector/tools.py +41 -0
- package/mcp_server/tools/_agent_os_engine/critics.py +24 -0
- package/mcp_server/tools/_composition_engine/__init__.py +2 -2
- package/mcp_server/tools/_composition_engine/harmony.py +90 -0
- package/mcp_server/tools/_composition_engine/sections.py +47 -4
- package/mcp_server/tools/_harmony_engine.py +52 -8
- package/mcp_server/tools/_research_engine.py +98 -19
- package/mcp_server/tools/_theory_engine.py +138 -9
- package/mcp_server/tools/agent_os.py +20 -3
- package/mcp_server/tools/analyzer.py +105 -6
- package/mcp_server/tools/clips.py +46 -1
- package/mcp_server/tools/composition.py +66 -23
- package/mcp_server/tools/devices.py +22 -1
- package/mcp_server/tools/harmony.py +115 -14
- package/mcp_server/tools/midi_io.py +23 -1
- package/mcp_server/tools/mixing.py +35 -1
- package/mcp_server/tools/motif.py +49 -3
- package/mcp_server/tools/research.py +24 -0
- package/mcp_server/tools/theory.py +108 -16
- package/mcp_server/tools/tracks.py +1 -1
- package/mcp_server/tools/transport.py +1 -1
- package/mcp_server/transition_engine/critics.py +18 -11
- package/mcp_server/translation_engine/tools.py +8 -4
- package/package.json +25 -3
- package/remote_script/LivePilot/__init__.py +77 -2
- package/remote_script/LivePilot/arrangement.py +12 -2
- package/remote_script/LivePilot/browser.py +16 -6
- package/remote_script/LivePilot/clips.py +69 -0
- package/remote_script/LivePilot/devices.py +10 -5
- package/remote_script/LivePilot/mixing.py +117 -0
- package/remote_script/LivePilot/notes.py +13 -2
- package/remote_script/LivePilot/router.py +13 -1
- package/remote_script/LivePilot/server.py +51 -13
- package/remote_script/LivePilot/version_detect.py +7 -4
- package/server.json +20 -0
- package/.claude-plugin/marketplace.json +0 -21
- package/.mcpbignore +0 -57
- package/AGENTS.md +0 -46
- package/CODE_OF_CONDUCT.md +0 -27
- package/CONTRIBUTING.md +0 -131
- package/SECURITY.md +0 -48
- package/livepilot/.Codex-plugin/plugin.json +0 -8
- package/livepilot/.claude-plugin/plugin.json +0 -8
- package/livepilot/agents/livepilot-producer/AGENT.md +0 -313
- package/livepilot/commands/arrange.md +0 -47
- package/livepilot/commands/beat.md +0 -77
- package/livepilot/commands/evaluate.md +0 -49
- package/livepilot/commands/memory.md +0 -22
- package/livepilot/commands/mix.md +0 -44
- package/livepilot/commands/perform.md +0 -42
- package/livepilot/commands/session.md +0 -13
- package/livepilot/commands/sounddesign.md +0 -43
- package/livepilot/skills/livepilot-arrangement/SKILL.md +0 -155
- package/livepilot/skills/livepilot-composition-engine/SKILL.md +0 -107
- package/livepilot/skills/livepilot-composition-engine/references/form-patterns.md +0 -97
- package/livepilot/skills/livepilot-composition-engine/references/transition-archetypes.md +0 -102
- package/livepilot/skills/livepilot-core/SKILL.md +0 -184
- package/livepilot/skills/livepilot-core/references/ableton-workflow-patterns.md +0 -831
- package/livepilot/skills/livepilot-core/references/automation-atlas.md +0 -272
- package/livepilot/skills/livepilot-core/references/device-atlas/00-index.md +0 -110
- package/livepilot/skills/livepilot-core/references/device-atlas/distortion-and-character.md +0 -687
- package/livepilot/skills/livepilot-core/references/device-atlas/drums-and-percussion.md +0 -753
- package/livepilot/skills/livepilot-core/references/device-atlas/dynamics-and-punch.md +0 -525
- package/livepilot/skills/livepilot-core/references/device-atlas/eq-and-filtering.md +0 -402
- package/livepilot/skills/livepilot-core/references/device-atlas/midi-tools.md +0 -963
- package/livepilot/skills/livepilot-core/references/device-atlas/movement-and-modulation.md +0 -874
- package/livepilot/skills/livepilot-core/references/device-atlas/space-and-depth.md +0 -571
- package/livepilot/skills/livepilot-core/references/device-atlas/spectral-and-weird.md +0 -714
- package/livepilot/skills/livepilot-core/references/device-atlas/synths-native.md +0 -953
- package/livepilot/skills/livepilot-core/references/device-knowledge/00-index.md +0 -34
- package/livepilot/skills/livepilot-core/references/device-knowledge/automation-as-music.md +0 -204
- package/livepilot/skills/livepilot-core/references/device-knowledge/chains-genre.md +0 -173
- package/livepilot/skills/livepilot-core/references/device-knowledge/creative-thinking.md +0 -211
- package/livepilot/skills/livepilot-core/references/device-knowledge/effects-distortion.md +0 -188
- package/livepilot/skills/livepilot-core/references/device-knowledge/effects-space.md +0 -162
- package/livepilot/skills/livepilot-core/references/device-knowledge/effects-spectral.md +0 -229
- package/livepilot/skills/livepilot-core/references/device-knowledge/instruments-synths.md +0 -243
- package/livepilot/skills/livepilot-core/references/m4l-devices.md +0 -352
- package/livepilot/skills/livepilot-core/references/memory-guide.md +0 -107
- package/livepilot/skills/livepilot-core/references/midi-recipes.md +0 -402
- package/livepilot/skills/livepilot-core/references/mixing-patterns.md +0 -578
- package/livepilot/skills/livepilot-core/references/overview.md +0 -290
- package/livepilot/skills/livepilot-core/references/sample-manipulation.md +0 -724
- package/livepilot/skills/livepilot-core/references/sound-design-deep.md +0 -140
- package/livepilot/skills/livepilot-core/references/sound-design.md +0 -393
- package/livepilot/skills/livepilot-devices/SKILL.md +0 -169
- package/livepilot/skills/livepilot-evaluation/SKILL.md +0 -156
- package/livepilot/skills/livepilot-evaluation/references/capability-modes.md +0 -118
- package/livepilot/skills/livepilot-evaluation/references/evaluation-contracts.md +0 -121
- package/livepilot/skills/livepilot-evaluation/references/memory-promotion.md +0 -110
- package/livepilot/skills/livepilot-mix-engine/SKILL.md +0 -123
- package/livepilot/skills/livepilot-mix-engine/references/mix-critics.md +0 -143
- package/livepilot/skills/livepilot-mix-engine/references/mix-moves.md +0 -105
- package/livepilot/skills/livepilot-mixing/SKILL.md +0 -157
- package/livepilot/skills/livepilot-notes/SKILL.md +0 -130
- package/livepilot/skills/livepilot-performance-engine/SKILL.md +0 -122
- package/livepilot/skills/livepilot-performance-engine/references/performance-safety.md +0 -98
- package/livepilot/skills/livepilot-release/SKILL.md +0 -130
- package/livepilot/skills/livepilot-sample-engine/SKILL.md +0 -105
- package/livepilot/skills/livepilot-sample-engine/references/sample-critics.md +0 -87
- package/livepilot/skills/livepilot-sample-engine/references/sample-philosophy.md +0 -51
- package/livepilot/skills/livepilot-sample-engine/references/sample-techniques.md +0 -131
- package/livepilot/skills/livepilot-sound-design-engine/SKILL.md +0 -168
- package/livepilot/skills/livepilot-sound-design-engine/references/patch-model.md +0 -119
- package/livepilot/skills/livepilot-sound-design-engine/references/sound-design-critics.md +0 -118
- package/livepilot/skills/livepilot-wonder/SKILL.md +0 -79
- package/m4l_device/LivePilot_Analyzer.maxpat +0 -2705
- package/manifest.json +0 -91
- package/mcp_server/splice_client/protos/app_pb2.pyi +0 -1153
- package/scripts/generate_tool_catalog.py +0 -131
- package/scripts/sync_metadata.py +0 -132
|
@@ -1,290 +0,0 @@
|
|
|
1
|
-
# LivePilot v1.10.6 — Architecture & Tool Reference
|
|
2
|
-
|
|
3
|
-
Agentic production system for Ableton Live 12. 320 tools across 43 domains. Device atlas (1305 devices, 81 enriched), spectral perception (M4L analyzer), technique memory, automation intelligence (16 curve types, 15 recipes), music theory (Krumhansl-Schmuckler, species counterpoint), generative algorithms (Euclidean rhythm, tintinnabuli, phase shift, additive process), neo-Riemannian harmony (PRL transforms, Tonnetz), MIDI file I/O, Splice online catalog search and download via gRPC (v1.10.6 unblocked 19,690+ catalog hits previously inaccessible).
|
|
4
|
-
|
|
5
|
-
## Architecture
|
|
6
|
-
|
|
7
|
-
```
|
|
8
|
-
AI Client ──MCP──► FastMCP Server ──TCP/9878──► Remote Script (inside Ableton)
|
|
9
|
-
(validates) (executes on main thread)
|
|
10
|
-
│
|
|
11
|
-
├── Device Atlas (1305 devices, 81 enriched with sonic intelligence)
|
|
12
|
-
├── M4L Analyzer ──UDP/OSC──► LivePilot_Analyzer.amxd
|
|
13
|
-
└── Technique Memory (~/.livepilot/memory/)
|
|
14
|
-
```
|
|
15
|
-
|
|
16
|
-
- **MCP Server** validates inputs (ranges, types) before sending
|
|
17
|
-
- **Remote Script** runs inside Ableton's Python environment, executes on the main thread via `schedule_message`
|
|
18
|
-
- **Device Atlas** provides structured knowledge of Ableton's device library — real names, real URIs, sonic descriptions
|
|
19
|
-
- **M4L Analyzer** reads the master bus in real-time: 8-band spectrum, RMS/peak, pitch tracking, Krumhansl-Schmuckler key detection
|
|
20
|
-
- **Technique Memory** persists production decisions across sessions as typed, searchable, replayable data structures
|
|
21
|
-
- **Protocol**: JSON over TCP, newline-delimited. Every command gets a response.
|
|
22
|
-
- **Thread safety**: All Live Object Model (LOM) access happens on Ableton's main thread
|
|
23
|
-
|
|
24
|
-
## The Agentic Difference
|
|
25
|
-
|
|
26
|
-
A flat tool list lets the AI press buttons. LivePilot's three layers give it context:
|
|
27
|
-
|
|
28
|
-
1. **Before loading a device** — the agent consults the atlas to find a real preset, not a hallucinated name
|
|
29
|
-
2. **Before writing harmonic content** — the agent reads the detected key from the analyzer
|
|
30
|
-
3. **Before making creative decisions** — the agent checks technique memory for the user's style preferences
|
|
31
|
-
4. **After every mixing move** — the agent reads the spectrum to verify the result
|
|
32
|
-
|
|
33
|
-
This turns "set EQ band 3 to -4 dB" into "cut 400 Hz by 4 dB, then read the spectrum to confirm the mud is actually reduced."
|
|
34
|
-
|
|
35
|
-
## The 320 Tools — What Each One Does
|
|
36
|
-
|
|
37
|
-
### Transport (12) — Playback, tempo, global state, diagnostics
|
|
38
|
-
|
|
39
|
-
| Tool | What it does | Key params |
|
|
40
|
-
|------|-------------|------------|
|
|
41
|
-
| `get_session_info` | Returns tempo, time sig, playing state, track count, scene count, song length | — |
|
|
42
|
-
| `set_tempo` | Changes BPM | `tempo` (20-999) |
|
|
43
|
-
| `set_time_signature` | Changes time signature | `numerator` (1-99), `denominator` (1,2,4,8,16) |
|
|
44
|
-
| `start_playback` | Starts from current position | — |
|
|
45
|
-
| `stop_playback` | Stops playback | — |
|
|
46
|
-
| `continue_playback` | Resumes from where it stopped | — |
|
|
47
|
-
| `toggle_metronome` | Toggles click on/off | — |
|
|
48
|
-
| `set_session_loop` | Sets loop region | `loop_start` (beats), `loop_length` (beats) |
|
|
49
|
-
| `undo` | Undoes last action | — |
|
|
50
|
-
| `redo` | Redoes last undone action | — |
|
|
51
|
-
| `get_recent_actions` | Returns log of recent commands sent to Ableton (newest first) | `limit` (1-50, default 20) |
|
|
52
|
-
| `get_session_diagnostics` | Analyzes session for issues: armed tracks, solo leftovers, unnamed tracks, empty clips | — |
|
|
53
|
-
|
|
54
|
-
### Tracks (14) — Create, delete, configure, group tracks
|
|
55
|
-
|
|
56
|
-
| Tool | What it does | Key params |
|
|
57
|
-
|------|-------------|------------|
|
|
58
|
-
| `get_track_info` | Returns clips, devices, mixer state, group/fold info for one track | `track_index` (0-based) |
|
|
59
|
-
| `create_midi_track` | Creates a new MIDI track | `index` (-1=end), `name`, `color` (0-69) |
|
|
60
|
-
| `create_audio_track` | Creates a new audio track | `index` (-1=end), `name`, `color` (0-69) |
|
|
61
|
-
| `create_return_track` | Creates a new return track | — |
|
|
62
|
-
| `delete_track` | Deletes a track | `track_index` |
|
|
63
|
-
| `duplicate_track` | Duplicates track with all contents | `track_index` |
|
|
64
|
-
| `set_track_name` | Renames a track | `track_index`, `name` |
|
|
65
|
-
| `set_track_color` | Sets track color | `track_index`, `color_index` (0-69) |
|
|
66
|
-
| `set_track_mute` | Mutes/unmutes | `track_index`, `muted` (bool) |
|
|
67
|
-
| `set_track_solo` | Solos/unsolos | `track_index`, `soloed` (bool) |
|
|
68
|
-
| `set_track_arm` | Arms/disarms for recording | `track_index`, `armed` (bool) |
|
|
69
|
-
| `stop_track_clips` | Stops all playing clips on track | `track_index` |
|
|
70
|
-
| `set_group_fold` | Folds/unfolds a group track | `track_index`, `folded` (bool) |
|
|
71
|
-
| `set_track_input_monitoring` | Sets input monitoring state | `track_index`, `state` (0=In, 1=Auto, 2=Off) |
|
|
72
|
-
|
|
73
|
-
### Clips (11) — Clip lifecycle, properties, warp
|
|
74
|
-
|
|
75
|
-
| Tool | What it does | Key params |
|
|
76
|
-
|------|-------------|------------|
|
|
77
|
-
| `get_clip_info` | Returns clip name, length, loop settings, playing state, is_midi/is_audio, warp info | `track_index`, `clip_index` |
|
|
78
|
-
| `create_clip` | Creates empty MIDI clip | `track_index`, `clip_index`, `length` (beats) |
|
|
79
|
-
| `delete_clip` | Removes a clip from its slot | `track_index`, `clip_index` |
|
|
80
|
-
| `duplicate_clip` | Copies clip to next slot | `track_index`, `clip_index` |
|
|
81
|
-
| `fire_clip` | Launches a clip | `track_index`, `clip_index` |
|
|
82
|
-
| `stop_clip` | Stops a playing clip | `track_index`, `clip_index` |
|
|
83
|
-
| `set_clip_name` | Renames a clip | `track_index`, `clip_index`, `name` |
|
|
84
|
-
| `set_clip_color` | Sets clip color | `track_index`, `clip_index`, `color_index` (0-69) |
|
|
85
|
-
| `set_clip_loop` | Configures loop region | `track_index`, `clip_index`, `loop_start`, `loop_end`, `looping` |
|
|
86
|
-
| `set_clip_launch` | Sets launch mode and quantization | `track_index`, `clip_index`, `launch_mode`, `quantization` |
|
|
87
|
-
| `set_clip_warp_mode` | Sets warp mode for audio clips | `track_index`, `clip_index`, `mode` (0=Beats,1=Tones,2=Texture,3=Re-Pitch,4=Complex,6=Complex Pro) |
|
|
88
|
-
|
|
89
|
-
### Notes (8) — MIDI note manipulation (Live 12 API)
|
|
90
|
-
|
|
91
|
-
| Tool | What it does | Key params |
|
|
92
|
-
|------|-------------|------------|
|
|
93
|
-
| `add_notes` | Adds MIDI notes to a clip | `track_index`, `clip_index`, `notes` (array) |
|
|
94
|
-
| `get_notes` | Reads all notes in a region | `track_index`, `clip_index`, `start_time`, `length` |
|
|
95
|
-
| `remove_notes` | Removes notes in a region | `track_index`, `clip_index`, `start_time`, `pitch_start`, etc. |
|
|
96
|
-
| `remove_notes_by_id` | Removes specific notes by ID | `track_index`, `clip_index`, `note_ids` |
|
|
97
|
-
| `modify_notes` | Changes existing notes (pitch, time, velocity, probability) | `track_index`, `clip_index`, `modifications` |
|
|
98
|
-
| `duplicate_notes` | Copies notes in a region | `track_index`, `clip_index`, region params |
|
|
99
|
-
| `transpose_notes` | Shifts pitch of notes in a region | `track_index`, `clip_index`, `semitones`, region params |
|
|
100
|
-
| `quantize_clip` | Snaps notes to grid | `track_index`, `clip_index`, `grid` (int 0-8: 0=None,1=1/4,2=1/8,5=1/16,8=1/32), `amount` (0-1) |
|
|
101
|
-
|
|
102
|
-
**Note format** (for `add_notes`):
|
|
103
|
-
```json
|
|
104
|
-
{"pitch": 60, "start_time": 0.0, "duration": 0.5, "velocity": 100, "mute": false}
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
**Extended note fields** (returned by `get_notes`):
|
|
108
|
-
- `note_id` — unique identifier for modify/remove operations
|
|
109
|
-
- `probability` — 0.0-1.0, per-note trigger probability (Live 12)
|
|
110
|
-
- `velocity_deviation` — -127.0 to 127.0
|
|
111
|
-
- `release_velocity` — 0.0-127.0
|
|
112
|
-
|
|
113
|
-
### Devices (15) — Instruments, effects, racks, 12.3+ device insertion
|
|
114
|
-
|
|
115
|
-
| Tool | What it does | Key params |
|
|
116
|
-
|------|-------------|------------|
|
|
117
|
-
| `get_device_info` | Returns device name, class, active state, all parameters | `track_index`, `device_index` |
|
|
118
|
-
| `get_device_parameters` | Lists all parameters with values, ranges, and `display_value` (12.2+) | `track_index`, `device_index` |
|
|
119
|
-
| `set_device_parameter` | Sets a single parameter, returns `display_value` on 12.2+ | `track_index`, `device_index`, `parameter_index`, `value` |
|
|
120
|
-
| `batch_set_parameters` | Sets multiple parameters at once | `track_index`, `device_index`, `parameters` (array) |
|
|
121
|
-
| `toggle_device` | Enables/disables a device | `track_index`, `device_index` |
|
|
122
|
-
| `delete_device` | Removes a device from the chain | `track_index`, `device_index` |
|
|
123
|
-
| `load_device_by_uri` | Loads a device by browser URI | `track_index`, `uri` |
|
|
124
|
-
| `find_and_load_device` | Searches browser and loads first match (uses `insert_device` fast path on 12.3+) | `track_index`, `name` |
|
|
125
|
-
| `insert_device` | **12.3+** Insert native device by name — 10x faster than browser. Supports chain insertion for drum racks | `track_index`, `device_name`, `position`, `device_index`, `chain_index` |
|
|
126
|
-
| `insert_rack_chain` | **12.3+** Add a chain to Instrument/Audio Effect/Drum Rack | `track_index`, `device_index`, `position` |
|
|
127
|
-
| `set_drum_chain_note` | **12.3+** Assign MIDI note to a Drum Rack chain (C1=36 kick, D1=38 snare) | `track_index`, `device_index`, `chain_index`, `note` |
|
|
128
|
-
| `get_rack_chains` | Lists chains in an Instrument/Effect Rack | `track_index`, `device_index` |
|
|
129
|
-
| `set_simpler_playback_mode` | Switches Simpler mode (Classic/One-Shot/Slice) | `track_index`, `device_index`, `playback_mode` (0/1/2), `slice_by`, `sensitivity` |
|
|
130
|
-
| `set_chain_volume` | Sets volume of a rack chain | `track_index`, `device_index`, `chain_index`, `volume` |
|
|
131
|
-
| `get_device_presets` | Lists presets for a device (audio effects, instruments, MIDI effects) | `device_name` |
|
|
132
|
-
|
|
133
|
-
### Scenes (8) — Scene management
|
|
134
|
-
|
|
135
|
-
| Tool | What it does | Key params |
|
|
136
|
-
|------|-------------|------------|
|
|
137
|
-
| `get_scenes_info` | Lists all scenes with names, tempo, and color | — |
|
|
138
|
-
| `create_scene` | Creates a new scene | `index` (-1=end) |
|
|
139
|
-
| `delete_scene` | Deletes a scene | `scene_index` |
|
|
140
|
-
| `duplicate_scene` | Duplicates a scene | `scene_index` |
|
|
141
|
-
| `fire_scene` | Launches all clips in a scene | `scene_index` |
|
|
142
|
-
| `set_scene_name` | Renames a scene | `scene_index`, `name` |
|
|
143
|
-
| `set_scene_color` | Sets scene color | `scene_index`, `color_index` (0-69) |
|
|
144
|
-
| `set_scene_tempo` | Sets tempo that triggers when scene fires | `scene_index`, `tempo` (20-999 BPM) |
|
|
145
|
-
|
|
146
|
-
### Mixing (11) — Levels, panning, routing, metering
|
|
147
|
-
|
|
148
|
-
| Tool | What it does | Key params |
|
|
149
|
-
|------|-------------|------------|
|
|
150
|
-
| `set_track_volume` | Sets track volume | `track_index`, `volume` (0.0-1.0, where 0.85≈0dB) |
|
|
151
|
-
| `set_track_pan` | Sets stereo position | `track_index`, `pan` (-1.0 left to 1.0 right) |
|
|
152
|
-
| `set_track_send` | Sets send level to return track | `track_index`, `send_index`, `value` (0.0-1.0) |
|
|
153
|
-
| `get_return_tracks` | Lists all return tracks | — |
|
|
154
|
-
| `get_master_track` | Returns master track info | — |
|
|
155
|
-
| `set_master_volume` | Sets master output level | `volume` (0.0-1.0) |
|
|
156
|
-
| `get_track_routing` | Returns input/output routing config | `track_index` |
|
|
157
|
-
| `set_track_routing` | Configures input/output routing | `track_index`, routing params |
|
|
158
|
-
| `get_track_meters` | Returns real-time output levels for a track | `track_index` |
|
|
159
|
-
| `get_master_meters` | Returns real-time output levels for the master | — |
|
|
160
|
-
| `get_mix_snapshot` | Returns all levels, panning, routing, mute/solo state for entire session | — |
|
|
161
|
-
|
|
162
|
-
### Browser (4) — Finding and loading presets/devices
|
|
163
|
-
|
|
164
|
-
| Tool | What it does | Key params |
|
|
165
|
-
|------|-------------|------------|
|
|
166
|
-
| `get_browser_tree` | Returns top-level browser categories | — |
|
|
167
|
-
| `get_browser_items` | Lists items in a browser path | `path` |
|
|
168
|
-
| `search_browser` | Searches the browser | `query` |
|
|
169
|
-
| `load_browser_item` | Loads a browser item onto a track — **`uri` MUST come from `search_browser` results, NEVER invented** | `track_index`, `uri` |
|
|
170
|
-
|
|
171
|
-
### Arrangement (20) — Timeline, recording, cue points, arrangement notes
|
|
172
|
-
|
|
173
|
-
| Tool | What it does | Key params |
|
|
174
|
-
|------|-------------|------------|
|
|
175
|
-
| `get_arrangement_clips` | Lists clips in arrangement view | `track_index` |
|
|
176
|
-
| `create_arrangement_clip` | Duplicates session clip into arrangement at a beat position | `track_index`, `clip_slot_index`, `start_time`, `length` |
|
|
177
|
-
| `create_native_arrangement_clip` | **12.1.10+** Creates native arrangement clip with full automation envelope support | `track_index`, `start_time`, `length`, `name`, `color_index` |
|
|
178
|
-
| `add_arrangement_notes` | Adds MIDI notes to an arrangement clip | `track_index`, `clip_index`, `notes` |
|
|
179
|
-
| `get_arrangement_notes` | Reads notes from an arrangement clip | `track_index`, `clip_index`, region params |
|
|
180
|
-
| `remove_arrangement_notes` | Removes notes in a region of an arrangement clip | `track_index`, `clip_index`, region params |
|
|
181
|
-
| `remove_arrangement_notes_by_id` | Removes specific notes by ID | `track_index`, `clip_index`, `note_ids` |
|
|
182
|
-
| `modify_arrangement_notes` | Modifies notes by ID (pitch, time, velocity, probability) | `track_index`, `clip_index`, `modifications` |
|
|
183
|
-
| `duplicate_arrangement_notes` | Copies notes by ID with optional time offset | `track_index`, `clip_index`, `note_ids`, `time_offset` |
|
|
184
|
-
| `transpose_arrangement_notes` | Transposes notes in an arrangement clip | `track_index`, `clip_index`, `semitones`, region params |
|
|
185
|
-
| `set_arrangement_clip_name` | Renames an arrangement clip | `track_index`, `clip_index`, `name` |
|
|
186
|
-
| `set_arrangement_automation` | Writes automation envelope to an arrangement clip | `track_index`, `clip_index`, `parameter_type`, `points` |
|
|
187
|
-
| `back_to_arranger` | Switches playback from session back to arrangement | — |
|
|
188
|
-
| `jump_to_time` | Moves playhead to a beat position | `beat_time` (beats) |
|
|
189
|
-
| `capture_midi` | Captures recently played MIDI | — |
|
|
190
|
-
| `start_recording` | Starts recording (session or arrangement) | `arrangement` (bool) |
|
|
191
|
-
| `stop_recording` | Stops all recording | — |
|
|
192
|
-
| `get_cue_points` | Lists all cue markers | — |
|
|
193
|
-
| `jump_to_cue` | Jumps to a cue point by index | `cue_index` |
|
|
194
|
-
| `toggle_cue_point` | Creates/removes cue point at current position | — |
|
|
195
|
-
|
|
196
|
-
### Memory (8) — Technique library persistence
|
|
197
|
-
|
|
198
|
-
| Tool | What it does | Key params |
|
|
199
|
-
|------|-------------|------------|
|
|
200
|
-
| `memory_learn` | Saves a technique with stylistic qualities | `name`, `type`, `qualities`, `payload`, `tags` |
|
|
201
|
-
| `memory_recall` | Searches library by text and filters | `query`, `type`, `tags`, `limit` |
|
|
202
|
-
| `memory_get` | Fetches full technique including payload | `technique_id` |
|
|
203
|
-
| `memory_replay` | Returns technique with replay plan for agent | `technique_id`, `adapt` (bool) |
|
|
204
|
-
| `memory_list` | Browses library with filtering/sorting | `type`, `tags`, `sort_by`, `limit` |
|
|
205
|
-
| `memory_favorite` | Stars and/or rates a technique | `technique_id`, `favorite`, `rating` (0-5) |
|
|
206
|
-
| `memory_update` | Updates name, tags, or qualities | `technique_id`, `name`, `tags`, `qualities` |
|
|
207
|
-
| `memory_delete` | Removes technique (backs up first) | `technique_id` |
|
|
208
|
-
|
|
209
|
-
### Analyzer (30) — Real-time DSP analysis (requires LivePilot Analyzer M4L device on master track)
|
|
210
|
-
|
|
211
|
-
| Tool | What it does | Key params |
|
|
212
|
-
|------|-------------|------------|
|
|
213
|
-
| `get_master_spectrum` | 8-band spectral analysis of master output | — |
|
|
214
|
-
| `get_master_rms` | True RMS and peak amplitude levels | — |
|
|
215
|
-
| `get_detected_key` | Detects musical key (Krumhansl-Schmuckler) | — |
|
|
216
|
-
| `get_hidden_parameters` | All device parameters including hidden ones | `track_index`, `device_index` |
|
|
217
|
-
| `get_automation_state` | Parameters with active automation | `track_index`, `device_index` |
|
|
218
|
-
| `walk_device_tree` | Recursive device tree (racks, drum pads, 6 levels) | `track_index`, `device_index` |
|
|
219
|
-
| `get_clip_file_path` | Audio file path on disk | `track_index`, `clip_index` |
|
|
220
|
-
| `replace_simpler_sample` | Replace sample in Simpler | `track_index`, `device_index`, `file_path` |
|
|
221
|
-
| `load_sample_to_simpler` | Bootstrap Simpler and load sample (full workflow) | `track_index`, `file_path` |
|
|
222
|
-
| `get_simpler_slices` | Slice points from Simpler | `track_index`, `device_index` |
|
|
223
|
-
| `crop_simpler` | Crop sample to active region | `track_index`, `device_index` |
|
|
224
|
-
| `reverse_simpler` | Reverse sample | `track_index`, `device_index` |
|
|
225
|
-
| `warp_simpler` | Warp sample to N beats | `track_index`, `device_index`, `beats` |
|
|
226
|
-
| `get_warp_markers` | All warp markers (beat_time + sample_time) | `track_index`, `clip_index` |
|
|
227
|
-
| `add_warp_marker` | Add warp marker | `track_index`, `clip_index`, `beat_time` |
|
|
228
|
-
| `move_warp_marker` | Move warp marker | `track_index`, `clip_index`, `old_beat`, `new_beat` |
|
|
229
|
-
| `remove_warp_marker` | Remove warp marker | `track_index`, `clip_index`, `beat_time` |
|
|
230
|
-
| `scrub_clip` | Preview audio at position | `track_index`, `clip_index`, `beat_time` |
|
|
231
|
-
| `stop_scrub` | Stop preview | `track_index`, `clip_index` |
|
|
232
|
-
| `get_display_values` | Human-readable parameter values ("440 Hz", "-6 dB") | `track_index`, `device_index` |
|
|
233
|
-
|
|
234
|
-
### Automation (8) — Clip automation CRUD + intelligent curve generation
|
|
235
|
-
|
|
236
|
-
| Tool | What it does | Key params |
|
|
237
|
-
|------|-------------|------------|
|
|
238
|
-
| `get_clip_automation` | Lists all automation envelopes on a session clip | `track_index`, `clip_index` |
|
|
239
|
-
| `set_clip_automation` | Writes automation points to a clip envelope | `track_index`, `clip_index`, `parameter_type`, `points` |
|
|
240
|
-
| `clear_clip_automation` | Clears automation envelopes (specific or all) | `track_index`, `clip_index`, `parameter_type` (optional) |
|
|
241
|
-
| `apply_automation_shape` | Generates and applies a curve to a clip in one call | `track_index`, `clip_index`, `parameter_type`, `curve_type`, `duration`, `density` |
|
|
242
|
-
| `apply_automation_recipe` | Applies a named recipe (filter_sweep_up, dub_throw, etc.) | `track_index`, `clip_index`, `parameter_type`, `recipe`, `duration` |
|
|
243
|
-
| `get_automation_recipes` | Lists all 15 recipes with descriptions and targets | — |
|
|
244
|
-
| `generate_automation_curve` | Previews curve points without writing them | `curve_type`, `duration`, `density`, curve-specific params |
|
|
245
|
-
| `analyze_for_automation` | Spectral analysis + device-aware automation suggestions | `track_index` |
|
|
246
|
-
|
|
247
|
-
**16 curve types:** linear, exponential, logarithmic, s_curve, sine, sawtooth, spike, square, steps, perlin, brownian, spring, bezier, easing, euclidean, stochastic
|
|
248
|
-
|
|
249
|
-
**15 recipes:** filter_sweep_up, filter_sweep_down, dub_throw, tape_stop, build_rise, sidechain_pump, fade_in, fade_out, tremolo, auto_pan, stutter, breathing, washout, vinyl_crackle, stereo_narrow
|
|
250
|
-
|
|
251
|
-
### Theory (7) — Built-in music theory analysis (zero dependencies)
|
|
252
|
-
|
|
253
|
-
| Tool | What it does | Key params |
|
|
254
|
-
|------|-------------|------------|
|
|
255
|
-
| `analyze_harmony` | Chord-by-chord Roman numeral analysis of a clip | `track_index`, `clip_index`, `key` (optional) |
|
|
256
|
-
| `suggest_next_chord` | Suggests theory-valid chord continuations | `track_index`, `clip_index`, `style` (common_practice/jazz/modal/pop) |
|
|
257
|
-
| `detect_theory_issues` | Finds parallel fifths/octaves, out-of-key notes, voice crossing | `track_index`, `clip_index`, `strict` (bool) |
|
|
258
|
-
| `identify_scale` | Deep scale/mode identification with confidence ranking | `track_index`, `clip_index` |
|
|
259
|
-
| `harmonize_melody` | Generates 2 or 4-voice SATB harmonization | `track_index`, `clip_index`, `voices` (2 or 4) |
|
|
260
|
-
| `generate_countermelody` | Species counterpoint against a melody | `track_index`, `clip_index`, `species` (1 or 2) |
|
|
261
|
-
| `transpose_smart` | Diatonic or chromatic transposition to a new key | `track_index`, `clip_index`, `target_key`, `mode` (diatonic/chromatic) |
|
|
262
|
-
|
|
263
|
-
**Built-in** — zero external dependencies, works on every LivePilot install.
|
|
264
|
-
|
|
265
|
-
## Units & Ranges Quick Reference
|
|
266
|
-
|
|
267
|
-
| Concept | Unit/Range | Notes |
|
|
268
|
-
|---------|-----------|-------|
|
|
269
|
-
| Tempo | 20-999 BPM | — |
|
|
270
|
-
| Volume | 0.0-1.0 | 0.85 ≈ 0dB, 0.0 = -inf |
|
|
271
|
-
| Pan | -1.0 to 1.0 | -1 = full left, 0 = center |
|
|
272
|
-
| Time/Position | Beats (float) | 1.0 = quarter note at any tempo |
|
|
273
|
-
| Clip length | Beats (float) | 4.0 = 1 bar at 4/4 |
|
|
274
|
-
| Pitch | 0-127 (MIDI) | 60 = C3 (middle C) |
|
|
275
|
-
| Velocity | 1-127 | 1 = softest, 127 = loudest |
|
|
276
|
-
| Probability | 0.0-1.0 | 1.0 = always triggers |
|
|
277
|
-
| Color index | 0-69 | Ableton's fixed palette |
|
|
278
|
-
| Track index | 0-based | Negative for return tracks (-1=A, -2=B), -1000 for master |
|
|
279
|
-
| Grid (quantize) | Integer enum (0-8) | 0=None, 1=1/4, 2=1/8, 3=1/8T, 4=1/8+T, 5=1/16, 6=1/16T, 7=1/16+T, 8=1/32 |
|
|
280
|
-
| Time signature | num/denom | denom must be power of 2 |
|
|
281
|
-
|
|
282
|
-
## Common Patterns
|
|
283
|
-
|
|
284
|
-
**"Read before write"** — Always `get_session_info` or `get_track_info` before making changes.
|
|
285
|
-
|
|
286
|
-
**"Verify after write"** — Re-read state after mutations to confirm the change took effect.
|
|
287
|
-
|
|
288
|
-
**"Undo is your safety net"** — The `undo` tool reverts the last operation. Mention it to users.
|
|
289
|
-
|
|
290
|
-
**"One step at a time"** — Don't batch unrelated operations. Verify between steps.
|