@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.
package/script/midy.d.ts CHANGED
@@ -2,10 +2,6 @@ export class Midy {
2
2
  static channelSettings: {
3
3
  currentBufferSource: null;
4
4
  detune: number;
5
- scaleOctaveTuningTable: any[];
6
- channelPressureTable: Uint8Array<ArrayBuffer>;
7
- polyphonicKeyPressureTable: Uint8Array<ArrayBuffer>;
8
- keyBasedInstrumentControlTable: Int8Array<ArrayBuffer>;
9
5
  program: number;
10
6
  bank: number;
11
7
  bankMSB: number;
@@ -48,6 +44,8 @@ export class Midy {
48
44
  resumeTime: number;
49
45
  soundFonts: any[];
50
46
  soundFontTable: any[];
47
+ audioBufferCounter: Map<any, any>;
48
+ audioBufferCache: Map<any, any>;
51
49
  isPlaying: boolean;
52
50
  isPausing: boolean;
53
51
  isPaused: boolean;
@@ -56,7 +54,7 @@ export class Midy {
56
54
  timeline: any[];
57
55
  instruments: any[];
58
56
  notePromises: any[];
59
- exclusiveClassMap: Map<any, any>;
57
+ exclusiveClassMap: SparseMap;
60
58
  defaultOptions: {
61
59
  reverbAlgorithm: (audioContext: any) => {
62
60
  input: any;
@@ -85,12 +83,12 @@ export class Midy {
85
83
  };
86
84
  controlChangeHandlers: {
87
85
  0: (channelNumber: any, msb: any) => void;
88
- 1: (channelNumber: any, modulation: any) => void;
86
+ 1: (channelNumber: any, modulation: any, scheduleTime: any) => void;
89
87
  5: (channelNumber: any, portamentoTime: any) => void;
90
88
  6: (channelNumber: any, value: any) => void;
91
- 7: (channelNumber: any, volume: any) => void;
92
- 10: (channelNumber: any, pan: any) => void;
93
- 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;
94
92
  32: (channelNumber: any, lsb: any) => void;
95
93
  38: (channelNumber: any, value: any) => void;
96
94
  64: (channelNumber: any, value: any) => void;
@@ -144,13 +142,14 @@ export class Midy {
144
142
  };
145
143
  createChannels(audioContext: any): any[];
146
144
  createNoteBuffer(voiceParams: any, isSF3: any): Promise<any>;
147
- createNoteBufferNode(voiceParams: any, isSF3: any): Promise<any>;
145
+ createNoteBufferNode(audioBuffer: any, voiceParams: any): any;
148
146
  findPortamentoTarget(queueIndex: any): any;
149
147
  scheduleTimelineEvents(t: any, offset: any, queueIndex: any): Promise<any>;
150
148
  getQueueIndex(second: any): number;
151
149
  playNotes(): Promise<any>;
152
150
  ticksToSecond(ticks: any, secondsPerBeat: any): number;
153
151
  secondToTicks(second: any, secondsPerBeat: any): number;
152
+ getAudioBufferId(programNumber: any, noteNumber: any, velocity: any): string;
154
153
  extractMidiData(midi: any): {
155
154
  instruments: Set<any>;
156
155
  timeline: any[];
@@ -164,7 +163,8 @@ export class Midy {
164
163
  seekTo(second: any): void;
165
164
  calcTotalTime(): number;
166
165
  currentTime(): number;
167
- getActiveNotes(channel: any, time: any): Map<any, any>;
166
+ processScheduledNotes(channel: any, scheduleTime: any, callback: any): void;
167
+ getActiveNotes(channel: any, time: any): SparseMap;
168
168
  getActiveNote(noteList: any, time: any): any;
169
169
  createConvolutionReverbImpulse(audioContext: any, decay: any, preDecay: any): any;
170
170
  createConvolutionReverb(audioContext: any, impulse: any): {
@@ -195,16 +195,17 @@ export class Midy {
195
195
  calcChannelDetune(channel: any): any;
196
196
  calcNoteDetune(channel: any, note: any): any;
197
197
  updateChannelDetune(channel: any): void;
198
- updateDetune(channel: any, note: any, pressure: any): void;
198
+ updateDetune(channel: any, note: any): void;
199
199
  getPortamentoTime(channel: any): number;
200
200
  setPortamentoStartVolumeEnvelope(channel: any, note: any): void;
201
- setVolumeEnvelope(channel: any, note: any, pressure: any): void;
202
- setPitchEnvelope(note: any): void;
201
+ setVolumeEnvelope(channel: any, note: any): void;
202
+ setPitchEnvelope(note: any, scheduleTime: any): void;
203
203
  clampCutoffFrequency(frequency: any): number;
204
204
  setPortamentoStartFilterEnvelope(channel: any, note: any): void;
205
- setFilterEnvelope(channel: any, note: any, pressure: any): void;
205
+ setFilterEnvelope(channel: any, note: any): void;
206
206
  startModulation(channel: any, note: any, startTime: any): void;
207
207
  startVibrato(channel: any, note: any, startTime: any): void;
208
+ getAudioBuffer(program: any, noteNumber: any, velocity: any, voiceParams: any, isSF3: any): Promise<any>;
208
209
  createNote(channel: any, voice: any, noteNumber: any, velocity: any, startTime: any, portamento: any, isSF3: any): Promise<Note>;
209
210
  calcBank(channel: any, channelNumber: any): any;
210
211
  scheduleNoteOn(channelNumber: any, noteNumber: any, velocity: any, startTime: any, portamento: any): Promise<void>;
@@ -215,15 +216,15 @@ export class Midy {
215
216
  releaseSustainPedal(channelNumber: any, halfVelocity: any): any[];
216
217
  releaseSostenutoPedal(channelNumber: any, halfVelocity: any): any[];
217
218
  handleMIDIMessage(statusByte: any, data1: any, data2: any): void | Promise<any>;
218
- handlePolyphonicKeyPressure(channelNumber: any, noteNumber: any, pressure: any): void;
219
+ handlePolyphonicKeyPressure(channelNumber: any, noteNumber: any, pressure: any, startTime: any): void;
219
220
  handleProgramChange(channelNumber: any, program: any): void;
220
- handleChannelPressure(channelNumber: any, value: any): void;
221
+ handleChannelPressure(channelNumber: any, value: any, startTime: any): void;
221
222
  handlePitchBendMessage(channelNumber: any, lsb: any, msb: any): void;
222
223
  setPitchBend(channelNumber: any, value: any): void;
223
- setModLfoToPitch(channel: any, note: any, pressure: any): void;
224
+ setModLfoToPitch(channel: any, note: any): void;
224
225
  setVibLfoToPitch(channel: any, note: any): void;
225
- setModLfoToFilterFc(note: any, pressure: any): void;
226
- setModLfoToVolume(note: any, pressure: any): void;
226
+ setModLfoToFilterFc(channel: any, note: any): void;
227
+ setModLfoToVolume(channel: any, note: any): void;
227
228
  setReverbEffectsSend(channel: any, note: any, prevValue: any): void;
228
229
  setChorusEffectsSend(channel: any, note: any, prevValue: any): void;
229
230
  setDelayModLFO(note: any): void;
@@ -245,12 +246,12 @@ export class Midy {
245
246
  applyVoiceParams(channel: any, controllerType: any): void;
246
247
  createControlChangeHandlers(): {
247
248
  0: (channelNumber: any, msb: any) => void;
248
- 1: (channelNumber: any, modulation: any) => void;
249
+ 1: (channelNumber: any, modulation: any, scheduleTime: any) => void;
249
250
  5: (channelNumber: any, portamentoTime: any) => void;
250
251
  6: (channelNumber: any, value: any) => void;
251
- 7: (channelNumber: any, volume: any) => void;
252
- 10: (channelNumber: any, pan: any) => void;
253
- 11: (channelNumber: any, expression: any) => void;
252
+ 7: (channelNumber: any, volume: any, scheduleTime: any) => void;
253
+ 10: (channelNumber: any, pan: any, scheduleTime: any) => void;
254
+ 11: (channelNumber: any, expression: any, scheduleTime: any) => void;
254
255
  32: (channelNumber: any, lsb: any) => void;
255
256
  38: (channelNumber: any, value: any) => void;
256
257
  64: (channelNumber: any, value: any) => void;
@@ -279,20 +280,20 @@ export class Midy {
279
280
  126: () => void;
280
281
  127: () => void;
281
282
  };
282
- handleControlChange(channelNumber: any, controllerType: any, value: any): void;
283
+ handleControlChange(channelNumber: any, controllerType: any, value: any, startTime: any): void;
283
284
  setBankMSB(channelNumber: any, msb: any): void;
284
- updateModulation(channel: any): void;
285
- setModulationDepth(channelNumber: any, modulation: any): void;
285
+ updateModulation(channel: any, scheduleTime: any): void;
286
+ setModulationDepth(channelNumber: any, modulation: any, scheduleTime: any): void;
286
287
  setPortamentoTime(channelNumber: any, portamentoTime: any): void;
287
- setKeyBasedVolume(channel: any): void;
288
- setVolume(channelNumber: any, volume: any): void;
288
+ setKeyBasedVolume(channel: any, scheduleTime: any): void;
289
+ setVolume(channelNumber: any, volume: any, scheduleTime: any): void;
289
290
  panToGain(pan: any): {
290
291
  gainLeft: number;
291
292
  gainRight: number;
292
293
  };
293
- setKeyBasedPan(channel: any): void;
294
- setPan(channelNumber: any, pan: any): void;
295
- setExpression(channelNumber: any, expression: any): void;
294
+ setKeyBasedPan(channel: any, scheduleTime: any): void;
295
+ setPan(channelNumber: any, pan: any, scheduleTime: any): void;
296
+ setExpression(channelNumber: any, expression: any, scheduleTime: any): void;
296
297
  setBankLSB(channelNumber: any, lsb: any): void;
297
298
  dataEntryLSB(channelNumber: any, value: any): void;
298
299
  updateChannelVolume(channel: any): void;
@@ -362,8 +363,15 @@ export class Midy {
362
363
  setChorusSendToReverb(value: any): void;
363
364
  getChorusSendToReverb(value: any): number;
364
365
  getChannelBitmap(data: any): any[];
365
- handleScaleOctaveTuning1ByteFormatSysEx(data: any): void;
366
- applyDestinationSettings(channel: any, note: any, table: any): void;
366
+ handleScaleOctaveTuning1ByteFormatSysEx(data: any, realtime: any): void;
367
+ handleScaleOctaveTuning2ByteFormatSysEx(data: any, realtime: any): void;
368
+ getPitchControl(channel: any, note: any): number;
369
+ getFilterCutoffControl(channel: any, note: any): number;
370
+ getAmplitudeControl(channel: any, note: any): number;
371
+ getLFOPitchDepth(channel: any, note: any): number;
372
+ getLFOFilterDepth(channel: any, note: any): number;
373
+ getLFOAmplitudeDepth(channel: any, note: any): number;
374
+ setControllerParameters(channel: any, note: any, table: any): void;
367
375
  handleChannelPressureSysEx(data: any, tableName: any): void;
368
376
  initControlTable(): Uint8Array<ArrayBuffer>;
369
377
  applyControlTable(channel: any, controllerType: any): void;
@@ -374,15 +382,29 @@ export class Midy {
374
382
  handleSysEx(data: any): any;
375
383
  scheduleTask(callback: any, startTime: any): Promise<any>;
376
384
  }
385
+ declare class SparseMap {
386
+ constructor(size: any);
387
+ data: any[];
388
+ activeIndices: any[];
389
+ set(key: any, value: any): void;
390
+ get(key: any): any;
391
+ delete(key: any): boolean;
392
+ has(key: any): boolean;
393
+ get size(): number;
394
+ clear(): void;
395
+ forEach(callback: any): void;
396
+ [Symbol.iterator](): Generator<any[], void, unknown>;
397
+ }
377
398
  declare class Note {
378
399
  constructor(noteNumber: any, velocity: any, startTime: any, voice: any, voiceParams: any);
379
400
  bufferSource: any;
380
401
  filterNode: any;
402
+ filterDepth: any;
381
403
  volumeEnvelopeNode: any;
404
+ volumeDepth: any;
382
405
  volumeNode: any;
383
406
  gainL: any;
384
407
  gainR: any;
385
- volumeDepth: any;
386
408
  modulationLFO: any;
387
409
  modulationDepth: any;
388
410
  vibratoLFO: any;
@@ -1 +1 @@
1
- {"version":3,"file":"midy.d.ts","sourceRoot":"","sources":["../src/midy.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"midy.d.ts","sourceRoot":"","sources":["../src/midy.js"],"names":[],"mappings":"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"}