@map-audio/pam-mcp-server 1.21.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/LICENSE +21 -0
- package/README.md +33 -7
- package/dist/audioAnalysis.d.ts +35 -0
- package/dist/audioAnalysis.js +277 -0
- package/dist/audioAnalysis.js.map +1 -0
- package/dist/bridge.d.ts +6 -0
- package/dist/bridge.js +151 -168
- package/dist/bridge.js.map +1 -1
- package/dist/corpusFingerprints.d.ts +17 -0
- package/dist/corpusFingerprints.js +10 -0
- package/dist/corpusFingerprints.js.map +1 -0
- package/dist/corpusRanges.d.ts +28 -0
- package/dist/corpusRanges.js +1029 -0
- package/dist/corpusRanges.js.map +1 -0
- package/dist/drumSynthEngines.json +376 -0
- package/dist/fingerprint.d.ts +70 -0
- package/dist/fingerprint.js +240 -0
- package/dist/fingerprint.js.map +1 -0
- package/dist/generated/variationSnapshot.d.ts +8 -4
- package/dist/generated/variationSnapshot.js +6 -4
- package/dist/generated/variationSnapshot.js.map +1 -1
- package/dist/generativePlayerPresets.json +70 -0
- package/dist/generativePlayers.json +134 -0
- package/dist/manifest-cell1.json +4972 -249
- package/dist/manifest-mfx.json +11571 -1800
- package/dist/manifest.d.ts +15 -3
- package/dist/manifest.js +24 -15
- package/dist/manifest.js.map +1 -1
- package/dist/manifest.json +25034 -499
- package/dist/mfxCombos.d.ts +45 -0
- package/dist/mfxCombos.js +499 -0
- package/dist/mfxCombos.js.map +1 -0
- package/dist/midiFile.d.ts +21 -0
- package/dist/midiFile.js +108 -0
- package/dist/midiFile.js.map +1 -0
- package/dist/mixAssist.d.ts +6 -0
- package/dist/mixAssist.js +96 -11
- package/dist/mixAssist.js.map +1 -1
- package/dist/players.d.ts +89 -0
- package/dist/players.js +235 -0
- package/dist/players.js.map +1 -0
- package/dist/presetSave.d.ts +5 -0
- package/dist/presetSave.js +22 -0
- package/dist/presetSave.js.map +1 -1
- package/dist/productProfile.d.ts +9 -0
- package/dist/productProfile.js +20 -0
- package/dist/productProfile.js.map +1 -0
- package/dist/sampleSlicing.d.ts +12 -0
- package/dist/sampleSlicing.js +78 -0
- package/dist/sampleSlicing.js.map +1 -0
- package/dist/server.js +2536 -483
- package/dist/server.js.map +1 -1
- package/dist/variationSessionKeys.json +34 -1
- package/package.json +11 -5
package/dist/manifest.d.ts
CHANGED
|
@@ -17,6 +17,9 @@ export interface ManifestParameter {
|
|
|
17
17
|
isModulatable?: boolean;
|
|
18
18
|
version?: number;
|
|
19
19
|
}
|
|
20
|
+
export interface ManifestStateVariable extends Omit<ManifestParameter, "defaultValue"> {
|
|
21
|
+
defaultValue: unknown;
|
|
22
|
+
}
|
|
20
23
|
export interface Manifest {
|
|
21
24
|
name: string;
|
|
22
25
|
company: string;
|
|
@@ -24,12 +27,18 @@ export interface Manifest {
|
|
|
24
27
|
pluginCode: string;
|
|
25
28
|
parameters: ManifestParameter[];
|
|
26
29
|
/** Non-automatable state (effect enables, sequence lanes, router vars). */
|
|
27
|
-
stateVariables?:
|
|
30
|
+
stateVariables?: ManifestStateVariable[];
|
|
28
31
|
window: {
|
|
29
32
|
width: number;
|
|
30
33
|
height: number;
|
|
31
34
|
};
|
|
32
35
|
}
|
|
36
|
+
type EffectCatalogManifest = {
|
|
37
|
+
stateVariables?: readonly {
|
|
38
|
+
paramId?: string;
|
|
39
|
+
defaultValue?: unknown;
|
|
40
|
+
}[];
|
|
41
|
+
};
|
|
33
42
|
/**
|
|
34
43
|
* Cell effect names for THIS product, derived from the manifest's
|
|
35
44
|
* `cell1_<name>Enabled` keys.
|
|
@@ -39,16 +48,19 @@ export interface Manifest {
|
|
|
39
48
|
* `qverb`, or MFX's `wavefold`/`resonator`. The manifest is the artifact both
|
|
40
49
|
* the UI and C++ already agree on, so it is the projection source.
|
|
41
50
|
*/
|
|
42
|
-
export declare function cellEffectNames(manifest:
|
|
51
|
+
export declare function cellEffectNames(manifest: EffectCatalogManifest): string[];
|
|
52
|
+
/** Fresh-cell FX order for this product, projected from cell1_effectOrder. */
|
|
53
|
+
export declare function cellEffectOrder(manifest: EffectCatalogManifest): string[];
|
|
43
54
|
export declare function setActiveProductHint(product: string | undefined): void;
|
|
44
55
|
export declare function loadManifest(productOverride?: string): Promise<Manifest>;
|
|
45
56
|
export declare function getParameterIndex(): Promise<Map<string, ManifestParameter>>;
|
|
46
57
|
export declare function getParametersByCell(cellId: string): Promise<ManifestParameter[]>;
|
|
47
58
|
export declare function getGlobalParameters(): Promise<ManifestParameter[]>;
|
|
48
|
-
export declare function findPresetDirs(): Promise<string[]>;
|
|
59
|
+
export declare function findPresetDirs(strict?: boolean): Promise<string[]>;
|
|
49
60
|
export declare function resolvePresetPath(presetPath: string): Promise<string>;
|
|
50
61
|
export declare function walkPresets(dir: string, prefix?: string): Promise<{
|
|
51
62
|
path: string;
|
|
52
63
|
name: string;
|
|
53
64
|
relativePath: string;
|
|
54
65
|
}[]>;
|
|
66
|
+
export {};
|
package/dist/manifest.js
CHANGED
|
@@ -2,8 +2,6 @@ import { readFile, readdir, stat } from "node:fs/promises";
|
|
|
2
2
|
import { resolve, dirname, join, basename, extname, sep } from "node:path";
|
|
3
3
|
import { fileURLToPath } from "node:url";
|
|
4
4
|
import { homedir } from "node:os";
|
|
5
|
-
/** Sync toggles share the `…Enabled` suffix but are not effects. */
|
|
6
|
-
const NON_EFFECT_ENABLED = /^(delay|flanger|gate|retrigger|stretch)Sync$/;
|
|
7
5
|
/**
|
|
8
6
|
* Cell effect names for THIS product, derived from the manifest's
|
|
9
7
|
* `cell1_<name>Enabled` keys.
|
|
@@ -14,18 +12,26 @@ const NON_EFFECT_ENABLED = /^(delay|flanger|gate|retrigger|stretch)Sync$/;
|
|
|
14
12
|
* the UI and C++ already agree on, so it is the projection source.
|
|
15
13
|
*/
|
|
16
14
|
export function cellEffectNames(manifest) {
|
|
17
|
-
const all = [...(manifest.parameters ?? []), ...(manifest.stateVariables ?? [])];
|
|
18
15
|
const names = new Set();
|
|
19
|
-
for (const p of
|
|
16
|
+
for (const p of manifest.stateVariables ?? []) {
|
|
20
17
|
const m = /^cell1_([A-Za-z0-9]+)Enabled$/.exec(p.paramId ?? "");
|
|
21
18
|
if (!m)
|
|
22
19
|
continue;
|
|
23
|
-
if (NON_EFFECT_ENABLED.test(m[1]))
|
|
24
|
-
continue;
|
|
25
20
|
names.add(m[1]);
|
|
26
21
|
}
|
|
27
22
|
return [...names].sort();
|
|
28
23
|
}
|
|
24
|
+
/** Fresh-cell FX order for this product, projected from cell1_effectOrder. */
|
|
25
|
+
export function cellEffectOrder(manifest) {
|
|
26
|
+
const raw = manifest.stateVariables?.find((entry) => entry.paramId === "cell1_effectOrder")?.defaultValue;
|
|
27
|
+
if (!Array.isArray(raw) || raw.length === 0)
|
|
28
|
+
return [];
|
|
29
|
+
const order = raw.filter((value) => typeof value === "string" && value.length > 0);
|
|
30
|
+
if (order.length !== raw.length || new Set(order).size !== order.length)
|
|
31
|
+
return [];
|
|
32
|
+
const available = new Set(cellEffectNames(manifest));
|
|
33
|
+
return order.every((effect) => available.has(effect)) ? order : [];
|
|
34
|
+
}
|
|
29
35
|
let cachedManifest = new Map();
|
|
30
36
|
let paramIndex = new Map();
|
|
31
37
|
const DISCOVERY_FILE = resolve(homedir(), ".pam-mcp-bridge.json");
|
|
@@ -168,7 +174,7 @@ async function resolveActiveProduct() {
|
|
|
168
174
|
process.env.PAM_MCP_PRODUCT;
|
|
169
175
|
return normalizeProduct(envProduct ?? activeProductHint ?? (await discoverProductFromBridge()));
|
|
170
176
|
}
|
|
171
|
-
export async function findPresetDirs() {
|
|
177
|
+
export async function findPresetDirs(strict = false) {
|
|
172
178
|
const product = await resolveActiveProduct();
|
|
173
179
|
const dirs = [];
|
|
174
180
|
const repoSegments = REPO_PRESET_DIR_BY_PRODUCT[product] ?? REPO_PRESET_DIR_BY_PRODUCT.pam;
|
|
@@ -177,21 +183,23 @@ export async function findPresetDirs() {
|
|
|
177
183
|
await stat(repoPresets);
|
|
178
184
|
dirs.push(repoPresets);
|
|
179
185
|
}
|
|
180
|
-
catch {
|
|
181
|
-
|
|
186
|
+
catch (error) {
|
|
187
|
+
if (strict && error.code !== "ENOENT")
|
|
188
|
+
throw error;
|
|
182
189
|
}
|
|
183
190
|
try {
|
|
184
191
|
const userPresets = getUserPresetsDir(product);
|
|
185
192
|
await stat(userPresets);
|
|
186
193
|
dirs.push(userPresets);
|
|
187
194
|
}
|
|
188
|
-
catch {
|
|
189
|
-
|
|
195
|
+
catch (error) {
|
|
196
|
+
if (strict && error.code !== "ENOENT")
|
|
197
|
+
throw error;
|
|
190
198
|
}
|
|
191
199
|
return dirs;
|
|
192
200
|
}
|
|
193
201
|
export async function resolvePresetPath(presetPath) {
|
|
194
|
-
const dirs = await findPresetDirs();
|
|
202
|
+
const dirs = await findPresetDirs(true);
|
|
195
203
|
for (const dir of dirs) {
|
|
196
204
|
const candidate = resolve(dir, presetPath);
|
|
197
205
|
// Path traversal guard: resolved path must stay within the allowed directory
|
|
@@ -201,11 +209,12 @@ export async function resolvePresetPath(presetPath) {
|
|
|
201
209
|
await stat(candidate);
|
|
202
210
|
return candidate;
|
|
203
211
|
}
|
|
204
|
-
catch {
|
|
205
|
-
|
|
212
|
+
catch (error) {
|
|
213
|
+
if (error.code !== "ENOENT")
|
|
214
|
+
throw error;
|
|
206
215
|
}
|
|
207
216
|
}
|
|
208
|
-
throw new Error(`Preset not found: ${presetPath}`);
|
|
217
|
+
throw Object.assign(new Error(`Preset not found: ${presetPath}`), { code: "ENOENT" });
|
|
209
218
|
}
|
|
210
219
|
export async function walkPresets(dir, prefix = "") {
|
|
211
220
|
const results = [];
|
package/dist/manifest.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"manifest.js","sourceRoot":"","sources":["../src/manifest.ts"],"names":[],"mappings":"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"}
|