@map-audio/pam-mcp-server 1.22.0 → 1.25.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/README.md CHANGED
@@ -6,7 +6,7 @@ MCP server for the [PAM](https://map.audio) audio plugin. Lets AI agents (Claude
6
6
 
7
7
  - macOS or Windows with **Node.js 21+** (`node --version`)
8
8
  - **PAM** installed and running (standalone or in a DAW)
9
- - **MCP Bridge enabled** inside PAM: `Settings → Experimental Mode → MCP Bridge` (default port `9847`)
9
+ - **MCP Bridge enabled** inside PAM: `Settings → Experimental → Beta Features → Enable MCP Bridge` (default port `9847`)
10
10
 
11
11
  When PAM starts with the bridge enabled it writes `~/.pam-mcp-bridge.json` — the server discovers PAM through that file, so nothing else needs configuring.
12
12
 
@@ -70,20 +70,21 @@ Use the same `mcpServers` block in the client's MCP config. Any stdio-compatible
70
70
 
71
71
  ## Troubleshooting
72
72
 
73
- - **"Not connected to PAM plugin"** — PAM isn't running, or MCP Bridge is off. Open PAM → Settings → Experimental Mode → enable MCP Bridge, then restart PAM.
73
+ - **"Not connected to PAM plugin"** — PAM isn't running, or MCP Bridge is off. Open Settings → Experimental, turn on Beta Features, then Enable MCP Bridge. The bridge starts immediately.
74
74
  - **"Failed to connect" / `pam-mcp: command not found`** — the MCP client's shell PATH doesn't include the npm global bin. Run `which pam-mcp` in a terminal and use the absolute path it prints (e.g. `/Users/you/.nvm/versions/node/v22/bin/pam-mcp`) as the `command` value in your config. macOS GUI apps don't inherit shell PATH from `~/.zshrc`/`~/.bashrc`, so absolute paths are the safest fallback.
75
75
  - **`npx: command not found`** (if you're using the npx form) — same root cause: install Node from [nodejs.org](https://nodejs.org) (not via `nvm`/`asdf`), or give the absolute path: `"command": "/usr/local/bin/npx"` / `"/opt/homebrew/bin/npx"`.
76
76
  - **Offline tools fail** (`list_presets`, `get_parameter_info`) — the manifest bundled with the package is used automatically. To target a different PAM install, set `PAM_MANIFEST_PATH` in the server's `env` block.
77
77
 
78
78
  ## What's in the box
79
79
 
80
- ~145 tools. The high-value entry points:
80
+ The main entry points:
81
81
 
82
82
  - **Read first**: `design_context` (curated parameter cheat sheet, works offline) and `get_design_overview` (compact live snapshot). Prefer these over full `get_state` dumps or broad `get_parameter_info` sweeps.
83
- - **Sound design**: `set_parameters`, `update_pattern`, `add_modulation` / `add_param_seq`, `update_effect_config`, `set_master_effects`, `set_drum_synth`, `randomize` / `randomize_samples` / `randomize_patterns`.
84
- - **Samples**: `get_default_locations` → `list_samples` → `load_sample`, plus `trim/reverse/gain/normalize_sample`, `analyze_sample_tempo`, `resample_sample_to_bpm`, `build_sample_chain`.
83
+ - **Sound design**: `set_parameters`, `update_pattern`, `add_modulation` / `add_param_seq` / `set_free_sequencer`, `update_effect_config`, `set_master_effects`, `set_drum_synth`, `randomize` / `randomize_samples` / `randomize_patterns`.
84
+ - **Generative players** (PAM): `list_players` → `set_player` — arm EUCLID / KIT / TURING / WALK / MARKOV / RATCHET / PHASE / RIFF / MASK on a cell with curated presets, genre, seed, Mask/Keep and ensemble listening; `'off'` restores the drawn pattern.
85
+ - **Samples**: `get_default_locations` → `list_samples` → `load_sample`, plus `set_slices` (equal / explicit / transient, with slice-to-sequence), `trim/reverse/gain/normalize_sample`, `analyze_sample_tempo`, `resample_sample_to_bpm`, `build_sample_chain`.
85
86
  - **Transport, MIDI & devices**: `start_transport` / `stop_transport` / `full_stop_transport`, `set_bpm`, `trigger_midi` (+ CC / program change), `midi_recording`; `get_audio_device_setup` / `set_audio_device` / `set_midi_io` (standalone).
86
- - **Presets, variations & songs**: `load_preset` / `save_preset` / `new_preset`, `save_variation` / `load_variation` / `queue_variation`, `song_mode`, `export_song` (full-track bounce), `export_audio` (incl. per-cell stems).
87
+ - **Presets, variations & songs**: `load_preset` / `save_preset` / `new_preset`, `save_variation` / `load_variation` / `queue_variation`, `song_mode`, `export_song` (full-track bounce), `export_audio` (incl. per-cell stems), `export_midi` (patterns as a Standard MIDI File).
87
88
  - **Looper**: full 8-track control — arm/record/capture, `load_audio_to_looper_track`, warp, looper variations, `live_resample`.
88
89
  - **Plugin host** (PAM builds with hosting): `scan_plugins` → `get_plugin_scan_status` → `list_plugins` → `load_plugin` → `list_loaded_plugins` → `set_plugin_param` / `set_plugin_bypass`.
89
90
  - **AI models & generation** (experimental flags required): `download_model` / `load_model` / `get_model_status` / `list_models` (engines: aigen, magenta, notochord), `generate_sample`, `generate_kit`.
@@ -100,6 +101,31 @@ All three product manifests (PAM / CELL1 / MFX) are bundled; this generic server
100
101
  - **Structured output.** The status tools (`connection_status`, `select_instance`, `get_transport`, `get_manifest_summary`, `get_model_status`, `get_plugin_scan_status`, `workbench_sidecar_status`) return `structuredContent` with a declared output schema, alongside the same JSON as text.
101
102
  - **Prompts.** Five guided workflows ship as MCP prompts: `build-a-beat`, `make-a-song`, `design-a-preset`, `mix-and-master`, `troubleshoot-bridge`. In Claude Code they appear as slash commands (e.g. `/pam:build-a-beat`).
102
103
  - **Multiple instances.** When several products run at once (say PAM and MFX), `select_instance` picks which one the live tools drive, matched by product name, instanceId, or port. Setting `PAM_BRIDGE_PRODUCT=MFX` in the server's `env` block pins the choice at launch. Offline parameter validation follows the selected product's manifest.
104
+ Reconnection stays on the selected instance; if it disappears, select another explicitly. Repeating the same selection preserves pending commands.
105
+
106
+ ## Preset loading and queued operations
107
+
108
+ Server 1.24.0 adds tracked preset loading. `load_preset` returns a `requestId` and
109
+ `status: "queued"`; poll `get_preset_load_status` on the same instance until it returns
110
+ `succeeded` before editing or saving. Other outcomes are `morphing`, `failed`, `cancelled`,
111
+ and `superseded`. `immediate: true` bypasses the native preset morph. The plugin must
112
+ include the matching native bridge actions; updating the npm server alone does not add them.
113
+
114
+ Randomizer replies acknowledge queued work. Poll the affected sample paths or patterns
115
+ with `get_state` before the next operation. Requests can coalesce, and a preset or
116
+ variation load can discard pending randomization. Use `randomize` with `target: "full"`
117
+ to chain samples and patterns. `lfos` and `mods` are global targets and reject `cellIds`.
118
+
119
+ `queue_variation` inherits native fade and phase settings when those options are omitted.
120
+ Song Mode accepts stagger and stepped-relation fields inside `transition.window` on
121
+ sections, connections, and song defaults; `setArrangement` verifies its command acknowledgment.
122
+
123
+ ## Preset saving
124
+
125
+ Preset saves preserve the source variation bank, including Unicode metadata. Named saves
126
+ carry that bank into their destination; unnamed saves update the active user preset. Saves
127
+ stop if that source is missing, unreadable, or malformed. After New / Init, give
128
+ `save_preset` or `save_variation` a name before saving.
103
129
 
104
130
  ## License
105
131
 
package/dist/bridge.d.ts CHANGED
@@ -22,9 +22,13 @@ export declare class PluginBridge {
22
22
  private pending;
23
23
  private connected;
24
24
  private connectedInstance;
25
+ private selectedTarget;
26
+ private connecting;
27
+ private connectionGeneration;
25
28
  discover(): Promise<BridgeInfo[]>;
26
29
  private static matchesTarget;
27
30
  connect(target?: ConnectTarget): Promise<boolean>;
31
+ private connectTo;
28
32
  disconnect(): void;
29
33
  isConnected(): boolean;
30
34
  /** The discovery entry of the instance this bridge is connected to, if known. */
package/dist/bridge.js CHANGED
@@ -5,119 +5,6 @@ import { homedir } from "node:os";
5
5
  import { mcpProductProfile } from "./productProfile.js";
6
6
  const DISCOVERY_FILE = resolve(homedir(), ".pam-mcp-bridge.json");
7
7
  const BRIDGE_PRODUCT = mcpProductProfile();
8
- // Minimum PAM build that ships the bridge handlers added in this server version.
9
- // Tools registered against actions introduced after this version will return
10
- // "unknown action 'X'" from older PAM builds — the wrapper below translates
11
- // that into an actionable error for the agent.
12
- const MIN_PAM_VERSION_FOR_NEW_ACTIONS = "1.5.0";
13
- const NEW_ACTIONS_ADDED_IN_1_5_0 = new Set([
14
- "aiGenerate",
15
- "aiGenerateKit",
16
- ]);
17
- const NEW_ACTIONS_ADDED_IN_1_1_0 = new Set([
18
- "startLooperRecord",
19
- "stopLooperRecord",
20
- "captureLooperNow",
21
- "loadAudioToLooperTrack",
22
- "requestLooperWarp",
23
- "setLooperAlwaysListen",
24
- "setLooperLatencyCompAuto",
25
- "setLooperLatencyCompOffsetMs",
26
- "setLooperLatencyCompApplyToCells",
27
- "saveLooperVariation",
28
- "clearLooperVariation",
29
- "applyLooperVariationImmediate",
30
- "queueLooperVariationOnBars",
31
- "cancelQueuedLooperVariation",
32
- "setLooperVariationBarSyncEnabled",
33
- "setLooperVariationBarSyncIntervalBars",
34
- "setCurrentLooperVariationIndex",
35
- "queueVariationOnBars",
36
- "cancelQueuedVariation",
37
- "updateVariations",
38
- "midiCC",
39
- "midiProgramChange",
40
- "startMidiRecording",
41
- "stopMidiRecording",
42
- "setMidiRecordingOverdub",
43
- "removeRecordedNote",
44
- "applyEnvelopeUpdate",
45
- "applyLfoUpdate",
46
- "applyVaryUpdate",
47
- "applyMacroUpdate",
48
- "applyParamSeqUpdate",
49
- "applyParamSeqSequenceUpdate",
50
- "setSongModeSequence",
51
- "clearSongModeSequence",
52
- "toggleSongMode",
53
- "setSongModeLoopPoints",
54
- "toggleSongModeLoop",
55
- "setSongModeCrossfadeMs",
56
- "setSongModePlayhead",
57
- "setVariationHoldEnabled",
58
- "variationHoldAllNotesOff",
59
- "syncVariationHoldBindings",
60
- "setMetronomeEnabled",
61
- "analyzeSampleTempo",
62
- "requestSamplePeaks",
63
- "previewSlice",
64
- "resampleSampleToBPM",
65
- "restoreOriginalSample",
66
- "buildSampleChain",
67
- "exportSliceForCell",
68
- "resampleGraphToCell",
69
- "stopLiveResample",
70
- ]);
71
- // Actions added in MCP server 1.7.0 — settings, transport config, MIDI device +
72
- // action-mapping config, preset management (delete / factory-status / sample-usage /
73
- // sample-path repair), and native sample preview. Require a PAM build of the same
74
- // vintage; older builds return "unknown action 'X'".
75
- const NEW_ACTIONS_ADDED_IN_1_7_0 = new Set([
76
- "applySettingsUpdate",
77
- "updateTransportTimeSig",
78
- "setHostSyncEnabled",
79
- "releaseHostSyncForManualTransport",
80
- "setExternalClockSync",
81
- "setMuteAudioOutput",
82
- "getAudioDeviceSetup",
83
- "setMidiInputDevices",
84
- "setMidiOutputDevice",
85
- "setMidiOutputEnabled",
86
- "setMidiMapping",
87
- "removePreset",
88
- "togglePresetFactoryStatus",
89
- "getPresetSampleUsage",
90
- "getPresetsUsingSample",
91
- "fixPresetSamplePaths",
92
- "rescanMissingSamples",
93
- "previewSampleNative",
94
- "stopPreviewNative",
95
- ]);
96
- // Actions added in MCP server 1.8.0 — VX video subsystem control (layers, FX chains,
97
- // audio-reactive bindings, output FX, mod routes, model overlay, render/sync settings)
98
- // plus the full-scene read channel. Require a PAM build with the mcpVideoBridge wiring.
99
- const NEW_ACTIONS_ADDED_IN_1_8_0 = new Set([
100
- "videoCommand",
101
- "getVideoState",
102
- ]);
103
- // Actions added in MCP server 1.13.0 — drum-synth control routed through the WebView
104
- // (the engine-aware randomizer + the drawable-wave LUT). Require a PAM build whose
105
- // MCPBridge forwards them via postToUI; older builds return "unknown action 'X'".
106
- const NEW_ACTIONS_ADDED_IN_1_13_0 = new Set([
107
- "randomizeDrumSynth",
108
- "setDrumSynthWaveCurve",
109
- ]);
110
- // Actions added in MCP server 1.15.0 — the assistant-surface UI forwards
111
- // (set_view navigation + the lfos/mods modulation randomizer), routed through
112
- // the WebView like randomizeDrumSynth. Older builds return "unknown action 'X'".
113
- const NEW_ACTIONS_ADDED_IN_1_15_0 = new Set([
114
- "setView",
115
- "randomizeModulations",
116
- ]);
117
- const NEW_ACTIONS_ADDED_IN_1_17_0 = new Set([
118
- "analyzeMix",
119
- "getMixAnalysis",
120
- ]);
121
8
  // Plugin-host actions ship on builds with PAM_PLUGIN_HOST=1. Older builds or
122
9
  // non-host SKUs like Cell1 won't recognize them and will return
123
10
  // "unknown action 'X'". MFX can compile FX-side hosting, but these shared MCP
@@ -166,6 +53,9 @@ export class PluginBridge {
166
53
  pending = new Map();
167
54
  connected = false;
168
55
  connectedInstance = null;
56
+ selectedTarget;
57
+ connecting = null;
58
+ connectionGeneration = 0;
169
59
  async discover() {
170
60
  try {
171
61
  const raw = await readFile(DISCOVERY_FILE, "utf-8");
@@ -206,20 +96,33 @@ export class PluginBridge {
206
96
  return false;
207
97
  return true;
208
98
  }
209
- async connect(target) {
210
- // Default target: the PAM_BRIDGE_PRODUCT env pin, if set. The pin is hard —
211
- // silently connecting to a different product would mutate the wrong plugin.
212
- if (!target && process.env.PAM_BRIDGE_PRODUCT) {
213
- target = { product: process.env.PAM_BRIDGE_PRODUCT };
214
- }
215
- if (this.connected) {
216
- if (!target || (this.connectedInstance && PluginBridge.matchesTarget(this.connectedInstance, target)))
217
- return true;
218
- this.disconnect();
219
- }
99
+ connect(target) {
100
+ target ??= this.selectedTarget ?? (process.env.PAM_BRIDGE_PRODUCT
101
+ ? { product: process.env.PAM_BRIDGE_PRODUCT } : undefined);
102
+ const sameTarget = target?.port === this.selectedTarget?.port
103
+ && target?.instanceId === this.selectedTarget?.instanceId
104
+ && target?.product?.toLowerCase() === this.selectedTarget?.product?.toLowerCase();
105
+ if (this.connecting && sameTarget)
106
+ return this.connecting;
107
+ if (this.connected && (sameTarget || (this.connectedInstance
108
+ && (!target || PluginBridge.matchesTarget(this.connectedInstance, target)))))
109
+ return Promise.resolve(true);
110
+ this.disconnect();
111
+ this.selectedTarget = target ? { ...target } : undefined;
112
+ const generation = this.connectionGeneration;
113
+ const attempt = this.connectTo(target, generation).catch(() => false).finally(() => {
114
+ if (generation === this.connectionGeneration)
115
+ this.connecting = null;
116
+ });
117
+ this.connecting = attempt;
118
+ return attempt;
119
+ }
120
+ async connectTo(target, generation) {
220
121
  let port = target?.port;
221
122
  let instance = null;
222
123
  const instances = await this.discover();
124
+ if (generation !== this.connectionGeneration)
125
+ return false;
223
126
  if (target && (target.product !== undefined || target.instanceId !== undefined)) {
224
127
  instance = instances.find((i) => PluginBridge.matchesTarget(i, target)) ?? null;
225
128
  if (!instance)
@@ -248,16 +151,22 @@ export class PluginBridge {
248
151
  resolve(ok);
249
152
  };
250
153
  timer = setTimeout(() => {
251
- if (!this.connected) {
252
- this.socket?.destroy();
253
- settle(false);
254
- }
154
+ socket?.destroy();
155
+ settle(false);
255
156
  }, 2000);
256
157
  let socket;
257
158
  try {
258
159
  socket = createConnection({ host: "127.0.0.1", port }, () => {
160
+ if (generation !== this.connectionGeneration || this.socket !== socket) {
161
+ socket.destroy();
162
+ settle(false);
163
+ return;
164
+ }
259
165
  this.connected = true;
260
166
  this.connectedInstance = instance;
167
+ this.selectedTarget = instance
168
+ ? { instanceId: instance.instanceId, product: instance.product }
169
+ : { port };
261
170
  settle(true);
262
171
  });
263
172
  }
@@ -276,10 +185,12 @@ export class PluginBridge {
276
185
  this.processBuffer();
277
186
  });
278
187
  socket.on("error", () => {
279
- this.connected = false;
188
+ if (this.socket === socket)
189
+ this.connected = false;
280
190
  settle(false);
281
191
  });
282
192
  socket.on("close", () => {
193
+ settle(false);
283
194
  if (this.socket !== socket)
284
195
  return;
285
196
  this.connected = false;
@@ -296,6 +207,8 @@ export class PluginBridge {
296
207
  });
297
208
  }
298
209
  disconnect() {
210
+ this.connectionGeneration++;
211
+ this.connecting = null;
299
212
  this.socket?.destroy();
300
213
  this.socket = null;
301
214
  this.connected = false;
@@ -413,31 +326,12 @@ export class PluginBridge {
413
326
  return "AI model managers are not available in MFX.";
414
327
  }
415
328
  return (`PAM build does not include the AI model managers ('${action}' not recognized). ` +
416
- `Model-management tools require PAM ≥ 1.9.0 with the AIGen/Magenta/Notochord managers; ` +
329
+ `Model-management tools require a PAM build with the AIGen/Magenta/Notochord managers; ` +
417
330
  `they are not available on standalone MFX builds.`);
418
331
  }
419
- const requiredVersion = NEW_ACTIONS_ADDED_IN_1_17_0.has(action)
420
- ? "1.17.0"
421
- : NEW_ACTIONS_ADDED_IN_1_15_0.has(action)
422
- ? "1.15.0"
423
- : NEW_ACTIONS_ADDED_IN_1_13_0.has(action)
424
- ? "1.13.0"
425
- : NEW_ACTIONS_ADDED_IN_1_8_0.has(action)
426
- ? "1.8.0"
427
- : NEW_ACTIONS_ADDED_IN_1_7_0.has(action)
428
- ? "1.7.0"
429
- : NEW_ACTIONS_ADDED_IN_1_1_0.has(action) || NEW_ACTIONS_ADDED_IN_1_5_0.has(action)
430
- ? MIN_PAM_VERSION_FOR_NEW_ACTIONS
431
- : null;
432
- if (requiredVersion) {
433
- const packageName = BRIDGE_PRODUCT.id === "mfx"
434
- ? "@map-audio/mfx-mcp-server"
435
- : "@map-audio/pam-mcp-server";
436
- return (`${BRIDGE_PRODUCT.name} build does not support '${action}'. ` +
437
- `This action requires ${BRIDGE_PRODUCT.name} ≥ ${requiredVersion} ` +
438
- `(npm ${packageName} ≥ ${requiredVersion}). ` +
439
- `Update ${BRIDGE_PRODUCT.name} to the latest build, or use a tool that doesn't depend on this action.`);
440
- }
332
+ return (`${BRIDGE_PRODUCT.name} build does not support '${action}'. ` +
333
+ `Update ${BRIDGE_PRODUCT.name} to a plugin build with this bridge action. ` +
334
+ `Updating the MCP package alone cannot add native plugin capabilities.`);
441
335
  }
442
336
  return message;
443
337
  }
@@ -1 +1 @@
1
- {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../src/bridge.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,10 @@
1
1
  export interface VariationSnapshotContract {
2
2
  /** Session keys a variation must not carry (shared/variationSessionKeys.json). */
3
3
  sessionKeys: readonly string[];
4
+ /** The in-flight dispatch flags (StateShape's Transient group). A stored one
5
+ * is read back as an instruction — a slot carrying `__fadeMs__` crossfades
6
+ * the next load at the fade the FILE holds, not the one the loader asked for. */
7
+ transientKeys: readonly string[];
4
8
  /** Visual audio-react paramIds — they persist ACROSS variations, so they are
5
9
  * stripped from every snapshot rather than captured per slot. */
6
10
  visualParamIds: readonly string[];
@@ -23,9 +27,9 @@ export declare function reconcileLfoGeneratorEnabledState(snapshot: Record<strin
23
27
  /**
24
28
  * Shape a variation snapshot from plugin state.
25
29
  *
26
- * Order matters and is part of the contract: strip session keys, drop the
27
- * active-preset path, strip visual params, narrow for FX products, then
28
- * reconcile the LFO generator flags LAST — the reconcile reads `lfos`, which
29
- * the earlier steps may have removed.
30
+ * Order matters and is part of the contract: strip session keys and the
31
+ * transient dispatch flags, drop the active-preset path, strip visual params,
32
+ * narrow for FX products, then reconcile the LFO generator flags LAST — the
33
+ * reconcile reads `lfos`, which the earlier steps may have removed.
30
34
  */
31
35
  export declare function buildVariationSnapshotBase(state: Record<string, unknown>, contract: VariationSnapshotContract, options?: VariationSnapshotOptions): Record<string, unknown>;
@@ -42,15 +42,17 @@ export function reconcileLfoGeneratorEnabledState(snapshot, lfoGeneratorCount) {
42
42
  /**
43
43
  * Shape a variation snapshot from plugin state.
44
44
  *
45
- * Order matters and is part of the contract: strip session keys, drop the
46
- * active-preset path, strip visual params, narrow for FX products, then
47
- * reconcile the LFO generator flags LAST — the reconcile reads `lfos`, which
48
- * the earlier steps may have removed.
45
+ * Order matters and is part of the contract: strip session keys and the
46
+ * transient dispatch flags, drop the active-preset path, strip visual params,
47
+ * narrow for FX products, then reconcile the LFO generator flags LAST — the
48
+ * reconcile reads `lfos`, which the earlier steps may have removed.
49
49
  */
50
50
  export function buildVariationSnapshotBase(state, contract, options = {}) {
51
51
  const snapshot = { ...state };
52
52
  for (const key of contract.sessionKeys)
53
53
  delete snapshot[key];
54
+ for (const key of contract.transientKeys)
55
+ delete snapshot[key];
54
56
  delete snapshot.activePresetPath;
55
57
  for (const paramId of contract.visualParamIds)
56
58
  delete snapshot[paramId];
@@ -1 +1 @@
1
- {"version":3,"file":"variationSnapshot.js","sourceRoot":"","sources":["../../src/generated/variationSnapshot.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,+DAA+D;AAC/D,sDAAsD;AACtD,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,6EAA6E;AAC7E,gFAAgF;AAChF,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,8DAA8D;AAC9D,EAAE;AACF,gFAAgF;AAChF,iFAAiF;AACjF,iFAAiF;AACjF,wDAAwD;AACxD,EAAE;AACF,4EAA4E;AAC5E,0EAA0E;AAC1E,8DAA8D;AAuB9D;;;;;;;GAOG;AACH,MAAM,UAAU,iCAAiC,CAC/C,QAAiC,EACjC,iBAAyB;IAEzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAM;IACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAiB,CAAA;IAEvC,KAAK,IAAI,cAAc,GAAG,CAAC,EAAE,cAAc,IAAI,iBAAiB,EAAE,cAAc,EAAE,EAAE,CAAC;QACnF,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAC/B,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,EAAE,iBAAiB,KAAK,cAAc;YACzC,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC;YACzB,OAAO,GAAG,EAAE,OAAO,KAAK,QAAQ;YAChC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CACzB,CAAA;QACD,QAAQ,CAAC,MAAM,cAAc,UAAU,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACpE,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAA8B,EAC9B,QAAmC,EACnC,UAAoC,EAAE;IAEtC,MAAM,QAAQ,GAA4B,EAAE,GAAG,KAAK,EAAE,CAAA;IAEtD,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,WAAW;QAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC5D,OAAO,QAAQ,CAAC,gBAAgB,CAAA;IAChC,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,cAAc;QAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAA;IACvE,IAAI,OAAO,CAAC,WAAW;QAAE,OAAO,QAAQ,CAAC,IAAI,CAAA;IAE7C,iCAAiC,CAAC,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAA;IACvE,OAAO,QAAQ,CAAA;AACjB,CAAC"}
1
+ {"version":3,"file":"variationSnapshot.js","sourceRoot":"","sources":["../../src/generated/variationSnapshot.ts"],"names":[],"mappings":"AAAA,oEAAoE;AACpE,+DAA+D;AAC/D,sDAAsD;AACtD,EAAE;AACF,6EAA6E;AAC7E,+EAA+E;AAC/E,6EAA6E;AAC7E,gFAAgF;AAChF,EAAE;AACF,+EAA+E;AAC/E,+EAA+E;AAC/E,8DAA8D;AAC9D,EAAE;AACF,gFAAgF;AAChF,iFAAiF;AACjF,iFAAiF;AACjF,wDAAwD;AACxD,EAAE;AACF,4EAA4E;AAC5E,0EAA0E;AAC1E,8DAA8D;AA2B9D;;;;;;;GAOG;AACH,MAAM,UAAU,iCAAiC,CAC/C,QAAiC,EACjC,iBAAyB;IAEzB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAM;IACzC,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAiB,CAAA;IAEvC,KAAK,IAAI,cAAc,GAAG,CAAC,EAAE,cAAc,IAAI,iBAAiB,EAAE,cAAc,EAAE,EAAE,CAAC;QACnF,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAC/B,CAAC,GAAG,EAAE,EAAE,CACN,GAAG,EAAE,iBAAiB,KAAK,cAAc;YACzC,CAAC,GAAG,EAAE,OAAO,IAAI,CAAC,CAAC,KAAK,CAAC;YACzB,OAAO,GAAG,EAAE,OAAO,KAAK,QAAQ;YAChC,GAAG,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CACzB,CAAA;QACD,QAAQ,CAAC,MAAM,cAAc,UAAU,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IACpE,CAAC;AACH,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAA8B,EAC9B,QAAmC,EACnC,UAAoC,EAAE;IAEtC,MAAM,QAAQ,GAA4B,EAAE,GAAG,KAAK,EAAE,CAAA;IAEtD,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,WAAW;QAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC5D,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,aAAa;QAAE,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAA;IAC9D,OAAO,QAAQ,CAAC,gBAAgB,CAAA;IAChC,KAAK,MAAM,OAAO,IAAI,QAAQ,CAAC,cAAc;QAAE,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAA;IACvE,IAAI,OAAO,CAAC,WAAW;QAAE,OAAO,QAAQ,CAAC,IAAI,CAAA;IAE7C,iCAAiC,CAAC,QAAQ,EAAE,QAAQ,CAAC,iBAAiB,CAAC,CAAA;IACvE,OAAO,QAAQ,CAAA;AACjB,CAAC"}
@@ -0,0 +1,70 @@
1
+ {
2
+ "_doc": "Curated per-player starting points for the generative Players — the 'one-click start' rung of the type -> preset -> dice -> knobs ladder (docs/research/2026-08-05_generative-players-research.md §16, transferable principles 3 and 6). Keyed by the player id in shared/generativePlayers.json; each entry is a complete snapshot of that player's performance axes and character slots: `density` and `mutate` are raw 0..1, and `p` holds one value per slot in P1..Pn order. UI-ONLY — the C++ core never reads this file, and no preset id is persisted anywhere: applying one writes plain cell-config values through setCellPlayer, so a preset may be renamed, re-voiced or dropped without touching a single saved project. What IS frozen is the meaning of what it writes: `p[i]` is that player's slot i in shared/generativePlayers.json, so re-voicing a preset is free while pointing it at a different slot is not. A DETENTED slot's value must be exactly i/(steps-1) — the long decimals here are that quotient, not a rounded taste; type 0.667 for a 4-position slot and the knob, the menu and the C++ stepIndex helper stop agreeing on which position it is (interface/test/generativePlayerPresets.test.ts pins it). A player may carry fewer `p` entries than it has slots (the rest fall back to the roster default), never more.",
3
+ "version": 1,
4
+ "presets": {
5
+ "1": [
6
+ { "name": "Bossa Five", "density": 0.3125, "mutate": 0, "p": [0, 0.3, 0.4, 0] },
7
+ { "name": "Offbeats", "density": 0.5, "mutate": 0, "p": [0.06666666666666667, 0.5, 0.5, 0] },
8
+ { "name": "Rolling Hat", "density": 0.6875, "mutate": 0, "p": [0, 0.18, 0.25, 0] },
9
+ { "name": "XOR Weave", "density": 0.4375, "mutate": 0, "p": [0, 0.45, 0.6, 0.6666666666666666] },
10
+ { "name": "Punch Gaps", "density": 0.75, "mutate": 0, "p": [0.26666666666666666, 0.15, 0.8, 1] }
11
+ ],
12
+ "2": [
13
+ { "name": "Sparse Trap", "density": 0.38, "mutate": 0, "p": [0, 0.15, 0.35, 0.5] },
14
+ { "name": "Rolling Drill", "density": 0.62, "mutate": 0.08, "p": [0.16666666666666666, 0.45, 0.55, 0.6] },
15
+ { "name": "Busy Boom Bap", "density": 0.58, "mutate": 0.12, "p": [0.3333333333333333, 0.7, 0.1, 0.6] },
16
+ { "name": "DnB Break", "density": 0.66, "mutate": 0.15, "p": [0.5, 0.55, 0.2, 0.5] },
17
+ { "name": "Techno Lock", "density": 0.55, "mutate": 0, "p": [0.8333333333333334, 0, 0, 0.5] },
18
+ { "name": "IDM Skitter", "density": 0.72, "mutate": 0.35, "p": [1, 0.75, 0.5, 0.25] }
19
+ ],
20
+ "3": [
21
+ { "name": "Short Loop", "density": 0.7, "mutate": 0, "p": [0.2222222222222222, 0.15, 0.5, 0, 0] },
22
+ { "name": "Long Drift", "density": 0.6, "mutate": 0.22, "p": [0.7777777777777778, 0.45, 0.5, 0.2, 0] },
23
+ { "name": "Inverted Loop", "density": 0.65, "mutate": 1, "p": [0.5555555555555556, 0.3, 0.55, 0.1, 0] },
24
+ { "name": "Acid Slide", "density": 0.85, "mutate": 0.08, "p": [0.3333333333333333, 0.2, 0.35, 0.75, 0] },
25
+ { "name": "Quartal Pad", "density": 0.4, "mutate": 0.12, "p": [0.6666666666666666, 0.7, 0.85, 0.6, 1] }
26
+ ],
27
+ "4": [
28
+ { "name": "Tiny Steps", "density": 0.75, "mutate": 0.3, "p": [0.1, 0.7, 0.15, 0.15, 0] },
29
+ { "name": "Wide Wander", "density": 0.6, "mutate": 0.3, "p": [0.85, 0.2, 0.2, 0.8, 0] },
30
+ { "name": "Root Anchor", "density": 0.8, "mutate": 0, "p": [0.35, 1, 0.1, 0.25, 0] },
31
+ { "name": "Sparse Triads", "density": 0.7, "mutate": 0.3, "p": [0.3, 0.55, 0.6, 0.35, 0.6] },
32
+ { "name": "Fifths Roam", "density": 0.55, "mutate": 0.3, "p": [0.55, 0.35, 0.3, 0.55, 0.4] }
33
+ ],
34
+ "5": [
35
+ { "name": "Echo the Clip", "density": 0.7, "mutate": 0, "p": [0.95, 0, 0.2, 0.2, 0] },
36
+ { "name": "Loose Jam", "density": 0.65, "mutate": 0.3, "p": [0.6, 0.75, 0.25, 0.4, 0] },
37
+ { "name": "Free Improv", "density": 0.6, "mutate": 0.3, "p": [0.25, 1, 0.3, 0.7, 0] },
38
+ { "name": "Wide Sevenths", "density": 0.5, "mutate": 0.3, "p": [0.75, 0.5, 0.35, 1, 0.8] },
39
+ { "name": "Tight Comp", "density": 0.85, "mutate": 0.3, "p": [0.85, 0.25, 0.1, 0, 0.2] }
40
+ ],
41
+ "6": [
42
+ { "name": "Bare Bones", "density": 0.3, "mutate": 0, "p": [0, 0, 0, 0.5] },
43
+ { "name": "Backbeat Fills", "density": 0.45, "mutate": 0.1, "p": [0.3333333333333333, 0.6, 0.35, 0.5] },
44
+ { "name": "Offbeat Buzz", "density": 0.4, "mutate": 0.15, "p": [0.6666666666666666, 0.3, 0.8, 0.15] },
45
+ { "name": "Machine Gun", "density": 0.7, "mutate": 0.2, "p": [1, 0.85, 0.9, 0.85] },
46
+ { "name": "Drag Flams", "density": 0.55, "mutate": 0.25, "p": [0, 0.2, 0.45, 0.95] }
47
+ ],
48
+ "7": [
49
+ { "name": "Five Slide", "density": 0.6, "mutate": 0, "p": [0.25, 0.25, 1, 0] },
50
+ { "name": "Static Seven", "density": 0.43, "mutate": 0, "p": [0.75, 0, 0, 0] },
51
+ { "name": "Nine Drift", "density": 0.55, "mutate": 0, "p": [1, 0.75, 0.3333333333333333, 1] },
52
+ { "name": "Triple Pulse", "density": 0.67, "mutate": 0, "p": [0, 0.25, 0.6666666666666666, 0] },
53
+ { "name": "Six Interlock", "density": 0.5, "mutate": 0, "p": [0.5, 0.5, 0.3333333333333333, 1] }
54
+ ],
55
+ "8": [
56
+ { "name": "Up Two Oct", "density": 0.9, "mutate": 0, "p": [0, 0, 0.3333333333333333, 0.3, 0] },
57
+ { "name": "Andalusian", "density": 0.75, "mutate": 0.15, "p": [0.6666666666666666, 1, 0.6666666666666666, 0.45, 0] },
58
+ { "name": "Converge Slow", "density": 0.45, "mutate": 0.15, "p": [1, 0.6666666666666666, 0.3333333333333333, 0.8, 0] },
59
+ { "name": "Wide Descent", "density": 0.85, "mutate": 0, "p": [0.3333333333333333, 0.3333333333333333, 1, 0.25, 0] },
60
+ { "name": "Chord Stabs", "density": 0.35, "mutate": 0.15, "p": [0, 0.6666666666666666, 0, 0.15, 0.8] }
61
+ ],
62
+ "9": [
63
+ { "name": "As Written", "density": 0.5, "mutate": 0, "p": [0.5, 0.35] },
64
+ { "name": "Thinned", "density": 0.3, "mutate": 0, "p": [0.75, 0.2] },
65
+ { "name": "Filled In", "density": 0.72, "mutate": 0, "p": [0.35, 0.5] },
66
+ { "name": "Breathing", "density": 0.5, "mutate": 0.35, "p": [0.5, 0.4] },
67
+ { "name": "Skeleton", "density": 0.16, "mutate": 0.12, "p": [0.9, 0.85] }
68
+ ]
69
+ }
70
+ }