@marmooo/midy 0.1.6 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/esm/midy-GM1.d.ts +53 -27
  2. package/esm/midy-GM1.d.ts.map +1 -1
  3. package/esm/midy-GM1.js +398 -146
  4. package/esm/midy-GM2.d.ts +55 -35
  5. package/esm/midy-GM2.d.ts.map +1 -1
  6. package/esm/midy-GM2.js +646 -244
  7. package/esm/midy-GMLite.d.ts +51 -26
  8. package/esm/midy-GMLite.d.ts.map +1 -1
  9. package/esm/midy-GMLite.js +379 -148
  10. package/esm/midy.d.ts +55 -40
  11. package/esm/midy.d.ts.map +1 -1
  12. package/esm/midy.js +662 -263
  13. package/package.json +5 -1
  14. package/script/midy-GM1.d.ts +53 -27
  15. package/script/midy-GM1.d.ts.map +1 -1
  16. package/script/midy-GM1.js +401 -149
  17. package/script/midy-GM2.d.ts +55 -35
  18. package/script/midy-GM2.d.ts.map +1 -1
  19. package/script/midy-GM2.js +649 -247
  20. package/script/midy-GMLite.d.ts +51 -26
  21. package/script/midy-GMLite.d.ts.map +1 -1
  22. package/script/midy-GMLite.js +382 -151
  23. package/script/midy.d.ts +55 -40
  24. package/script/midy.d.ts.map +1 -1
  25. package/script/midy.js +665 -266
  26. package/esm/deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.6/+esm.d.ts +0 -149
  27. package/esm/deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.6/+esm.d.ts.map +0 -1
  28. package/esm/deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.6/+esm.js +0 -180
  29. package/esm/deps/cdn.jsdelivr.net/npm/midi-file@1.2.4/+esm.d.ts +0 -84
  30. package/esm/deps/cdn.jsdelivr.net/npm/midi-file@1.2.4/+esm.d.ts.map +0 -1
  31. package/esm/deps/cdn.jsdelivr.net/npm/midi-file@1.2.4/+esm.js +0 -216
  32. package/script/deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.6/+esm.d.ts +0 -149
  33. package/script/deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.6/+esm.d.ts.map +0 -1
  34. package/script/deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.6/+esm.js +0 -190
  35. package/script/deps/cdn.jsdelivr.net/npm/midi-file@1.2.4/+esm.d.ts +0 -84
  36. package/script/deps/cdn.jsdelivr.net/npm/midi-file@1.2.4/+esm.d.ts.map +0 -1
  37. package/script/deps/cdn.jsdelivr.net/npm/midi-file@1.2.4/+esm.js +0 -221
package/script/midy.d.ts CHANGED
@@ -1,42 +1,18 @@
1
1
  export class Midy {
2
2
  static channelSettings: {
3
3
  currentBufferSource: null;
4
- volume: number;
5
- pan: number;
6
- portamentoTime: number;
7
- filterResonance: number;
8
- releaseTime: number;
9
- attackTime: number;
10
- brightness: number;
11
- decayTime: number;
12
- reverbSendLevel: number;
13
- chorusSendLevel: number;
14
- vibratoRate: number;
15
- vibratoDepth: number;
16
- vibratoDelay: number;
4
+ program: number;
17
5
  bank: number;
18
6
  bankMSB: number;
19
7
  bankLSB: number;
20
8
  dataMSB: number;
21
9
  dataLSB: number;
22
- program: number;
23
- pitchBend: number;
10
+ rpnMSB: number;
11
+ rpnLSB: number;
24
12
  fineTuning: number;
25
13
  coarseTuning: number;
26
14
  modulationDepthRange: number;
27
15
  };
28
- static effectSettings: {
29
- expression: number;
30
- modulationDepth: number;
31
- sustainPedal: boolean;
32
- portamento: boolean;
33
- sostenutoPedal: boolean;
34
- softPedal: number;
35
- rpnMSB: number;
36
- rpnLSB: number;
37
- channelPressure: number;
38
- pitchBendRange: number;
39
- };
40
16
  static controllerDestinationSettings: {
41
17
  pitchControl: number;
42
18
  filterCutoffControl: number;
@@ -83,6 +59,7 @@ export class Midy {
83
59
  timeline: any[];
84
60
  instruments: any[];
85
61
  notePromises: any[];
62
+ exclusiveClassMap: Map<any, any>;
86
63
  defaultOptions: {
87
64
  reverbAlgorithm: (audioContext: any) => {
88
65
  input: any;
@@ -97,6 +74,18 @@ export class Midy {
97
74
  };
98
75
  };
99
76
  masterGain: any;
77
+ voiceParamsHandlers: {
78
+ modLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
79
+ vibLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
80
+ modLfoToFilterFc: (channel: any, note: any, _prevValue: any) => void;
81
+ modLfoToVolume: (channel: any, note: any) => void;
82
+ chorusEffectsSend: (_channel: any, note: any, prevValue: any) => void;
83
+ reverbEffectsSend: (_channel: any, note: any, prevValue: any) => void;
84
+ delayModLFO: (_channel: any, note: any, _prevValue: any) => void;
85
+ freqModLFO: (_channel: any, note: any, _prevValue: any) => void;
86
+ delayVibLFO: (channel: any, note: any, prevValue: any) => void;
87
+ freqVibLFO: (channel: any, note: any, _prevValue: any) => void;
88
+ };
100
89
  controlChangeHandlers: {
101
90
  0: (channelNumber: any, msb: any) => void;
102
91
  1: (channelNumber: any, modulation: any) => void;
@@ -157,8 +146,8 @@ export class Midy {
157
146
  merger: any;
158
147
  };
159
148
  createChannels(audioContext: any): any[];
160
- createNoteBuffer(instrumentKey: any, isSF3: any): Promise<any>;
161
- createNoteBufferNode(instrumentKey: any, isSF3: any): Promise<any>;
149
+ createNoteBuffer(voiceParams: any, isSF3: any): Promise<any>;
150
+ createNoteBufferNode(voiceParams: any, isSF3: any): Promise<any>;
162
151
  findPortamentoTarget(queueIndex: any): any;
163
152
  scheduleTimelineEvents(t: any, offset: any, queueIndex: any): Promise<any>;
164
153
  getQueueIndex(second: any): number;
@@ -205,21 +194,21 @@ export class Midy {
205
194
  cbToRatio(cb: any): number;
206
195
  centToHz(cent: any): number;
207
196
  calcSemitoneOffset(channel: any): any;
208
- calcPlaybackRate(instrumentKey: any, noteNumber: any, semitoneOffset: any): number;
209
197
  setPortamentoStartVolumeEnvelope(channel: any, note: any): void;
210
198
  setVolumeEnvelope(channel: any, note: any): void;
211
- setPitch(note: any, semitoneOffset: any): void;
199
+ setPlaybackRate(note: any): void;
200
+ setPitch(channel: any, note: any): void;
212
201
  clampCutoffFrequency(frequency: any): number;
213
202
  setPortamentoStartFilterEnvelope(channel: any, note: any): void;
214
203
  setFilterEnvelope(channel: any, note: any): void;
215
204
  startModulation(channel: any, note: any, startTime: any): void;
216
205
  startVibrato(channel: any, note: any, startTime: any): void;
217
- createNote(channel: any, instrumentKey: any, noteNumber: any, velocity: any, startTime: any, portamento: any, isSF3: any): Promise<Note>;
206
+ createNote(channel: any, voice: any, noteNumber: any, velocity: any, startTime: any, portamento: any, isSF3: any): Promise<Note>;
218
207
  calcBank(channel: any, channelNumber: any): any;
219
208
  scheduleNoteOn(channelNumber: any, noteNumber: any, velocity: any, startTime: any, portamento: any): Promise<void>;
220
209
  noteOn(channelNumber: any, noteNumber: any, velocity: any, portamento: any): Promise<void>;
221
- stopNote(stopTime: any, endTime: any, scheduledNotes: any, index: any): Promise<any>;
222
- scheduleNoteRelease(channelNumber: any, noteNumber: any, _velocity: any, stopTime: any, portamentoNoteNumber: any, force: any): Promise<any> | undefined;
210
+ stopNote(endTime: any, stopTime: any, scheduledNotes: any, index: any): Promise<any>;
211
+ scheduleNoteRelease(channelNumber: any, noteNumber: any, _velocity: any, endTime: any, portamentoNoteNumber: any, force: any): Promise<any> | undefined;
223
212
  releaseNote(channelNumber: any, noteNumber: any, velocity: any, portamentoNoteNumber: any): Promise<any> | undefined;
224
213
  releaseSustainPedal(channelNumber: any, halfVelocity: any): any[];
225
214
  releaseSostenutoPedal(channelNumber: any, halfVelocity: any): any[];
@@ -228,7 +217,29 @@ export class Midy {
228
217
  handleProgramChange(channelNumber: any, program: any): void;
229
218
  handleChannelPressure(channelNumber: any, pressure: any): void;
230
219
  handlePitchBendMessage(channelNumber: any, lsb: any, msb: any): void;
231
- setPitchBend(channelNumber: any, pitchBend: any): void;
220
+ setPitchBend(channelNumber: any, value: any): void;
221
+ setModLfoToPitch(channel: any, note: any): void;
222
+ setModLfoToVolume(note: any): void;
223
+ setChorusEffectsSend(note: any, prevValue: any): void;
224
+ setReverbEffectsSend(note: any, prevValue: any): void;
225
+ setVibLfoToPitch(channel: any, note: any): void;
226
+ setModLfoToFilterFc(note: any): void;
227
+ setDelayModLFO(note: any): void;
228
+ setFreqModLFO(note: any): void;
229
+ createVoiceParamsHandlers(): {
230
+ modLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
231
+ vibLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
232
+ modLfoToFilterFc: (channel: any, note: any, _prevValue: any) => void;
233
+ modLfoToVolume: (channel: any, note: any) => void;
234
+ chorusEffectsSend: (_channel: any, note: any, prevValue: any) => void;
235
+ reverbEffectsSend: (_channel: any, note: any, prevValue: any) => void;
236
+ delayModLFO: (_channel: any, note: any, _prevValue: any) => void;
237
+ freqModLFO: (_channel: any, note: any, _prevValue: any) => void;
238
+ delayVibLFO: (channel: any, note: any, prevValue: any) => void;
239
+ freqVibLFO: (channel: any, note: any, _prevValue: any) => void;
240
+ };
241
+ getControllerState(channel: any, noteNumber: any, velocity: any): Float32Array;
242
+ applyVoiceParams(channel: any, controllerType: any): void;
232
243
  createControlChangeHandlers(): {
233
244
  0: (channelNumber: any, msb: any) => void;
234
245
  1: (channelNumber: any, modulation: any) => void;
@@ -265,7 +276,7 @@ export class Midy {
265
276
  126: () => void;
266
277
  127: () => void;
267
278
  };
268
- handleControlChange(channelNumber: any, controller: any, value: any): void;
279
+ handleControlChange(channelNumber: any, controllerType: any, value: any): void;
269
280
  setBankMSB(channelNumber: any, msb: any): void;
270
281
  updateModulation(channel: any): void;
271
282
  setModulationDepth(channelNumber: any, modulation: any): void;
@@ -302,9 +313,9 @@ export class Midy {
302
313
  setRPNMSB(channelNumber: any, value: any): void;
303
314
  setRPNLSB(channelNumber: any, value: any): void;
304
315
  dataEntryMSB(channelNumber: any, value: any): void;
305
- updateDetune(channel: any, detuneChange: any): void;
316
+ updateDetune(channel: any, detune: any): void;
306
317
  handlePitchBendRangeRPN(channelNumber: any): void;
307
- setPitchBendRange(channelNumber: any, pitchBendRange: any): void;
318
+ setPitchBendRange(channelNumber: any, pitchWheelSensitivity: any): void;
308
319
  handleFineTuningRPN(channelNumber: any): void;
309
320
  setFineTuning(channelNumber: any, fineTuning: any): void;
310
321
  handleCoarseTuningRPN(channelNumber: any): void;
@@ -351,7 +362,7 @@ export class Midy {
351
362
  scheduleTask(callback: any, startTime: any): Promise<any>;
352
363
  }
353
364
  declare class Note {
354
- constructor(noteNumber: any, velocity: any, startTime: any, instrumentKey: any);
365
+ constructor(noteNumber: any, velocity: any, startTime: any, voice: any, voiceParams: any);
355
366
  bufferSource: any;
356
367
  filterNode: any;
357
368
  volumeNode: any;
@@ -360,10 +371,14 @@ declare class Note {
360
371
  modulationDepth: any;
361
372
  vibratoLFO: any;
362
373
  vibratoDepth: any;
374
+ reverbEffectsSend: any;
375
+ chorusEffectsSend: any;
376
+ portamento: any;
363
377
  noteNumber: any;
364
378
  velocity: any;
365
379
  startTime: any;
366
- instrumentKey: any;
380
+ voice: any;
381
+ voiceParams: any;
367
382
  }
368
383
  export {};
369
384
  //# sourceMappingURL=midy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"midy.d.ts","sourceRoot":"","sources":["../src/midy.js"],"names":[],"mappings":"AAwBA;IAkCE;;;;;;;;;;;;;;;;;;;;;;;;;MAyBE;IAEF;;;;;;;;;;;MAWE;IAEF;;;;;;;MAOE;IAgCF;;;;;OAYC;IA5HD,qBAAmB;IACnB,kBAAc;IACd,yBAAqB;IACrB,2BAAuB;IACvB;;;MAGE;IACF;;;;;;MAME;IACF,cAAa;IACb,cAAa;IACb,0BAAwB;IACxB,kBAAc;IACd,mBAAiB;IACjB,kBAAc;IACd,mBAAe;IACf,kBAAgB;IAChB,sBAA2C;IAC3C,mBAAkB;IAClB,mBAAkB;IAClB,kBAAiB;IACjB,oBAAmB;IACnB,mBAAkB;IAClB,gBAAc;IACd,mBAAiB;IACjB,oBAAkB;IAmDlB;;;;;MA4BE;IAGA,kBAAgC;IAChC;;;;;MAAqD;IACrD,gBAA4C;IAC5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAA+D;IAC/D,gBAAiD;IACjD;;;MAA8D;IAC9D;;;;;;;;MAAyD;IAO3D,4BAMC;IAED,mCAWC;IAED,gDAMC;IAED,sCASC;IAED;;;;MAeC;IAED,yCAiBC;IAED,+DAuBC;IAED,mEAWC;IAED,2CAcC;IAED,2EA8DC;IAED,mCAOC;IAED,0BA+CC;IAED,uDAEC;IAED,wDAEC;IAED;;;MAoGC;IAED,+EAoBC;IAED,qDAKC;IAED,uBAKC;IAED,aAGC;IAED,cAKC;IAED,wBAIC;IAED,0BAKC;IAED,wBAOC;IAED,sBAGC;IAED,uDASC;IAED,6CAQC;IAED,kFAuBC;IAED;;;;MAWC;IAED,gFAUC;IAED,mFAYC;IAED,sGAcC;IAID;;;MA+BC;IAED;;;;;;;;MA0CC;IAED,2BAEC;IAED,4BAEC;IAED,sCAKC;IAED,mFAGC;IAED,gEAUC;IAED,iDAeC;IAED,+CAwBC;IAED,6CAIC;IAED,gEAoBC;IAED,iDAyBC;IAED,+DA0BC;IAED,4DAiBC;IAED,yIA6CC;IAED,gDAQC;IAED,mHAwCC;IAED,2FASC;IAED,qFA4BC;IAED,yJAqCC;IAED,qHAUC;IAED,kEAeC;IAED,oEAYC;IAED,gFAqBC;IAED,sFAcC;IAED,4DAIC;IAED,+DAcC;IAED,qEAGC;IAED,uDAOC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAqCC;IAED,2EASC;IAED,+CAEC;IAED,qCAkBC;IAED,8DAIC;IAED,iEAIC;IAED,iDAIC;IAED;;;MAMC;IAED,2CAIC;IAED,yDAIC;IAED,+CAEC;IAED,mDAGC;IAED,wCAUC;IAED,sDAMC;IAED,oDAEC;IAED,mEAqBC;IAED,mEAqBC;IAED,wDAWC;IAED,uDAGC;IAED,mEAaC;IAED,2DAGC;IAED,yDAYC;IAED,yDAUC;IAED,uDAUC;IAED,2DAWC;IAED,6DAGC;IAED,6DAGC;IAED,kFAeC;IAED,2DAMC;IAED,gDAyBC;IAGD,wCAEC;IAGD,wCAEC;IAED,gDAEC;IAED,gDAEC;IAED,mDAGC;IAED,oDAaC;IAED,kDAKC;IAED,iEAOC;IAED,8CAKC;IAED,yDAMC;IAED,gDAKC;IAED,6DAMC;IAED,wDAKC;IAED,6EAKC;IAED,+CAEC;IAED,8CAEC;IAED,+CAEC;IAED,gBAEC;IAED,eAEC;IAED,eAEC;IAED,eAEC;IAED,4DAmBC;IAED,oBASC;IAED,oBASC;IAED,yDAiDC;IAED,yCAGC;IAED,mCAQC;IAED,6CAGC;IAED,2CAMC;IAED,+CAGC;IAED,+CAMC;IAED,mDAeC;IAED,4CAOC;IAED,+BAKC;IAED,qDAiBC;IAED,gCAMC;IAED,kCAEC;IA6BD,4CAEC;IAED,4CAaC;IAED,+BAiBC;IAED,wFAKC;IAED,mCAQC;IAED,qCAEC;IAED,oCAUC;IAED,sCAEC;IAED,oCAaC;IAED,sCAEC;IAED,wCAWC;IAED,0CAEC;IAED,wCAEC;IAED,6BASC;IAED,0DAUC;CACF;AAnhED;IAUE,gFAKC;IAdD,kBAAa;IACb,gBAAW;IACX,gBAAW;IACX,iBAAY;IACZ,mBAAc;IACd,qBAAgB;IAChB,gBAAW;IACX,kBAAa;IAGX,gBAA4B;IAC5B,cAAwB;IACxB,eAA0B;IAC1B,mBAAkC;CAErC"}
1
+ {"version":3,"file":"midy.d.ts","sourceRoot":"","sources":["../src/midy.js"],"names":[],"mappings":"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"}