@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.
Files changed (54) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +33 -7
  3. package/dist/audioAnalysis.d.ts +35 -0
  4. package/dist/audioAnalysis.js +277 -0
  5. package/dist/audioAnalysis.js.map +1 -0
  6. package/dist/bridge.d.ts +6 -0
  7. package/dist/bridge.js +151 -168
  8. package/dist/bridge.js.map +1 -1
  9. package/dist/corpusFingerprints.d.ts +17 -0
  10. package/dist/corpusFingerprints.js +10 -0
  11. package/dist/corpusFingerprints.js.map +1 -0
  12. package/dist/corpusRanges.d.ts +28 -0
  13. package/dist/corpusRanges.js +1029 -0
  14. package/dist/corpusRanges.js.map +1 -0
  15. package/dist/drumSynthEngines.json +376 -0
  16. package/dist/fingerprint.d.ts +70 -0
  17. package/dist/fingerprint.js +240 -0
  18. package/dist/fingerprint.js.map +1 -0
  19. package/dist/generated/variationSnapshot.d.ts +8 -4
  20. package/dist/generated/variationSnapshot.js +6 -4
  21. package/dist/generated/variationSnapshot.js.map +1 -1
  22. package/dist/generativePlayerPresets.json +70 -0
  23. package/dist/generativePlayers.json +134 -0
  24. package/dist/manifest-cell1.json +4972 -249
  25. package/dist/manifest-mfx.json +11571 -1800
  26. package/dist/manifest.d.ts +15 -3
  27. package/dist/manifest.js +24 -15
  28. package/dist/manifest.js.map +1 -1
  29. package/dist/manifest.json +25034 -499
  30. package/dist/mfxCombos.d.ts +45 -0
  31. package/dist/mfxCombos.js +499 -0
  32. package/dist/mfxCombos.js.map +1 -0
  33. package/dist/midiFile.d.ts +21 -0
  34. package/dist/midiFile.js +108 -0
  35. package/dist/midiFile.js.map +1 -0
  36. package/dist/mixAssist.d.ts +6 -0
  37. package/dist/mixAssist.js +96 -11
  38. package/dist/mixAssist.js.map +1 -1
  39. package/dist/players.d.ts +89 -0
  40. package/dist/players.js +235 -0
  41. package/dist/players.js.map +1 -0
  42. package/dist/presetSave.d.ts +5 -0
  43. package/dist/presetSave.js +22 -0
  44. package/dist/presetSave.js.map +1 -1
  45. package/dist/productProfile.d.ts +9 -0
  46. package/dist/productProfile.js +20 -0
  47. package/dist/productProfile.js.map +1 -0
  48. package/dist/sampleSlicing.d.ts +12 -0
  49. package/dist/sampleSlicing.js +78 -0
  50. package/dist/sampleSlicing.js.map +1 -0
  51. package/dist/server.js +2536 -483
  52. package/dist/server.js.map +1 -1
  53. package/dist/variationSessionKeys.json +34 -1
  54. package/package.json +11 -5
@@ -0,0 +1,108 @@
1
+ // Standard MIDI File (type 1) writer for export_midi — pure Node over the
2
+ // pattern state, mirroring PAMPluginProcessor::exportMidi's tiling and channel rule.
3
+ export const MIDI_PPQ = 480;
4
+ /** Must match syncUtils::patternSpeedMultipliers (modules/dsp-core/SyncUtils.h). */
5
+ export const PATTERN_SPEED_MULTIPLIERS = [
6
+ 1 / 32, 1 / 16, 1 / 12, 1 / 8, 1 / 6, 1 / 5, 1 / 4, 1 / 3, 1 / 2, 1,
7
+ 1.33, 1.5, 1.66, 2, 3, 4, 5, 6, 8, 12,
8
+ ];
9
+ export const patternSpeedMultiplier = (index) => {
10
+ const i = Math.round(Number(index));
11
+ return PATTERN_SPEED_MULTIPLIERS[Number.isFinite(i) ? Math.max(0, Math.min(PATTERN_SPEED_MULTIPLIERS.length - 1, i)) : 9];
12
+ };
13
+ /**
14
+ * Tile one cell's drawn pattern across `totalBeats` host beats. Event times are
15
+ * in pattern units; the speed multiplier converts them to host beats.
16
+ */
17
+ export function tilePatternEvents(sequence, patternLength, speedIndex, totalBeats, channel) {
18
+ const events = [];
19
+ if (!Array.isArray(sequence) || sequence.length === 0)
20
+ return events;
21
+ const speedMul = patternSpeedMultiplier(speedIndex);
22
+ const length = Number(patternLength);
23
+ const cycleBeats = (Number.isFinite(length) && length > 0 ? length : 4) / speedMul;
24
+ if (!(cycleBeats > 0) || !(totalBeats > 0))
25
+ return events;
26
+ // Velocities are 0..127 in state; a pattern written in 0..1 is rescaled.
27
+ const raw = sequence;
28
+ const maxVelocity = raw.reduce((max, e) => Math.max(max, Number(e?.velocity) || 0), 0);
29
+ const velocityScale = maxVelocity > 0 && maxVelocity <= 1 ? 127 : 1;
30
+ for (let loop = 0; loop * cycleBeats < totalBeats; loop++) {
31
+ const loopStart = loop * cycleBeats;
32
+ for (const e of raw) {
33
+ const note = Math.round(Number(e?.note));
34
+ const time = Number(e?.time);
35
+ if (!Number.isFinite(note) || note < 0 || note > 127 || !Number.isFinite(time) || time < 0)
36
+ continue;
37
+ const startBeats = loopStart + time / speedMul;
38
+ if (startBeats >= totalBeats)
39
+ continue;
40
+ const duration = Number(e?.duration);
41
+ const durationBeats = Math.max(1 / 64, (Number.isFinite(duration) && duration > 0 ? duration : 0.25) / speedMul);
42
+ const velocity = Math.max(1, Math.min(127, Math.round((Number(e?.velocity) || 100) * velocityScale)));
43
+ events.push({ channel, note, velocity, startBeats, durationBeats: Math.min(durationBeats, totalBeats - startBeats) });
44
+ }
45
+ }
46
+ return events;
47
+ }
48
+ function varLen(value) {
49
+ let v = Math.max(0, Math.round(value));
50
+ const bytes = [v & 0x7f];
51
+ v >>= 7;
52
+ while (v > 0) {
53
+ bytes.unshift((v & 0x7f) | 0x80);
54
+ v >>= 7;
55
+ }
56
+ return bytes;
57
+ }
58
+ function chunk(type, body) {
59
+ const header = Buffer.alloc(8);
60
+ header.write(type, 0, "ascii");
61
+ header.writeUInt32BE(body.length, 4);
62
+ return Buffer.concat([header, Buffer.from(body)]);
63
+ }
64
+ function metaTrack(bpm, name) {
65
+ const usPerQuarter = Math.round(60_000_000 / Math.max(1, bpm));
66
+ const nameBytes = [...Buffer.from(name, "utf8")];
67
+ const body = [
68
+ ...varLen(0), 0xff, 0x03, ...varLen(nameBytes.length), ...nameBytes,
69
+ ...varLen(0), 0xff, 0x51, 0x03, (usPerQuarter >> 16) & 0xff, (usPerQuarter >> 8) & 0xff, usPerQuarter & 0xff,
70
+ ...varLen(0), 0xff, 0x58, 0x04, 4, 2, 24, 8,
71
+ ...varLen(0), 0xff, 0x2f, 0x00,
72
+ ];
73
+ return chunk("MTrk", body);
74
+ }
75
+ function noteTrack(name, events) {
76
+ const messages = [];
77
+ for (const e of events) {
78
+ const status = Math.max(0, Math.min(15, e.channel - 1));
79
+ const on = Math.round(e.startBeats * MIDI_PPQ);
80
+ const off = Math.max(on + 1, Math.round((e.startBeats + e.durationBeats) * MIDI_PPQ));
81
+ // Note-offs sort before note-ons at the same tick so a retrigger is not swallowed.
82
+ messages.push({ tick: off, order: 0, bytes: [0x80 | status, e.note, 0] });
83
+ messages.push({ tick: on, order: 1, bytes: [0x90 | status, e.note, e.velocity] });
84
+ }
85
+ messages.sort((a, b) => a.tick - b.tick || a.order - b.order);
86
+ const nameBytes = [...Buffer.from(name, "utf8")];
87
+ const body = [...varLen(0), 0xff, 0x03, ...varLen(nameBytes.length), ...nameBytes];
88
+ let last = 0;
89
+ for (const m of messages) {
90
+ body.push(...varLen(m.tick - last), ...m.bytes);
91
+ last = m.tick;
92
+ }
93
+ body.push(...varLen(0), 0xff, 0x2f, 0x00);
94
+ return chunk("MTrk", body);
95
+ }
96
+ /** A type-1 SMF: one tempo track plus one named track per entry. */
97
+ export function buildMidiFile(bpm, tracks, title = "PAM") {
98
+ const header = Buffer.alloc(6);
99
+ header.writeUInt16BE(1, 0);
100
+ header.writeUInt16BE(tracks.length + 1, 2);
101
+ header.writeUInt16BE(MIDI_PPQ, 4);
102
+ return Buffer.concat([
103
+ chunk("MThd", [...header]),
104
+ metaTrack(bpm, title),
105
+ ...tracks.map((track) => noteTrack(track.name, track.events)),
106
+ ]);
107
+ }
108
+ //# sourceMappingURL=midiFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"midiFile.js","sourceRoot":"","sources":["../src/midiFile.ts"],"names":[],"mappings":"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"}
@@ -73,6 +73,7 @@ export interface MixSuggestion {
73
73
  }
74
74
  export type CurrentFlatState = Record<string, number | undefined>;
75
75
  export declare const MAX_FADER_MOVE_DB = 12;
76
+ export declare const MAX_FADER_LIFT_DB = 3;
76
77
  export declare const FADER_EPSILON_DB = 0.3;
77
78
  export declare const FADER_COMPENSATION_EPSILON_DB = 0.05;
78
79
  export declare const MIN_STEM_LUFS = -50;
@@ -83,6 +84,7 @@ export declare const ROLE_OFFSETS_DB: {
83
84
  readonly bass: 0;
84
85
  readonly melodic: -2;
85
86
  readonly ambient: -5;
87
+ readonly hats: -11;
86
88
  };
87
89
  export type CellRole = keyof typeof ROLE_OFFSETS_DB;
88
90
  export declare const FADER_FLOOR_DB = -59;
@@ -91,6 +93,8 @@ export declare const BASS_LOW_FRACTION = 0.5;
91
93
  export declare const LOW_TRANSIENT_ONSET_DENSITY = 0.5;
92
94
  export declare const DRUMS_CREST_MIN_DB = 10;
93
95
  export declare const DRUMS_ONSET_DENSITY = 3;
96
+ export declare const PERCUSSIVE_ONSET_DENSITY = 0.35;
97
+ export declare const HATS_CENTROID_HZ = 4000;
94
98
  export declare const AMBIENT_ONSET_DENSITY = 0.3;
95
99
  export declare const AMBIENT_MAX_PLR = 8;
96
100
  export declare const PAN_EPSILON = 0.05;
@@ -117,6 +121,7 @@ export declare const dbToPower: (db: number) => number;
117
121
  export declare function barkCentroidHz(barkDb: readonly number[]): number;
118
122
  export declare function lowFraction(barkDb: readonly number[], belowHz?: number): number;
119
123
  export declare function maskingOverlap(aDb: readonly number[], bDb: readonly number[]): number;
124
+ export declare function spectralShapeOverlap(aDb: readonly number[], bDb: readonly number[]): number;
120
125
  export declare function maskingMatrix(barkDbByCell: readonly (readonly number[])[]): number[][];
121
126
  export type OverlapRegion = 'low' | 'mid' | 'high';
122
127
  export declare function dominantOverlapRegion(aDb: readonly number[], bDb: readonly number[]): OverlapRegion;
@@ -152,4 +157,5 @@ export declare function isLowDominant(a: CellStemAnalysis): boolean;
152
157
  export declare function classifyCellRole(a: CellStemAnalysis): CellRole;
153
158
  export declare function normalizeMovesToBus(deltasDb: number[], lufs: number[]): number[];
154
159
  export declare function normalizeMovesToBusBounded(rawDeltasDb: number[], lufs: number[], currentVolumes: number[]): number[];
160
+ export declare function maskerWeight(pLufs: number, qLufs: number): number;
155
161
  export declare function suggestMix(m: MixMeasurement, options: MixAssistOptions, current?: CurrentFlatState): MixSuggestion;
package/dist/mixAssist.js CHANGED
@@ -12,6 +12,13 @@
12
12
  // docs/plans/AUTOMIX_RESEARCH.md §3.1.
13
13
  // --- balance (fader) stage ---
14
14
  export const MAX_FADER_MOVE_DB = 12; // AUTOMIX_RESEARCH §5 clamp
15
+ // Lifts are capped far tighter than cuts. "This element is too loud" is a
16
+ // measurement; "this element is too quiet" is a guess about intent, and a
17
+ // deliberately buried hat/perc layer reads exactly like a neglected one. A
18
+ // symmetric 12 dB bound let the balance solve raise a hat 12 dB over a mix the
19
+ // user had already voiced (kick -14, snare -18, hats -30 LUFS proposed
20
+ // +12 dB on the hats). Cuts keep the full MAX_FADER_MOVE_DB travel.
21
+ export const MAX_FADER_LIFT_DB = 3;
15
22
  export const FADER_EPSILON_DB = 0.3; // no balance pass when every move sits inside this dead-zone
16
23
  export const FADER_COMPENSATION_EPSILON_DB = 0.05; // retain 0.1 dB companion moves that preserve bus power
17
24
  export const MIN_STEM_LUFS = -50; // quieter stems read as "not sounding" — skipped
@@ -19,12 +26,20 @@ export const MIN_STEM_LUFS = -50; // quieter stems read as "not sounding" — sk
19
26
  // LUFS overstates how loud it reads inside the mix).
20
27
  export const MASK_PENALTY_DB_PER_UNIT = 3;
21
28
  // Offsets are RELATIVE (the bus normalization cancels any uniform shift).
22
- // kick sits ABOVE the stem power mean: PAM's genre corpus (techno/house/dnb/
23
- // trap/boom_bap/drill) mixes kick-forward, and an equal-loudness target that
29
+ // kick sits ABOVE the stem power mean: PAM's genre corpus mixes kick-forward
30
+ // (idm, the one exception, still keeps a present kick), and an equal-loudness target that
24
31
  // pulls a deliberately hot kick down to the mean reads as the assistant
25
32
  // "killing the kick" — especially live, where AUTO feeds this solve into the
26
33
  // signed rider every second.
27
- export const ROLE_OFFSETS_DB = { kick: 2, drums: 0, bass: 0, melodic: -2, ambient: -5 };
34
+ // `hats` covers the high-centroid percussion family (closed hats, shakers,
35
+ // tambourine, ride, high clatter perc). It sits far below the rest because
36
+ // that is where mixes put it — the old table had no such role, so a 16th-note
37
+ // hat classified as `drums` and the solve targeted it level with the snare.
38
+ // The -11 is set from the gap it has to reproduce, not by feel: soloed stems
39
+ // in a voiced mix read a hat 14-18 dB under the kick, and kick +2 minus
40
+ // hats -11 is 13. Too shallow a value and the solve keeps wanting to lift a
41
+ // hat the user deliberately buried, one capped pass at a time.
42
+ export const ROLE_OFFSETS_DB = { kick: 2, drums: 0, bass: 0, melodic: -2, ambient: -5, hats: -11 };
28
43
  // Fader floor: -60 is the true-mute sentinel (dsp/modules/sampler.ts) — never
29
44
  // propose at or below it.
30
45
  export const FADER_FLOOR_DB = -59;
@@ -44,6 +59,19 @@ export const LOW_TRANSIENT_ONSET_DENSITY = 0.5;
44
59
  // PLR ~6-9 and stay bass.
45
60
  export const DRUMS_CREST_MIN_DB = 10;
46
61
  export const DRUMS_ONSET_DENSITY = 3; // onsets/sec at or above = drums
62
+ // The onset-density gate alone is tuned for a full loop, not for one drum per
63
+ // cell: a backbeat snare fires ~1 onset/sec, so it fell through to `melodic`
64
+ // and took that role's -2 dB — BELOW the hat it should sit above. A cell that
65
+ // is not low-dominant but carries drum-class crest counts as percussive at a
66
+ // much lower density; sustained material stays under DRUMS_CREST_MIN_DB.
67
+ // Sits just above AMBIENT_ONSET_DENSITY: onsetDensity divides by the WHOLE
68
+ // capture, silence included, so a shaker or tambourine on every other bar
69
+ // reads 0.4-0.5 and is still percussion. Below this is a one-shot, not a part.
70
+ export const PERCUSSIVE_ONSET_DENSITY = 0.35;
71
+ // Spectral centroid at or above this puts a percussive cell in `hats`. Closed
72
+ // hats and shakers read 6-10 kHz, rides 4-8 kHz; a snare reads 2-4 kHz and a
73
+ // full loop 1-3 kHz, so they stay `drums`.
74
+ export const HATS_CENTROID_HZ = 4000;
47
75
  export const AMBIENT_ONSET_DENSITY = 0.3; // at or below (with low crest) = ambient
48
76
  export const AMBIENT_MAX_PLR = 8;
49
77
  // --- pan stage ---
@@ -152,6 +180,34 @@ export function maskingOverlap(aDb, bDb) {
152
180
  }
153
181
  return sumA > 0 ? shared / sumA : 0;
154
182
  }
183
+ // Level-free spectral collision: sum_b min(Pa, Pb) over POWER-NORMALIZED
184
+ // spectra. 1 = same shape, 0 = disjoint bands, and scaling either stem leaves
185
+ // it unchanged.
186
+ //
187
+ // maskingOverlap above cannot answer "do these two collide" because it is
188
+ // level-coupled by construction: any cell sitting under a louder one in the
189
+ // same bands reads ~1 no matter how little spectrum they share (min(Pa,Pb)
190
+ // collapses to Pa). The BAL stage fed that number into its Ward-lite partial
191
+ // loudness penalty, so the QUIETEST cell always took the largest penalty and
192
+ // the largest compensating lift — a hat 16 dB down measured maskedFraction
193
+ // 0.95 against a perc layer it barely touches. The EQ and PAN stages want the
194
+ // asymmetric reading (it identifies masker vs masked), so it stays.
195
+ export function spectralShapeOverlap(aDb, bDb) {
196
+ const n = Math.min(aDb.length, bDb.length, BARK_BAND_COUNT);
197
+ let sumA = 0;
198
+ let sumB = 0;
199
+ for (let b = 0; b < n; b++) {
200
+ sumA += dbToPower(aDb[b]);
201
+ sumB += dbToPower(bDb[b]);
202
+ }
203
+ if (sumA <= 0 || sumB <= 0)
204
+ return 0;
205
+ let shared = 0;
206
+ for (let b = 0; b < n; b++) {
207
+ shared += Math.min(dbToPower(aDb[b]) / sumA, dbToPower(bDb[b]) / sumB);
208
+ }
209
+ return shared;
210
+ }
155
211
  // M[i][j] = fraction of cell i's energy overlapped by cell j. Diagonal 0.
156
212
  export function maskingMatrix(barkDbByCell) {
157
213
  const n = barkDbByCell.length;
@@ -261,7 +317,12 @@ export function paramIsModulated(lists, paramId) {
261
317
  return macro !== undefined && Number(macro[`exclude_cell${cellId}`] ?? 0) <= 0.5;
262
318
  }
263
319
  const numOr = (v, d) => typeof v === 'number' && Number.isFinite(v) ? v : d;
264
- const EQ_SUFFIXES = ['eqLowGain', 'eqMidGain', 'eqHighGain'];
320
+ const EQ_GAIN_SUFFIXES = ['eqLowGain', 'eqMidGain', 'eqHighGain'];
321
+ const EQ_MODULATION_SUFFIXES = [
322
+ ...EQ_GAIN_SUFFIXES,
323
+ 'eqLowMidFreq',
324
+ 'eqMidHighFreq',
325
+ ];
265
326
  const COMP_SUFFIXES = [
266
327
  'compressorThreshold',
267
328
  'compressorRatioAmount',
@@ -272,7 +333,7 @@ const COMP_SUFFIXES = [
272
333
  export const MIX_CURRENT_SUFFIXES = [
273
334
  'volume',
274
335
  'pan',
275
- ...EQ_SUFFIXES,
336
+ ...EQ_GAIN_SUFFIXES,
276
337
  ...COMP_SUFFIXES,
277
338
  ];
278
339
  export function buildMixMeasurementFromState(analysis, flatState, mods = {}, options = {}) {
@@ -299,7 +360,7 @@ export function buildMixMeasurementFromState(analysis, flatState, mods = {}, opt
299
360
  compressorRelease: numOr(k('compressorRelease'), 200),
300
361
  volumeModulated: paramIsModulated(mods, `cell${id}_volume`),
301
362
  panModulated: paramIsModulated(mods, `cell${id}_pan`),
302
- eqModulated: EQ_SUFFIXES.some((s) => paramIsModulated(mods, `cell${id}_${s}`)),
363
+ eqModulated: EQ_MODULATION_SUFFIXES.some((s) => paramIsModulated(mods, `cell${id}_${s}`)),
303
364
  compModulated: COMP_SUFFIXES.some((s) => paramIsModulated(mods, `cell${id}_${s}`)),
304
365
  };
305
366
  return { analysis: a, context };
@@ -347,8 +408,13 @@ export function classifyCellRole(a) {
347
408
  return 'kick';
348
409
  if (lowDominant)
349
410
  return 'bass';
350
- if (a.onsetDensity >= DRUMS_ONSET_DENSITY)
351
- return 'drums';
411
+ // Two ways into the percussion family: dense enough to be a loop, or sparse
412
+ // but carrying drum-class crest (one drum per cell — the backbeat snare
413
+ // case). Centroid then splits hats/shakers/rides off from the rest.
414
+ const percussive = a.onsetDensity >= DRUMS_ONSET_DENSITY ||
415
+ (kickCrest && a.onsetDensity >= PERCUSSIVE_ONSET_DENSITY);
416
+ if (percussive)
417
+ return barkCentroidHz(a.barkDb) >= HATS_CENTROID_HZ ? 'hats' : 'drums';
352
418
  if (a.onsetDensity <= AMBIENT_ONSET_DENSITY && (a.plr ?? 0) < AMBIENT_MAX_PLR)
353
419
  return 'ambient';
354
420
  return 'melodic';
@@ -376,8 +442,9 @@ export function normalizeMovesToBusBounded(rawDeltasDb, lufs, currentVolumes) {
376
442
  const before = powers.reduce((sum, power) => sum + power, 0);
377
443
  if (before <= 0)
378
444
  return rawDeltasDb.slice();
445
+ // Asymmetric on purpose: cuts get the full travel, lifts get MAX_FADER_LIFT_DB.
379
446
  const lower = currentVolumes.map((v) => Math.max(-MAX_FADER_MOVE_DB, FADER_FLOOR_DB - v));
380
- const upper = currentVolumes.map((v) => Math.min(MAX_FADER_MOVE_DB, FADER_CEIL_DB - v));
447
+ const upper = currentVolumes.map((v) => Math.min(MAX_FADER_LIFT_DB, FADER_CEIL_DB - v));
381
448
  const deltasAt = (offset) => rawDeltasDb.map((d, i) => clamp(d - offset, lower[i], upper[i]));
382
449
  const errorAt = (offset) => {
383
450
  const deltas = deltasAt(offset);
@@ -397,6 +464,16 @@ export function normalizeMovesToBusBounded(rawDeltasDb, lufs, currentVolumes) {
397
464
  }
398
465
  return deltasAt(0.5 * (lo + hi));
399
466
  }
467
+ // How much of q's spectral overlap actually masks p, from their level gap.
468
+ // Logistic in dB: 0.5 at equal level, ->1 as q gets louder, ->0 as q gets
469
+ // quieter. It MUST be continuous. A hard `q is louder` test looks equivalent
470
+ // and is not: two cells within a dB of each other swap order as the solve
471
+ // moves them, the penalty flips with the order, the target flips with the
472
+ // penalty, and repeated analyse+apply settles into a +-0.7 dB limit cycle
473
+ // instead of converging (caught by the seeded sweep's fixed-point check).
474
+ export function maskerWeight(pLufs, qLufs) {
475
+ return 1 / (1 + Math.pow(10, (pLufs - qLufs) / 10));
476
+ }
400
477
  export function suggestMix(m, options, current = {}) {
401
478
  const moves = [];
402
479
  const guardsHit = [];
@@ -441,12 +518,20 @@ export function suggestMix(m, options, current = {}) {
441
518
  };
442
519
  }
443
520
  // ---- masking matrix (Ward-lite partial-loudness correction) ------------
521
+ // The matrix stays level-coupled and asymmetric — EQ and PAN read it to tell
522
+ // masker from masked. The BAL penalty below must NOT: maskingOverlap reads
523
+ // ~1 for any cell under a louder one regardless of shared spectrum, so
524
+ // feeding it into effectiveLufs made the quietest cell take the deepest
525
+ // penalty and the largest compensating lift. spectralShapeOverlap answers
526
+ // only "do they collide", and maskerWeight scales that by the level gap.
444
527
  const matrix = maskingMatrix(participants.map((p) => p.cell.analysis.barkDb));
445
528
  for (const p of participants) {
446
529
  let masked = 0;
447
530
  for (const q of participants) {
448
- if (q.index !== p.index)
449
- masked = Math.max(masked, matrix[p.index][q.index]);
531
+ if (q.index === p.index)
532
+ continue;
533
+ const shape = spectralShapeOverlap(p.cell.analysis.barkDb, q.cell.analysis.barkDb);
534
+ masked = Math.max(masked, shape * maskerWeight(p.lufs, q.lufs));
450
535
  }
451
536
  p.maskedFraction = masked;
452
537
  p.effectiveLufs = p.lufs - MASK_PENALTY_DB_PER_UNIT * masked;
@@ -1 +1 @@
1
- {"version":3,"file":"mixAssist.js","sourceRoot":"","sources":["../src/mixAssist.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mixAssist.js","sourceRoot":"","sources":["../src/mixAssist.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,89 @@
1
+ export interface PlayerSlotSpec {
2
+ label: string;
3
+ default: number;
4
+ steps?: number;
5
+ stepLabels?: string[];
6
+ hint?: string;
7
+ center?: boolean;
8
+ }
9
+ export interface PlayerSpec {
10
+ id: number;
11
+ name: string;
12
+ tag: "drum" | "melodic" | "both";
13
+ replay: boolean;
14
+ blurb: string;
15
+ defaults: {
16
+ density: number;
17
+ mutate: number;
18
+ };
19
+ slots: PlayerSlotSpec[];
20
+ }
21
+ export interface PlayerPreset {
22
+ name: string;
23
+ density: number;
24
+ mutate: number;
25
+ p: number[];
26
+ }
27
+ export declare const PLAYER_SLOT_FIELDS: readonly ["playerP1", "playerP2", "playerP3", "playerP4", "playerP5"];
28
+ export type PlayerSlotField = (typeof PLAYER_SLOT_FIELDS)[number];
29
+ export type PlayerField = "playerDensity" | "playerMutate" | PlayerSlotField;
30
+ /** The seven fields that are ALSO manifest params: every write must reach both. */
31
+ export declare const MODULATABLE_PLAYER_FIELDS: readonly PlayerField[];
32
+ export declare const LISTEN_MODES: readonly ["off", "complement", "answer", "harmonic"];
33
+ export type ListenModeName = (typeof LISTEN_MODES)[number];
34
+ export declare const PATTERN_MODES: readonly ["mask", "keep"];
35
+ export type PatternModeName = (typeof PATTERN_MODES)[number];
36
+ /** "No arm on record" in the persisted poly ledger (interface/src/utils/playerPolyArm.ts). */
37
+ export declare const NO_POLY_ARM = -1;
38
+ export declare const PLAYER_GENRES: readonly ["boom_bap", "trap", "drill", "house", "techno", "dnb", "idm"];
39
+ export type PlayerGenre = (typeof PLAYER_GENRES)[number];
40
+ export declare const GENERATIVE_PLAYERS: PlayerSpec[];
41
+ export declare const PLAYER_NAMES: string[];
42
+ export declare const getPlayerSpec: (type: number) => PlayerSpec | undefined;
43
+ /** A roster name (any case) or a numeric id; undefined for anything else. */
44
+ export declare function resolvePlayerSpec(ref: string | number): PlayerSpec | undefined;
45
+ export declare const playerPresetsFor: (type: number) => PlayerPreset[];
46
+ export declare function resolvePlayerPreset(spec: PlayerSpec, name: string): PlayerPreset | undefined;
47
+ /** The roster's own voicing for a type pick — what setCellPlayer seeds before the caller's fields. */
48
+ export declare function playerDefaultsFor(type: number): Record<string, number>;
49
+ export declare function presetConfig(preset: PlayerPreset): Record<string, number>;
50
+ /** A detented field writes exactly i/(steps-1); continuous is the clamped identity. */
51
+ export declare function snapPlayerValue(steps: number | undefined, value: number): number;
52
+ export declare function playerSlotStepIndex(slot: PlayerSlotSpec, value: number): number;
53
+ export declare function playerSlotDisplay(slot: PlayerSlotSpec, value: number): string;
54
+ export declare const playerDensityDisplay: (value: number) => string;
55
+ export declare const playerMutateDisplay: (value: number) => string;
56
+ /**
57
+ * A slot write from an agent: a 0..1 position (snapped to the slot's detents) or,
58
+ * on a labelled slot, one of its step labels. Returns an error string on a miss.
59
+ */
60
+ export declare function resolveSlotValue(slot: PlayerSlotSpec, input: number | string): number | string;
61
+ export interface PlayerGenreSlot {
62
+ index: number;
63
+ genres: PlayerGenre[];
64
+ }
65
+ /** The slot whose detents all name randomizer genres — found from the registry, never hardcoded. */
66
+ export declare function playerGenreSlot(spec: PlayerSpec | undefined): PlayerGenreSlot | undefined;
67
+ export declare function playerGenreConfig(spec: PlayerSpec | undefined, genre: string | undefined): Record<string, number>;
68
+ export interface RolePlayerConfig {
69
+ playerType: number;
70
+ playerP1?: number;
71
+ playerP5?: number;
72
+ isPoly?: number;
73
+ }
74
+ export declare const DEFAULT_PLAYER_TYPE = 2;
75
+ export declare const rolePlayerConfigFor: (cellId: number) => RolePlayerConfig;
76
+ export declare const roleSpreadSummary: () => Record<number, string>;
77
+ export declare const isMelodicPlayer: (spec: PlayerSpec | undefined) => boolean;
78
+ /** uint31 so the seed round-trips through every JSON/number layer intact. */
79
+ export declare const randomPlayerSeed: () => number;
80
+ export declare const cellPlayerType: (cell: Record<string, unknown> | undefined) => number;
81
+ /**
82
+ * Human-readable summary of a cell's running player. The seven modulatable
83
+ * fields are read from the PARAMS (`cell{N}_player*`) with the config as the
84
+ * fallback, because only a UI write mirrors the two and an automated move
85
+ * leaves the config behind.
86
+ */
87
+ export declare function describeCellPlayer(cellId: number, cell: Record<string, unknown> | undefined, state: Record<string, unknown>): Record<string, unknown> | undefined;
88
+ /** The roster as an agent-facing catalogue: one entry per player, presets attached. */
89
+ export declare function describePlayerSpec(spec: PlayerSpec, includePresets: boolean): Record<string, unknown>;