@sudobility/music_player 0.1.41 → 0.1.42

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.
@@ -1 +1 @@
1
- {"version":3,"file":"soundfont-engine.d.ts","sourceRoot":"","sources":["../../src/playback/soundfont-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"soundfont-engine.d.ts","sourceRoot":"","sources":["../../src/playback/soundfont-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,OAAO,KAAK,EAGV,YAAY,EACZ,aAAa,EACb,UAAU,EAEX,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,gBAAgB,EACjB,MAAM,cAAc,CAAC;AAetB,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAOvE,MAAM,MAAM,mBAAmB,GAAG;IAChC,+EAA+E;IAC/E,OAAO,EAAE,YAAY,CAAC;IACtB,wFAAwF;IACxF,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,4DAA4D;IAC5D,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,UAAU,EAAE,MAAM,KAAK,MAAM,IAAI,CAAC;CAClE,CAAC;AAoDF,qBAAa,uBAAwB,YAAW,cAAc;IAC5D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAmB;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAW;IACpC,4EAA4E;IAC5E,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAgB;IACtC,OAAO,CAAC,QAAQ,CAAC,IAAI,CACC;IAEtB,OAAO,CAAC,IAAI,CAA6B;IACzC,8EAA8E;IAC9E,OAAO,CAAC,KAAK,CAGX;IACF,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,QAAQ,CAA6B;IAC7C,OAAO,CAAC,kBAAkB,CAA6B;IACvD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C;;;;;;;OAOG;IACH,OAAO,CAAC,kBAAkB,CAAK;IAC/B,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,WAAW,CAAS;IAC5B,mEAAmE;IACnE,OAAO,CAAC,YAAY,CAA8B;IAClD,OAAO,CAAC,SAAS,CAAyC;IAC1D,sFAAsF;IACtF,OAAO,CAAC,YAAY,CAAK;IACzB;;;;;;;;;;OAUG;IACH,OAAO,CAAC,cAAc,CAAuB;IAC7C,OAAO,CAAC,gBAAgB,CAAS;IACjC,gFAAgF;IAChF,OAAO,CAAC,MAAM,CAAiC;IAC/C,OAAO,CAAC,WAAW,CAAK;IACxB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa,CAAwB;IAC7C,mFAAmF;IACnF,OAAO,CAAC,YAAY,CAAwC;IAC5D,oEAAoE;IACpE,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,eAAe,CAAK;IAC5B;;;;;;;OAOG;IACH,OAAO,CAAC,eAAe,CAIrB;gBAEU,IAAI,EAAE,mBAAmB;IAkBrC,OAAO,CAAC,GAAG;IAKX,OAAO,CAAC,cAAc;IAItB;;;;;;;;;;;;;;OAcG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IASjC,aAAa,IAAI,IAAI;YAIP,OAAO;IA2BrB,kFAAkF;IAClF,OAAO,CAAC,UAAU;IAaZ,IAAI,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAiE7C;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,mBAAmB;IAyB3B,2EAA2E;IAC3E,OAAO,CAAC,eAAe;IAgDvB,sEAAsE;IACtE,OAAO,CAAC,gBAAgB;IAcxB;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACG,IAAI,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB5C,KAAK,IAAI,IAAI;IAQb,IAAI,IAAI,IAAI;IAaZ,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAwBxB;;;;;;;;;OASG;IACH,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAU5C,OAAO,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI,GAAG,IAAI;IAIvC,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;IAOnD,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,IAAI;IAOlD;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,aAAa,EAAE,GAAG,IAAI;IAiBhD,gEAAgE;IAChE,OAAO,CAAC,mBAAmB,CAA4C;IAEvE,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI7C,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAOpC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIrC,MAAM,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI;IAiDhD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAO3B,WAAW,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI;IAIpD,OAAO,IAAI,IAAI;IAaf,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,OAAO;IAOf;;;;OAIG;IACH,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,IAAI;IAgBZ,OAAO,CAAC,YAAY;IA0DpB;;;;;;;;OAQG;IACH,OAAO,CAAC,WAAW;IAMnB;;;;;;OAMG;IACH,OAAO,CAAC,eAAe;IAQvB;;;;;;OAMG;IACH,OAAO,CAAC,aAAa;IAyBrB,qFAAqF;IACrF,OAAO,CAAC,mBAAmB;IAO3B,qFAAqF;IACrF,OAAO,CAAC,cAAc;IAItB,OAAO,KAAK,aAAa,GAExB;IAED,OAAO,CAAC,SAAS;IAOjB;;;;;;;OAOG;IACH,OAAO,CAAC,MAAM;IA+Bd;;;;;;OAMG;IACH,OAAO,CAAC,cAAc;IAWtB,wEAAwE;IACxE,OAAO,CAAC,aAAa;CAKtB"}
@@ -516,19 +516,25 @@ export class SoundfontPlaybackEngine {
516
516
  // `voice.program` is the kit, resolved by the caller, so this sounds the
517
517
  // kit the track actually plays rather than whatever Standard it had.
518
518
  this.deps.backend.setChannelPercussion(assignment.instance, assignment.channel, voice.program);
519
- // Mirrors `applyPlanToHost`'s percussion branch: the same expression
520
- // trim a real track's kit gets, or an audition kit sounds up to 2x
521
- // louder than the identical kit heard during playback (`SYNTH_INITIAL_GAIN`
522
- // reserves half the synth's output for this trim; leaving it unset means
523
- // full expression, not the neutral value it looks like).
524
- this.deps.backend.controlChange(assignment.instance, assignment.channel, CC_EXPRESSION, percussionExpression());
525
519
  }
526
520
  else {
527
521
  // Switches the channel back off drums first, if the last audition was one.
528
522
  this.deps.backend.programSelect(assignment.instance, assignment.channel, voice.program);
529
- // Same reasoning as the percussion branch above, for a melodic patch.
530
- this.deps.backend.controlChange(assignment.instance, assignment.channel, CC_EXPRESSION, instrumentExpression(voice.program));
531
523
  }
524
+ // No expression trim here, deliberately, unlike `applyPlanToHost`'s
525
+ // channels: this channel is a single one, shared and re-programmed on
526
+ // every tap and reused under a held chord, so a `controlChange` here can
527
+ // land right after a `programSelect`/`setChannelPercussion` on the same
528
+ // channel while an earlier tap's voice is still sounding on it. FluidSynth
529
+ // re-modulates every active voice on a channel when its CC changes
530
+ // (`fluid_synth_cc` -> `fluid_synth_modulate_voices_LOCAL`), and doing
531
+ // that immediately after reprogramming the channel segfaulted inside
532
+ // `fluid_mod_get_source_value` — reproduced live as "crashes when I click
533
+ // on keyboard" on macOS. `applyPlanToHost`'s channels are each set up once
534
+ // before any of their own notes have sounded, so they never hit this. The
535
+ // asymmetry this traded away — a tapped key up to 2x louder than the same
536
+ // note in the score — is the lesser problem; being crashed is worse than
537
+ // being loud. See `SYNTH_INITIAL_GAIN` for the other half of the fix.
532
538
  this.deps.backend.noteOn(assignment.instance, assignment.channel, midi, 100);
533
539
  this.auditionHeld.set(midi, assignment);
534
540
  }
@@ -1 +1 @@
1
- {"version":3,"file":"soundfont-engine.js","sourceRoot":"","sources":["../../src/playback/soundfont-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"soundfont-engine.js","sourceRoot":"","sources":["../../src/playback/soundfont-engine.ts"],"names":[],"mappings":"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"}
@@ -21,6 +21,21 @@ export declare class NativeSynthBackend implements SynthBackend {
21
21
  private lastNow;
22
22
  /** Read once per open driver; see `outputLatency`. */
23
23
  private latency;
24
+ /**
25
+ * The scalar `setMasterVolume` was last called with, and the score's own
26
+ * track count from `setTrackCount` — stored so either call can re-derive
27
+ * the actual gain sent to the synth from the other.
28
+ *
29
+ * `fluid_synth_set_gain` is the synth's *entire* output level, with no
30
+ * separate downstream mixing stage the way the web engine's master
31
+ * `GainNode` is — so the multi-track headroom trim `synth-host.ts` applies
32
+ * there has to be folded into this same native call instead. `setTrackCount`
33
+ * used to be a documented no-op here ("the native synth applies no
34
+ * per-track headroom of its own"), which is why a busy score summed
35
+ * straight into `synth.gain` at full, untrimmed level.
36
+ */
37
+ private masterVolume;
38
+ private trackCount;
24
39
  /**
25
40
  * The instance the metronome owns, and nothing else does.
26
41
  *
@@ -63,15 +78,14 @@ export declare class NativeSynthBackend implements SynthBackend {
63
78
  allSoundOff(): void;
64
79
  setInterpolation(order: number): void;
65
80
  setMasterVolume(volume: number): void;
81
+ /** How many channels are summing, which sizes the headroom trim. */
82
+ setTrackCount(count: number): void;
66
83
  /**
67
- * Nothing to do: the native synth applies no per-track headroom of its own.
68
- *
69
- * Declared rather than omitted because the interface requires it, and a
70
- * backend that quietly did nothing where the web one trims gain would be a
71
- * difference nobody could see. The trim lives in `shared/mix.ts` and reaches
72
- * both backends through the plan.
84
+ * Re-derives the actual synth gain from the last `setMasterVolume` and
85
+ * `setTrackCount` — see `masterVolume`'s own comment for why this backend
86
+ * has to do what the web engine's separate `GainNode` does.
73
87
  */
74
- setTrackCount(): void;
88
+ private applyMasterGain;
75
89
  dispose(): void;
76
90
  private require;
77
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"native-backend.d.ts","sourceRoot":"","sources":["../../../src/rn/playback/native-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACb,MAAM,iCAAiC,CAAC;AAGzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAMjE,OAAO,KAAK,EAEV,cAAc,EAEf,MAAM,uBAAuB,CAAC;AAgD/B,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,KAAK,CAA4B;IACzC,+EAA+E;IAC/E,OAAO,CAAC,WAAW,CAAgD;IACnE,2EAA2E;IAC3E,OAAO,CAAC,OAAO,CAAK;IACpB,sDAAsD;IACtD,OAAO,CAAC,OAAO,CAAqB;IACpC;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa,CAAK;gBAEd,OAAO,EAAE;QACnB,GAAG,EAAE,cAAc,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,yEAAyE;QACzE,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;KAC1B;IAMK,OAAO,CAAC,EACZ,aAAa,EACb,UAAU,GACX,EAAE;QACD,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;KAChD,GAAG,OAAO,CAAC,aAAa,CAAC;IAmBpB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD,iFAAiF;IACjF,OAAO,CAAC,kBAAkB;IAc1B,GAAG,IAAI,MAAM;IAab;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,UAAU;IAMlB,wEAAwE;IACxE,aAAa,IAAI,MAAM,GAAG,SAAS;IAMnC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,cAAc;IAqBjE,MAAM,CACJ,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,IAAI;IAGP,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAGxD,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAG9C,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAG1D,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAG9D,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAGzE,WAAW,IAAI,IAAI;IAGnB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAGrC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAGrC;;;;;;;OAOG;IACH,aAAa,IAAI,IAAI;IAErB,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,OAAO;CAIhB"}
1
+ {"version":3,"file":"native-backend.d.ts","sourceRoot":"","sources":["../../../src/rn/playback/native-backend.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACb,MAAM,iCAAiC,CAAC;AAGzC,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAMjE,OAAO,KAAK,EAEV,cAAc,EAEf,MAAM,uBAAuB,CAAC;AAgD/B,qBAAa,kBAAmB,YAAW,YAAY;IACrD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAiB;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAS;IACtC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAe;IACzC,OAAO,CAAC,KAAK,CAA4B;IACzC,+EAA+E;IAC/E,OAAO,CAAC,WAAW,CAAgD;IACnE,2EAA2E;IAC3E,OAAO,CAAC,OAAO,CAAK;IACpB,sDAAsD;IACtD,OAAO,CAAC,OAAO,CAAqB;IACpC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,UAAU,CAAK;IACvB;;;;;;;OAOG;IACH,OAAO,CAAC,aAAa,CAAK;gBAEd,OAAO,EAAE;QACnB,GAAG,EAAE,cAAc,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,yEAAyE;QACzE,SAAS,CAAC,EAAE,MAAM,MAAM,CAAC;KAC1B;IAMK,OAAO,CAAC,EACZ,aAAa,EACb,UAAU,GACX,EAAE;QACD,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;KAChD,GAAG,OAAO,CAAC,aAAa,CAAC;IAmBpB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKnD,iFAAiF;IACjF,OAAO,CAAC,kBAAkB;IAc1B,GAAG,IAAI,MAAM;IAab;;;;OAIG;IACH,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,UAAU;IAMlB,wEAAwE;IACxE,aAAa,IAAI,MAAM,GAAG,SAAS;IAMnC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,cAAc;IAqBjE,MAAM,CACJ,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,CAAC,EAAE,MAAM,EACT,KAAK,EAAE,MAAM,EACb,GAAG,EAAE,MAAM,GACV,IAAI;IAGP,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAGxD,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,IAAI;IAG9C,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;IAG1D,oBAAoB,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAG9D,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAGzE,WAAW,IAAI,IAAI;IAGnB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAGrC,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI;IAIrC,oEAAoE;IACpE,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAKlC;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAIvB,OAAO,IAAI,IAAI;IAMf,OAAO,CAAC,OAAO;CAIhB"}
@@ -1,5 +1,5 @@
1
1
  import { CHANNELS_PER_INSTANCE } from '../../playback/channel-allocator.js';
2
- import { SYNTH_INITIAL_GAIN } from '../../shared/mix.js';
2
+ import { SYNTH_INITIAL_GAIN, headroomTrimFor } from '../../shared/mix.js';
3
3
  import { CC_EXPRESSION, PERCUSSION_CHANNEL, } from '@sudobility/music_types';
4
4
  import { percussionExpression } from '../../shared/instrument-gain.js';
5
5
  /**
@@ -55,6 +55,21 @@ export class NativeSynthBackend {
55
55
  lastNow = 0;
56
56
  /** Read once per open driver; see `outputLatency`. */
57
57
  latency;
58
+ /**
59
+ * The scalar `setMasterVolume` was last called with, and the score's own
60
+ * track count from `setTrackCount` — stored so either call can re-derive
61
+ * the actual gain sent to the synth from the other.
62
+ *
63
+ * `fluid_synth_set_gain` is the synth's *entire* output level, with no
64
+ * separate downstream mixing stage the way the web engine's master
65
+ * `GainNode` is — so the multi-track headroom trim `synth-host.ts` applies
66
+ * there has to be folded into this same native call instead. `setTrackCount`
67
+ * used to be a documented no-op here ("the native synth applies no
68
+ * per-track headroom of its own"), which is why a busy score summed
69
+ * straight into `synth.gain` at full, untrimmed level.
70
+ */
71
+ masterVolume = 1;
72
+ trackCount = 1;
58
73
  /**
59
74
  * The instance the metronome owns, and nothing else does.
60
75
  *
@@ -173,17 +188,22 @@ export class NativeSynthBackend {
173
188
  this.synth?.setInterpolation(order);
174
189
  }
175
190
  setMasterVolume(volume) {
176
- this.synth?.setMasterVolume(volume);
191
+ this.masterVolume = volume;
192
+ this.applyMasterGain();
193
+ }
194
+ /** How many channels are summing, which sizes the headroom trim. */
195
+ setTrackCount(count) {
196
+ this.trackCount = count;
197
+ this.applyMasterGain();
177
198
  }
178
199
  /**
179
- * Nothing to do: the native synth applies no per-track headroom of its own.
180
- *
181
- * Declared rather than omitted because the interface requires it, and a
182
- * backend that quietly did nothing where the web one trims gain would be a
183
- * difference nobody could see. The trim lives in `shared/mix.ts` and reaches
184
- * both backends through the plan.
200
+ * Re-derives the actual synth gain from the last `setMasterVolume` and
201
+ * `setTrackCount` — see `masterVolume`'s own comment for why this backend
202
+ * has to do what the web engine's separate `GainNode` does.
185
203
  */
186
- setTrackCount() { }
204
+ applyMasterGain() {
205
+ this.synth?.setMasterVolume(this.masterVolume * headroomTrimFor(this.trackCount));
206
+ }
187
207
  dispose() {
188
208
  this.synth?.dispose();
189
209
  this.synth = null;
@@ -1 +1 @@
1
- {"version":3,"file":"native-backend.js","sourceRoot":"","sources":["../../../src/rn/playback/native-backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"native-backend.js","sourceRoot":"","sources":["../../../src/rn/playback/native-backend.ts"],"names":[],"mappings":"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"}
@@ -30,7 +30,7 @@ export declare const LIMITER_CEILING_DB = -1;
30
30
  * half of this level, while quiet patches can use the full level. Keep this in
31
31
  * the shared mix module so web and native playback cannot drift apart again.
32
32
  */
33
- export declare const SYNTH_INITIAL_GAIN = 1.4;
33
+ export declare const SYNTH_INITIAL_GAIN = 2.8;
34
34
  /**
35
35
  * How far to pull the master down for `trackCount` channels summing into it.
36
36
  *
@@ -1 +1 @@
1
- {"version":3,"file":"mix.d.ts","sourceRoot":"","sources":["../../src/shared/mix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC;;;;;;GAMG;AAKH,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE1D;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAyB1E"}
1
+ {"version":3,"file":"mix.d.ts","sourceRoot":"","sources":["../../src/shared/mix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;GAQG;AACH,eAAO,MAAM,kBAAkB,KAAK,CAAC;AAErC;;;;;;GAMG;AAaH,eAAO,MAAM,kBAAkB,MAAM,CAAC;AAEtC;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,MAAM,CAE1D;AAsBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,GAAG,IAAI,CAyB1E"}
@@ -31,10 +31,18 @@ export const LIMITER_CEILING_DB = -1;
31
31
  * the shared mix module so web and native playback cannot drift apart again.
32
32
  */
33
33
  // The expression trim reserves half the synth's output for quiet FluidR3
34
- // patches. A normal patch therefore remains 0.7 (1.4 * 0.5), while a patch
35
- // with a 2x correction can use the full output without exceeding the synth's
34
+ // patches. A normal patch therefore lands at 1.4 (2.8 * 0.5), while a patch
35
+ // with a 2x correction can use the full 2.8 without exceeding the synth's
36
36
  // nominal range.
37
- export const SYNTH_INITIAL_GAIN = 1.4;
37
+ //
38
+ // Was 1.4 (0.7 for a normal patch). Raised when `NativeSynthBackend` picked
39
+ // up `headroomTrimFor` (see its own `masterVolume` comment): that trim is
40
+ // `1/sqrt(trackCount)`, a *reduction*, so wiring it up with the gain left
41
+ // unchanged would have made every multi-track score quieter than it already
42
+ // was — the opposite of the reported complaint ("comfortable at normal
43
+ // volume, not max"). Doubled so a typical multi-track score ends up louder
44
+ // than the untrimmed baseline was, not just safer from summing headroom.
45
+ export const SYNTH_INITIAL_GAIN = 2.8;
38
46
  /**
39
47
  * How far to pull the master down for `trackCount` channels summing into it.
40
48
  *
@@ -1 +1 @@
1
- {"version":3,"file":"mix.js","sourceRoot":"","sources":["../../src/shared/mix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,CAAC;AAErC;;;;;;GAMG;AACH,yEAAyE;AACzE,2EAA2E;AAC3E,6EAA6E;AAC7E,iBAAiB;AACjB,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAEtC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,OAAO,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,sBAAsB,GAAG,KAAK,CAAC;AACrC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,UAAU,CAAC,OAAqB,EAAE,UAAkB;IAClE,MAAM,WAAW,GACf,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,GAAG,UAAU,CAAC,CAAC;IAC1E,MAAM,YAAY,GAChB,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,GAAG,UAAU,CAAC,CAAC;IAE3E,uEAAuE;IACvE,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;QACxC,MAAM,QAAQ,GACZ,SAAS,GAAG,CAAC;YACX,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC,CAAC;QACR,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC;QACpD,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,KAAK,GAAG,YAAY,CAAC,CAAC;QACrD,iFAAiF;QACjF,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,GAAG,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"mix.js","sourceRoot":"","sources":["../../src/shared/mix.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;GAQG;AACH,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,CAAC,CAAC;AAErC;;;;;;GAMG;AACH,yEAAyE;AACzE,4EAA4E;AAC5E,0EAA0E;AAC1E,iBAAiB;AACjB,EAAE;AACF,4EAA4E;AAC5E,0EAA0E;AAC1E,0EAA0E;AAC1E,4EAA4E;AAC5E,uEAAuE;AACvE,2EAA2E;AAC3E,yEAAyE;AACzE,MAAM,CAAC,MAAM,kBAAkB,GAAG,GAAG,CAAC;AAEtC;;;;;;;;;;;;;;GAcG;AACH,MAAM,UAAU,eAAe,CAAC,UAAkB;IAChD,OAAO,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxD,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,sBAAsB,GAAG,KAAK,CAAC;AACrC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAErC;;;;;;GAMG;AACH,MAAM,oBAAoB,GAAG,EAAE,CAAC;AAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,UAAU,CAAC,OAAqB,EAAE,UAAkB;IAClE,MAAM,WAAW,GACf,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,sBAAsB,GAAG,UAAU,CAAC,CAAC;IAC1E,MAAM,YAAY,GAChB,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,uBAAuB,GAAG,UAAU,CAAC,CAAC;IAE3E,uEAAuE;IACvE,MAAM,QAAQ,GAAG,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAClD,IAAI,OAAO,GAAG,CAAC,CAAC;IAChB,KAAK,IAAI,CAAC,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC;QACxC,MAAM,QAAQ,GACZ,SAAS,GAAG,CAAC;YACX,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,kBAAkB,GAAG,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC9D,CAAC,CAAC,CAAC,CAAC;QACR,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC;QACpD,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,IAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAC7B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QAC3C,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAE,EAAE,KAAK,GAAG,YAAY,CAAC,CAAC;QACrD,iFAAiF;QACjF,OAAO,CAAC,CAAC,CAAC,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAE,GAAG,EAAE,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sudobility/music_player",
3
- "version": "0.1.41",
3
+ "version": "0.1.42",
4
4
  "description": "Playback for ScoreSmith: transport, synth engines and offline rendering, for web and React Native",
5
5
  "author": "Sudobility",
6
6
  "license": "BUSL-1.1",
@@ -73,7 +73,7 @@
73
73
  "prepublishOnly": "bun run clean && bun run verify"
74
74
  },
75
75
  "peerDependencies": {
76
- "@sudobility/music_types": "^0.13.33",
76
+ "@sudobility/music_types": "^0.13.34",
77
77
  "js-synthesizer": "^1.13.0",
78
78
  "react-native-audio-api": ">=0.13.0"
79
79
  },
@@ -87,7 +87,7 @@
87
87
  },
88
88
  "devDependencies": {
89
89
  "@eslint/js": "^10.0.1",
90
- "@sudobility/music_types": "^0.13.33",
90
+ "@sudobility/music_types": "^0.13.34",
91
91
  "@types/node": "^26.2.0",
92
92
  "@typescript-eslint/eslint-plugin": "^8.65.0",
93
93
  "@typescript-eslint/parser": "^8.65.0",