spessasynth_lib 4.3.8 → 4.3.10

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/dist/index.d.ts CHANGED
@@ -1,5 +1,4 @@
1
1
  import { BasicMIDI, BasicSoundBank, ChannelMIDIParameter, ChannelSystemParameter, DLSWriteOptions, GlobalMIDIParameter, GlobalSystemParameter, KeyModifier, MIDIController, MIDIMessage, MIDIPatch, MIDIPatchFull, MIDITrack, RMIDIWriteOptions, SequencerEvent, SoundBankManagerListEntry, SoundFont2WriteOptions, SpessaSynthProcessor, SpessaSynthSequencer, SynthMethodOptions, SynthProcessorEventData, SynthProcessorOptions, SynthesizerSnapshot, WaveWriteOptions } from "spessasynth_core";
2
-
3
2
  //#region src/synthesizer/basic/key_modifier_manager.d.ts
4
3
  declare class WorkletKeyModifierManagerWrapper {
5
4
  private keyModifiers;
@@ -127,7 +126,7 @@ type SequencerMessage = { [K in keyof SequencerMessageData]: {
127
126
  type: K;
128
127
  data: SequencerMessageData[K];
129
128
  id: number;
130
- } }[keyof SequencerMessageData];
129
+ }; }[keyof SequencerMessageData];
131
130
  interface SequencerMessageData {
132
131
  loadNewSongList: SuppliedMIDIData[];
133
132
  pause: null;
@@ -370,7 +369,7 @@ type BasicSynthesizerMessage = { [K in keyof BasicSynthesizerMessageData]: {
370
369
  channelNumber: number;
371
370
  type: K;
372
371
  data: BasicSynthesizerMessageData[K];
373
- } }[keyof BasicSynthesizerMessageData];
372
+ }; }[keyof BasicSynthesizerMessageData];
374
373
  type CompressionActionType = "keep" | "compress" | "decompress";
375
374
  interface WorkerBankWriteOptions {
376
375
  /**
@@ -452,27 +451,27 @@ interface BasicSynthesizerMessageData {
452
451
  lockChannelMIDIParameter: { [K in keyof ChannelMIDIParameter]: {
453
452
  parameter: K;
454
453
  isLocked: boolean;
455
- } }[keyof ChannelMIDIParameter];
454
+ }; }[keyof ChannelMIDIParameter];
456
455
  setChannelSystemParameter: { [K in keyof ChannelSystemParameter]: {
457
456
  parameter: K;
458
457
  value: ChannelSystemParameter[K];
459
- } }[keyof ChannelSystemParameter];
458
+ }; }[keyof ChannelSystemParameter];
460
459
  lockGlobalMIDIParameter: { [K in keyof GlobalMIDIParameter]: {
461
460
  parameter: K;
462
461
  isLocked: boolean;
463
- } }[keyof GlobalMIDIParameter];
462
+ }; }[keyof GlobalMIDIParameter];
464
463
  setGlobalSystemParameter: { [K in keyof GlobalSystemParameter]: {
465
464
  parameter: K;
466
465
  value: GlobalSystemParameter[K];
467
- } }[keyof GlobalSystemParameter];
466
+ }; }[keyof GlobalSystemParameter];
468
467
  soundBankManager: { [K in keyof WorkletSBKManagerData]: {
469
468
  type: K;
470
469
  data: WorkletSBKManagerData[K];
471
- } }[keyof WorkletSBKManagerData];
470
+ }; }[keyof WorkletSBKManagerData];
472
471
  keyModifierManager: { [K in keyof WorkletKMManagerData]: {
473
472
  type: K;
474
473
  data: WorkletKMManagerData[K];
475
- } }[keyof WorkletKMManagerData];
474
+ }; }[keyof WorkletKMManagerData];
476
475
  destroyWorklet: null;
477
476
  }
478
477
  interface SynthesizerEventData extends SynthProcessorEventData {
@@ -484,26 +483,26 @@ interface SynthesizerEventData extends SynthProcessorEventData {
484
483
  type SynthesizerEvent = { [K in keyof SynthesizerEventData]: {
485
484
  type: K;
486
485
  data: SynthesizerEventData[K];
487
- } }[keyof SynthesizerEventData];
486
+ }; }[keyof SynthesizerEventData];
488
487
  interface BasicSynthesizerReturnMessageData {
489
488
  eventCall: SynthesizerEvent;
490
489
  sequencerReturn: SequencerReturnMessage;
491
490
  isFullyInitialized: { [K in keyof SynthesizerReturn]: {
492
491
  type: K;
493
492
  data: SynthesizerReturn[K];
494
- } }[keyof SynthesizerReturn];
493
+ }; }[keyof SynthesizerReturn];
495
494
  soundBankError: Error;
496
495
  voiceCountChange: number[];
497
496
  renderingProgress: { [K in keyof SynthesizerProgress]: {
498
497
  type: K;
499
498
  data: SynthesizerProgress[K];
500
- } }[keyof SynthesizerProgress];
499
+ }; }[keyof SynthesizerProgress];
501
500
  }
502
501
  type BasicSynthesizerReturnMessage = { [K in keyof BasicSynthesizerReturnMessageData]: {
503
502
  type: K;
504
503
  data: BasicSynthesizerReturnMessageData[K];
505
504
  currentTime: number;
506
- } }[keyof BasicSynthesizerReturnMessageData];
505
+ }; }[keyof BasicSynthesizerReturnMessageData];
507
506
  interface SynthesizerProgress {
508
507
  renderAudio: number;
509
508
  /**
@@ -597,6 +596,7 @@ declare class LibMIDIChannel {
597
596
  private readonly channel;
598
597
  private readonly synth;
599
598
  private readonly _systemParameters;
599
+ private readonly lockedMIDIParameters;
600
600
  private _patch;
601
601
  /**
602
602
  * The currently selected MIDI patch of the channel.
@@ -683,6 +683,7 @@ declare abstract class BasicSynthesizer {
683
683
  */
684
684
  protected readonly _outputCount = 16;
685
685
  protected readonly _systemParameters: GlobalSystemParameter;
686
+ protected readonly lockedMIDIParameters: Record<keyof GlobalMIDIParameter, boolean>;
686
687
  protected resolveMap: Map<keyof SynthesizerReturn, (data: SynthesizerReturn[keyof SynthesizerReturn]) => unknown>;
687
688
  protected renderingProgressTracker: Map<keyof SynthesizerProgress, ((args: number) => unknown) | ((args: number) => unknown)>;
688
689
  /**
package/dist/index.js CHANGED
@@ -256,6 +256,7 @@ var LibMIDIChannel = class {
256
256
  channel;
257
257
  synth;
258
258
  _systemParameters = { ...DEFAULT_CHANNEL_SYSTEM_PARAMETERS };
259
+ lockedMIDIParameters = Object.fromEntries(Object.keys(DEFAULT_CHANNEL_MIDI_PARAMETERS).map((k) => [k, false]));
259
260
  /**
260
261
  * @internal
261
262
  * @param channel
@@ -323,6 +324,7 @@ var LibMIDIChannel = class {
323
324
  * @param isLocked If the parameter should be locked.
324
325
  */
325
326
  lockMIDIParameter(parameter, isLocked) {
327
+ this.lockedMIDIParameters[parameter] = isLocked;
326
328
  this.synth.post({
327
329
  type: "lockChannelMIDIParameter",
328
330
  channelNumber: this.channel,
@@ -386,7 +388,7 @@ var LibMIDIChannel = class {
386
388
  * @internal
387
389
  */
388
390
  reset() {
389
- this._midiParameters = { ...DEFAULT_CHANNEL_MIDI_PARAMETERS };
391
+ for (const [key, value] of Object.entries(DEFAULT_CHANNEL_MIDI_PARAMETERS)) if (!this.lockedMIDIParameters[key]) this._midiParameters[key] = value;
390
392
  }
391
393
  };
392
394
  //#endregion
@@ -441,6 +443,7 @@ var BasicSynthesizer = class {
441
443
  */
442
444
  _outputCount = 16;
443
445
  _systemParameters = { ...DEFAULT_GLOBAL_SYSTEM_PARAMETERS };
446
+ lockedMIDIParameters = Object.fromEntries(Object.keys(DEFAULT_GLOBAL_MIDI_PARAMETERS).map((k) => [k, false]));
444
447
  resolveMap = /* @__PURE__ */ new Map();
445
448
  renderingProgressTracker = /* @__PURE__ */ new Map();
446
449
  /**
@@ -466,7 +469,7 @@ var BasicSynthesizer = class {
466
469
  this.registerInternalEvent("programChange", (e) => this.midiChannels[e.channel].patch = { ...e });
467
470
  this.registerInternalEvent("reset", () => {
468
471
  for (const c of this.midiChannels) c.reset();
469
- this._midiParameters = { ...DEFAULT_GLOBAL_MIDI_PARAMETERS };
472
+ for (const [key, value] of Object.entries(DEFAULT_GLOBAL_MIDI_PARAMETERS)) if (!this.lockedMIDIParameters[key]) this._midiParameters[key] = value;
470
473
  });
471
474
  }
472
475
  _midiParameters = { ...DEFAULT_GLOBAL_MIDI_PARAMETERS };
@@ -558,6 +561,7 @@ var BasicSynthesizer = class {
558
561
  },
559
562
  channelNumber: -1
560
563
  });
564
+ this.lockedMIDIParameters[parameter] = isLocked;
561
565
  }
562
566
  /**
563
567
  * Sets a system parameter to a given value.