@map-audio/pam-mcp-server 1.7.0 → 1.18.1
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 +21 -5
- package/dist/bridge.d.ts +18 -3
- package/dist/bridge.js +122 -19
- package/dist/bridge.js.map +1 -1
- package/dist/fgemma-format.d.ts +119 -0
- package/dist/fgemma-format.js +292 -0
- package/dist/fgemma-format.js.map +1 -0
- package/dist/fgemma-runner.d.ts +27 -0
- package/dist/fgemma-runner.js +475 -0
- package/dist/fgemma-runner.js.map +1 -0
- package/dist/manifest-cell1.json +7950 -0
- package/dist/manifest-mfx.json +13381 -0
- package/dist/manifest.d.ts +2 -1
- package/dist/manifest.js +79 -29
- package/dist/manifest.js.map +1 -1
- package/dist/manifest.json +19774 -6576
- package/dist/mixAssist.d.ts +155 -0
- package/dist/mixAssist.js +647 -0
- package/dist/mixAssist.js.map +1 -0
- package/dist/presetSave.d.ts +10 -0
- package/dist/presetSave.js +22 -0
- package/dist/presetSave.js.map +1 -0
- package/dist/server.js +3137 -196
- package/dist/server.js.map +1 -1
- package/package.json +5 -2
|
@@ -0,0 +1,155 @@
|
|
|
1
|
+
export interface CellStemAnalysis {
|
|
2
|
+
cellId: number;
|
|
3
|
+
lufsI?: number;
|
|
4
|
+
lufsS?: number;
|
|
5
|
+
lufsRoll?: number;
|
|
6
|
+
lra?: number;
|
|
7
|
+
truePeakDb?: number;
|
|
8
|
+
samplePeakDb?: number;
|
|
9
|
+
psr?: number;
|
|
10
|
+
plr?: number;
|
|
11
|
+
corr?: number;
|
|
12
|
+
corrLow?: number;
|
|
13
|
+
onsets: number;
|
|
14
|
+
onsetDensity: number;
|
|
15
|
+
seconds: number;
|
|
16
|
+
barkDb: number[];
|
|
17
|
+
}
|
|
18
|
+
export interface MixAnalysis {
|
|
19
|
+
epoch: number;
|
|
20
|
+
live?: boolean;
|
|
21
|
+
sampleRate: number;
|
|
22
|
+
durationSeconds: number;
|
|
23
|
+
bpm: number;
|
|
24
|
+
cells: CellStemAnalysis[];
|
|
25
|
+
master: Omit<CellStemAnalysis, 'cellId'>;
|
|
26
|
+
}
|
|
27
|
+
export interface CellContext {
|
|
28
|
+
cellId: number;
|
|
29
|
+
hasSource: boolean;
|
|
30
|
+
muted: boolean;
|
|
31
|
+
soloed: boolean;
|
|
32
|
+
volume: number;
|
|
33
|
+
pan: number;
|
|
34
|
+
eqLowGain: number;
|
|
35
|
+
eqMidGain: number;
|
|
36
|
+
eqHighGain: number;
|
|
37
|
+
eqEnabled: boolean;
|
|
38
|
+
compressorEnabled: boolean;
|
|
39
|
+
compressorThreshold: number;
|
|
40
|
+
compressorRatioAmount: number;
|
|
41
|
+
compressorAttack: number;
|
|
42
|
+
compressorRelease: number;
|
|
43
|
+
volumeModulated: boolean;
|
|
44
|
+
panModulated: boolean;
|
|
45
|
+
eqModulated: boolean;
|
|
46
|
+
compModulated: boolean;
|
|
47
|
+
}
|
|
48
|
+
export interface MixCell {
|
|
49
|
+
analysis: CellStemAnalysis;
|
|
50
|
+
context: CellContext;
|
|
51
|
+
}
|
|
52
|
+
export interface MixMeasurement {
|
|
53
|
+
cells: MixCell[];
|
|
54
|
+
masterLufsI?: number;
|
|
55
|
+
masterCorrLow?: number;
|
|
56
|
+
epoch: number;
|
|
57
|
+
}
|
|
58
|
+
export type MixScope = 'balance' | 'pan' | 'eq' | 'dynamics';
|
|
59
|
+
export interface MixAssistOptions {
|
|
60
|
+
scopes: MixScope[];
|
|
61
|
+
}
|
|
62
|
+
export interface MixMove {
|
|
63
|
+
key: string;
|
|
64
|
+
value: number;
|
|
65
|
+
why: string;
|
|
66
|
+
cellId: number;
|
|
67
|
+
}
|
|
68
|
+
export interface MixSuggestion {
|
|
69
|
+
moves: MixMove[];
|
|
70
|
+
guardsHit: string[];
|
|
71
|
+
flat: Record<string, number>;
|
|
72
|
+
summary?: string;
|
|
73
|
+
}
|
|
74
|
+
export type CurrentFlatState = Record<string, number | undefined>;
|
|
75
|
+
export declare const MAX_FADER_MOVE_DB = 12;
|
|
76
|
+
export declare const FADER_EPSILON_DB = 0.3;
|
|
77
|
+
export declare const FADER_COMPENSATION_EPSILON_DB = 0.05;
|
|
78
|
+
export declare const MIN_STEM_LUFS = -50;
|
|
79
|
+
export declare const MASK_PENALTY_DB_PER_UNIT = 3;
|
|
80
|
+
export declare const ROLE_OFFSETS_DB: {
|
|
81
|
+
readonly kick: 2;
|
|
82
|
+
readonly drums: 0;
|
|
83
|
+
readonly bass: 0;
|
|
84
|
+
readonly melodic: -2;
|
|
85
|
+
readonly ambient: -5;
|
|
86
|
+
};
|
|
87
|
+
export type CellRole = keyof typeof ROLE_OFFSETS_DB;
|
|
88
|
+
export declare const FADER_FLOOR_DB = -59;
|
|
89
|
+
export declare const FADER_CEIL_DB = 12;
|
|
90
|
+
export declare const BASS_LOW_FRACTION = 0.5;
|
|
91
|
+
export declare const LOW_TRANSIENT_ONSET_DENSITY = 0.5;
|
|
92
|
+
export declare const DRUMS_CREST_MIN_DB = 10;
|
|
93
|
+
export declare const DRUMS_ONSET_DENSITY = 3;
|
|
94
|
+
export declare const AMBIENT_ONSET_DENSITY = 0.3;
|
|
95
|
+
export declare const AMBIENT_MAX_PLR = 8;
|
|
96
|
+
export declare const PAN_EPSILON = 0.05;
|
|
97
|
+
export declare const MAX_PAN_SPREAD = 0.35;
|
|
98
|
+
export declare const PAN_CENTER_GUARD = 0.15;
|
|
99
|
+
export declare const BASS_RECENTER_CORR_LOW = 0.7;
|
|
100
|
+
export declare const MASKING_PAIR_THRESHOLD = 0.5;
|
|
101
|
+
export declare const MAX_EQ_CUT_DB = 3;
|
|
102
|
+
export declare const MAX_EQ_LOW_CUT_DB = 1.5;
|
|
103
|
+
export declare const MAX_EQ_CUTS = 2;
|
|
104
|
+
export declare const EQ_EPSILON_DB = 0.3;
|
|
105
|
+
export declare const CREST_ENGAGE_DB = 14;
|
|
106
|
+
export declare const COMP_RATIO_MIN = 1.5;
|
|
107
|
+
export declare const COMP_RATIO_MAX = 4;
|
|
108
|
+
export declare const COMP_EPSILON = 0.05;
|
|
109
|
+
export declare const PERCUSSIVITY_FULL_ONSET_DENSITY = 8;
|
|
110
|
+
export declare const MIX_PARAM_DEFAULTS: Record<string, number>;
|
|
111
|
+
export declare function mixParamDefault(key: string): number;
|
|
112
|
+
export declare const BARK_BAND_COUNT = 25;
|
|
113
|
+
export declare const BARK_BAND_EDGES_HZ: readonly number[];
|
|
114
|
+
export declare function bandForFrequency(hz: number): number;
|
|
115
|
+
export declare function barkBandCenterHz(band: number): number;
|
|
116
|
+
export declare const dbToPower: (db: number) => number;
|
|
117
|
+
export declare function barkCentroidHz(barkDb: readonly number[]): number;
|
|
118
|
+
export declare function lowFraction(barkDb: readonly number[], belowHz?: number): number;
|
|
119
|
+
export declare function maskingOverlap(aDb: readonly number[], bDb: readonly number[]): number;
|
|
120
|
+
export declare function maskingMatrix(barkDbByCell: readonly (readonly number[])[]): number[][];
|
|
121
|
+
export type OverlapRegion = 'low' | 'mid' | 'high';
|
|
122
|
+
export declare function dominantOverlapRegion(aDb: readonly number[], bDb: readonly number[]): OverlapRegion;
|
|
123
|
+
export declare function parseMixAnalysisPayload(raw: unknown): MixAnalysis | null;
|
|
124
|
+
export interface ModulationLists {
|
|
125
|
+
lfos?: Array<{
|
|
126
|
+
paramId?: string;
|
|
127
|
+
enabled?: number | boolean;
|
|
128
|
+
}>;
|
|
129
|
+
envelopes?: Array<{
|
|
130
|
+
paramId?: string;
|
|
131
|
+
}>;
|
|
132
|
+
vary?: Array<{
|
|
133
|
+
paramId?: string;
|
|
134
|
+
}>;
|
|
135
|
+
paramSeqs?: Array<{
|
|
136
|
+
paramId?: string;
|
|
137
|
+
}>;
|
|
138
|
+
macros?: Array<{
|
|
139
|
+
paramId?: string;
|
|
140
|
+
enabled?: number | boolean;
|
|
141
|
+
[key: string]: unknown;
|
|
142
|
+
}>;
|
|
143
|
+
}
|
|
144
|
+
export interface MixContextOptions {
|
|
145
|
+
hasSource?: (cellId: number) => boolean;
|
|
146
|
+
}
|
|
147
|
+
export declare function paramIsModulated(lists: ModulationLists, paramId: string): boolean;
|
|
148
|
+
export declare const MIX_CURRENT_SUFFIXES: readonly ["volume", "pan", "eqLowGain", "eqMidGain", "eqHighGain", "compressorThreshold", "compressorRatioAmount", "compressorAttack", "compressorRelease", "compressorRatio"];
|
|
149
|
+
export declare function buildMixMeasurementFromState(analysis: MixAnalysis, flatState: Record<string, unknown>, mods?: ModulationLists, options?: MixContextOptions): MixMeasurement;
|
|
150
|
+
export declare function currentFlatFromState(analysis: MixAnalysis, flatState: Record<string, unknown>): CurrentFlatState;
|
|
151
|
+
export declare function isLowDominant(a: CellStemAnalysis): boolean;
|
|
152
|
+
export declare function classifyCellRole(a: CellStemAnalysis): CellRole;
|
|
153
|
+
export declare function normalizeMovesToBus(deltasDb: number[], lufs: number[]): number[];
|
|
154
|
+
export declare function normalizeMovesToBusBounded(rawDeltasDb: number[], lufs: number[], currentVolumes: number[]): number[];
|
|
155
|
+
export declare function suggestMix(m: MixMeasurement, options: MixAssistOptions, current?: CurrentFlatState): MixSuggestion;
|