@marmooo/midy 0.4.8 → 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.
@@ -9,7 +9,7 @@ export class MidyGMLite extends EventTarget {
9
9
  rpnLSB: number;
10
10
  modulationDepthRange: number;
11
11
  };
12
- constructor(audioContext: any);
12
+ constructor(audioContext: any, options?: {});
13
13
  perceptualSmoothingTime: number;
14
14
  mode: string;
15
15
  numChannels: number;
@@ -40,7 +40,15 @@ export class MidyGMLite extends EventTarget {
40
40
  instruments: Set<any>;
41
41
  exclusiveClassNotes: any[];
42
42
  drumExclusiveClassNotes: any[];
43
+ adsrVoiceCache: Map<any, any>;
44
+ noteOnDurations: Map<any, any>;
45
+ noteOnEvents: Map<any, any>;
46
+ fullVoiceCache: Map<any, any>;
47
+ renderedAudioBuffer: null;
48
+ isRendering: boolean;
49
+ audioModeBufferSource: null;
43
50
  audioContext: any;
51
+ cacheMode: any;
44
52
  masterVolume: any;
45
53
  scheduler: any;
46
54
  schedulerBuffer: any;
@@ -52,33 +60,35 @@ export class MidyGMLite extends EventTarget {
52
60
  modLfoToVolume: (channel: any, note: any, scheduleTime: any) => void;
53
61
  chorusEffectsSend: (_channel: any, _note: any, _scheduleTime: any) => void;
54
62
  reverbEffectsSend: (_channel: any, _note: any, _scheduleTime: any) => void;
55
- delayModLFO: (_channel: any, note: any, scheduleTime: any) => void;
63
+ delayModLFO: (channel: any, note: any, scheduleTime: any) => void;
56
64
  freqModLFO: (_channel: any, note: any, scheduleTime: any) => void;
57
65
  delayVibLFO: (_channel: any, _note: any, _scheduleTime: any) => void;
58
66
  freqVibLFO: (_channel: any, _note: any, _scheduleTime: any) => void;
59
67
  detune: (channel: any, note: any, scheduleTime: any) => void;
60
68
  };
61
69
  controlChangeHandlers: any[];
62
- channels: any[];
70
+ channels: Channel[];
63
71
  addSoundFont(soundFont: any): void;
64
72
  toUint8Array(input: any): Promise<Uint8Array<ArrayBuffer>>;
65
73
  loadSoundFont(input: any): Promise<void>;
66
74
  loadMIDI(input: any): Promise<void>;
75
+ buildNoteOnDurations(): void;
67
76
  cacheVoiceIds(): void;
68
- getVoiceId(channel: any, noteNumber: any, velocity: any): any;
77
+ getVoiceId(channel: any, noteNumber: any, velocity: any): number | undefined;
69
78
  createChannelAudioNodes(audioContext: any): {
70
79
  gainL: any;
71
80
  gainR: any;
72
81
  merger: any;
73
82
  };
74
- createChannels(audioContext: any): any[];
83
+ createChannels(audioContext: any): Channel[];
75
84
  decodeOggVorbis(sample: any): Promise<any>;
76
85
  createAudioBuffer(voiceParams: any): Promise<any>;
77
- createBufferSource(channel: any, voiceParams: any, audioBuffer: any): any;
86
+ createBufferSource(channel: any, voiceParams: any, renderedOrRaw: any): any;
78
87
  scheduleTimelineEvents(scheduleTime: any, queueIndex: any): any;
79
88
  getQueueIndex(second: any): number;
80
89
  resetAllStates(): void;
81
90
  updateStates(queueIndex: any, nextQueueIndex: any): void;
91
+ playAudioBuffer(): Promise<void>;
82
92
  playNotes(): Promise<void>;
83
93
  ticksToSecond(ticks: any, secondsPerBeat: any): number;
84
94
  secondToTicks(second: any, secondsPerBeat: any): number;
@@ -90,6 +100,7 @@ export class MidyGMLite extends EventTarget {
90
100
  stopActiveNotes(channelNumber: any, velocity: any, force: any, scheduleTime: any): Promise<any[]>;
91
101
  stopChannelNotes(channelNumber: any, velocity: any, force: any, scheduleTime: any): Promise<any[]>;
92
102
  stopNotes(velocity: any, force: any, scheduleTime: any): Promise<any[]>;
103
+ render(): Promise<null | undefined>;
93
104
  start(): Promise<void>;
94
105
  stop(): Promise<void>;
95
106
  pause(): Promise<void>;
@@ -112,13 +123,22 @@ export class MidyGMLite extends EventTarget {
112
123
  clampCutoffFrequency(frequency: any): number;
113
124
  setFilterEnvelope(note: any, scheduleTime: any): void;
114
125
  startModulation(channel: any, note: any, scheduleTime: any): void;
115
- getAudioBuffer(channel: any, noteNumber: any, velocity: any, voiceParams: any, realtime: any): Promise<any>;
126
+ createAdsRenderedBuffer(note: any, voiceParams: any, audioBuffer: any, isDrum?: boolean): Promise<RenderedBuffer>;
127
+ createAdsrRenderedBuffer(note: any, voiceParams: any, audioBuffer: any, noteDuration: any): Promise<RenderedBuffer>;
128
+ createFullRenderedBuffer(channel: any, note: any, voiceParams: any, noteDuration: any, noteEvent?: {}): Promise<RenderedBuffer>;
129
+ getAudioBuffer(channel: any, note: any, realtime: any): Promise<any>;
130
+ getAdsCachedBuffer(channel: any, note: any, audioBufferId: any, realtime: any): Promise<any>;
131
+ getAdsrCachedBuffer(note: any, audioBufferId: any): Promise<any>;
132
+ getFullCachedBuffer(note: any, audioBufferId: any): Promise<any>;
116
133
  setNoteAudioNode(channel: any, note: any, realtime: any): Promise<any>;
117
134
  handleExclusiveClass(note: any, channelNumber: any, startTime: any): void;
118
135
  handleDrumExclusiveClass(note: any, channelNumber: any, startTime: any): void;
119
136
  setNoteRouting(channelNumber: any, note: any, startTime: any): void;
120
- noteOn(channelNumber: any, noteNumber: any, velocity: any, startTime: any): Promise<void>;
137
+ noteOn(channelNumber: any, noteNumber: any, velocity: any, startTime: any): Promise<any>;
138
+ createNote(channelNumber: any, noteNumber: any, velocity: any, startTime: any): Note;
139
+ setupNote(channelNumber: any, note: any, startTime: any): Promise<any>;
121
140
  disconnectNote(note: any): void;
141
+ releaseFullCache(note: any): void;
122
142
  releaseNote(channel: any, note: any, endTime: any): Promise<any>;
123
143
  noteOff(channelNumber: any, noteNumber: any, _velocity: any, endTime: any, force: any): any;
124
144
  setNoteIndex(channel: any, index: any): void;
@@ -142,7 +162,7 @@ export class MidyGMLite extends EventTarget {
142
162
  modLfoToVolume: (channel: any, note: any, scheduleTime: any) => void;
143
163
  chorusEffectsSend: (_channel: any, _note: any, _scheduleTime: any) => void;
144
164
  reverbEffectsSend: (_channel: any, _note: any, _scheduleTime: any) => void;
145
- delayModLFO: (_channel: any, note: any, scheduleTime: any) => void;
165
+ delayModLFO: (channel: any, note: any, scheduleTime: any) => void;
146
166
  freqModLFO: (_channel: any, note: any, scheduleTime: any) => void;
147
167
  delayVibLFO: (_channel: any, _note: any, _scheduleTime: any) => void;
148
168
  freqVibLFO: (_channel: any, _note: any, _scheduleTime: any) => void;
@@ -183,4 +203,59 @@ export class MidyGMLite extends EventTarget {
183
203
  handleSysEx(data: any, scheduleTime: any): void;
184
204
  scheduleTask(callback: any, scheduleTime: any): Promise<any>;
185
205
  }
206
+ declare class Channel {
207
+ constructor(audioNodes: any, settings: any);
208
+ isDrum: boolean;
209
+ programNumber: number;
210
+ scheduleIndex: number;
211
+ detune: number;
212
+ dataMSB: number;
213
+ dataLSB: number;
214
+ rpnMSB: number;
215
+ rpnLSB: number;
216
+ modulationDepthRange: number;
217
+ scheduledNotes: any[];
218
+ sustainNotes: any[];
219
+ currentBufferSource: null;
220
+ state: ControllerState;
221
+ resetSettings(settings: any): void;
222
+ }
223
+ declare class RenderedBuffer {
224
+ constructor(buffer: any, meta?: {});
225
+ buffer: any;
226
+ isLoop: any;
227
+ isFull: any;
228
+ adsDuration: any;
229
+ loopStart: any;
230
+ loopDuration: any;
231
+ noteDuration: any;
232
+ releaseDuration: any;
233
+ }
234
+ declare class Note {
235
+ constructor(noteNumber: any, velocity: any, startTime: any);
236
+ voice: any;
237
+ voiceParams: any;
238
+ adjustedBaseFreq: number;
239
+ index: number;
240
+ ending: boolean;
241
+ bufferSource: any;
242
+ timelineIndex: null;
243
+ renderedBuffer: null;
244
+ fullCacheVoiceId: null;
245
+ filterEnvelopeNode: any;
246
+ volumeEnvelopeNode: any;
247
+ modLfo: any;
248
+ modLfoToPitch: any;
249
+ modLfoToFilterFc: any;
250
+ modLfoToVolume: any;
251
+ noteNumber: any;
252
+ velocity: any;
253
+ startTime: any;
254
+ ready: Promise<any>;
255
+ resolveReady: (value: any) => void;
256
+ }
257
+ declare class ControllerState {
258
+ array: Float32Array<ArrayBuffer>;
259
+ }
260
+ export {};
186
261
  //# sourceMappingURL=midy-GMLite.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"midy-GMLite.d.ts","sourceRoot":"","sources":["../src/midy-GMLite.js"],"names":[],"mappings":"AAiIA;IAwCE;;;;;;;;;MASE;IAEF,+BAgBC;IA9DD,gCAAgC;IAChC,aAAa;IACb,oBAAiB;IACjB,qBAAmB;IACnB,kBAAc;IACd,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;IAeA,kBAAgC;IAChC,kBAA8C;IAC9C,eAAwD;IACxD,qBAGE;IACF,uBAAmD;IACnD;;;;;;;;;;;;MAA2D;IAC3D,6BAA+D;IAC/D,gBAAiD;IAMnD,mCASC;IAED,2DAYC;IAED,yCAmBC;IAED,oCASC;IAED,sBA6BC;IAED,8DAeC;IAED;;;;MAeC;IAED,yCAaC;IAED,2CAsBC;IAED,kDA6BC;IAED,0EAUC;IAED,gEAsDC;IAED,mCASC;IAED,uBAUC;IAED,yDAqCC;IAED,2BA0EC;IAED,uDAEC;IAED,wDAEC;IAED,qCAKC;IAED;;;MAwDC;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,8BAEC;IAED,8BAEC;IAED,4BAEC;IAED,wCAIC;IAED,2DAIC;IAED,6CAEC;IAED,sDAeC;IAED,4DASC;IAED,qDAkBC;IAED,6CAIC;IAED,sDA6BC;IAED,kEAqBC;IAED,4GAkCC;IAED,uEA6CC;IAED,0EAiBC;IAED,8EAiBC;IAED,oEAUC;IAED,0FAwBC;IAED,gCASC;IAED,iEAwBC;IAED,4FAsBC;IAED,6CAUC;IAED,qDAUC;IAED,qFAeC;IAED,+BAmBC;IAED,kDAOC;IAED,sFA2BC;IAED,mFAGC;IAED,wFAGC;IAED,sEAUC;IAED,mEAYC;IAED,wDAKC;IAED,sDAOC;IAED,mDAMC;IAED,kDAKC;IAED;;;;;;;;;;;;MAoCC;IAED,oFAMC;IAED,6EA2BC;IAED,qCAeC;IAED,+FAYC;IAED,wDAUC;IAED,4EAKC;IAED,mEAKC;IAED;;;MAMC;IAED,gEAKC;IAED,uEAKC;IAED,sEAGC;IAED,2DAUC;IAED,yEAWC;IAED,kFAeC;IAED,uDAcC;IAED,gDAEC;IAED,gDAEC;IAED,sEAGC;IAED,qEAKC;IAED,2EAUC;IAED,gFAGC;IAED,6CAqBC;IAGD,8EAgCC;IAED,gFAGC;IAED,+EAgBC;IAED,qCAUC;IAED,4EAaC;IAED,4DAGC;IAED,qDAKC;IAED,gDAYC;IAGD,6DAgBC;CACF"}
1
+ {"version":3,"file":"midy-GMLite.d.ts","sourceRoot":"","sources":["../src/midy-GMLite.js"],"names":[],"mappings":"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"}