livepilot 1.17.1 → 1.17.3

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.
@@ -214,11 +214,24 @@ async def get_master_spectrum(
214
214
  samples: int = 0,
215
215
  sub_detail: bool = False,
216
216
  ) -> dict:
217
- """Get 8-band frequency analysis of the master bus.
218
-
219
- Returns band energies: sub (20-60Hz), low (60-200Hz), low_mid (200-500Hz),
220
- mid (500-2kHz), high_mid (2-4kHz), high (4-8kHz), presence (8-12kHz),
221
- air (12-20kHz). Values 0.0-1.0.
217
+ """Get 9-band frequency analysis of the master bus.
218
+
219
+ Returns band energies (fffb~ center frequencies shown in parens):
220
+ sub_low 20-60 Hz (~35 Hz center) kick fundamentals, Villalobos subs
221
+ sub 60-120 Hz (~85 Hz) 808s, sub-bass body
222
+ low 120-250 Hz (~175 Hz) — bass body, warmth
223
+ low_mid 250-500 Hz (~350 Hz) — mud zone, male vocal lows
224
+ mid 500-1 kHz (~700 Hz) — vocal presence, snare body
225
+ high_mid 1-2 kHz (~1.4 kHz) — consonants, pick attack
226
+ high 2-4 kHz (~2.8 kHz) — presence, vocal intelligibility
227
+ presence 4-8 kHz (~5.6 kHz) — cymbal definition, air of breath
228
+ air 8-20 kHz (~12 kHz) — shimmer, sparkle
229
+ Values 0.0-1.0.
230
+
231
+ Older .amxd builds (pre-v1.16) emit the legacy 8-band layout without the
232
+ explicit `sub_low` split — the server auto-detects band count from the OSC
233
+ payload and picks the right name set. Re-freeze the Max device to get the
234
+ 9-band resolution.
222
235
 
223
236
  Also returns detected key/scale if enough audio has been analyzed.
224
237
  Requires LivePilot Analyzer on master track.
@@ -242,7 +255,7 @@ async def get_master_spectrum(
242
255
  Pass `sub_detail=True` to attach a `sub_detail` dict with three
243
256
  finer buckets: `sub_deep` (20-45 Hz), `sub_mid` (45-60 Hz),
244
257
  `sub_high` (60-80 Hz). Derived from the FluCoMa mel spectrum
245
- (40 bands) rather than the 8-band cache, so it requires FluCoMa
258
+ (40 bands) rather than the 9-band cache, so it requires FluCoMa
246
259
  to be active. When FluCoMa is unavailable, sub_detail is omitted
247
260
  with a `sub_detail_warning` field explaining why.
248
261
  """
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "livepilot",
3
- "version": "1.17.1",
3
+ "version": "1.17.3",
4
4
  "mcpName": "io.github.dreamrec/livepilot",
5
- "description": "Agentic production system for Ableton Live 12 — 426 tools, 52 domains. Device atlas (1305 devices), sample engine (Splice + browser + filesystem), auto-composition, spectral perception, technique memory, creative intelligence (12 engines)",
5
+ "description": "Agentic production system for Ableton Live 12 — 427 tools, 52 domains. Device atlas (1305 devices), sample engine (Splice + browser + filesystem), auto-composition, spectral perception, technique memory, creative intelligence (12 engines)",
6
6
  "author": "Pilot Studio",
7
7
  "license": "BSL-1.1",
8
8
  "type": "commonjs",
@@ -5,7 +5,7 @@ Entry point for the ControlSurface. Ableton calls create_instance(c_instance)
5
5
  when this script is selected in Preferences > Link, Tempo & MIDI.
6
6
  """
7
7
 
8
- __version__ = "1.17.1"
8
+ __version__ = "1.17.3"
9
9
 
10
10
  from _Framework.ControlSurface import ControlSurface
11
11
  from . import router
package/requirements.txt CHANGED
@@ -2,18 +2,18 @@
2
2
  numpy>=1.24.0
3
3
  fastmcp>=3.0.0,<3.3.0 # pinned upper bound — _get_all_tools() accesses private internals
4
4
  midiutil>=1.2.1
5
- pretty_midi>=0.2.10
5
+ pretty_midi>=0.2.11
6
6
  # v1.8 Perception Layer (offline analysis)
7
- pyloudnorm>=0.1.0
8
- soundfile>=0.12.0
9
- scipy>=1.11.0
7
+ pyloudnorm>=0.2.0
8
+ soundfile>=0.13.1
9
+ scipy>=1.17.1
10
10
  mutagen>=1.47.0
11
11
  # v1.10.5 Splice online catalog integration — required, not optional.
12
12
  # Without these, SpliceGRPCClient silently disables itself and search_samples
13
13
  # falls back to the SQLite sounds.db which only returns locally downloaded
14
14
  # samples (see docs/2026-04-14-bugs-discovered.md — P0-2).
15
15
  grpcio>=1.60.0
16
- protobuf>=4.25.0
16
+ protobuf>=7.34.1
17
17
 
18
18
  # Development / testing (not required for runtime)
19
19
  # pip install pytest pytest-asyncio
package/server.json CHANGED
@@ -1,17 +1,17 @@
1
1
  {
2
2
  "$schema": "https://static.modelcontextprotocol.io/schemas/2025-12-11/server.schema.json",
3
3
  "name": "io.github.dreamrec/livepilot",
4
- "description": "426-tool agentic MCP production system for Ableton Live 12 — device atlas, sample engine, composer",
4
+ "description": "427-tool agentic MCP production system for Ableton Live 12 — device atlas, sample engine, composer",
5
5
  "repository": {
6
6
  "url": "https://github.com/dreamrec/LivePilot",
7
7
  "source": "github"
8
8
  },
9
- "version": "1.17.1",
9
+ "version": "1.17.3",
10
10
  "packages": [
11
11
  {
12
12
  "registryType": "npm",
13
13
  "identifier": "livepilot",
14
- "version": "1.17.1",
14
+ "version": "1.17.3",
15
15
  "transport": {
16
16
  "type": "stdio"
17
17
  }