spessasynth_core 4.4.1 → 4.4.2

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,10 +1,9 @@
1
- //#region src/utils/types.d.ts
2
1
  /**
3
2
  * Options for writing a WAVE file.
4
3
  *
5
4
  * @group Utilities
6
5
  */
7
- interface WaveWriteOptions {
6
+ export interface WaveWriteOptions {
8
7
  /**
9
8
  * If true, the gain of the entire song will be adjusted,
10
9
  * so the max sample is always 32,767 or min is always -32,768 (whichever is greater). Recommended.
@@ -37,7 +36,7 @@ interface WaveWriteOptions {
37
36
  *
38
37
  * @group Utilities
39
38
  */
40
- interface WaveMetadata {
39
+ export interface WaveMetadata {
41
40
  /**
42
41
  * The song's title.
43
42
  * This writes to the `INAM` chunk.
@@ -59,8 +58,6 @@ interface WaveMetadata {
59
58
  */
60
59
  genre: string;
61
60
  }
62
- //#endregion
63
- //#region src/utils/indexed_array.d.ts
64
61
  /**
65
62
  * Indexed_array.ts
66
63
  * purpose: extends Uint8Array with a currentIndex property.
@@ -70,7 +67,7 @@ interface WaveMetadata {
70
67
  *
71
68
  * @group Utilities
72
69
  */
73
- declare class IndexedByteArray extends Uint8Array {
70
+ export declare class IndexedByteArray extends Uint8Array {
74
71
  /**
75
72
  * The current index of the array.
76
73
  */
@@ -82,8 +79,6 @@ declare class IndexedByteArray extends Uint8Array {
82
79
  */
83
80
  slice(start?: number, end?: number): IndexedByteArray;
84
81
  }
85
- //#endregion
86
- //#region src/utils/byte_functions/big_endian.d.ts
87
82
  /**
88
83
  * Reads number as Big endian.
89
84
  * @param dataArray the array to read from.
@@ -92,8 +87,6 @@ declare class IndexedByteArray extends Uint8Array {
92
87
  * @returns the number.
93
88
  */
94
89
  declare function readBigEndian(dataArray: number[] | ArrayLike<number>, bytesAmount: number, offset?: number): number;
95
- //#endregion
96
- //#region src/utils/byte_functions/little_endian.d.ts
97
90
  /**
98
91
  * Reads the number as little endian from an IndexedByteArray.
99
92
  * @param dataArray the array to read from.
@@ -109,8 +102,6 @@ declare function readLittleEndianIndexed(dataArray: IndexedByteArray, bytesAmoun
109
102
  * @returns the number.
110
103
  */
111
104
  declare function readLittleEndian(dataArray: number[] | ArrayLike<number>, bytesAmount: number, offset?: number): number;
112
- //#endregion
113
- //#region src/utils/byte_functions/string.d.ts
114
105
  /**
115
106
  * Reads bytes as an ASCII string. This version works with any numeric array.
116
107
  * @param dataArray the array to read from.
@@ -126,16 +117,12 @@ declare function readBinaryString(dataArray: ArrayLike<number>, bytes?: number,
126
117
  * @returns the string.
127
118
  */
128
119
  declare function readBinaryStringIndexed(dataArray: IndexedByteArray, bytes: number): string;
129
- //#endregion
130
- //#region src/utils/byte_functions/variable_length_quantity.d.ts
131
120
  /**
132
121
  * Reads VLQ from a MIDI byte array.
133
122
  * @param midiByteArray the array to read from.
134
123
  * @returns the number.
135
124
  */
136
125
  declare function readVariableLengthQuantity(midiByteArray: IndexedByteArray): number;
137
- //#endregion
138
- //#region src/utils/write_wav.d.ts
139
126
  /**
140
127
  * Converts PCM audio data into a fully valid wave file.
141
128
  *
@@ -160,9 +147,7 @@ declare function readVariableLengthQuantity(midiByteArray: IndexedByteArray): nu
160
147
  *
161
148
  * @group Utilities
162
149
  */
163
- declare function audioToWav(audioData: Float32Array[], sampleRate: number, options?: Partial<WaveWriteOptions>): ArrayBuffer;
164
- //#endregion
165
- //#region src/utils/loggin.d.ts
150
+ export declare function audioToWav(audioData: Float32Array[], sampleRate: number, options?: Partial<WaveWriteOptions>): ArrayBuffer;
166
151
  /**
167
152
  * SpessaSynth can print out additional info to the console or print nothing at all.
168
153
  *
@@ -175,7 +160,7 @@ declare function audioToWav(audioData: Float32Array[], sampleRate: number, optio
175
160
  *
176
161
  * @group Utilities
177
162
  */
178
- declare class SpessaLog {
163
+ export declare class SpessaLog {
179
164
  /**
180
165
  * The most verbose log level, prints out a lot of small details.
181
166
  * Disabled by default.
@@ -235,8 +220,6 @@ declare class SpessaLog {
235
220
  */
236
221
  static groupEnd(): void;
237
222
  }
238
- //#endregion
239
- //#region src/soundbank/basic_soundbank/generator_types.d.ts
240
223
  /**
241
224
  * All SoundFont2 Generator enumerations.
242
225
  *
@@ -244,7 +227,7 @@ declare class SpessaLog {
244
227
  *
245
228
  * @group Sound Banks.Generators
246
229
  */
247
- declare const GeneratorTypes: Readonly<{
230
+ export declare const GeneratorTypes: Readonly<{
248
231
  readonly invalid: -1;
249
232
  readonly startAddrsOffset: 0;
250
233
  readonly endAddrOffset: 1;
@@ -312,26 +295,26 @@ declare const GeneratorTypes: Readonly<{
312
295
  *
313
296
  * @group Sound Banks.Generators
314
297
  */
315
- type GeneratorType = (typeof GeneratorTypes)[keyof typeof GeneratorTypes];
298
+ export type GeneratorType = (typeof GeneratorTypes)[keyof typeof GeneratorTypes];
316
299
  /**
317
300
  * The highest generator type number, including the non-standard generators.
318
301
  *
319
302
  * @group Sound Banks.Generators
320
303
  */
321
- declare const MAX_GENERATOR: number;
304
+ export declare const MAX_GENERATOR: number;
322
305
  /**
323
306
  * The amount of generator types, including the non-standard generators.
324
307
  * Useful for allocating arrays indexed by {@link GeneratorType}.
325
308
  *
326
309
  * @group Sound Banks.Generators
327
310
  */
328
- declare const GENERATORS_AMOUNT: number;
311
+ export declare const GENERATORS_AMOUNT: number;
329
312
  /**
330
313
  * Represents a single generator's range and default value.
331
314
  *
332
315
  * @group Sound Banks.Generators
333
316
  */
334
- interface GeneratorLimit {
317
+ export interface GeneratorLimit {
335
318
  /**
336
319
  * Minimum value for this generator type.
337
320
  */
@@ -354,9 +337,7 @@ interface GeneratorLimit {
354
337
  *
355
338
  * @group Sound Banks.Generators
356
339
  */
357
- declare const GeneratorLimits: Readonly<Record<GeneratorType, GeneratorLimit>>;
358
- //#endregion
359
- //#region src/soundbank/enums.d.ts
340
+ export declare const GeneratorLimits: Readonly<Record<GeneratorType, GeneratorLimit>>;
360
341
  /**
361
342
  * All SF2 Sample Types.
362
343
  *
@@ -364,7 +345,7 @@ declare const GeneratorLimits: Readonly<Record<GeneratorType, GeneratorLimit>>;
364
345
  *
365
346
  * @group Sound Banks.Samples
366
347
  */
367
- declare const SampleTypes: {
348
+ export declare const SampleTypes: {
368
349
  readonly monoSample: 1;
369
350
  readonly rightSample: 2;
370
351
  readonly leftSample: 4;
@@ -379,14 +360,14 @@ declare const SampleTypes: {
379
360
  *
380
361
  * @group Sound Banks.Samples
381
362
  */
382
- type SampleType = (typeof SampleTypes)[keyof typeof SampleTypes];
363
+ export type SampleType = (typeof SampleTypes)[keyof typeof SampleTypes];
383
364
  /**
384
365
  * All SF2 {@link Modulator} controller sources.
385
366
  * These values are mapped on the range from 0 to 1 (or -1 to 1 for bipolar transform) with the transform specified.
386
367
  *
387
368
  * @group Sound Banks.Modulators
388
369
  */
389
- declare const ModulatorControllerSources: {
370
+ export declare const ModulatorControllerSources: {
390
371
  /**
391
372
  * Value is equal to 1.
392
373
  */
@@ -425,13 +406,13 @@ declare const ModulatorControllerSources: {
425
406
  *
426
407
  * @group Sound Banks.Modulators
427
408
  */
428
- type ModulatorControllerSource = (typeof ModulatorControllerSources)[keyof typeof ModulatorControllerSources];
409
+ export type ModulatorControllerSource = (typeof ModulatorControllerSources)[keyof typeof ModulatorControllerSources];
429
410
  /**
430
411
  * All SF2 {@link Modulator} curve types.
431
412
  *
432
413
  * @group Sound Banks.Modulators
433
414
  */
434
- declare const ModulatorCurveTypes: {
415
+ export declare const ModulatorCurveTypes: {
435
416
  /**
436
417
  * Linear ramp.
437
418
  */
@@ -454,13 +435,13 @@ declare const ModulatorCurveTypes: {
454
435
  *
455
436
  * @group Sound Banks.Modulators
456
437
  */
457
- type ModulatorCurveType = (typeof ModulatorCurveTypes)[keyof typeof ModulatorCurveTypes];
438
+ export type ModulatorCurveType = (typeof ModulatorCurveTypes)[keyof typeof ModulatorCurveTypes];
458
439
  /**
459
440
  * The additional operation to perform when computing a {@link Modulator} value.
460
441
  *
461
442
  * @group Sound Banks.Modulators
462
443
  */
463
- declare const ModulatorTransformTypes: {
444
+ export declare const ModulatorTransformTypes: {
464
445
  /**
465
446
  * No operation.
466
447
  */
@@ -475,15 +456,13 @@ declare const ModulatorTransformTypes: {
475
456
  *
476
457
  * @group Sound Banks.Modulators
477
458
  */
478
- type ModulatorTransformType = (typeof ModulatorTransformTypes)[keyof typeof ModulatorTransformTypes];
479
- //#endregion
480
- //#region src/soundbank/basic_soundbank/modulator_source.d.ts
459
+ export type ModulatorTransformType = (typeof ModulatorTransformTypes)[keyof typeof ModulatorTransformTypes];
481
460
  /**
482
461
  * Represents a single {@link Modulator} source.
483
462
  *
484
463
  * @group Sound Banks.Modulators
485
464
  */
486
- declare class ModulatorSource {
465
+ export declare class ModulatorSource {
487
466
  /**
488
467
  * If this field is set to false, the controller should be mapped with a minimum value of 0 and a maximum value of 1. This is also
489
468
  * called Unipolar. Thus, it behaves similar to the Modulation Wheel controller of the MIDI specification.
@@ -521,8 +500,6 @@ declare class ModulatorSource {
521
500
  */
522
501
  isIdentical(source: ModulatorSource): boolean;
523
502
  }
524
- //#endregion
525
- //#region src/soundbank/basic_soundbank/modulator.d.ts
526
503
  /**
527
504
  * This class represents a single modulator (map from a source to a given synthesis parameter).
528
505
  *
@@ -532,7 +509,7 @@ declare class ModulatorSource {
532
509
  *
533
510
  * @group Sound Banks.Modulators
534
511
  */
535
- declare class Modulator {
512
+ export declare class Modulator {
536
513
  /**
537
514
  * The destination generator for this modulator.
538
515
  * This is the target parameter that will be changed.
@@ -582,14 +559,12 @@ declare class Modulator {
582
559
  static copyFrom(mod: Modulator): Modulator;
583
560
  toString(): string;
584
561
  }
585
- //#endregion
586
- //#region src/soundbank/basic_soundbank/generator.d.ts
587
562
  /**
588
563
  * Generator represents a single sound bank parameter.
589
564
  *
590
565
  * @group Sound Banks.Generators
591
566
  */
592
- declare class Generator {
567
+ export declare class Generator {
593
568
  /**
594
569
  * The generator's SF2 type.
595
570
  */
@@ -607,14 +582,12 @@ declare class Generator {
607
582
  constructor(type: GeneratorType, value: number, validate?: boolean);
608
583
  toString(): string;
609
584
  }
610
- //#endregion
611
- //#region src/soundbank/basic_soundbank/basic_zone.d.ts
612
585
  /**
613
586
  * Represents a single zone with parameters, modulators and a specified key and velocity range.
614
587
  *
615
588
  * @group Sound Banks.Zones
616
589
  */
617
- declare class BasicZone {
590
+ export declare class BasicZone {
618
591
  /**
619
592
  * The zone's velocity range.
620
593
  * min -1 means that it is a default value.
@@ -680,14 +653,12 @@ declare class BasicZone {
680
653
  */
681
654
  copyFrom(zone: BasicZone): void;
682
655
  }
683
- //#endregion
684
- //#region src/soundbank/basic_soundbank/basic_instrument_zone.d.ts
685
656
  /**
686
657
  * Represents a single instrument zone with an associated {@link BasicSample}.
687
658
  *
688
659
  * @group Sound Banks.Zones
689
660
  */
690
- declare class BasicInstrumentZone extends BasicZone {
661
+ export declare class BasicInstrumentZone extends BasicZone {
691
662
  /**
692
663
  * The instrument this zone belongs to.
693
664
  */
@@ -706,14 +677,12 @@ declare class BasicInstrumentZone extends BasicZone {
706
677
  */
707
678
  set sample(sample: BasicSample);
708
679
  }
709
- //#endregion
710
- //#region src/soundbank/basic_soundbank/basic_preset_zone.d.ts
711
680
  /**
712
681
  * Represents a single preset zone with an associated {@link BasicInstrument}.
713
682
  *
714
683
  * @group Sound Banks.Zones
715
684
  */
716
- declare class BasicPresetZone extends BasicZone {
685
+ export declare class BasicPresetZone extends BasicZone {
717
686
  /**
718
687
  * The preset this zone belongs to.
719
688
  */
@@ -732,8 +701,6 @@ declare class BasicPresetZone extends BasicZone {
732
701
  */
733
702
  set instrument(instrument: BasicInstrument);
734
703
  }
735
- //#endregion
736
- //#region src/soundbank/basic_soundbank/midi_patch.d.ts
737
704
  /**
738
705
  * SpessaSynth 4.0 brings the full bank LSB support in the API.
739
706
  *
@@ -743,7 +710,7 @@ declare class BasicPresetZone extends BasicZone {
743
710
  *
744
711
  * @group Sound Banks.MIDI Patch System
745
712
  */
746
- interface MIDIPatch {
713
+ export interface MIDIPatch {
747
714
  /**
748
715
  * The MIDI program number.
749
716
  */
@@ -786,7 +753,7 @@ interface MIDIPatch {
786
753
  *
787
754
  * @group Sound Banks.MIDI Patch System
788
755
  */
789
- interface MIDIPatchFull extends MIDIPatch {
756
+ export interface MIDIPatchFull extends MIDIPatch {
790
757
  /**
791
758
  * The name of the patch.
792
759
  */
@@ -810,7 +777,7 @@ interface MIDIPatchFull extends MIDIPatch {
810
777
  *
811
778
  * @group Sound Banks.MIDI Patch System
812
779
  */
813
- declare class MIDIPatchTools {
780
+ export declare class MIDIPatchTools {
814
781
  /**
815
782
  * Converts a given {@link MIDIPatch} to a string.
816
783
  * The format is:
@@ -858,8 +825,6 @@ declare class MIDIPatchTools {
858
825
  static selectPatch<T extends MIDIPatchFull>(patches: T[], patch: MIDIPatch, system: MIDISystem): T;
859
826
  private static getAnyDrums;
860
827
  }
861
- //#endregion
862
- //#region src/soundbank/basic_soundbank/basic_soundbank.d.ts
863
828
  /**
864
829
  * This module handles parsing and writing SoundFont2 (`.sf2`, `.sf3` and `.sfogg`) files.
865
830
  * It represents a single sound bank.
@@ -879,7 +844,7 @@ declare class MIDIPatchTools {
879
844
  *
880
845
  * @group Sound Banks
881
846
  */
882
- declare class BasicSoundBank {
847
+ export declare class BasicSoundBank {
883
848
  /**
884
849
  * A Promise object indicating if the SF3/SF2Pack decoder is ready.
885
850
  * Make sure to await it if you are loading SF3/SF2Pack files.
@@ -1072,7 +1037,8 @@ declare class BasicSoundBank {
1072
1037
  /**
1073
1038
  * Trims the sound bank _in-place_ to only contain samples in a given MIDI file.
1074
1039
  *
1075
- * Absent presets will be removed from the sound bank,
1040
+
1041
+ * Absent presets will be removed from the sound bank,
1076
1042
  * and samples that don't get activated in the remaining presets will be removed as well.
1077
1043
  *
1078
1044
  * > **Note**
@@ -1124,15 +1090,13 @@ declare class BasicSoundBank {
1124
1090
  protected parseInternal(): void;
1125
1091
  protected printInfo(): void;
1126
1092
  }
1127
- //#endregion
1128
- //#region src/soundbank/basic_soundbank/basic_preset.d.ts
1129
1093
  /**
1130
1094
  * Represents a single preset.
1131
1095
  * This is what is used for MIDI playback.
1132
1096
  *
1133
1097
  * @group Sound Banks
1134
1098
  */
1135
- declare class BasicPreset implements MIDIPatchFull {
1099
+ export declare class BasicPreset implements MIDIPatchFull {
1136
1100
  /**
1137
1101
  * The parent soundbank instance
1138
1102
  * Currently used for determining default modulators and XG status
@@ -1236,8 +1200,6 @@ declare class BasicPreset implements MIDIPatchFull {
1236
1200
  */
1237
1201
  toFlattenedInstrument(): BasicInstrument;
1238
1202
  }
1239
- //#endregion
1240
- //#region src/soundbank/basic_soundbank/basic_instrument.d.ts
1241
1203
  /**
1242
1204
  * This class represents a single instrument, a layer below the BasicPreset.
1243
1205
  *
@@ -1247,7 +1209,7 @@ declare class BasicPreset implements MIDIPatchFull {
1247
1209
  *
1248
1210
  * @group Sound Banks
1249
1211
  */
1250
- declare class BasicInstrument {
1212
+ export declare class BasicInstrument {
1251
1213
  /**
1252
1214
  * The name of this instrument.
1253
1215
  */
@@ -1300,14 +1262,12 @@ declare class BasicInstrument {
1300
1262
  */
1301
1263
  globalize(): void;
1302
1264
  }
1303
- //#endregion
1304
- //#region src/soundbank/basic_soundbank/basic_sample.d.ts
1305
1265
  /**
1306
1266
  * A basic sample represents a single audio sample with associated parameters.
1307
1267
  *
1308
1268
  * @group Sound Banks.Samples
1309
1269
  */
1310
- declare class BasicSample {
1270
+ export declare class BasicSample {
1311
1271
  /**
1312
1272
  * The sample's name.
1313
1273
  */
@@ -1468,11 +1428,9 @@ declare class BasicSample {
1468
1428
  *
1469
1429
  * @group Sound Banks.Samples
1470
1430
  */
1471
- declare class EmptySample extends BasicSample {
1431
+ export declare class EmptySample extends BasicSample {
1472
1432
  constructor();
1473
1433
  }
1474
- //#endregion
1475
- //#region src/midi/enums.d.ts
1476
1434
  /**
1477
1435
  * All MIDI 1.0 defined status bytes
1478
1436
  *
@@ -1482,7 +1440,7 @@ declare class EmptySample extends BasicSample {
1482
1440
  *
1483
1441
  * @group MIDI.Protocol
1484
1442
  */
1485
- declare const MIDIMessageTypes: {
1443
+ export declare const MIDIMessageTypes: {
1486
1444
  readonly noteOff: 128;
1487
1445
  readonly noteOn: 144;
1488
1446
  readonly polyPressure: 160;
@@ -1540,7 +1498,7 @@ type MIDIMessageType = (typeof MIDIMessageTypes)[keyof typeof MIDIMessageTypes];
1540
1498
  *
1541
1499
  * @group MIDI.Protocol
1542
1500
  */
1543
- declare const MIDIControllers: {
1501
+ export declare const MIDIControllers: {
1544
1502
  readonly bankSelect: 0;
1545
1503
  readonly modulationWheel: 1;
1546
1504
  readonly breathController: 2;
@@ -1681,7 +1639,7 @@ type MIDIController = (typeof MIDIControllers)[keyof typeof MIDIControllers];
1681
1639
  *
1682
1640
  * @group MIDI.Protocol
1683
1641
  */
1684
- declare const RegisteredParameterTypes: {
1642
+ export declare const RegisteredParameterTypes: {
1685
1643
  readonly pitchWheelRange: 0;
1686
1644
  readonly fineTuning: 1;
1687
1645
  readonly coarseTuning: 2;
@@ -1697,7 +1655,7 @@ declare const RegisteredParameterTypes: {
1697
1655
  *
1698
1656
  * @group MIDI.Protocol
1699
1657
  */
1700
- declare const NonRegisteredParameterTypesMSB: {
1658
+ export declare const NonRegisteredParameterTypesMSB: {
1701
1659
  readonly partParameter: 1;
1702
1660
  readonly drumPitch: 24;
1703
1661
  readonly drumPitchFine: 25;
@@ -1718,7 +1676,7 @@ declare const NonRegisteredParameterTypesMSB: {
1718
1676
  *
1719
1677
  * @group MIDI.Protocol
1720
1678
  */
1721
- declare const NonRegisteredParameterTypesLSB: {
1679
+ export declare const NonRegisteredParameterTypesLSB: {
1722
1680
  readonly vibratoRate: 8;
1723
1681
  readonly vibratoDepth: 9;
1724
1682
  readonly vibratoDelay: 10;
@@ -1728,15 +1686,13 @@ declare const NonRegisteredParameterTypesLSB: {
1728
1686
  readonly envelopeDecayTime: 100;
1729
1687
  readonly envelopeReleaseTime: 102;
1730
1688
  };
1731
- //#endregion
1732
- //#region src/soundbank/types.d.ts
1733
1689
  /**
1734
1690
  * Represents a channel in an SF2-compatible synthesizer.
1735
1691
  * Its data is used for computing {@link Modulator}s.
1736
1692
  *
1737
1693
  * @group Sound Banks.Modulators
1738
1694
  */
1739
- interface SF2Channel {
1695
+ export interface SF2Channel {
1740
1696
  /**
1741
1697
  * All MIDI controller values for modulation.
1742
1698
  */
@@ -1768,7 +1724,7 @@ interface SF2Channel {
1768
1724
  *
1769
1725
  * @group Sound Banks.Info
1770
1726
  */
1771
- interface SF2VersionTag {
1727
+ export interface SF2VersionTag {
1772
1728
  /**
1773
1729
  * The major revision number of the sound bank.
1774
1730
  */
@@ -1783,37 +1739,37 @@ interface SF2VersionTag {
1783
1739
  *
1784
1740
  * @group Utilities.FourCC
1785
1741
  */
1786
- type GenericBankInfoFourCC = "INAM" | "ICRD" | "IENG" | "IPRD" | "ICOP" | "ICMT" | "ISFT";
1742
+ export type GenericBankInfoFourCC = "INAM" | "ICRD" | "IENG" | "IPRD" | "ICOP" | "ICMT" | "ISFT";
1787
1743
  /**
1788
1744
  * RIFF Four Character Codes found in SF2 INFO chunk.
1789
1745
  *
1790
1746
  * @group Utilities.FourCC
1791
1747
  */
1792
- type SF2InfoFourCC = GenericBankInfoFourCC | "ifil" | "isng" | "irom" | "iver" | "DMOD" | "LIST";
1748
+ export type SF2InfoFourCC = GenericBankInfoFourCC | "ifil" | "isng" | "irom" | "iver" | "DMOD" | "LIST";
1793
1749
  /**
1794
1750
  * RIFF Four Character Codes found in the SF2 structure.
1795
1751
  *
1796
1752
  * @group Utilities.FourCC
1797
1753
  */
1798
- type SF2ChunkFourCC = "pdta" | "xdta" | "sdta" | "smpl" | "sm24" | "phdr" | "pbag" | "pmod" | "pgen" | "inst" | "ibag" | "imod" | "igen" | "shdr";
1754
+ export type SF2ChunkFourCC = "pdta" | "xdta" | "sdta" | "smpl" | "sm24" | "phdr" | "pbag" | "pmod" | "pgen" | "inst" | "ibag" | "imod" | "igen" | "shdr";
1799
1755
  /**
1800
1756
  * RIFF Four Character Codes found in the DLS INFO chunk.
1801
1757
  *
1802
1758
  * @group Utilities.FourCC
1803
1759
  */
1804
- type DLSInfoFourCC = GenericBankInfoFourCC | "ISBJ";
1760
+ export type DLSInfoFourCC = GenericBankInfoFourCC | "ISBJ";
1805
1761
  /**
1806
1762
  * RIFF Four Character Codes found in the DLS structure.
1807
1763
  *
1808
1764
  * @group Utilities.FourCC
1809
1765
  */
1810
- type DLSChunkFourCC = WAVFourCC | "dls " | "dlid" | "cdl " | "ptbl" | "vers" | "colh" | "wvpl" | "wsmp" | "data" | "lart" | "lar2" | "art2" | "art1" | "lrgn" | "rgnh" | "wlnk" | "lins" | "ins " | "insh" | "rgn " | "rgn2" | "pgal";
1766
+ export type DLSChunkFourCC = WAVFourCC | "dls " | "dlid" | "cdl " | "ptbl" | "vers" | "colh" | "wvpl" | "wsmp" | "data" | "lart" | "lar2" | "art2" | "art1" | "lrgn" | "rgnh" | "wlnk" | "lins" | "ins " | "insh" | "rgn " | "rgn2" | "pgal";
1811
1767
  /**
1812
1768
  * Metadata object representing information associated with a {@link BasicSoundBank}.
1813
1769
  *
1814
1770
  * @group Sound Banks.Info
1815
1771
  */
1816
- interface SoundBankInfoData {
1772
+ export interface SoundBankInfoData {
1817
1773
  /**
1818
1774
  * The sound bank's name.
1819
1775
  */
@@ -1873,7 +1829,7 @@ interface SoundBankInfoData {
1873
1829
  *
1874
1830
  * @group Sound Banks.Zones
1875
1831
  */
1876
- interface VoiceParameters {
1832
+ export interface VoiceParameters {
1877
1833
  /**
1878
1834
  * The summed generators.
1879
1835
  */
@@ -1902,27 +1858,27 @@ interface VoiceParameters {
1902
1858
  *
1903
1859
  * @group Sound Banks.Samples
1904
1860
  */
1905
- type SampleEncodingFunction = (audioData: Float32Array, sampleRate: number) => Promise<Uint8Array>;
1861
+ export type SampleEncodingFunction = (audioData: Float32Array, sampleRate: number) => Promise<Uint8Array>;
1906
1862
  /**
1907
1863
  * An index of the modulator source.
1908
1864
  * Either an SF2 modulator source or a MIDI controller.
1909
1865
  *
1910
1866
  * @group Sound Banks.Modulators
1911
1867
  */
1912
- type ModulatorSourceIndex = ModulatorControllerSource | MIDIController;
1868
+ export type ModulatorSourceIndex = ModulatorControllerSource | MIDIController;
1913
1869
  /**
1914
1870
  * A function to track progress during writing.
1915
1871
  * @param progress Estimated progress, from 0 to 1.
1916
1872
  *
1917
1873
  * @group Sound Banks.Writing
1918
1874
  */
1919
- type ProgressFunction = (progress: number) => unknown;
1875
+ export type ProgressFunction = (progress: number) => unknown;
1920
1876
  /**
1921
1877
  * Options for changing the {@link BasicSoundBank}'s sample format.
1922
1878
  *
1923
1879
  * @group Sound Banks.Samples
1924
1880
  */
1925
- type SetSampleFormatOptions = {
1881
+ export type SetSampleFormatOptions = {
1926
1882
  /**
1927
1883
  * A function to show progress for compressing. It can be undefined.
1928
1884
  */
@@ -1956,7 +1912,7 @@ type SetSampleFormatOptions = {
1956
1912
  *
1957
1913
  * @group Sound Banks.Writing
1958
1914
  */
1959
- interface SoundBankWriteOptions {
1915
+ export interface SoundBankWriteOptions {
1960
1916
  /**
1961
1917
  * The `ISFT` field to set when writing. If unset, `SpessaSynth` is written.
1962
1918
  * This field indicates the last software that was used to edit this sound bank.
@@ -1972,7 +1928,7 @@ interface SoundBankWriteOptions {
1972
1928
  *
1973
1929
  * @group Sound Banks.Writing
1974
1930
  */
1975
- interface SoundFont2WriteOptions extends SoundBankWriteOptions {
1931
+ export interface SoundFont2WriteOptions extends SoundBankWriteOptions {
1976
1932
  /**
1977
1933
  * If the DMOD chunk should be written. Recommended.
1978
1934
  * > **Note**
@@ -1994,7 +1950,7 @@ interface SoundFont2WriteOptions extends SoundBankWriteOptions {
1994
1950
  *
1995
1951
  * @group Sound Banks.Writing
1996
1952
  */
1997
- interface SFEWriteOptions extends SoundBankWriteOptions {
1953
+ export interface SFEWriteOptions extends SoundBankWriteOptions {
1998
1954
  /**
1999
1955
  * If the RIFS (64-bit RIFF chunks) should be used.
2000
1956
  * Increases maximum size from 4GB to effectively infinite.
@@ -2007,7 +1963,7 @@ interface SFEWriteOptions extends SoundBankWriteOptions {
2007
1963
  *
2008
1964
  * @group Sound Banks.Zones
2009
1965
  */
2010
- interface GenericRange {
1966
+ export interface GenericRange {
2011
1967
  /**
2012
1968
  * The minimum value.
2013
1969
  */
@@ -2025,7 +1981,7 @@ interface GenericRange {
2025
1981
  *
2026
1982
  * @group MIDI.Protocol
2027
1983
  */
2028
- type PresetsWithKeyCombinations<T extends MIDIPatchFull> = Map<T, Map<number, Set<number>>>;
1984
+ export type PresetsWithKeyCombinations<T extends MIDIPatchFull> = Map<T, Map<number, Set<number>>>;
2029
1985
  /**
2030
1986
  * One of the General MIDI systems.
2031
1987
  *
@@ -2036,9 +1992,7 @@ type PresetsWithKeyCombinations<T extends MIDIPatchFull> = Map<T, Map<number, Se
2036
1992
  *
2037
1993
  * @group MIDI.Protocol
2038
1994
  */
2039
- type MIDISystem = "gm" | "gm2" | "gs" | "xg";
2040
- //#endregion
2041
- //#region src/synthesizer/enums.d.ts
1995
+ export type MIDISystem = "gm" | "gm2" | "gs" | "xg";
2042
1996
  /**
2043
1997
  * The available interpolation types of the synthesizer.
2044
1998
  * Interpolation defines how sample points between the sample data are calculated.
@@ -2046,7 +2000,7 @@ type MIDISystem = "gm" | "gm2" | "gs" | "xg";
2046
2000
  *
2047
2001
  * @group Synthesizer.Options
2048
2002
  */
2049
- declare const InterpolationTypes: {
2003
+ export declare const InterpolationTypes: {
2050
2004
  /**
2051
2005
  * Linear interpolation. Fast with acceptable quality.
2052
2006
  */
@@ -2067,9 +2021,7 @@ declare const InterpolationTypes: {
2067
2021
  *
2068
2022
  * @group Synthesizer.Options
2069
2023
  */
2070
- type InterpolationType = (typeof InterpolationTypes)[keyof typeof InterpolationTypes];
2071
- //#endregion
2072
- //#region src/synthesizer/audio_engine/channel/parameters/system.d.ts
2024
+ export type InterpolationType = (typeof InterpolationTypes)[keyof typeof InterpolationTypes];
2073
2025
  /**
2074
2026
  * Channel System Parameters are API-only parameters
2075
2027
  * that affect a single MIDI channel.
@@ -2163,15 +2115,13 @@ interface ChannelSystemParameter {
2163
2115
  *
2164
2116
  * @group Synthesizer.Parameters
2165
2117
  */
2166
- declare const DEFAULT_CHANNEL_SYSTEM_PARAMETERS: ChannelSystemParameter;
2167
- //#endregion
2168
- //#region src/synthesizer/audio_engine/effects/gs/interface/gs_system_effect_parameter.d.ts
2118
+ export declare const DEFAULT_CHANNEL_SYSTEM_PARAMETERS: ChannelSystemParameter;
2169
2119
  /**
2170
2120
  * Parameters shared between all GS system effects.
2171
2121
  *
2172
2122
  * @group Synthesizer.GS Effects
2173
2123
  */
2174
- interface GSSystemEffectParameter {
2124
+ export interface GSSystemEffectParameter {
2175
2125
  /**
2176
2126
  * 0-127
2177
2127
  * This parameter sets the amount of the effect sent to the effect output.
@@ -2185,8 +2135,6 @@ interface GSSystemEffectParameter {
2185
2135
  */
2186
2136
  preLowpass: number;
2187
2137
  }
2188
- //#endregion
2189
- //#region src/synthesizer/audio_engine/effects/gs/interface/gs_reverb_processor.d.ts
2190
2138
  /**
2191
2139
  * GS-compatible reverb parameters.
2192
2140
  *
@@ -2194,7 +2142,7 @@ interface GSSystemEffectParameter {
2194
2142
  *
2195
2143
  * @group Synthesizer.GS Effects
2196
2144
  */
2197
- interface GSReverbParameter extends GSSystemEffectParameter {
2145
+ export interface GSReverbParameter extends GSSystemEffectParameter {
2198
2146
  /**
2199
2147
  * `0-7`
2200
2148
  *
@@ -2250,7 +2198,7 @@ interface GSReverbParameter extends GSSystemEffectParameter {
2250
2198
  *
2251
2199
  * @group Synthesizer.GS Effects
2252
2200
  */
2253
- interface GSReverbProcessor extends GSReverbParameter {
2201
+ export interface GSReverbProcessor extends GSReverbParameter {
2254
2202
  /**
2255
2203
  * Process the effect and **adds** it to the output.
2256
2204
  * @param input The input buffer to process. It always starts at index 0.
@@ -2265,8 +2213,6 @@ interface GSReverbProcessor extends GSReverbParameter {
2265
2213
  */
2266
2214
  getSnapshot(): GSReverbParameter;
2267
2215
  }
2268
- //#endregion
2269
- //#region src/synthesizer/audio_engine/effects/gs/interface/gs_chorus_processor.d.ts
2270
2216
  /**
2271
2217
  * GS-compatible chorus parameters.
2272
2218
  *
@@ -2274,7 +2220,7 @@ interface GSReverbProcessor extends GSReverbParameter {
2274
2220
  *
2275
2221
  * @group Synthesizer.GS Effects
2276
2222
  */
2277
- interface GSChorusParameter extends GSSystemEffectParameter {
2223
+ export interface GSChorusParameter extends GSSystemEffectParameter {
2278
2224
  /**
2279
2225
  * `0-127`
2280
2226
  *
@@ -2338,7 +2284,7 @@ interface GSChorusParameter extends GSSystemEffectParameter {
2338
2284
  *
2339
2285
  * @group Synthesizer.GS Effects
2340
2286
  */
2341
- interface GSChorusProcessor extends GSChorusParameter {
2287
+ export interface GSChorusProcessor extends GSChorusParameter {
2342
2288
  /**
2343
2289
  * Process the effect and **adds** it to the output.
2344
2290
  * @param input The input buffer to process. It always starts at index 0.
@@ -2355,8 +2301,6 @@ interface GSChorusProcessor extends GSChorusParameter {
2355
2301
  */
2356
2302
  getSnapshot(): GSChorusParameter;
2357
2303
  }
2358
- //#endregion
2359
- //#region src/synthesizer/audio_engine/effects/gs/interface/gs_delay_processor.d.ts
2360
2304
  /**
2361
2305
  * GS-compatible delay parameters.
2362
2306
  *
@@ -2364,7 +2308,7 @@ interface GSChorusProcessor extends GSChorusParameter {
2364
2308
  *
2365
2309
  * @group Synthesizer.GS Effects
2366
2310
  */
2367
- interface GSDelayParameter extends GSSystemEffectParameter {
2311
+ export interface GSDelayParameter extends GSSystemEffectParameter {
2368
2312
  /**
2369
2313
  * 0-115
2370
2314
  * 0.1ms-340ms-1000ms
@@ -2449,7 +2393,7 @@ interface GSDelayParameter extends GSSystemEffectParameter {
2449
2393
  *
2450
2394
  * @group Synthesizer.GS Effects
2451
2395
  */
2452
- interface GSDelayProcessor extends GSDelayParameter {
2396
+ export interface GSDelayProcessor extends GSDelayParameter {
2453
2397
  /**
2454
2398
  * Process the effect and **adds** it to the output.
2455
2399
  * @param input The input buffer to process. It always starts at index 0.
@@ -2465,14 +2409,12 @@ interface GSDelayProcessor extends GSDelayParameter {
2465
2409
  */
2466
2410
  getSnapshot(): GSDelayParameter;
2467
2411
  }
2468
- //#endregion
2469
- //#region src/synthesizer/audio_engine/effects/gs/interface/gs_insertion_processor.d.ts
2470
2412
  /**
2471
2413
  * Represents a GS-compatible Insertion EFX processor.
2472
2414
  *
2473
2415
  * @group Synthesizer.GS Effects
2474
2416
  */
2475
- interface GSInsertionProcessor {
2417
+ export interface GSInsertionProcessor {
2476
2418
  /**
2477
2419
  * The EFX type of this processor, stored as `MSB << 8 | LSB`.
2478
2420
  * For example `0x30`, `0x10` is `0x3010`.
@@ -2529,7 +2471,7 @@ interface GSInsertionProcessor {
2529
2471
  *
2530
2472
  * @group Synthesizer.GS Effects
2531
2473
  */
2532
- interface GSInsertionProcessorSnapshot {
2474
+ export interface GSInsertionProcessorSnapshot {
2533
2475
  /**
2534
2476
  * The EFX type of this processor, stored as `MSB << 8 | LSB`.
2535
2477
  * For example `0x30`, `0x10` is `0x3010`.
@@ -2549,14 +2491,12 @@ interface GSInsertionProcessorSnapshot {
2549
2491
  */
2550
2492
  params: Uint8Array;
2551
2493
  }
2552
- //#endregion
2553
- //#region src/synthesizer/audio_engine/effects/xg/interface/xg_effect_block.d.ts
2554
2494
  /**
2555
2495
  * A snapshot of a {@link XGEffectBlock}.
2556
2496
  *
2557
2497
  * @group Synthesizer.XG Effects
2558
2498
  */
2559
- interface XGEffectBlockSnapshot {
2499
+ export interface XGEffectBlockSnapshot {
2560
2500
  /**
2561
2501
  * The type of the processor.
2562
2502
  * Per XG spec, BASIC EFFECT (LSB = 0) will be used if the exact match is missing.
@@ -2583,7 +2523,7 @@ interface XGEffectBlockSnapshot {
2583
2523
  *
2584
2524
  * @group Synthesizer.XG Effects
2585
2525
  */
2586
- interface XGEffectBlock {
2526
+ export interface XGEffectBlock {
2587
2527
  /**
2588
2528
  * Sets the type of the processor.
2589
2529
  * Per XG spec, BASIC EFFECT (LSB = 0) should be used if the exact match is missing.
@@ -2619,14 +2559,12 @@ interface XGEffectBlock {
2619
2559
  */
2620
2560
  applySnapshot(snapshot: XGEffectBlockSnapshot): void;
2621
2561
  }
2622
- //#endregion
2623
- //#region src/synthesizer/audio_engine/effects/xg/interface/xg_system_effect_block.d.ts
2624
2562
  /**
2625
2563
  * Parameters for an XG system effect.
2626
2564
  *
2627
2565
  * @group Synthesizer.XG Effects
2628
2566
  */
2629
- interface XGSystemEffectParameter {
2567
+ export interface XGSystemEffectParameter {
2630
2568
  /**
2631
2569
  * The return (level) of the effect.
2632
2570
  * 0 is silence (-Inf dB), 64 is normal (0 dB) and 127 is double the volume (+6 dB).
@@ -2643,7 +2581,7 @@ interface XGSystemEffectParameter {
2643
2581
  *
2644
2582
  * @group Synthesizer.XG Effects
2645
2583
  */
2646
- interface XGSystemEffectBlockSnapshot extends XGSystemEffectParameter, XGEffectBlockSnapshot {}
2584
+ export interface XGSystemEffectBlockSnapshot extends XGSystemEffectParameter, XGEffectBlockSnapshot {}
2647
2585
  /**
2648
2586
  * This interface represents a single XG system effect block.
2649
2587
  *
@@ -2656,12 +2594,10 @@ interface XGSystemEffectBlockSnapshot extends XGSystemEffectParameter, XGEffectB
2656
2594
  *
2657
2595
  * @group Synthesizer.XG Effects
2658
2596
  */
2659
- interface XGSystemEffectBlock extends XGEffectBlock, XGSystemEffectParameter {
2597
+ export interface XGSystemEffectBlock extends XGEffectBlock, XGSystemEffectParameter {
2660
2598
  getSnapshot(): XGSystemEffectBlockSnapshot;
2661
2599
  applySnapshot(snapshot: XGSystemEffectBlockSnapshot): void;
2662
2600
  }
2663
- //#endregion
2664
- //#region src/synthesizer/audio_engine/effects/xg/interface/xg_reverb_block.d.ts
2665
2601
  /**
2666
2602
  * Reverb is an effect that adds reverberation to a sound, as you would hear in a concert
2667
2603
  * hall.
@@ -2683,7 +2619,7 @@ interface XGSystemEffectBlock extends XGEffectBlock, XGSystemEffectParameter {
2683
2619
  *
2684
2620
  * @group Synthesizer.XG Effects
2685
2621
  */
2686
- interface XGReverbBlock extends XGSystemEffectBlock {
2622
+ export interface XGReverbBlock extends XGSystemEffectBlock {
2687
2623
  /**
2688
2624
  * Process the effect and **adds** it to the output.
2689
2625
  * @param inputLeft The input buffer to process. It always starts at index 0.
@@ -2695,14 +2631,12 @@ interface XGReverbBlock extends XGSystemEffectBlock {
2695
2631
  */
2696
2632
  process(inputLeft: Float32Array, inputRight: Float32Array, outputLeft: Float32Array, outputRight: Float32Array, startIndex: number, sampleCount: number): void;
2697
2633
  }
2698
- //#endregion
2699
- //#region src/synthesizer/audio_engine/effects/xg/interface/xg_chorus_block.d.ts
2700
2634
  /**
2701
2635
  * Parameters for the XG chorus effect.
2702
2636
  *
2703
2637
  * @group Synthesizer.XG Effects
2704
2638
  */
2705
- interface XGChorusParameter extends XGSystemEffectParameter {
2639
+ export interface XGChorusParameter extends XGSystemEffectParameter {
2706
2640
  /**
2707
2641
  * The amount of chorus being sent to the reverb effect.
2708
2642
  *
@@ -2715,7 +2649,7 @@ interface XGChorusParameter extends XGSystemEffectParameter {
2715
2649
  *
2716
2650
  * @group Synthesizer.XG Effects
2717
2651
  */
2718
- interface XGChorusBlockSnapshot extends XGChorusParameter, XGSystemEffectBlockSnapshot {}
2652
+ export interface XGChorusBlockSnapshot extends XGChorusParameter, XGSystemEffectBlockSnapshot {}
2719
2653
  /**
2720
2654
  * Chorus broadens the spatial image of the sound, adding depth and richness.
2721
2655
  *
@@ -2736,7 +2670,7 @@ interface XGChorusBlockSnapshot extends XGChorusParameter, XGSystemEffectBlockSn
2736
2670
  *
2737
2671
  * @group Synthesizer.XG Effects
2738
2672
  */
2739
- interface XGChorusBlock extends XGSystemEffectBlock, XGChorusParameter {
2673
+ export interface XGChorusBlock extends XGSystemEffectBlock, XGChorusParameter {
2740
2674
  /**
2741
2675
  * Process the effect and **adds** it to the output.
2742
2676
  * @param inputLeft The input buffer to process. It always starts at index 0.
@@ -2752,14 +2686,12 @@ interface XGChorusBlock extends XGSystemEffectBlock, XGChorusParameter {
2752
2686
  getSnapshot(): XGChorusBlockSnapshot;
2753
2687
  applySnapshot(snapshot: XGChorusBlockSnapshot): void;
2754
2688
  }
2755
- //#endregion
2756
- //#region src/synthesizer/audio_engine/effects/xg/interface/xg_insertion_block.d.ts
2757
2689
  /**
2758
2690
  * Parameters for the XG insertion effect.
2759
2691
  *
2760
2692
  * @group Synthesizer.XG Effects
2761
2693
  */
2762
- interface XGInsertionParameter {
2694
+ export interface XGInsertionParameter {
2763
2695
  /**
2764
2696
  * The channel routed through the insertion effect, 0-based.
2765
2697
  *
@@ -2772,7 +2704,7 @@ interface XGInsertionParameter {
2772
2704
  *
2773
2705
  * @group Synthesizer.XG Effects
2774
2706
  */
2775
- interface XGInsertionBlockSnapshot extends XGInsertionParameter, XGEffectBlockSnapshot {}
2707
+ export interface XGInsertionBlockSnapshot extends XGInsertionParameter, XGEffectBlockSnapshot {}
2776
2708
  /**
2777
2709
  * The Insertion effects provide additional effects for processing individual Parts.
2778
2710
  *
@@ -2798,7 +2730,7 @@ interface XGInsertionBlockSnapshot extends XGInsertionParameter, XGEffectBlockSn
2798
2730
  *
2799
2731
  * @group Synthesizer.XG Effects
2800
2732
  */
2801
- interface XGInsertionBlock extends XGInsertionParameter, XGEffectBlock {
2733
+ export interface XGInsertionBlock extends XGInsertionParameter, XGEffectBlock {
2802
2734
  /**
2803
2735
  * Process the effect in insertion mode and **overwrites** it to the input.
2804
2736
  * The DSP honors Dry/Wet in this case.
@@ -2811,14 +2743,12 @@ interface XGInsertionBlock extends XGInsertionParameter, XGEffectBlock {
2811
2743
  getSnapshot(): XGInsertionBlockSnapshot;
2812
2744
  applySnapshot(snapshot: XGInsertionBlockSnapshot): void;
2813
2745
  }
2814
- //#endregion
2815
- //#region src/synthesizer/audio_engine/effects/xg/interface/xg_variation_block.d.ts
2816
2746
  /**
2817
2747
  * Parameters for the XG variation effect.
2818
2748
  *
2819
2749
  * @group Synthesizer.XG Effects
2820
2750
  */
2821
- interface XGVariationParameter extends XGSystemEffectParameter, XGInsertionParameter {
2751
+ export interface XGVariationParameter extends XGSystemEffectParameter, XGInsertionParameter {
2822
2752
  /**
2823
2753
  * Indicates if variation is in the insertion mode (CONNECTION).
2824
2754
  * If `false`, then variation is in the `system` mode.
@@ -2854,7 +2784,7 @@ interface XGVariationParameter extends XGSystemEffectParameter, XGInsertionParam
2854
2784
  *
2855
2785
  * @group Synthesizer.XG Effects
2856
2786
  */
2857
- interface XGVariationBlockSnapshot extends XGVariationParameter, XGSystemEffectBlockSnapshot, XGInsertionBlockSnapshot {}
2787
+ export interface XGVariationBlockSnapshot extends XGVariationParameter, XGSystemEffectBlockSnapshot, XGInsertionBlockSnapshot {}
2858
2788
  /**
2859
2789
  * The Variation section provides a wealth of additional effects.
2860
2790
  * It features some of the same effects found in the
@@ -2881,7 +2811,7 @@ interface XGVariationBlockSnapshot extends XGVariationParameter, XGSystemEffectB
2881
2811
  *
2882
2812
  * @group Synthesizer.XG Effects
2883
2813
  */
2884
- interface XGVariationBlock extends XGVariationParameter, XGSystemEffectBlock, XGInsertionBlock {
2814
+ export interface XGVariationBlock extends XGVariationParameter, XGSystemEffectBlock, XGInsertionBlock {
2885
2815
  /**
2886
2816
  * Process the effect in _system_ mode and **adds** it to the output.
2887
2817
  * Feeds the chorus and reverb buffers according to the send amounts.
@@ -2902,8 +2832,6 @@ interface XGVariationBlock extends XGVariationParameter, XGSystemEffectBlock, XG
2902
2832
  getSnapshot(): XGVariationBlockSnapshot;
2903
2833
  applySnapshot(snapshot: XGVariationBlockSnapshot): void;
2904
2834
  }
2905
- //#endregion
2906
- //#region src/synthesizer/audio_engine/parameters/system.d.ts
2907
2835
  /**
2908
2836
  * Global System Parameters are API-only parameters
2909
2837
  * that affect the entire synthesizer.
@@ -3054,6 +2982,15 @@ interface GlobalSystemParameter {
3054
2982
  * Synthesizer's device ID for system exclusive messages. Set to -1 to accept all.
3055
2983
  */
3056
2984
  deviceID: number;
2985
+ /**
2986
+ * Some MIDI synths (most notably Microsoft GS Wavetable Synth) incorrectly treat the "coarse tune" RPN
2987
+ * as semitone pitch change instead of true key shift.
2988
+ *
2989
+ * When this parameter is enabled,
2990
+ * {@link GlobalMIDIParameter.keyShift} and {@link ChannelMIDIParameter.keyShift}
2991
+ * are treated as semitone pitch changes.
2992
+ */
2993
+ pitchBasedKeyShift: boolean;
3057
2994
  /**
3058
2995
  * The master gain.
3059
2996
  * From 0 to any number. 1 is 100% volume.
@@ -3117,9 +3054,7 @@ interface GlobalSystemParameter {
3117
3054
  *
3118
3055
  * @group Synthesizer.Parameters
3119
3056
  */
3120
- declare const DEFAULT_GLOBAL_SYSTEM_PARAMETERS: GlobalSystemParameter;
3121
- //#endregion
3122
- //#region src/synthesizer/audio_engine/sound_bank_manager.d.ts
3057
+ export declare const DEFAULT_GLOBAL_SYSTEM_PARAMETERS: GlobalSystemParameter;
3123
3058
  /**
3124
3059
  * Manages the sound banks of the parent {@link SpessaSynthProcessor}.
3125
3060
  *
@@ -3127,7 +3062,7 @@ declare const DEFAULT_GLOBAL_SYSTEM_PARAMETERS: GlobalSystemParameter;
3127
3062
  *
3128
3063
  * @group Synthesizer.Sound Bank Integration
3129
3064
  */
3130
- declare class SoundBankManager {
3065
+ export declare class SoundBankManager {
3131
3066
  /**
3132
3067
  * All the sound banks, ordered from the most important to the least.
3133
3068
  */
@@ -3175,14 +3110,12 @@ declare class SoundBankManager {
3175
3110
  addSoundBank(bank: BasicSoundBank, id: string, bankOffset?: number): void;
3176
3111
  private generatePresetList;
3177
3112
  }
3178
- //#endregion
3179
- //#region src/midi/midi_message.d.ts
3180
3113
  /**
3181
3114
  * This class represents a single MIDI 1.0 message.
3182
3115
  *
3183
3116
  * @group MIDI.Protocol
3184
3117
  */
3185
- declare class MIDIMessage {
3118
+ export declare class MIDIMessage {
3186
3119
  /**
3187
3120
  * Absolute number of MIDI ticks from the start of the track.
3188
3121
  * This is only relevant in MIDI sequences.
@@ -3265,8 +3198,6 @@ declare class MIDIMessage {
3265
3198
  */
3266
3199
  static nonRegisteredParameter(ticks: number, channel: number, parameter: number, value: number): MIDIMessage[];
3267
3200
  }
3268
- //#endregion
3269
- //#region src/synthesizer/audio_engine/channel/awe32_nrpn.d.ts
3270
3201
  /**
3271
3202
  * Handlers for tuning SF2 generators with NRPN.
3272
3203
  *
@@ -3293,15 +3224,13 @@ interface ChannelGenerators {
3293
3224
  */
3294
3225
  overridesEnabled: boolean;
3295
3226
  }
3296
- //#endregion
3297
- //#region src/synthesizer/audio_engine/channel/types.d.ts
3298
3227
  /**
3299
3228
  * Represents the [custom channel vibrato](../../../../docs/extra/midi-implementation.md#custom-vibrato)
3300
3229
  * of the channel.
3301
3230
  *
3302
3231
  * @group Synthesizer.Channel
3303
3232
  */
3304
- interface CustomChannelVibrato {
3233
+ export interface CustomChannelVibrato {
3305
3234
  /**
3306
3235
  * Vibrato depth, in cents.
3307
3236
  */
@@ -3315,8 +3244,6 @@ interface CustomChannelVibrato {
3315
3244
  */
3316
3245
  rate: number;
3317
3246
  }
3318
- //#endregion
3319
- //#region src/synthesizer/audio_engine/channel/channel_snapshot.d.ts
3320
3247
  /**
3321
3248
  * This interface is a snapshot of a {@link MIDIChannel},
3322
3249
  * capturing its current state, which can be saved and restored.
@@ -3403,8 +3330,6 @@ interface ChannelSnapshot {
3403
3330
  */
3404
3331
  channel: number;
3405
3332
  }
3406
- //#endregion
3407
- //#region src/synthesizer/audio_engine/synthesizer_snapshot.d.ts
3408
3333
  /**
3409
3334
  * This interface is a snapshot of a {@link SpessaSynthProcessor},
3410
3335
  * capturing its current state, which can be saved and restored.
@@ -3469,8 +3394,6 @@ interface SynthesizerSnapshot {
3469
3394
  */
3470
3395
  userDrumSets: UserDrumSetParameter[][];
3471
3396
  }
3472
- //#endregion
3473
- //#region src/synthesizer/processor.d.ts
3474
3397
  /**
3475
3398
  * The core synthesis engine of SpessaSynth.
3476
3399
  * This module converts sound bank and MIDI data into PCM audio data.
@@ -3504,7 +3427,7 @@ interface SynthesizerSnapshot {
3504
3427
  *
3505
3428
  * @group Synthesizer
3506
3429
  */
3507
- declare class SpessaSynthProcessor {
3430
+ export declare class SpessaSynthProcessor {
3508
3431
  /**
3509
3432
  * A `Promise` that must be awaited before
3510
3433
  * the processor can be used with a compressed sound bank.
@@ -3789,8 +3712,6 @@ declare class SpessaSynthProcessor {
3789
3712
  private getDefaultPresets;
3790
3713
  private getCachedVoiceIndex;
3791
3714
  }
3792
- //#endregion
3793
- //#region src/synthesizer/audio_engine/parameters/midi.d.ts
3794
3715
  /**
3795
3716
  * Global MIDI Parameters are MIDI-only parameters
3796
3717
  * that affect the entire synthesizer.
@@ -3858,15 +3779,13 @@ interface GlobalMIDIParameter {
3858
3779
  *
3859
3780
  * @group Synthesizer.Parameters
3860
3781
  */
3861
- declare const DEFAULT_GLOBAL_MIDI_PARAMETERS: GlobalMIDIParameter;
3862
- //#endregion
3863
- //#region src/midi/midi_tools/analyzed_message.d.ts
3782
+ export declare const DEFAULT_GLOBAL_MIDI_PARAMETERS: GlobalMIDIParameter;
3864
3783
  /**
3865
3784
  * Represents an analyzed global MIDI parameter change message.
3866
3785
  *
3867
3786
  * @group MIDI.Protocol
3868
3787
  */
3869
- type GlobalMIDIParameterMessage = { [P in keyof GlobalMIDIParameter]: {
3788
+ export type GlobalMIDIParameterMessage = { [P in keyof GlobalMIDIParameter]: {
3870
3789
  /**
3871
3790
  * The message type identifier.
3872
3791
  */
@@ -3879,7 +3798,7 @@ type GlobalMIDIParameterMessage = { [P in keyof GlobalMIDIParameter]: {
3879
3798
  * The new value of the global MIDI parameter.
3880
3799
  */
3881
3800
  value: GlobalMIDIParameter[P];
3882
- } }[keyof GlobalMIDIParameter];
3801
+ }; }[keyof GlobalMIDIParameter];
3883
3802
  /**
3884
3803
  * Represents an analyzed channel MIDI parameter change message.
3885
3804
  *
@@ -3889,7 +3808,7 @@ type GlobalMIDIParameterMessage = { [P in keyof GlobalMIDIParameter]: {
3889
3808
  *
3890
3809
  * @group MIDI.Protocol
3891
3810
  */
3892
- type ChannelMIDIParameterMessage = { [P in keyof ChannelMIDIParameter]: {
3811
+ export type ChannelMIDIParameterMessage = { [P in keyof ChannelMIDIParameter]: {
3893
3812
  /**
3894
3813
  * The message type identifier.
3895
3814
  */
@@ -3906,13 +3825,13 @@ type ChannelMIDIParameterMessage = { [P in keyof ChannelMIDIParameter]: {
3906
3825
  * The MIDI channel number (it may be above 15 for multi-port MIDI setups).
3907
3826
  */
3908
3827
  channel: number;
3909
- } }[keyof ChannelMIDIParameter];
3828
+ }; }[keyof ChannelMIDIParameter];
3910
3829
  /**
3911
3830
  * Represents an analyzed channel GS Reverb Processor change.
3912
3831
  *
3913
3832
  * @group MIDI.Protocol
3914
3833
  */
3915
- type GSReverbParameterMessage = { [P in keyof GSReverbParameter]: {
3834
+ export type GSReverbParameterMessage = { [P in keyof GSReverbParameter]: {
3916
3835
  /**
3917
3836
  * The message type identifier.
3918
3837
  */
@@ -3925,7 +3844,7 @@ type GSReverbParameterMessage = { [P in keyof GSReverbParameter]: {
3925
3844
  * The new value of the GS reverb parameter.
3926
3845
  */
3927
3846
  value: GSReverbParameter[P];
3928
- } }[keyof GSReverbParameter] | {
3847
+ }; }[keyof GSReverbParameter] | {
3929
3848
  /**
3930
3849
  * The message type identifier.
3931
3850
  */
@@ -3944,7 +3863,7 @@ type GSReverbParameterMessage = { [P in keyof GSReverbParameter]: {
3944
3863
  *
3945
3864
  * @group MIDI.Protocol
3946
3865
  */
3947
- type GSChorusParameterMessage = { [P in keyof GSChorusParameter]: {
3866
+ export type GSChorusParameterMessage = { [P in keyof GSChorusParameter]: {
3948
3867
  /**
3949
3868
  * The message type identifier.
3950
3869
  */
@@ -3957,7 +3876,7 @@ type GSChorusParameterMessage = { [P in keyof GSChorusParameter]: {
3957
3876
  * The new value of the GS chorus parameter.
3958
3877
  */
3959
3878
  value: GSChorusParameter[P];
3960
- } }[keyof GSChorusParameter] | {
3879
+ }; }[keyof GSChorusParameter] | {
3961
3880
  /**
3962
3881
  * The message type identifier.
3963
3882
  */
@@ -3976,7 +3895,7 @@ type GSChorusParameterMessage = { [P in keyof GSChorusParameter]: {
3976
3895
  *
3977
3896
  * @group MIDI.Protocol
3978
3897
  */
3979
- type GSDelayParameterMessage = { [P in keyof GSDelayParameter]: {
3898
+ export type GSDelayParameterMessage = { [P in keyof GSDelayParameter]: {
3980
3899
  /**
3981
3900
  * The message type identifier.
3982
3901
  */
@@ -3989,7 +3908,7 @@ type GSDelayParameterMessage = { [P in keyof GSDelayParameter]: {
3989
3908
  * The new value of the GS delay parameter.
3990
3909
  */
3991
3910
  value: GSDelayParameter[P];
3992
- } }[keyof GSDelayParameter] | {
3911
+ }; }[keyof GSDelayParameter] | {
3993
3912
  /**
3994
3913
  * The message type identifier.
3995
3914
  */
@@ -4008,7 +3927,7 @@ type GSDelayParameterMessage = { [P in keyof GSDelayParameter]: {
4008
3927
  *
4009
3928
  * @group MIDI.Protocol
4010
3929
  */
4011
- type GSInsertionParameterMessage = {
3930
+ export type GSInsertionParameterMessage = {
4012
3931
  /**
4013
3932
  * An insertion effect processor parameter message (Roland GS).
4014
3933
  */
@@ -4054,7 +3973,7 @@ type GSInsertionParameterMessage = {
4054
3973
  *
4055
3974
  * @group MIDI.Protocol
4056
3975
  */
4057
- type XGReverbParameterMessage = {
3976
+ export type XGReverbParameterMessage = {
4058
3977
  /**
4059
3978
  * A reverb effect processor parameter message (Yamaha XG).
4060
3979
  */
@@ -4100,7 +4019,7 @@ type XGReverbParameterMessage = {
4100
4019
  *
4101
4020
  * @group MIDI.Protocol
4102
4021
  */
4103
- type XGChorusParameterMessage = {
4022
+ export type XGChorusParameterMessage = {
4104
4023
  /**
4105
4024
  * A chorus effect processor parameter message (Yamaha XG).
4106
4025
  */
@@ -4148,7 +4067,7 @@ type XGChorusParameterMessage = {
4148
4067
  *
4149
4068
  * @group MIDI.Protocol
4150
4069
  */
4151
- type XGVariationConnection = "system" | "insertion";
4070
+ export type XGVariationConnection = "system" | "insertion";
4152
4071
  /**
4153
4072
  * Represents an analyzed Yamaha XG Variation Processor change.
4154
4073
  *
@@ -4158,7 +4077,7 @@ type XGVariationConnection = "system" | "insertion";
4158
4077
  *
4159
4078
  * @group MIDI.Protocol
4160
4079
  */
4161
- type XGVariationParameterMessage = {
4080
+ export type XGVariationParameterMessage = {
4162
4081
  /**
4163
4082
  * A variation effect processor parameter message (Yamaha XG).
4164
4083
  */
@@ -4223,7 +4142,7 @@ type XGVariationParameterMessage = {
4223
4142
  *
4224
4143
  * @group MIDI.Protocol
4225
4144
  */
4226
- type XGInsertionParameterMessage = {
4145
+ export type XGInsertionParameterMessage = {
4227
4146
  /**
4228
4147
  * An insertion effect processor parameter message (Yamaha XG).
4229
4148
  */
@@ -4288,7 +4207,7 @@ type XGInsertionParameterMessage = {
4288
4207
  *
4289
4208
  * @group MIDI.Protocol
4290
4209
  */
4291
- type ChannelDrumSetupMessage = { [K in keyof DrumParameter]: {
4210
+ export type ChannelDrumSetupMessage = { [K in keyof DrumParameter]: {
4292
4211
  /**
4293
4212
  * A drum setup parameter message, set by NRPN.
4294
4213
  */
@@ -4309,13 +4228,13 @@ type ChannelDrumSetupMessage = { [K in keyof DrumParameter]: {
4309
4228
  * The value for the drum parameter.
4310
4229
  */
4311
4230
  value: DrumParameter[K];
4312
- } }[keyof DrumParameter];
4231
+ }; }[keyof DrumParameter];
4313
4232
  /**
4314
4233
  * Represents an analyzed map drum setup parameter change, set via System Exclusive.
4315
4234
  *
4316
4235
  * @group MIDI.Protocol
4317
4236
  */
4318
- type MapDrumSetupMessage = { [K in keyof DrumParameter]: {
4237
+ export type MapDrumSetupMessage = { [K in keyof DrumParameter]: {
4319
4238
  /**
4320
4239
  * A drum setup parameter message, set by SysEx.
4321
4240
  */
@@ -4337,7 +4256,7 @@ type MapDrumSetupMessage = { [K in keyof DrumParameter]: {
4337
4256
  * GS `pitchCoarse` is converted to semitones assuming the SC-88 resolution (50 cents per step).
4338
4257
  */
4339
4258
  value: DrumParameter[K];
4340
- } }[keyof DrumParameter];
4259
+ }; }[keyof DrumParameter];
4341
4260
  /**
4342
4261
  * The analysis result of an RPN (Registered Parameter Number) or NRPN (Non-Registered Parameter Number) MIDI message.
4343
4262
  *
@@ -4347,7 +4266,7 @@ type MapDrumSetupMessage = { [K in keyof DrumParameter]: {
4347
4266
  *
4348
4267
  * @group MIDI.Protocol
4349
4268
  */
4350
- type AnalyzedParameter = {
4269
+ export type AnalyzedParameter = {
4351
4270
  /**
4352
4271
  * An unhandled or unrecognized parameter message.
4353
4272
  */
@@ -4378,7 +4297,7 @@ type AnalyzedParameter = {
4378
4297
  *
4379
4298
  * @group MIDI.Protocol
4380
4299
  */
4381
- type AnalyzedMIDIMessage = AnalyzedParameter | GSReverbParameterMessage | GSChorusParameterMessage | GSDelayParameterMessage | GSInsertionParameterMessage | XGReverbParameterMessage | XGChorusParameterMessage | XGVariationParameterMessage | XGInsertionParameterMessage | {
4300
+ export type AnalyzedMIDIMessage = AnalyzedParameter | GSReverbParameterMessage | GSChorusParameterMessage | GSDelayParameterMessage | GSInsertionParameterMessage | XGReverbParameterMessage | XGChorusParameterMessage | XGVariationParameterMessage | XGInsertionParameterMessage | {
4382
4301
  /**
4383
4302
  * A MIDI program change message configured via System Exclusive.
4384
4303
  */
@@ -4418,21 +4337,19 @@ type AnalyzedMIDIMessage = AnalyzedParameter | GSReverbParameterMessage | GSChor
4418
4337
  * `pitchCoarse` is in GS steps, see {@link UserDrumSetParameter.pitchCoarse}.
4419
4338
  */
4420
4339
  value: UserDrumSetParameter[K];
4421
- } }[keyof UserDrumSetParameter] | MapDrumSetupMessage;
4340
+ }; }[keyof UserDrumSetParameter] | MapDrumSetupMessage;
4422
4341
  /**
4423
4342
  * The analysis result of a System Exclusive (SysEx) MIDI message.
4424
4343
  *
4425
4344
  * @group MIDI.Protocol
4426
4345
  */
4427
- type AnalyzedSysExMessage = Exclude<AnalyzedMIDIMessage, ChannelDrumSetupMessage>;
4428
- //#endregion
4429
- //#region src/synthesizer/events.d.ts
4346
+ export type AnalyzedSysExMessage = Exclude<AnalyzedMIDIMessage, ChannelDrumSetupMessage>;
4430
4347
  /**
4431
4348
  * A shared interface for all channel events.
4432
4349
  *
4433
4350
  * @group Synthesizer.Events
4434
4351
  */
4435
- interface ChannelEvent {
4352
+ export interface ChannelEvent {
4436
4353
  /**
4437
4354
  * The MIDI channel number for this event.
4438
4355
  * Usually it ranges from 0 to 15, but it depends on the
@@ -4461,7 +4378,7 @@ interface ChannelEvent {
4461
4378
  *
4462
4379
  * @group Synthesizer.Events
4463
4380
  */
4464
- interface NoteOnEvent extends ChannelEvent {
4381
+ export interface NoteOnEvent extends ChannelEvent {
4465
4382
  /**
4466
4383
  * The MIDI key number of the note that was pressed. Ranges from 0 to 127.
4467
4384
  */
@@ -4476,7 +4393,7 @@ interface NoteOnEvent extends ChannelEvent {
4476
4393
  *
4477
4394
  * @group Synthesizer.Events
4478
4395
  */
4479
- interface NoteOffEvent extends ChannelEvent {
4396
+ export interface NoteOffEvent extends ChannelEvent {
4480
4397
  /**
4481
4398
  * The MIDI key number of the note that was released. Ranges from 0 to 127.
4482
4399
  */
@@ -4496,7 +4413,7 @@ interface NoteOffEvent extends ChannelEvent {
4496
4413
  *
4497
4414
  * @group Synthesizer.Events
4498
4415
  */
4499
- interface ProgramChangeEvent extends MIDIPatchFull, ChannelEvent {}
4416
+ export interface ProgramChangeEvent extends MIDIPatchFull, ChannelEvent {}
4500
4417
  /**
4501
4418
  * This event is triggered when a controller is changed on any channel (usually MIDI controller change),
4502
4419
  * though [some system exclusives can change it too.](../../docs/extra/midi-implementation.md)
@@ -4509,7 +4426,7 @@ interface ProgramChangeEvent extends MIDIPatchFull, ChannelEvent {}
4509
4426
  *
4510
4427
  * @group Synthesizer.Events
4511
4428
  */
4512
- interface ControllerChangeEvent extends ChannelEvent {
4429
+ export interface ControllerChangeEvent extends ChannelEvent {
4513
4430
  /**
4514
4431
  * The MIDI controller number. Ranges from 0 to 127.
4515
4432
  */
@@ -4525,7 +4442,7 @@ interface ControllerChangeEvent extends ChannelEvent {
4525
4442
  *
4526
4443
  * @group Synthesizer.Events
4527
4444
  */
4528
- interface PolyPressureEvent extends ChannelEvent {
4445
+ export interface PolyPressureEvent extends ChannelEvent {
4529
4446
  /**
4530
4447
  * The MIDI key number of the note that was affected.
4531
4448
  * Ranges from 0 to 127.
@@ -4543,7 +4460,7 @@ interface PolyPressureEvent extends ChannelEvent {
4543
4460
  *
4544
4461
  * @group Synthesizer.Events
4545
4462
  */
4546
- interface StopAllEvent extends ChannelEvent {
4463
+ export interface StopAllEvent extends ChannelEvent {
4547
4464
  /**
4548
4465
  * If the channel was force stopped. (no release time)
4549
4466
  */
@@ -4555,7 +4472,7 @@ interface StopAllEvent extends ChannelEvent {
4555
4472
  *
4556
4473
  * @group Synthesizer.Events
4557
4474
  */
4558
- type ChannelMIDIParameterChangeEvent = { [P in keyof ChannelMIDIParameter]: ChannelEvent & {
4475
+ export type ChannelMIDIParameterChangeEvent = { [P in keyof ChannelMIDIParameter]: ChannelEvent & {
4559
4476
  /**
4560
4477
  * The parameter that was changed.
4561
4478
  */
@@ -4564,7 +4481,7 @@ type ChannelMIDIParameterChangeEvent = { [P in keyof ChannelMIDIParameter]: Chan
4564
4481
  * The new value of this parameter.
4565
4482
  */
4566
4483
  value: ChannelMIDIParameter[P];
4567
- } }[keyof ChannelMIDIParameter];
4484
+ }; }[keyof ChannelMIDIParameter];
4568
4485
  /**
4569
4486
  * The system exclusive data with the message.
4570
4487
  *
@@ -4574,13 +4491,13 @@ type ChannelMIDIParameterChangeEvent = { [P in keyof ChannelMIDIParameter]: Chan
4574
4491
  *
4575
4492
  * @group Synthesizer.Events
4576
4493
  */
4577
- type DisplayMessageData = number[];
4494
+ export type DisplayMessageData = number[];
4578
4495
  /**
4579
4496
  * This event is triggered when a {@link GlobalMIDIParameter} changes.
4580
4497
  *
4581
4498
  * @group Synthesizer.Events
4582
4499
  */
4583
- type GlobalMIDIParameterChangeEvent = { [P in keyof GlobalMIDIParameter]: {
4500
+ export type GlobalMIDIParameterChangeEvent = { [P in keyof GlobalMIDIParameter]: {
4584
4501
  /**
4585
4502
  * The parameter that was changed.
4586
4503
  */
@@ -4589,13 +4506,13 @@ type GlobalMIDIParameterChangeEvent = { [P in keyof GlobalMIDIParameter]: {
4589
4506
  * The new value of this parameter.
4590
4507
  */
4591
4508
  value: GlobalMIDIParameter[P];
4592
- } }[keyof GlobalMIDIParameter];
4509
+ }; }[keyof GlobalMIDIParameter];
4593
4510
  /**
4594
4511
  * The parameter names of an effect processor, or `macro` for the effect's macro.
4595
4512
  *
4596
4513
  * @group Synthesizer.Events
4597
4514
  */
4598
- type FXType<K> = Exclude<keyof K, "process" | "getSnapshot"> | "macro";
4515
+ export type FXType<K> = Exclude<keyof K, "process" | "getSnapshot"> | "macro";
4599
4516
  /**
4600
4517
  * This event is triggered when an effect processor has one of its parameters changed.
4601
4518
  *
@@ -4613,7 +4530,7 @@ type FXType<K> = Exclude<keyof K, "process" | "getSnapshot"> | "macro";
4613
4530
  *
4614
4531
  * @group Synthesizer.Events
4615
4532
  */
4616
- type EffectChangeEvent = {
4533
+ export type EffectChangeEvent = {
4617
4534
  /**
4618
4535
  * The effect that was changed: Roland GS reverb.
4619
4536
  */
@@ -4761,7 +4678,7 @@ type EffectChangeEvent = {
4761
4678
  *
4762
4679
  * @group Synthesizer.Events
4763
4680
  */
4764
- type UserDrumSetChangeEvent = { [P in keyof UserDrumSetParameter]: {
4681
+ export type UserDrumSetChangeEvent = { [P in keyof UserDrumSetParameter]: {
4765
4682
  /**
4766
4683
  * The drum set that was changed. 0 means User Drum Set 1, and 1 means User Drum Set 2.
4767
4684
  */
@@ -4778,7 +4695,7 @@ type UserDrumSetChangeEvent = { [P in keyof UserDrumSetParameter]: {
4778
4695
  * The new value of this parameter.
4779
4696
  */
4780
4697
  value: UserDrumSetParameter[P];
4781
- } }[keyof UserDrumSetParameter];
4698
+ }; }[keyof UserDrumSetParameter];
4782
4699
  /**
4783
4700
  *
4784
4701
  * {@link SynthesizerEvent} represents an event that {@link SpessaSynthProcessor} emits.
@@ -4816,7 +4733,7 @@ type UserDrumSetChangeEvent = { [P in keyof UserDrumSetParameter]: {
4816
4733
  *
4817
4734
  * @group Synthesizer.Events
4818
4735
  */
4819
- interface SynthesizerEvent {
4736
+ export interface SynthesizerEvent {
4820
4737
  /**
4821
4738
  * This event is triggered when a note is pressed on any channel.
4822
4739
  */
@@ -4939,12 +4856,10 @@ interface SynthesizerEvent {
4939
4856
  *
4940
4857
  * @group Synthesizer.Events
4941
4858
  */
4942
- type SynthesizerEventCallback = { [K in keyof SynthesizerEvent]: {
4859
+ export type SynthesizerEventCallback = { [K in keyof SynthesizerEvent]: {
4943
4860
  type: K;
4944
4861
  data: SynthesizerEvent[K];
4945
- } }[keyof SynthesizerEvent];
4946
- //#endregion
4947
- //#region src/synthesizer/audio_engine/effects/xg/implementation/dsp/effect_processor.d.ts
4862
+ }; }[keyof SynthesizerEvent];
4948
4863
  /**
4949
4864
  * The raw DSP processor for Yamaha XG effects.
4950
4865
  * Reverb, Chorus, Variation and Insertion all use it.
@@ -5002,8 +4917,6 @@ interface DefaultXGEffectProcessorConstructor {
5002
4917
  */
5003
4918
  new (sampleRate: number, maxBufferSize: number, memory: Float32Array, variation: boolean): DefaultXGEffectProcessor;
5004
4919
  }
5005
- //#endregion
5006
- //#region src/synthesizer/audio_engine/effects/xg/implementation/effect.d.ts
5007
4920
  /**
5008
4921
  * The default implementation for {@link XGEffectBlock}.
5009
4922
  *
@@ -5013,7 +4926,7 @@ interface DefaultXGEffectProcessorConstructor {
5013
4926
  *
5014
4927
  * @group Synthesizer.XG Effects
5015
4928
  */
5016
- declare abstract class DefaultXGEffect implements XGEffectBlock {
4929
+ export declare abstract class DefaultXGEffect implements XGEffectBlock {
5017
4930
  /**
5018
4931
  * The currently used processor.
5019
4932
  */
@@ -5049,8 +4962,6 @@ declare abstract class DefaultXGEffect implements XGEffectBlock {
5049
4962
  };
5050
4963
  applySnapshot(snapshot: XGEffectBlockSnapshot): void;
5051
4964
  }
5052
- //#endregion
5053
- //#region src/synthesizer/audio_engine/effects/xg/implementation/system_effect.d.ts
5054
4965
  /**
5055
4966
  * The default implementation for {@link XGSystemEffectBlock}.
5056
4967
  *
@@ -5058,7 +4969,7 @@ declare abstract class DefaultXGEffect implements XGEffectBlock {
5058
4969
  *
5059
4970
  * @group Synthesizer.XG Effects
5060
4971
  */
5061
- declare abstract class DefaultXGSystemEffect extends DefaultXGEffect implements XGSystemEffectBlock {
4972
+ export declare abstract class DefaultXGSystemEffect extends DefaultXGEffect implements XGSystemEffectBlock {
5062
4973
  return: number;
5063
4974
  pan: number;
5064
4975
  reset(): void;
@@ -5073,15 +4984,13 @@ declare abstract class DefaultXGSystemEffect extends DefaultXGEffect implements
5073
4984
  */
5074
4985
  protected mixSystemEffect(outputLeft: Float32Array, outputRight: Float32Array, startIndex: number, sampleCount: number): void;
5075
4986
  }
5076
- //#endregion
5077
- //#region src/synthesizer/audio_engine/effects/xg/implementation/reverb.d.ts
5078
4987
  /**
5079
4988
  * The default implementation for {@link XGReverbBlock}.
5080
4989
  *
5081
4990
  * @group Synthesizer.XG Effects
5082
4991
  * @sealed
5083
4992
  */
5084
- declare class DefaultXGReverb extends DefaultXGSystemEffect implements XGReverbBlock {
4993
+ export declare class DefaultXGReverb extends DefaultXGSystemEffect implements XGReverbBlock {
5085
4994
  /**
5086
4995
  * Constructs a new default XG reverb processor.
5087
4996
  * @param sampleRate The sample rate, in Hertz.
@@ -5091,15 +5000,13 @@ declare class DefaultXGReverb extends DefaultXGSystemEffect implements XGReverbB
5091
5000
  constructor(sampleRate: number, maxBufferSize: number);
5092
5001
  process(inputLeft: Float32Array, inputRight: Float32Array, outputLeft: Float32Array, outputRight: Float32Array, startIndex: number, sampleCount: number): void;
5093
5002
  }
5094
- //#endregion
5095
- //#region src/synthesizer/audio_engine/effects/xg/implementation/chorus.d.ts
5096
5003
  /**
5097
5004
  * The default implementation for {@link XGChorusBlock}.
5098
5005
  *
5099
5006
  * @group Synthesizer.XG Effects
5100
5007
  * @sealed
5101
5008
  */
5102
- declare class DefaultXGChorus extends DefaultXGSystemEffect implements XGChorusBlock {
5009
+ export declare class DefaultXGChorus extends DefaultXGSystemEffect implements XGChorusBlock {
5103
5010
  sendToReverb: number;
5104
5011
  /**
5105
5012
  * Constructs a new default XG chorus processor.
@@ -5119,15 +5026,13 @@ declare class DefaultXGChorus extends DefaultXGSystemEffect implements XGChorusB
5119
5026
  };
5120
5027
  applySnapshot(snapshot: XGChorusBlockSnapshot): void;
5121
5028
  }
5122
- //#endregion
5123
- //#region src/synthesizer/audio_engine/effects/xg/implementation/variation.d.ts
5124
5029
  /**
5125
5030
  * The default implementation for {@link XGVariationBlock}.
5126
5031
  *
5127
5032
  * @group Synthesizer.XG Effects
5128
5033
  * @sealed
5129
5034
  */
5130
- declare class DefaultXGVariation extends DefaultXGSystemEffect implements XGVariationBlock {
5035
+ export declare class DefaultXGVariation extends DefaultXGSystemEffect implements XGVariationBlock {
5131
5036
  insertionMode: boolean;
5132
5037
  partNumber: number;
5133
5038
  sendToReverb: number;
@@ -5154,15 +5059,13 @@ declare class DefaultXGVariation extends DefaultXGSystemEffect implements XGVari
5154
5059
  };
5155
5060
  applySnapshot(snapshot: XGVariationBlockSnapshot): void;
5156
5061
  }
5157
- //#endregion
5158
- //#region src/synthesizer/audio_engine/effects/xg/implementation/insertion.d.ts
5159
5062
  /**
5160
5063
  * The default implementation for {@link XGInsertionBlock}.
5161
5064
  *
5162
5065
  * @group Synthesizer.XG Effects
5163
5066
  * @sealed
5164
5067
  */
5165
- declare class DefaultXGInsertion extends DefaultXGEffect implements XGInsertionBlock {
5068
+ export declare class DefaultXGInsertion extends DefaultXGEffect implements XGInsertionBlock {
5166
5069
  partNumber: number;
5167
5070
  /**
5168
5071
  * Constructs a new default XG insertion processor.
@@ -5180,14 +5083,12 @@ declare class DefaultXGInsertion extends DefaultXGEffect implements XGInsertionB
5180
5083
  };
5181
5084
  applySnapshot(snapshot: XGInsertionBlockSnapshot): void;
5182
5085
  }
5183
- //#endregion
5184
- //#region src/synthesizer/types.d.ts
5185
5086
  /**
5186
5087
  * Represents a single entry in the {@link SoundBankManager} list.
5187
5088
  *
5188
5089
  * @group Synthesizer.Sound Bank Integration
5189
5090
  */
5190
- interface SoundBankManagerListEntry {
5091
+ export interface SoundBankManagerListEntry {
5191
5092
  /**
5192
5093
  * The unique string identifier of the sound bank,
5193
5094
  * used to specify which one to add/remove.
@@ -5208,7 +5109,7 @@ interface SoundBankManagerListEntry {
5208
5109
  *
5209
5110
  * @group Synthesizer.Options
5210
5111
  */
5211
- interface SynthMethodOptions {
5112
+ export interface SynthMethodOptions {
5212
5113
  /**
5213
5114
  * The {@link SpessaSynthProcessor.currentTime} when the event should execute, in seconds.
5214
5115
  */
@@ -5219,7 +5120,7 @@ interface SynthMethodOptions {
5219
5120
  *
5220
5121
  * @group Synthesizer.Options
5221
5122
  */
5222
- interface SynthProcessorOptions {
5123
+ export interface SynthProcessorOptions {
5223
5124
  /**
5224
5125
  * The maximum buffer size the synthesizer can render at once.
5225
5126
  * Attempting to `.process()` more samples than this will result in an error.
@@ -5298,7 +5199,7 @@ interface SynthProcessorOptions {
5298
5199
  *
5299
5200
  * @group Synthesizer.Sound Bank Integration
5300
5201
  */
5301
- interface SynthesizerPatch extends MIDIPatchFull {
5202
+ export interface SynthesizerPatch extends MIDIPatchFull {
5302
5203
  /**
5303
5204
  * Returns the voice synthesis data for this preset.
5304
5205
  * @param midiNote the MIDI note number.
@@ -5307,8 +5208,6 @@ interface SynthesizerPatch extends MIDIPatchFull {
5307
5208
  */
5308
5209
  getVoiceParameters(midiNote: number, velocity: number): VoiceParameters[];
5309
5210
  }
5310
- //#endregion
5311
- //#region src/synthesizer/audio_engine/channel/midi_channel.d.ts
5312
5211
  /**
5313
5212
  * This class represents a single MIDI channel within a {@link SpessaSynthProcessor}.
5314
5213
  *
@@ -5316,7 +5215,7 @@ interface SynthesizerPatch extends MIDIPatchFull {
5316
5215
  *
5317
5216
  * @group Synthesizer.Channel
5318
5217
  */
5319
- declare class MIDIChannel {
5218
+ export declare class MIDIChannel {
5320
5219
  /**
5321
5220
  * The currently selected MIDI patch of the channel.
5322
5221
  * > **Note**
@@ -5421,8 +5320,6 @@ declare class MIDIChannel {
5421
5320
  */
5422
5321
  stopAllNotes(force?: boolean): void;
5423
5322
  }
5424
- //#endregion
5425
- //#region src/synthesizer/audio_engine/channel/parameters/midi.d.ts
5426
5323
  /**
5427
5324
  * Channel MIDI Parameters are MIDI-only parameters
5428
5325
  * that affect a single MIDI channel.
@@ -5612,9 +5509,7 @@ interface ChannelMIDIParameter {
5612
5509
  *
5613
5510
  * @group Synthesizer.Parameters
5614
5511
  */
5615
- declare const DEFAULT_CHANNEL_MIDI_PARAMETERS: ChannelMIDIParameter;
5616
- //#endregion
5617
- //#region src/midi/midi_tools/midi_editor.d.ts
5512
+ export declare const DEFAULT_CHANNEL_MIDI_PARAMETERS: ChannelMIDIParameter;
5618
5513
  /**
5619
5514
  * Represents a value that means "clear this parameter" instead of "replace this parameter with".
5620
5515
  * Essentially:
@@ -5658,7 +5553,7 @@ interface ChannelModification {
5658
5553
  * before the channel's first note-on, re-applying it after every system reset,
5659
5554
  * effectively locking it to the set value.
5660
5555
  */
5661
- midiParams?: { [P in keyof ChannelMIDIParameter]?: ClearableParameter<ChannelMIDIParameter[P]> };
5556
+ midiParams?: { [P in keyof ChannelMIDIParameter]?: ClearableParameter<ChannelMIDIParameter[P]>; };
5662
5557
  /**
5663
5558
  * The channel key shift in semitones.
5664
5559
  * Note on/off and poly pressure MIDI note numbers are shifted.
@@ -5710,7 +5605,7 @@ interface ChannelModification {
5710
5605
  *
5711
5606
  * @group MIDI.Editing
5712
5607
  */
5713
- type UserDrumModification = Map<number, ClearableParameter<{ [P in keyof UserDrumSetParameter]?: ClearableParameter<UserDrumSetParameter[P]> }>>;
5608
+ type UserDrumModification = Map<number, ClearableParameter<{ [P in keyof UserDrumSetParameter]?: ClearableParameter<UserDrumSetParameter[P]>; }>>;
5714
5609
  /**
5715
5610
  * All drum note modifications for a single channel.
5716
5611
  * - Key: the MIDI drum key/note number to modify.
@@ -5731,7 +5626,7 @@ type UserDrumModification = Map<number, ClearableParameter<{ [P in keyof UserDru
5731
5626
  *
5732
5627
  * @group MIDI.Editing
5733
5628
  */
5734
- type ChannelDrumModification = Map<number, ClearableParameter<{ [P in keyof DrumParameter]?: ClearableParameter<DrumParameter[P]> }>>;
5629
+ type ChannelDrumModification = Map<number, ClearableParameter<{ [P in keyof DrumParameter]?: ClearableParameter<DrumParameter[P]>; }>>;
5735
5630
  /**
5736
5631
  * Options editing a MIDI sequence using {@link BasicMIDI.modify}.
5737
5632
  *
@@ -5776,7 +5671,7 @@ interface ModifyMIDIOptions {
5776
5671
  * > to keep the GM reset (and replace all others with GM).
5777
5672
  * > This is done to allow the bank selections and other parameters to work.
5778
5673
  */
5779
- midiParams?: { [P in keyof GlobalMIDIParameter]?: ClearableParameter<GlobalMIDIParameter[P]> };
5674
+ midiParams?: { [P in keyof GlobalMIDIParameter]?: ClearableParameter<GlobalMIDIParameter[P]>; };
5780
5675
  /**
5781
5676
  * The desired GS reverb parameters.
5782
5677
  * - `"clear"` - all existing parameter change MIDI messages are removed.
@@ -5840,14 +5735,12 @@ interface ModifyMIDIOptions {
5840
5735
  */
5841
5736
  fallbackReset?: MIDISystem;
5842
5737
  }
5843
- //#endregion
5844
- //#region src/midi/types.d.ts
5845
5738
  /**
5846
5739
  * RMIDInfoData type represents metadata for an RMIDI file.
5847
5740
  *
5848
5741
  * @group MIDI.Sequence
5849
5742
  */
5850
- interface RMIDInfoData {
5743
+ export interface RMIDInfoData {
5851
5744
  /**
5852
5745
  * The name of the song.
5853
5746
  */
@@ -5906,7 +5799,7 @@ interface RMIDInfoData {
5906
5799
  /**
5907
5800
  * @group MIDI.Sequence
5908
5801
  */
5909
- interface TempoChange {
5802
+ export interface TempoChange {
5910
5803
  /**
5911
5804
  * MIDI ticks of the change, absolute value from the start of the MIDI file.
5912
5805
  */
@@ -5921,7 +5814,7 @@ interface TempoChange {
5921
5814
  *
5922
5815
  * @group MIDI.Sequence
5923
5816
  */
5924
- interface MIDILoop {
5817
+ export interface MIDILoop {
5925
5818
  /**
5926
5819
  * Start of the loop, in MIDI ticks.
5927
5820
  */
@@ -5949,11 +5842,11 @@ interface MIDILoop {
5949
5842
  *
5950
5843
  * @group MIDI.Sequence
5951
5844
  */
5952
- type MIDIFormat = 0 | 1 | 2;
5845
+ export type MIDIFormat = 0 | 1 | 2;
5953
5846
  /**
5954
5847
  * @group MIDI.Sequence
5955
5848
  */
5956
- interface NoteTime {
5849
+ export interface NoteTime {
5957
5850
  /**
5958
5851
  * The MIDI note number.
5959
5852
  */
@@ -5976,7 +5869,7 @@ interface NoteTime {
5976
5869
  *
5977
5870
  * @group MIDI.Files
5978
5871
  */
5979
- interface RMIDIWriteOptions {
5872
+ export interface RMIDIWriteOptions {
5980
5873
  /**
5981
5874
  * The bank offset to apply to the file. Defaults to `0`.
5982
5875
  * [See this for more info](https://github.com/spessasus/sf2-rmidi-specification#dbnk-chunk)
@@ -6010,11 +5903,11 @@ interface RMIDIWriteOptions {
6010
5903
  *
6011
5904
  * @group Utilities.FourCC
6012
5905
  */
6013
- type RMIDInfoFourCC = "INAM" | "IPRD" | "IALB" | "IART" | "IGNR" | "IPIC" | "ICOP" | "ICRD" | "ICRT" | "ICMT" | "IENG" | "ISFT" | "ISBJ" | "IENC" | "MENC" | "DBNK";
5906
+ export type RMIDInfoFourCC = "INAM" | "IPRD" | "IALB" | "IART" | "IGNR" | "IPIC" | "ICOP" | "ICRD" | "ICRT" | "ICMT" | "IENG" | "ISFT" | "ISBJ" | "IENC" | "MENC" | "DBNK";
6014
5907
  /**
6015
5908
  * @group MIDI.Sequence
6016
5909
  */
6017
- interface TimelineEvent {
5910
+ export interface TimelineEvent {
6018
5911
  /**
6019
5912
  * The track number of this event.
6020
5913
  */
@@ -6029,13 +5922,13 @@ interface TimelineEvent {
6029
5922
  *
6030
5923
  * @group MIDI.Protocol
6031
5924
  */
6032
- type SysExAcceptedArray = number[] | Uint8Array | Int8Array | Uint8ClampedArray;
5925
+ export type SysExAcceptedArray = number[] | Uint8Array | Int8Array | Uint8ClampedArray;
6033
5926
  /**
6034
5927
  * An interface that represents a virtual sound bank which can return a preset.
6035
5928
  *
6036
5929
  * @group Sound Banks
6037
5930
  */
6038
- interface CallableSoundBank<T extends MIDIPatchFull> {
5931
+ export interface CallableSoundBank<T extends MIDIPatchFull> {
6039
5932
  /**
6040
5933
  * Returns the matching {@link BasicPreset} instance.
6041
5934
  * This uses the {@link MIDIPatchTools.selectPatch} algorithm for selecting the optimal preset.
@@ -6050,7 +5943,7 @@ interface CallableSoundBank<T extends MIDIPatchFull> {
6050
5943
  *
6051
5944
  * @group Synthesizer.Drum Sets
6052
5945
  */
6053
- interface DrumParameter {
5946
+ export interface DrumParameter {
6054
5947
  /**
6055
5948
  * Pitch offset in semitones. Relative value.
6056
5949
  * May be floating point! (GS half-semitone coarse tune resolution)
@@ -6105,7 +5998,7 @@ interface DrumParameter {
6105
5998
  *
6106
5999
  * @group Synthesizer.Drum Sets
6107
6000
  */
6108
- interface UserDrumSetParameter extends DrumParameter {
6001
+ export interface UserDrumSetParameter extends DrumParameter {
6109
6002
  /**
6110
6003
  * Pitch offset in GS steps (the PLAY NOTE NUMBER relative to 60). Relative value.
6111
6004
  * A step is 50 cents, or 100 cents when `sourceDrumSet` is 1 (SC-55 map).
@@ -6125,8 +6018,6 @@ interface UserDrumSetParameter extends DrumParameter {
6125
6018
  */
6126
6019
  sourceNoteNumber: number;
6127
6020
  }
6128
- //#endregion
6129
- //#region src/utils/riff_chunk.d.ts
6130
6021
  /**
6131
6022
  * General RIFF (and RIFF64) Four Character Codes defined in the RIFF spec.
6132
6023
  *
@@ -6145,9 +6036,7 @@ type WAVFourCC = "wave" | "cue " | "fmt ";
6145
6036
  * @group Utilities.FourCC
6146
6037
  */
6147
6038
  type FourCC = GenericRIFFFourCC | SF2InfoFourCC | SF2ChunkFourCC | DLSInfoFourCC | DLSChunkFourCC | RMIDInfoFourCC | WAVFourCC;
6148
- //#endregion
6149
- //#region src/utils/exports.d.ts
6150
- declare const SpessaSynthCoreUtils: {
6039
+ export declare const SpessaSynthCoreUtils: {
6151
6040
  ConsoleColors: {
6152
6041
  warn: string;
6153
6042
  unrecognized: string;
@@ -6162,14 +6051,12 @@ declare const SpessaSynthCoreUtils: {
6162
6051
  readBinaryStringIndexed: typeof readBinaryStringIndexed;
6163
6052
  readVariableLengthQuantity: typeof readVariableLengthQuantity;
6164
6053
  };
6165
- //#endregion
6166
- //#region src/midi/midi_track.d.ts
6167
6054
  /**
6168
6055
  * This class represents a single MIDI track in a {@link BasicMIDI} sequence.
6169
6056
  *
6170
6057
  * @group MIDI.Sequence
6171
6058
  */
6172
- declare class MIDITrack {
6059
+ export declare class MIDITrack {
6173
6060
  /**
6174
6061
  * The name of this track.
6175
6062
  * Empty if the track has no name.
@@ -6216,8 +6103,6 @@ declare class MIDITrack {
6216
6103
  */
6217
6104
  pushEvents(...events: MIDIMessage[]): void;
6218
6105
  }
6219
- //#endregion
6220
- //#region src/midi/basic_midi.d.ts
6221
6106
  /**
6222
6107
  * BasicMIDI is the base of a complete MIDI file.
6223
6108
  * It represents a single MIDI sequence, with an optional sound bank attached to it.
@@ -6226,7 +6111,7 @@ declare class MIDITrack {
6226
6111
  *
6227
6112
  * @group MIDI
6228
6113
  */
6229
- declare class BasicMIDI {
6114
+ export declare class BasicMIDI {
6230
6115
  /**
6231
6116
  * The tracks in the sequence, represented as an array of {@link MIDITrack}.
6232
6117
  */
@@ -6702,14 +6587,12 @@ declare class BasicMIDI {
6702
6587
  */
6703
6588
  protected parseInternal(): void;
6704
6589
  }
6705
- //#endregion
6706
- //#region src/midi/midi_tools/midi_builder.d.ts
6707
6590
  /**
6708
6591
  * Options for initializing the MIDI Builder.
6709
6592
  *
6710
6593
  * @group MIDI.Files
6711
6594
  */
6712
- interface MIDIBuilderOptions {
6595
+ export interface MIDIBuilderOptions {
6713
6596
  /**
6714
6597
  * The MIDI file's tick precision (how many ticks fit in a quarter note).
6715
6598
  * Defaults to 480.
@@ -6746,7 +6629,7 @@ interface MIDIBuilderOptions {
6746
6629
  *
6747
6630
  * @group MIDI.Files
6748
6631
  */
6749
- declare class MIDIBuilder extends BasicMIDI {
6632
+ export declare class MIDIBuilder extends BasicMIDI {
6750
6633
  private encoder;
6751
6634
  /**
6752
6635
  * Creates a new MIDI file.
@@ -6861,14 +6744,12 @@ declare class MIDIBuilder extends BasicMIDI {
6861
6744
  */
6862
6745
  nonRegisteredParameter(ticks: number, track: number, channel: number, parameter: number, value: number): void;
6863
6746
  }
6864
- //#endregion
6865
- //#region src/midi/midi_tools/midi_utils.d.ts
6866
6747
  /**
6867
6748
  * This class contains useful utilities for manipulating and parsing System Exclusive and other MIDI 1.0 messages.
6868
6749
  *
6869
6750
  * @group MIDI.Protocol
6870
6751
  */
6871
- declare class MIDIUtils {
6752
+ export declare class MIDIUtils {
6872
6753
  private constructor();
6873
6754
  /**
6874
6755
  * Analyzes a MIDI System Exclusive message
@@ -7127,14 +7008,12 @@ declare class MIDIUtils {
7127
7008
  private static analyzeGS;
7128
7009
  private static handleSingleUserDrum;
7129
7010
  }
7130
- //#endregion
7131
- //#region src/midi/drum_parameters.d.ts
7132
7011
  /**
7133
7012
  * This class contains various utilities for manipulating {@link DrumParameter}s.
7134
7013
  *
7135
7014
  * @group Synthesizer.Drum Sets
7136
7015
  */
7137
- declare class DrumParameterUtils {
7016
+ export declare class DrumParameterUtils {
7138
7017
  /**
7139
7018
  * Default drum parameter data.
7140
7019
  */
@@ -7168,8 +7047,6 @@ declare class DrumParameterUtils {
7168
7047
  */
7169
7048
  static copyIntoUser(source: UserDrumSetParameter, dest: UserDrumSetParameter): void;
7170
7049
  }
7171
- //#endregion
7172
- //#region src/sequencer/types.d.ts
7173
7050
  /**
7174
7051
  * {@link SequencerEvent} represents an event that {@link SpessaSynthSequencer} emits.
7175
7052
  *
@@ -7177,7 +7054,7 @@ declare class DrumParameterUtils {
7177
7054
  *
7178
7055
  * @group Sequencer
7179
7056
  */
7180
- interface SequencerEvent {
7057
+ export interface SequencerEvent {
7181
7058
  /**
7182
7059
  * This event is called when a MIDI message is sent and {@link SpessaSynthSequencer.externalMIDIPlayback `externalMIDIPlayback`} is true.
7183
7060
  */
@@ -7261,18 +7138,16 @@ interface SequencerEvent {
7261
7138
  *
7262
7139
  * @group Sequencer
7263
7140
  */
7264
- type SequencerEventCallback = { [K in keyof SequencerEvent]: {
7141
+ export type SequencerEventCallback = { [K in keyof SequencerEvent]: {
7265
7142
  type: K;
7266
7143
  data: SequencerEvent[K];
7267
- } }[keyof SequencerEvent];
7268
- //#endregion
7269
- //#region src/sequencer/sequencer.d.ts
7144
+ }; }[keyof SequencerEvent];
7270
7145
  /**
7271
7146
  * This module is responsible for playing back {@link BasicMIDI} sequences to {@link SpessaSynthProcessor}.
7272
7147
  *
7273
7148
  * @group Sequencer
7274
7149
  */
7275
- declare class SpessaSynthSequencer {
7150
+ export declare class SpessaSynthSequencer {
7276
7151
  /**
7277
7152
  * Sequencer's current song list.
7278
7153
  */
@@ -7436,14 +7311,12 @@ declare class SpessaSynthSequencer {
7436
7311
  */
7437
7312
  loadNewSongList(midiBuffers: BasicMIDI[]): void;
7438
7313
  }
7439
- //#endregion
7440
- //#region src/synthesizer/audio_engine/effects/gs/implementation/reverb.d.ts
7441
7314
  /**
7442
7315
  * The default GS Reverb implementation for {@link SpessaSynthProcessor}.
7443
7316
  *
7444
7317
  * @group Synthesizer.GS Effects
7445
7318
  */
7446
- declare class DefaultGSReverb implements GSReverbProcessor {
7319
+ export declare class DefaultGSReverb implements GSReverbProcessor {
7447
7320
  /**
7448
7321
  * Dattorro reverb processor.
7449
7322
  * @private
@@ -7564,14 +7437,12 @@ declare class DefaultGSReverb implements GSReverbProcessor {
7564
7437
  private updateGain;
7565
7438
  private updateTime;
7566
7439
  }
7567
- //#endregion
7568
- //#region src/synthesizer/audio_engine/effects/gs/implementation/chorus.d.ts
7569
7440
  /**
7570
7441
  * The default GS Chorus implementation for {@link SpessaSynthProcessor}.
7571
7442
  *
7572
7443
  * @group Synthesizer.GS Effects
7573
7444
  */
7574
- declare class DefaultGSChorus implements GSChorusProcessor {
7445
+ export declare class DefaultGSChorus implements GSChorusProcessor {
7575
7446
  /**
7576
7447
  * Cutoff frequency
7577
7448
  * @private
@@ -7633,14 +7504,12 @@ declare class DefaultGSChorus implements GSChorusProcessor {
7633
7504
  process(input: Float32Array, outputLeft: Float32Array, outputRight: Float32Array, outputReverb: Float32Array, outputDelay: Float32Array, startIndex: number, sampleCount: number): void;
7634
7505
  getSnapshot(): GSChorusParameter;
7635
7506
  }
7636
- //#endregion
7637
- //#region src/synthesizer/audio_engine/effects/gs/implementation/delay.d.ts
7638
7507
  /**
7639
7508
  * The default GS Delay implementation for {@link SpessaSynthProcessor}.
7640
7509
  *
7641
7510
  * @group Synthesizer.GS Effects
7642
7511
  */
7643
- declare class DefaultGSDelay implements GSDelayProcessor {
7512
+ export declare class DefaultGSDelay implements GSDelayProcessor {
7644
7513
  /**
7645
7514
  * Cutoff frequency
7646
7515
  * @private
@@ -7731,62 +7600,56 @@ declare class DefaultGSDelay implements GSDelayProcessor {
7731
7600
  private updateDelayTimes;
7732
7601
  private updateGain;
7733
7602
  }
7734
- //#endregion
7735
- //#region src/synthesizer/audio_engine/synth_constants.d.ts
7736
7603
  /**
7737
7604
  * Synthesizer's default voice cap.
7738
7605
  *
7739
7606
  * @group Synthesizer.Constants
7740
7607
  */
7741
- declare const VOICE_CAP = 350;
7608
+ export declare const VOICE_CAP = 350;
7742
7609
  /**
7743
7610
  * Default MIDI drum channel number, 0 based index.
7744
7611
  *
7745
7612
  * @group Synthesizer.Constants
7746
7613
  */
7747
- declare const MIDI_DRUM_CHANNEL = 9;
7614
+ export declare const MIDI_DRUM_CHANNEL = 9;
7748
7615
  /**
7749
7616
  * Default bank select and SysEx mode.
7750
7617
  *
7751
7618
  * @group Synthesizer.Constants
7752
7619
  */
7753
- declare const DEFAULT_SYNTH_MODE: MIDISystem;
7620
+ export declare const DEFAULT_SYNTH_MODE: MIDISystem;
7754
7621
  /**
7755
7622
  * This gain factor ensures that spessasynth doesn't stay too loud.
7756
7623
  * You can set the `gain` system parameter to an inverse of it to negate the effect.
7757
7624
  *
7758
7625
  * @group Synthesizer.Constants
7759
7626
  */
7760
- declare const SPESSASYNTH_GAIN_FACTOR = 0.6;
7627
+ export declare const SPESSASYNTH_GAIN_FACTOR = 0.6;
7761
7628
  /**
7762
7629
  * The default buffer size for the synthesizer.
7763
7630
  *
7764
7631
  * @group Synthesizer.Constants
7765
7632
  */
7766
- declare const SPESSA_BUFSIZE = 128;
7767
- //#endregion
7768
- //#region src/synthesizer/audio_engine/channel/reset.d.ts
7633
+ export declare const SPESSA_BUFSIZE = 128;
7769
7634
  /**
7770
7635
  * An array with the default MIDI controller values.
7771
7636
  * Note that these are 14-bit, requiring a 7-bit shift to the right for 7-bit values!
7772
7637
  *
7773
7638
  * @group Synthesizer.Constants
7774
7639
  */
7775
- declare const DEFAULT_MIDI_CONTROLLERS: Readonly<Int16Array>;
7640
+ export declare const DEFAULT_MIDI_CONTROLLERS: Readonly<Int16Array>;
7776
7641
  /**
7777
7642
  * Default reverb level for each drum instrument.
7778
7643
  *
7779
7644
  * @group Synthesizer.Drum Sets
7780
7645
  */
7781
- declare const DEFAULT_DRUM_REVERB: Int8Array<ArrayBuffer>;
7782
- //#endregion
7783
- //#region src/soundbank/sound_bank_loader.d.ts
7646
+ export declare const DEFAULT_DRUM_REVERB: Int8Array<ArrayBuffer>;
7784
7647
  /**
7785
7648
  * A helper class for loading sound bank files as {@link BasicSoundBank} instances.
7786
7649
  *
7787
7650
  * @group Sound Banks
7788
7651
  */
7789
- declare class SoundBankLoader {
7652
+ export declare class SoundBankLoader {
7790
7653
  /**
7791
7654
  * Loads a sound bank from a file buffer.
7792
7655
  * @param buffer The binary file buffer to load.
@@ -7794,6 +7657,5 @@ declare class SoundBankLoader {
7794
7657
  */
7795
7658
  static fromArrayBuffer(buffer: ArrayBuffer): BasicSoundBank;
7796
7659
  }
7797
- //#endregion
7798
- export { AnalyzedMIDIMessage, AnalyzedParameter, AnalyzedSysExMessage, BasicInstrument, BasicInstrumentZone, BasicMIDI, BasicPreset, BasicPresetZone, BasicSample, BasicSoundBank, BasicZone, CallableSoundBank, type ChannelDrumModification, ChannelDrumSetupMessage, ChannelEvent, type ChannelGenerators, type ChannelMIDIParameter, ChannelMIDIParameterChangeEvent, ChannelMIDIParameterMessage, type ChannelModification, type ChannelSnapshot, type ChannelSystemParameter, type ClearableParameter, ControllerChangeEvent, CustomChannelVibrato, DEFAULT_CHANNEL_MIDI_PARAMETERS, DEFAULT_CHANNEL_SYSTEM_PARAMETERS, DEFAULT_DRUM_REVERB, DEFAULT_GLOBAL_MIDI_PARAMETERS, DEFAULT_GLOBAL_SYSTEM_PARAMETERS, DEFAULT_MIDI_CONTROLLERS, DEFAULT_SYNTH_MODE, DLSChunkFourCC, DLSInfoFourCC, DefaultGSChorus, DefaultGSDelay, DefaultGSReverb, DefaultXGChorus, DefaultXGEffect, DefaultXGInsertion, DefaultXGReverb, DefaultXGSystemEffect, DefaultXGVariation, DisplayMessageData, DrumParameter, DrumParameterUtils, EffectChangeEvent, EmptySample, FXType, type FourCC, GENERATORS_AMOUNT, GSChorusParameter, GSChorusParameterMessage, GSChorusProcessor, GSDelayParameter, GSDelayParameterMessage, GSDelayProcessor, GSInsertionParameterMessage, GSInsertionProcessor, GSInsertionProcessorSnapshot, GSReverbParameter, GSReverbParameterMessage, GSReverbProcessor, GSSystemEffectParameter, Generator, GeneratorLimit, GeneratorLimits, GeneratorType, GeneratorTypes, GenericBankInfoFourCC, type GenericRIFFFourCC, GenericRange, type GlobalMIDIParameter, GlobalMIDIParameterChangeEvent, GlobalMIDIParameterMessage, type GlobalSystemParameter, IndexedByteArray, InterpolationType, InterpolationTypes, MAX_GENERATOR, MIDIBuilder, MIDIBuilderOptions, MIDIChannel, type MIDIController, MIDIControllers, MIDIFormat, MIDILoop, MIDIMessage, type MIDIMessageType, MIDIMessageTypes, MIDIPatch, MIDIPatchFull, MIDIPatchTools, MIDISystem, MIDITrack, MIDIUtils, MIDI_DRUM_CHANNEL, MapDrumSetupMessage, type ModifyMIDIOptions, Modulator, ModulatorControllerSource, ModulatorControllerSources, ModulatorCurveType, ModulatorCurveTypes, ModulatorSource, ModulatorSourceIndex, ModulatorTransformType, ModulatorTransformTypes, NonRegisteredParameterTypesLSB, NonRegisteredParameterTypesMSB, NoteOffEvent, NoteOnEvent, NoteTime, PolyPressureEvent, PresetsWithKeyCombinations, ProgramChangeEvent, ProgressFunction, RMIDIWriteOptions, RMIDInfoData, RMIDInfoFourCC, RegisteredParameterTypes, SF2Channel, SF2ChunkFourCC, SF2InfoFourCC, SF2VersionTag, SFEWriteOptions, SPESSASYNTH_GAIN_FACTOR, SPESSA_BUFSIZE, SampleEncodingFunction, SampleType, SampleTypes, SequencerEvent, SequencerEventCallback, SetSampleFormatOptions, SoundBankInfoData, SoundBankLoader, SoundBankManager, SoundBankManagerListEntry, SoundBankWriteOptions, SoundFont2WriteOptions, SpessaLog, SpessaSynthCoreUtils, SpessaSynthProcessor, SpessaSynthSequencer, StopAllEvent, SynthMethodOptions, SynthProcessorOptions, SynthesizerEvent, SynthesizerEventCallback, SynthesizerPatch, type SynthesizerSnapshot, SysExAcceptedArray, TempoChange, TimelineEvent, type UserDrumModification, UserDrumSetChangeEvent, UserDrumSetParameter, VOICE_CAP, VoiceParameters, type WAVFourCC, WaveMetadata, WaveWriteOptions, XGChorusBlock, XGChorusBlockSnapshot, XGChorusParameter, XGChorusParameterMessage, XGEffectBlock, XGEffectBlockSnapshot, XGInsertionBlock, XGInsertionBlockSnapshot, XGInsertionParameter, XGInsertionParameterMessage, XGReverbBlock, XGReverbParameterMessage, XGSystemEffectBlock, XGSystemEffectBlockSnapshot, XGSystemEffectParameter, XGVariationBlock, XGVariationBlockSnapshot, XGVariationConnection, XGVariationParameter, XGVariationParameterMessage, audioToWav };
7660
+ export type { ChannelDrumModification, ChannelGenerators, ChannelMIDIParameter, ChannelModification, ChannelSnapshot, ChannelSystemParameter, ClearableParameter, FourCC, GenericRIFFFourCC, GlobalMIDIParameter, GlobalSystemParameter, MIDIController, MIDIMessageType, ModifyMIDIOptions, SynthesizerSnapshot, UserDrumModification, WAVFourCC };
7799
7661
  //# sourceMappingURL=index.d.ts.map