@map-audio/pam-mcp-server 1.18.1 → 1.22.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 +5 -3
- 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 +2 -0
- package/dist/bridge.js +113 -24
- 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/drumSynth.d.ts +96 -0
- package/dist/drumSynth.js +193 -0
- package/dist/drumSynth.js.map +1 -0
- package/dist/drumSynthEngines.json +1736 -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 +31 -0
- package/dist/generated/variationSnapshot.js +62 -0
- package/dist/generated/variationSnapshot.js.map +1 -0
- package/dist/manifest-cell1.json +5414 -396
- package/dist/manifest-mfx.json +12013 -1714
- package/dist/manifest.d.ts +24 -0
- package/dist/manifest.js +60 -5
- package/dist/manifest.js.map +1 -1
- package/dist/manifest.json +24881 -547
- package/dist/mfxCombos.d.ts +45 -0
- package/dist/mfxCombos.js +499 -0
- package/dist/mfxCombos.js.map +1 -0
- package/dist/mixAssist.d.ts +6 -0
- package/dist/mixAssist.js +101 -11
- package/dist/mixAssist.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/server.js +1979 -342
- package/dist/server.js.map +1 -1
- package/dist/variationSessionKeys.json +110 -0
- package/package.json +10 -3
package/dist/manifest.d.ts
CHANGED
|
@@ -17,17 +17,40 @@ 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;
|
|
23
26
|
bundleId: string;
|
|
24
27
|
pluginCode: string;
|
|
25
28
|
parameters: ManifestParameter[];
|
|
29
|
+
/** Non-automatable state (effect enables, sequence lanes, router vars). */
|
|
30
|
+
stateVariables?: ManifestStateVariable[];
|
|
26
31
|
window: {
|
|
27
32
|
width: number;
|
|
28
33
|
height: number;
|
|
29
34
|
};
|
|
30
35
|
}
|
|
36
|
+
type EffectCatalogManifest = {
|
|
37
|
+
stateVariables?: readonly {
|
|
38
|
+
paramId?: string;
|
|
39
|
+
defaultValue?: unknown;
|
|
40
|
+
}[];
|
|
41
|
+
};
|
|
42
|
+
/**
|
|
43
|
+
* Cell effect names for THIS product, derived from the manifest's
|
|
44
|
+
* `cell1_<name>Enabled` keys.
|
|
45
|
+
*
|
|
46
|
+
* Hardcoding the list is what let three catalogs drift apart: the overview
|
|
47
|
+
* listed 8 effects, the mutation schema 12, and neither knew about `limiter`,
|
|
48
|
+
* `qverb`, or MFX's `wavefold`/`resonator`. The manifest is the artifact both
|
|
49
|
+
* the UI and C++ already agree on, so it is the projection source.
|
|
50
|
+
*/
|
|
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[];
|
|
31
54
|
export declare function setActiveProductHint(product: string | undefined): void;
|
|
32
55
|
export declare function loadManifest(productOverride?: string): Promise<Manifest>;
|
|
33
56
|
export declare function getParameterIndex(): Promise<Map<string, ManifestParameter>>;
|
|
@@ -40,3 +63,4 @@ export declare function walkPresets(dir: string, prefix?: string): Promise<{
|
|
|
40
63
|
name: string;
|
|
41
64
|
relativePath: string;
|
|
42
65
|
}[]>;
|
|
66
|
+
export {};
|
package/dist/manifest.js
CHANGED
|
@@ -2,6 +2,36 @@ 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
|
+
/**
|
|
6
|
+
* Cell effect names for THIS product, derived from the manifest's
|
|
7
|
+
* `cell1_<name>Enabled` keys.
|
|
8
|
+
*
|
|
9
|
+
* Hardcoding the list is what let three catalogs drift apart: the overview
|
|
10
|
+
* listed 8 effects, the mutation schema 12, and neither knew about `limiter`,
|
|
11
|
+
* `qverb`, or MFX's `wavefold`/`resonator`. The manifest is the artifact both
|
|
12
|
+
* the UI and C++ already agree on, so it is the projection source.
|
|
13
|
+
*/
|
|
14
|
+
export function cellEffectNames(manifest) {
|
|
15
|
+
const names = new Set();
|
|
16
|
+
for (const p of manifest.stateVariables ?? []) {
|
|
17
|
+
const m = /^cell1_([A-Za-z0-9]+)Enabled$/.exec(p.paramId ?? "");
|
|
18
|
+
if (!m)
|
|
19
|
+
continue;
|
|
20
|
+
names.add(m[1]);
|
|
21
|
+
}
|
|
22
|
+
return [...names].sort();
|
|
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
|
+
}
|
|
5
35
|
let cachedManifest = new Map();
|
|
6
36
|
let paramIndex = new Map();
|
|
7
37
|
const DISCOVERY_FILE = resolve(homedir(), ".pam-mcp-bridge.json");
|
|
@@ -115,15 +145,40 @@ export async function getGlobalParameters() {
|
|
|
115
145
|
const manifest = await loadManifest();
|
|
116
146
|
return manifest.parameters.filter((p) => !p.cell);
|
|
117
147
|
}
|
|
118
|
-
|
|
148
|
+
// C++ namespaces the preset directory by PLUGIN_NAME (PluginUtils::getBasePath),
|
|
149
|
+
// so each product owns a sibling tree under "MAP Audio". Hardcoding "PAM" here
|
|
150
|
+
// pointed MFX's list_presets / read_preset at PAM's presets.
|
|
151
|
+
const PRESET_FOLDER_BY_PRODUCT = {
|
|
152
|
+
pam: "PAM",
|
|
153
|
+
cell1: "CELL1",
|
|
154
|
+
mfx: "MFX",
|
|
155
|
+
};
|
|
156
|
+
// Factory trees shipped in the repo. Router products keep their own — an MFX
|
|
157
|
+
// patch is meaningless to the sampler and vice versa.
|
|
158
|
+
const REPO_PRESET_DIR_BY_PRODUCT = {
|
|
159
|
+
pam: ["installer", "prepared-presets", "Presets"],
|
|
160
|
+
cell1: ["installer", "prepared-presets", "Presets"],
|
|
161
|
+
mfx: ["installer", "mfx-factory-presets", "Presets"],
|
|
162
|
+
};
|
|
163
|
+
function getUserPresetsDir(product) {
|
|
164
|
+
const folder = PRESET_FOLDER_BY_PRODUCT[product] ?? PRESET_FOLDER_BY_PRODUCT.pam;
|
|
119
165
|
if (process.platform === "win32") {
|
|
120
|
-
return resolve(process.env.APPDATA ?? homedir(), "MAP Audio",
|
|
166
|
+
return resolve(process.env.APPDATA ?? homedir(), "MAP Audio", folder, "Presets");
|
|
121
167
|
}
|
|
122
|
-
return resolve(homedir(), "Library", "Application Support", "MAP Audio",
|
|
168
|
+
return resolve(homedir(), "Library", "Application Support", "MAP Audio", folder, "Presets");
|
|
169
|
+
}
|
|
170
|
+
/** The product the offline tools should read, resolved exactly like the manifest. */
|
|
171
|
+
async function resolveActiveProduct() {
|
|
172
|
+
const envProduct = process.env.PAM_MANIFEST_PRODUCT ??
|
|
173
|
+
process.env.PAM_PRODUCT ??
|
|
174
|
+
process.env.PAM_MCP_PRODUCT;
|
|
175
|
+
return normalizeProduct(envProduct ?? activeProductHint ?? (await discoverProductFromBridge()));
|
|
123
176
|
}
|
|
124
177
|
export async function findPresetDirs() {
|
|
178
|
+
const product = await resolveActiveProduct();
|
|
125
179
|
const dirs = [];
|
|
126
|
-
const
|
|
180
|
+
const repoSegments = REPO_PRESET_DIR_BY_PRODUCT[product] ?? REPO_PRESET_DIR_BY_PRODUCT.pam;
|
|
181
|
+
const repoPresets = resolve(getProjectRoot(), ...repoSegments);
|
|
127
182
|
try {
|
|
128
183
|
await stat(repoPresets);
|
|
129
184
|
dirs.push(repoPresets);
|
|
@@ -132,7 +187,7 @@ export async function findPresetDirs() {
|
|
|
132
187
|
// not available
|
|
133
188
|
}
|
|
134
189
|
try {
|
|
135
|
-
const userPresets = getUserPresetsDir();
|
|
190
|
+
const userPresets = getUserPresetsDir(product);
|
|
136
191
|
await stat(userPresets);
|
|
137
192
|
dirs.push(userPresets);
|
|
138
193
|
}
|
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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"}
|