@marmooo/midy 0.4.9 → 0.5.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.
@@ -14,7 +14,7 @@ export class MidyGM2 extends EventTarget {
14
14
  fineTuning: number;
15
15
  coarseTuning: number;
16
16
  };
17
- constructor(audioContext: any);
17
+ constructor(audioContext: any, options?: {});
18
18
  perceptualSmoothingTime: number;
19
19
  mode: string;
20
20
  masterFineTuning: number;
@@ -61,7 +61,15 @@ export class MidyGM2 extends EventTarget {
61
61
  instruments: Set<any>;
62
62
  exclusiveClassNotes: any[];
63
63
  drumExclusiveClassNotes: any[];
64
+ adsrVoiceCache: Map<any, any>;
65
+ noteOnDurations: Map<any, any>;
66
+ noteOnEvents: Map<any, any>;
67
+ fullVoiceCache: Map<any, any>;
68
+ renderedAudioBuffer: null;
69
+ isRendering: boolean;
70
+ audioModeBufferSource: null;
64
71
  audioContext: any;
72
+ cacheMode: any;
65
73
  masterVolume: any;
66
74
  scheduler: any;
67
75
  schedulerBuffer: any;
@@ -73,7 +81,7 @@ export class MidyGM2 extends EventTarget {
73
81
  modLfoToVolume: (channel: any, note: any, scheduleTime: any) => void;
74
82
  chorusEffectsSend: (channel: any, note: any, scheduleTime: any) => void;
75
83
  reverbEffectsSend: (channel: any, note: any, scheduleTime: any) => void;
76
- delayModLFO: (_channel: any, note: any, _scheduleTime: any) => void;
84
+ delayModLFO: (channel: any, note: any, _scheduleTime: any) => void;
77
85
  freqModLFO: (_channel: any, note: any, scheduleTime: any) => void;
78
86
  delayVibLFO: (channel: any, note: any, _scheduleTime: any) => void;
79
87
  freqVibLFO: (channel: any, note: any, scheduleTime: any) => void;
@@ -100,8 +108,9 @@ export class MidyGM2 extends EventTarget {
100
108
  toUint8Array(input: any): Promise<Uint8Array<ArrayBuffer>>;
101
109
  loadSoundFont(input: any): Promise<void>;
102
110
  loadMIDI(input: any): Promise<void>;
111
+ buildNoteOnDurations(): void;
103
112
  cacheVoiceIds(): void;
104
- getVoiceId(channel: any, noteNumber: any, velocity: any): any;
113
+ getVoiceId(channel: any, noteNumber: any, velocity: any): number | undefined;
105
114
  createChannelAudioNodes(audioContext: any): {
106
115
  gainL: any;
107
116
  gainR: any;
@@ -111,11 +120,12 @@ export class MidyGM2 extends EventTarget {
111
120
  decodeOggVorbis(sample: any): Promise<any>;
112
121
  createAudioBuffer(voiceParams: any): Promise<any>;
113
122
  isLoopDrum(channel: any, noteNumber: any): boolean;
114
- createBufferSource(channel: any, noteNumber: any, voiceParams: any, audioBuffer: any): any;
123
+ createBufferSource(channel: any, noteNumber: any, voiceParams: any, renderedOrRaw: any): any;
115
124
  scheduleTimelineEvents(scheduleTime: any, queueIndex: any): any;
116
125
  getQueueIndex(second: any): number;
117
126
  resetAllStates(): void;
118
127
  updateStates(queueIndex: any, nextQueueIndex: any): void;
128
+ playAudioBuffer(): Promise<void>;
119
129
  playNotes(): Promise<void>;
120
130
  ticksToSecond(ticks: any, secondsPerBeat: any): number;
121
131
  secondToTicks(second: any, secondsPerBeat: any): number;
@@ -127,6 +137,7 @@ export class MidyGM2 extends EventTarget {
127
137
  stopActiveNotes(channelNumber: any, velocity: any, force: any, scheduleTime: any): Promise<any[]>;
128
138
  stopChannelNotes(channelNumber: any, velocity: any, force: any, scheduleTime: any): Promise<any[]>;
129
139
  stopNotes(velocity: any, force: any, scheduleTime: any): Promise<any[]>;
140
+ render(): Promise<null | undefined>;
130
141
  start(): Promise<void>;
131
142
  stop(): Promise<void>;
132
143
  pause(): Promise<void>;
@@ -183,13 +194,22 @@ export class MidyGM2 extends EventTarget {
183
194
  setFilterEnvelope(channel: any, note: any, scheduleTime: any): void;
184
195
  startModulation(channel: any, note: any, scheduleTime: any): void;
185
196
  startVibrato(channel: any, note: any, scheduleTime: any): void;
186
- getAudioBuffer(channel: any, noteNumber: any, velocity: any, voiceParams: any, realtime: any): Promise<any>;
197
+ createAdsRenderedBuffer(channel: any, note: any, voiceParams: any, audioBuffer: any, isDrum?: boolean): Promise<RenderedBuffer>;
198
+ createAdsrRenderedBuffer(channel: any, note: any, voiceParams: any, audioBuffer: any, noteDuration: any): Promise<RenderedBuffer>;
199
+ createFullRenderedBuffer(channel: any, note: any, voiceParams: any, noteDuration: any, noteEvent?: {}): Promise<RenderedBuffer>;
200
+ getAudioBuffer(channel: any, note: any, realtime: any): Promise<any>;
201
+ getAdsCachedBuffer(channel: any, note: any, audioBufferId: any, realtime: any): Promise<any>;
202
+ getAdsrCachedBuffer(channel: any, note: any, audioBufferId: any): Promise<any>;
203
+ getFullCachedBuffer(note: any, audioBufferId: any): Promise<any>;
187
204
  setNoteAudioNode(channel: any, note: any, realtime: any): Promise<any>;
188
205
  handleExclusiveClass(note: any, channelNumber: any, startTime: any): void;
189
206
  handleDrumExclusiveClass(note: any, channelNumber: any, startTime: any): void;
190
207
  setNoteRouting(channelNumber: any, note: any, startTime: any): void;
191
- noteOn(channelNumber: any, noteNumber: any, velocity: any, startTime: any): Promise<void>;
208
+ noteOn(channelNumber: any, noteNumber: any, velocity: any, startTime: any): Promise<any>;
209
+ createNote(channelNumber: any, noteNumber: any, velocity: any, startTime: any): Note;
210
+ setupNote(channelNumber: any, note: any, startTime: any): Promise<any>;
192
211
  disconnectNote(note: any): void;
212
+ releaseFullCache(note: any): void;
193
213
  releaseNote(channel: any, note: any, endTime: any): Promise<any>;
194
214
  noteOff(channelNumber: any, noteNumber: any, _velocity: any, endTime: any, force: any): any;
195
215
  setNoteIndex(channel: any, index: any): void;
@@ -220,7 +240,7 @@ export class MidyGM2 extends EventTarget {
220
240
  modLfoToVolume: (channel: any, note: any, scheduleTime: any) => void;
221
241
  chorusEffectsSend: (channel: any, note: any, scheduleTime: any) => void;
222
242
  reverbEffectsSend: (channel: any, note: any, scheduleTime: any) => void;
223
- delayModLFO: (_channel: any, note: any, _scheduleTime: any) => void;
243
+ delayModLFO: (channel: any, note: any, _scheduleTime: any) => void;
224
244
  freqModLFO: (_channel: any, note: any, scheduleTime: any) => void;
225
245
  delayVibLFO: (channel: any, note: any, _scheduleTime: any) => void;
226
246
  freqVibLFO: (channel: any, note: any, scheduleTime: any) => void;
@@ -315,6 +335,7 @@ export class MidyGM2 extends EventTarget {
315
335
  getPitchControl(channel: any, note: any): number;
316
336
  getFilterCutoffControl(channel: any): number;
317
337
  getChannelAmplitudeControl(channel: any): number;
338
+ getAmplitudeControl(channel: any): number;
318
339
  getLFOPitchDepth(channel: any): number;
319
340
  getLFOFilterDepth(channel: any): number;
320
341
  getLFOAmplitudeDepth(channel: any): number;
@@ -361,6 +382,45 @@ declare class Channel {
361
382
  resetSettings(settings: any): void;
362
383
  resetTable(): void;
363
384
  }
385
+ declare class RenderedBuffer {
386
+ constructor(buffer: any, meta?: {});
387
+ buffer: any;
388
+ isLoop: any;
389
+ isFull: any;
390
+ adsDuration: any;
391
+ loopStart: any;
392
+ loopDuration: any;
393
+ noteDuration: any;
394
+ releaseDuration: any;
395
+ }
396
+ declare class Note {
397
+ constructor(noteNumber: any, velocity: any, startTime: any);
398
+ voice: any;
399
+ voiceParams: any;
400
+ adjustedBaseFreq: number;
401
+ index: number;
402
+ ending: boolean;
403
+ bufferSource: any;
404
+ timelineIndex: null;
405
+ renderedBuffer: null;
406
+ fullCacheVoiceId: null;
407
+ filterEnvelopeNode: any;
408
+ volumeEnvelopeNode: any;
409
+ modLfo: any;
410
+ modLfoToPitch: any;
411
+ modLfoToFilterFc: any;
412
+ modLfoToVolume: any;
413
+ vibLfo: any;
414
+ vibLfoToPitch: any;
415
+ reverbSend: any;
416
+ chorusSend: any;
417
+ portamentoNoteNumber: number;
418
+ noteNumber: any;
419
+ velocity: any;
420
+ startTime: any;
421
+ ready: Promise<any>;
422
+ resolveReady: (value: any) => void;
423
+ }
364
424
  declare class ControllerState {
365
425
  array: Float32Array<ArrayBuffer>;
366
426
  }
@@ -1 +1 @@
1
- {"version":3,"file":"midy-GM2.d.ts","sourceRoot":"","sources":["../src/midy-GM2.js"],"names":[],"mappings":"AAoOA;IAwDE;;;;;;;;;;;;;;MAcE;IAEF,+BAsBC;IAzFD,gCAAgC;IAChC,aAAa;IACb,yBAAqB;IACrB,2BAAuB;IACvB;;;;MAIE;IACF;;;;;;MAME;IACF,oBAAiB;IACjB,qBAAmB;IACnB,kBAAc;IACd,0BAAsB;IACtB,+BAA6B;IAC7B,0BAAwB;IACxB,kBAAc;IACd,mBAAiB;IACjB,kBAAc;IACd,mBAAe;IACf,kBAAgB;IAChB,0BAAuD;IACvD,4BAAyB;IACzB,0BAAuB;IACvB,kCAA+B;IAC/B,qBAAqC;IACrC,mBAAkB;IAClB,mBAAkB;IAClB,kBAAiB;IACjB,oBAAmB;IACnB,mBAAkB;IAClB,iCAEG;IACH,cAAU;IACV,cAAa;IACb,iBAAY;IACZ,gBAAc;IACd,oBAAkB;IAClB,sBAAwB;IACxB,2BAAqC;IACrC,+BAEE;IAoBA,kBAAgC;IAChC,kBAA8C;IAC9C,eAAwD;IACxD,qBAGE;IACF,uBAAmD;IACnD;;;;;;;;;;;;MAA2D;IAC3D,6BAA+D;IAC/D,kCAAyE;IACzE,sBAAiD;IACjD,oBAAiD;IACjD;;;kBAAyD;IACzD;;;;;;;;MAAyD;IAQ3D,mCASC;IAED,2DAYC;IAED,yCAmBC;IAED,oCASC;IAED,sBAoCC;IAED,8DAeC;IAED;;;;MAeC;IAED,6CAMC;IAED,2CAsBC;IAED,kDA6BC;IAED,mDAIC;IAED,2FAWC;IAED,gEAyDC;IAED,mCASC;IAED,uBAUC;IAED,yDAqCC;IAED,2BAoFC;IAED,uDAEC;IAED,wDAEC;IAED,qCAMC;IAED;;;MAqFC;IAED,kGAeC;IAED,mGAeC;IAED,wEAQC;IAED,uBAMC;IAED,sBAIC;IAED,uBAMC;IAED,wBAIC;IAED,0BAKC;IAED,8BAMC;IAED,wBAYC;IAED,sBAIC;IAED,kEAWC;IAED,kFAYC;IAED,kFAuBC;IAED;;;;MASC;IAED,gFAUC;IAED,mFAYC;IAED,sGAcC;IAID;;;MA8BC;IAED;;;kBA6BC;IAED;;;;;;;;MA0CC;IAED,8BAEC;IAED,8BAEC;IAED,4BAEC;IAED,qCAWC;IAED,2DAQC;IAED,oDAEC;IAED,6CAIC;IAED,mDAIC;IAED,2CAoDC;IAED,8EASC;IAED,oEAgBC;IAED,sEASC;IAED,4DASC;IAED,6EAOC;IAED,qDAkBC;IAED,6CAIC;IAED,8EAmBC;IAED,oEA+BC;IAED,kEAqBC;IAED,+DAeC;IAED,4GAkCC;IAED,uEAkEC;IAED,0EAiBC;IAED,8EAoBC;IAED,oEAuBC;IAED,0FAuBC;IAED,gCAmBC;IAED,iEAwBC;IAED,4FA2BC;IAED,6CAUC;IAED,qDAUC;IAED,qFAeC;IAED,uFAkBC;IAED,+BAuBC;IAED,kDAOC;IAED,sBAEC;IAED,mFAcC;IAED,4EAYC;IAED,wFAGC;IAED,sEAWC;IAED,mEAaC;IAED,mEAYC;IAED,sEAMC;IAED,oEAQC;IAED,gEAyBC;IAED,gEAyBC;IAED,gCAKC;IAED,kDAKC;IAED,8CAOC;IAED,gEAMC;IAED;;;;;;;;;;;;MAwDC;IAED,oFAOC;IAED,6EA+BC;IAED,qCA2BC;IAED,+FAeC;IAED,+CAEC;IAED,wDAUC;IAED,4EAMC;IAED,wDAeC;IAED,2EAMC;IAED,mEAKC;IAED,mDAQC;IAED;;;MAMC;IAED,gEAWC;IAED,uEAKC;IAED,+CAEC;IAED,sEAGC;IAED,2DAWC;IAED,4EAoBC;IAED,yEAYC;IAED,+CAEC;IAED,uEAMC;IAED,2EAcC;IAED,oDAEC;IAED,0EAeC;IAED,sFAQC;IAED,sFAQC;IAED,kFAeC;IAED,2DAMC;IAED,uDAuBC;IAED,gDAEC;IAED,gDAEC;IAED,sEAGC;IAED,qEAKC;IAED,2EAWC;IAED,iEAMC;IAED,uEASC;IAED,mEAKC;IAED,yEASC;IAED,2EAKC;IAED,iFAMC;IAED,gFAGC;IAED,6CAsBC;IAGD,8EAoCC;IAED,gFAGC;IAED,iEAEC;IAED,gEAEC;IAED,gEAIC;IAED,gEAIC;IAED,+EAgCC;IAED,qCAaC;IAED,qCAaC;IAED,4EAwCC;IAED,4DAGC;IAED,qDAKC;IAED,gEAIC;IAED,yDAYC;IAED,kEAGC;IAED,2DAYC;IAED,sEAeC;IAED,4CAOC;IAED,+BAIC;IAED,qDAiBC;IAED,gCAGC;IAED,kCAEC;IA6BD,4CAEC;IAED,+DAaC;IAED,kDAiBC;IAED,2GAKC;IAED,sDAIC;IAED,qCAEC;IAED,uDAMC;IAED,sCAEC;IAED,uDASC;IAED,sCAEC;IAED,2DAqBC;IAED,0CAEC;IAED,mCAeC;IAED,2FAgBC;IAED,wDAEC;IAED,+DAGC;IAED,qEASC;IAED,uEAOC;IAED,6CAEC;IAED,iDAEC;IAED,6CAEC;IAED,iDAEC;IAED,uCAEC;IAED,wCAEC;IAED,2CAEC;IAED,8BAyBC;IAED,0EAQC;IAED,4EAOC;IAED,qFASC;IAED,+DAEC;IAED,wEAcC;IAED,6DAiBC;IAED,yEAIC;IAED,0CAmBC;IAED,yEAcC;IAED,gDAYC;IAGD,6DAgBC;CACF;AAhmGD;IA0BE,4CAIC;IA7BD,gBAAe;IACf,sBAAkB;IAClB,sBAAkB;IAClB,eAAW;IACX,gBAAc;IACd,gBAAY;IACZ,gBAAY;IACZ,gBAAY;IACZ,eAAa;IACb,eAAa;IACb,cAAa;IACb,6BAA0B;IAC1B,mBAAe;IACf,qBAAiB;IACjB,sBAAoB;IACpB,oBAAkB;IAClB,sBAAoB;IACpB,qCAAmD;IACnD,+CAA2C;IAC3C,6CAA4D;IAC5D,sCAAkD;IAClD,sBAAgC;IAChC,sBAAgC;IAChC,0BAA2B;IAKzB,uBAAkC;IAGpC,mCAEC;IAED,mBAKC;CACF;AAwED;IACE,iCAA8B;CAa/B"}
1
+ {"version":3,"file":"midy-GM2.d.ts","sourceRoot":"","sources":["../src/midy-GM2.js"],"names":[],"mappings":"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"}