@marmooo/midy 0.2.4 → 0.2.6

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.
@@ -2,9 +2,6 @@ export class MidyGM2 {
2
2
  static channelSettings: {
3
3
  currentBufferSource: null;
4
4
  detune: number;
5
- scaleOctaveTuningTable: any[];
6
- channelPressureTable: Uint8Array<ArrayBuffer>;
7
- keyBasedInstrumentControlTable: Int8Array<ArrayBuffer>;
8
5
  program: number;
9
6
  bank: number;
10
7
  bankMSB: number;
@@ -47,6 +44,8 @@ export class MidyGM2 {
47
44
  resumeTime: number;
48
45
  soundFonts: any[];
49
46
  soundFontTable: any[];
47
+ audioBufferCounter: Map<any, any>;
48
+ audioBufferCache: Map<any, any>;
50
49
  isPlaying: boolean;
51
50
  isPausing: boolean;
52
51
  isPaused: boolean;
@@ -55,7 +54,7 @@ export class MidyGM2 {
55
54
  timeline: any[];
56
55
  instruments: any[];
57
56
  notePromises: any[];
58
- exclusiveClassMap: Map<any, any>;
57
+ exclusiveClassMap: SparseMap;
59
58
  defaultOptions: {
60
59
  reverbAlgorithm: (audioContext: any) => {
61
60
  input: any;
@@ -84,12 +83,12 @@ export class MidyGM2 {
84
83
  };
85
84
  controlChangeHandlers: {
86
85
  0: (channelNumber: any, msb: any) => void;
87
- 1: (channelNumber: any, modulation: any) => void;
86
+ 1: (channelNumber: any, modulation: any, scheduleTime: any) => void;
88
87
  5: (channelNumber: any, portamentoTime: any) => void;
89
88
  6: (channelNumber: any, value: any) => void;
90
- 7: (channelNumber: any, volume: any) => void;
91
- 10: (channelNumber: any, pan: any) => void;
92
- 11: (channelNumber: any, expression: any) => void;
89
+ 7: (channelNumber: any, volume: any, scheduleTime: any) => void;
90
+ 10: (channelNumber: any, pan: any, scheduleTime: any) => void;
91
+ 11: (channelNumber: any, expression: any, scheduleTime: any) => void;
93
92
  32: (channelNumber: any, lsb: any) => void;
94
93
  38: (channelNumber: any, value: any) => void;
95
94
  64: (channelNumber: any, value: any) => void;
@@ -133,13 +132,14 @@ export class MidyGM2 {
133
132
  };
134
133
  createChannels(audioContext: any): any[];
135
134
  createNoteBuffer(voiceParams: any, isSF3: any): Promise<any>;
136
- createNoteBufferNode(voiceParams: any, isSF3: any): Promise<any>;
135
+ createNoteBufferNode(audioBuffer: any, voiceParams: any): any;
137
136
  findPortamentoTarget(queueIndex: any): any;
138
137
  scheduleTimelineEvents(t: any, offset: any, queueIndex: any): Promise<any>;
139
138
  getQueueIndex(second: any): number;
140
139
  playNotes(): Promise<any>;
141
140
  ticksToSecond(ticks: any, secondsPerBeat: any): number;
142
141
  secondToTicks(second: any, secondsPerBeat: any): number;
142
+ getAudioBufferId(programNumber: any, noteNumber: any, velocity: any): string;
143
143
  extractMidiData(midi: any): {
144
144
  instruments: Set<any>;
145
145
  timeline: any[];
@@ -153,7 +153,8 @@ export class MidyGM2 {
153
153
  seekTo(second: any): void;
154
154
  calcTotalTime(): number;
155
155
  currentTime(): number;
156
- getActiveNotes(channel: any, time: any): Map<any, any>;
156
+ processScheduledNotes(channel: any, scheduleTime: any, callback: any): void;
157
+ getActiveNotes(channel: any, time: any): SparseMap;
157
158
  getActiveNote(noteList: any, time: any): any;
158
159
  createConvolutionReverbImpulse(audioContext: any, decay: any, preDecay: any): any;
159
160
  createConvolutionReverb(audioContext: any, impulse: any): {
@@ -184,16 +185,17 @@ export class MidyGM2 {
184
185
  calcChannelDetune(channel: any): any;
185
186
  calcNoteDetune(channel: any, note: any): any;
186
187
  updateChannelDetune(channel: any): void;
187
- updateDetune(channel: any, note: any, pressure: any): void;
188
+ updateDetune(channel: any, note: any): void;
188
189
  getPortamentoTime(channel: any): number;
189
190
  setPortamentoStartVolumeEnvelope(channel: any, note: any): void;
190
- setVolumeEnvelope(note: any, pressure: any): void;
191
- setPitchEnvelope(note: any): void;
191
+ setVolumeEnvelope(channel: any, note: any): void;
192
+ setPitchEnvelope(note: any, scheduleTime: any): void;
192
193
  clampCutoffFrequency(frequency: any): number;
193
194
  setPortamentoStartFilterEnvelope(channel: any, note: any): void;
194
- setFilterEnvelope(channel: any, note: any, pressure: any): void;
195
+ setFilterEnvelope(channel: any, note: any): void;
195
196
  startModulation(channel: any, note: any, startTime: any): void;
196
197
  startVibrato(channel: any, note: any, startTime: any): void;
198
+ getAudioBuffer(program: any, noteNumber: any, velocity: any, voiceParams: any, isSF3: any): Promise<any>;
197
199
  createNote(channel: any, voice: any, noteNumber: any, velocity: any, startTime: any, portamento: any, isSF3: any): Promise<Note>;
198
200
  calcBank(channel: any, channelNumber: any): any;
199
201
  scheduleNoteOn(channelNumber: any, noteNumber: any, velocity: any, startTime: any, portamento: any): Promise<void>;
@@ -205,13 +207,13 @@ export class MidyGM2 {
205
207
  releaseSostenutoPedal(channelNumber: any, halfVelocity: any): any[];
206
208
  handleMIDIMessage(statusByte: any, data1: any, data2: any): void | Promise<any>;
207
209
  handleProgramChange(channelNumber: any, program: any): void;
208
- handleChannelPressure(channelNumber: any, value: any): void;
210
+ handleChannelPressure(channelNumber: any, value: any, startTime: any): void;
209
211
  handlePitchBendMessage(channelNumber: any, lsb: any, msb: any): void;
210
212
  setPitchBend(channelNumber: any, value: any): void;
211
- setModLfoToPitch(channel: any, note: any, pressure: any): void;
213
+ setModLfoToPitch(channel: any, note: any): void;
212
214
  setVibLfoToPitch(channel: any, note: any): void;
213
- setModLfoToFilterFc(note: any, pressure: any): void;
214
- setModLfoToVolume(note: any, pressure: any): void;
215
+ setModLfoToFilterFc(channel: any, note: any): void;
216
+ setModLfoToVolume(channel: any, note: any): void;
215
217
  setReverbEffectsSend(channel: any, note: any, prevValue: any): void;
216
218
  setChorusEffectsSend(channel: any, note: any, prevValue: any): void;
217
219
  setDelayModLFO(note: any): void;
@@ -233,12 +235,12 @@ export class MidyGM2 {
233
235
  applyVoiceParams(channel: any, controllerType: any): void;
234
236
  createControlChangeHandlers(): {
235
237
  0: (channelNumber: any, msb: any) => void;
236
- 1: (channelNumber: any, modulation: any) => void;
238
+ 1: (channelNumber: any, modulation: any, scheduleTime: any) => void;
237
239
  5: (channelNumber: any, portamentoTime: any) => void;
238
240
  6: (channelNumber: any, value: any) => void;
239
- 7: (channelNumber: any, volume: any) => void;
240
- 10: (channelNumber: any, pan: any) => void;
241
- 11: (channelNumber: any, expression: any) => void;
241
+ 7: (channelNumber: any, volume: any, scheduleTime: any) => void;
242
+ 10: (channelNumber: any, pan: any, scheduleTime: any) => void;
243
+ 11: (channelNumber: any, expression: any, scheduleTime: any) => void;
242
244
  32: (channelNumber: any, lsb: any) => void;
243
245
  38: (channelNumber: any, value: any) => void;
244
246
  64: (channelNumber: any, value: any) => void;
@@ -257,20 +259,20 @@ export class MidyGM2 {
257
259
  126: () => void;
258
260
  127: () => void;
259
261
  };
260
- handleControlChange(channelNumber: any, controllerType: any, value: any): void;
262
+ handleControlChange(channelNumber: any, controllerType: any, value: any, startTime: any): void;
261
263
  setBankMSB(channelNumber: any, msb: any): void;
262
- updateModulation(channel: any): void;
263
- setModulationDepth(channelNumber: any, modulation: any): void;
264
+ updateModulation(channel: any, scheduleTime: any): void;
265
+ setModulationDepth(channelNumber: any, modulation: any, scheduleTime: any): void;
264
266
  setPortamentoTime(channelNumber: any, portamentoTime: any): void;
265
- setKeyBasedVolume(channel: any): void;
266
- setVolume(channelNumber: any, volume: any): void;
267
+ setKeyBasedVolume(channel: any, scheduleTime: any): void;
268
+ setVolume(channelNumber: any, volume: any, scheduleTime: any): void;
267
269
  panToGain(pan: any): {
268
270
  gainLeft: number;
269
271
  gainRight: number;
270
272
  };
271
- setKeyBasedPan(channel: any): void;
272
- setPan(channelNumber: any, pan: any): void;
273
- setExpression(channelNumber: any, expression: any): void;
273
+ setKeyBasedPan(channel: any, scheduleTime: any): void;
274
+ setPan(channelNumber: any, pan: any, scheduleTime: any): void;
275
+ setExpression(channelNumber: any, expression: any, scheduleTime: any): void;
274
276
  setBankLSB(channelNumber: any, lsb: any): void;
275
277
  dataEntryLSB(channelNumber: any, value: any): void;
276
278
  updateChannelVolume(channel: any): void;
@@ -330,8 +332,13 @@ export class MidyGM2 {
330
332
  setChorusSendToReverb(value: any): void;
331
333
  getChorusSendToReverb(value: any): number;
332
334
  getChannelBitmap(data: any): any[];
333
- handleScaleOctaveTuning1ByteFormatSysEx(data: any): void;
334
- applyDestinationSettings(channel: any, note: any, table: any): void;
335
+ handleScaleOctaveTuning1ByteFormatSysEx(data: any, realtime: any): void;
336
+ getFilterCutoffControl(channel: any): number;
337
+ getAmplitudeControl(channel: any): number;
338
+ getLFOPitchDepth(channel: any): number;
339
+ getLFOFilterDepth(channel: any): number;
340
+ getLFOAmplitudeDepth(channel: any): number;
341
+ setControllerParameters(channel: any, note: any, table: any): void;
335
342
  handleChannelPressureSysEx(data: any, tableName: any): void;
336
343
  initControlTable(): Uint8Array<ArrayBuffer>;
337
344
  applyControlTable(channel: any, controllerType: any): void;
@@ -342,15 +349,29 @@ export class MidyGM2 {
342
349
  handleSysEx(data: any): any;
343
350
  scheduleTask(callback: any, startTime: any): Promise<any>;
344
351
  }
352
+ declare class SparseMap {
353
+ constructor(size: any);
354
+ data: any[];
355
+ activeIndices: any[];
356
+ set(key: any, value: any): void;
357
+ get(key: any): any;
358
+ delete(key: any): boolean;
359
+ has(key: any): boolean;
360
+ get size(): number;
361
+ clear(): void;
362
+ forEach(callback: any): void;
363
+ [Symbol.iterator](): Generator<any[], void, unknown>;
364
+ }
345
365
  declare class Note {
346
366
  constructor(noteNumber: any, velocity: any, startTime: any, voice: any, voiceParams: any);
347
367
  bufferSource: any;
348
368
  filterNode: any;
369
+ filterDepth: any;
349
370
  volumeEnvelopeNode: any;
371
+ volumeDepth: any;
350
372
  volumeNode: any;
351
373
  gainL: any;
352
374
  gainR: any;
353
- volumeDepth: any;
354
375
  modulationLFO: any;
355
376
  modulationDepth: any;
356
377
  vibratoLFO: any;
@@ -1 +1 @@
1
- {"version":3,"file":"midy-GM2.d.ts","sourceRoot":"","sources":["../src/midy-GM2.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"midy-GM2.d.ts","sourceRoot":"","sources":["../src/midy-GM2.js"],"names":[],"mappings":"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"}