@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.
package/script/midy.d.ts CHANGED
@@ -17,7 +17,7 @@ export class Midy extends EventTarget {
17
17
  isMPEMember: boolean;
18
18
  isMPEManager: boolean;
19
19
  };
20
- constructor(audioContext: any);
20
+ constructor(audioContext: any, options?: {});
21
21
  perceptualSmoothingTime: number;
22
22
  mode: string;
23
23
  masterFineTuning: number;
@@ -65,6 +65,13 @@ export class Midy extends EventTarget {
65
65
  instruments: Set<any>;
66
66
  exclusiveClassNotes: any[];
67
67
  drumExclusiveClassNotes: any[];
68
+ adsrVoiceCache: Map<any, any>;
69
+ noteOnDurations: Map<any, any>;
70
+ noteOnEvents: Map<any, any>;
71
+ fullVoiceCache: Map<any, any>;
72
+ renderedAudioBuffer: null;
73
+ isRendering: boolean;
74
+ audioModeBufferSource: null;
68
75
  mpeEnabled: boolean;
69
76
  lowerMPEMembers: number;
70
77
  upperMPEMembers: number;
@@ -72,10 +79,8 @@ export class Midy extends EventTarget {
72
79
  channelToNotes: Map<any, any>;
73
80
  noteToChannel: Map<any, any>;
74
81
  };
75
- decoder: OggVorbisDecoderWebWorker;
76
- decoderReady: Promise<void>;
77
- decoderQueue: Promise<void>;
78
82
  audioContext: any;
83
+ cacheMode: any;
79
84
  masterVolume: any;
80
85
  scheduler: any;
81
86
  schedulerBuffer: any;
@@ -87,7 +92,7 @@ export class Midy extends EventTarget {
87
92
  modLfoToVolume: (channel: any, note: any, scheduleTime: any) => void;
88
93
  chorusEffectsSend: (channel: any, note: any, scheduleTime: any) => void;
89
94
  reverbEffectsSend: (channel: any, note: any, scheduleTime: any) => void;
90
- delayModLFO: (_channel: any, note: any, _scheduleTime: any) => void;
95
+ delayModLFO: (channel: any, note: any, _scheduleTime: any) => void;
91
96
  freqModLFO: (_channel: any, note: any, scheduleTime: any) => void;
92
97
  delayVibLFO: (channel: any, note: any, _scheduleTime: any) => void;
93
98
  freqVibLFO: (channel: any, note: any, scheduleTime: any) => void;
@@ -96,7 +101,7 @@ export class Midy extends EventTarget {
96
101
  controlChangeHandlers: any[];
97
102
  keyBasedControllerHandlers: any[];
98
103
  effectHandlers: any[];
99
- channels: any[];
104
+ channels: Channel[];
100
105
  reverbEffect: {
101
106
  input: any;
102
107
  output: any;
@@ -114,23 +119,24 @@ export class Midy extends EventTarget {
114
119
  toUint8Array(input: any): Promise<Uint8Array<ArrayBuffer>>;
115
120
  loadSoundFont(input: any): Promise<void>;
116
121
  loadMIDI(input: any): Promise<void>;
122
+ buildNoteOnDurations(): void;
117
123
  cacheVoiceIds(): void;
118
- getVoiceId(channel: any, noteNumber: any, velocity: any): any;
124
+ getVoiceId(channel: any, noteNumber: any, velocity: any): number | undefined;
119
125
  createChannelAudioNodes(audioContext: any): {
120
126
  gainL: any;
121
127
  gainR: any;
122
128
  merger: any;
123
129
  };
124
- resetChannelTable(channel: any): void;
125
- createChannels(audioContext: any): any[];
130
+ createChannels(audioContext: any): Channel[];
126
131
  decodeOggVorbis(sample: any): Promise<any>;
127
132
  createAudioBuffer(voiceParams: any): Promise<any>;
128
133
  isLoopDrum(channel: any, noteNumber: any): boolean;
129
- createBufferSource(channel: any, noteNumber: any, voiceParams: any, audioBuffer: any): any;
134
+ createBufferSource(channel: any, noteNumber: any, voiceParams: any, renderedOrRaw: any): any;
130
135
  scheduleTimelineEvents(scheduleTime: any, queueIndex: any): any;
131
136
  getQueueIndex(second: any): number;
132
137
  resetAllStates(): void;
133
138
  updateStates(queueIndex: any, nextQueueIndex: any): void;
139
+ playAudioBuffer(): Promise<void>;
134
140
  playNotes(): Promise<void>;
135
141
  ticksToSecond(ticks: any, secondsPerBeat: any): number;
136
142
  secondToTicks(second: any, secondsPerBeat: any): number;
@@ -142,6 +148,7 @@ export class Midy extends EventTarget {
142
148
  stopActiveNotes(channelNumber: any, velocity: any, force: any, scheduleTime: any): Promise<any[]>;
143
149
  stopChannelNotes(channelNumber: any, velocity: any, force: any, scheduleTime: any): Promise<any[]>;
144
150
  stopNotes(velocity: any, force: any, scheduleTime: any): Promise<any[]>;
151
+ render(): Promise<null | undefined>;
145
152
  start(): Promise<void>;
146
153
  stop(): Promise<void>;
147
154
  pause(): Promise<void>;
@@ -200,14 +207,22 @@ export class Midy extends EventTarget {
200
207
  setFilterEnvelope(channel: any, note: any, scheduleTime: any): void;
201
208
  startModulation(channel: any, note: any, scheduleTime: any): void;
202
209
  startVibrato(channel: any, note: any, scheduleTime: any): void;
203
- getAudioBuffer(channel: any, noteNumber: any, velocity: any, voiceParams: any, realtime: any): Promise<any>;
210
+ createAdsRenderedBuffer(channel: any, note: any, voiceParams: any, audioBuffer: any, isDrum?: boolean): Promise<RenderedBuffer>;
211
+ createAdsrRenderedBuffer(channel: any, note: any, voiceParams: any, audioBuffer: any, noteDuration: any): Promise<RenderedBuffer>;
212
+ createFullRenderedBuffer(channel: any, note: any, voiceParams: any, noteDuration: any, noteEvent?: {}): Promise<RenderedBuffer>;
213
+ getAudioBuffer(channel: any, note: any, realtime: any): Promise<any>;
214
+ getAdsCachedBuffer(channel: any, note: any, audioBufferId: any, realtime: any): Promise<any>;
215
+ getAdsrCachedBuffer(channel: any, note: any, audioBufferId: any): Promise<any>;
216
+ getFullCachedBuffer(note: any, audioBufferId: any): Promise<any>;
204
217
  setNoteAudioNode(channel: any, note: any, realtime: any): Promise<any>;
205
218
  handleExclusiveClass(note: any, channelNumber: any, startTime: any): void;
206
219
  handleDrumExclusiveClass(note: any, channelNumber: any, startTime: any): void;
207
220
  setNoteRouting(channelNumber: any, note: any, startTime: any): void;
208
- noteOn(channelNumber: any, noteNumber: any, velocity: any, startTime: any): Promise<void>;
209
- startNote(channelNumber: any, noteNumber: any, velocity: any, startTime: any): Promise<Note | undefined>;
221
+ noteOn(channelNumber: any, noteNumber: any, velocity: any, startTime: any): Promise<any>;
222
+ createNote(channelNumber: any, noteNumber: any, velocity: any, startTime: any): Note;
223
+ setupNote(channelNumber: any, note: any, startTime: any): Promise<any>;
210
224
  disconnectNote(note: any): void;
225
+ releaseFullCache(note: any): void;
211
226
  releaseNote(channel: any, note: any, endTime: any): Promise<any>;
212
227
  noteOff(channelNumber: any, noteNumber: any, velocity: any, endTime: any, force: any): any;
213
228
  stopNote(channelNumber: any, noteNumber: any, _velocity: any, endTime: any, force: any): any;
@@ -243,7 +258,7 @@ export class Midy extends EventTarget {
243
258
  modLfoToVolume: (channel: any, note: any, scheduleTime: any) => void;
244
259
  chorusEffectsSend: (channel: any, note: any, scheduleTime: any) => void;
245
260
  reverbEffectsSend: (channel: any, note: any, scheduleTime: any) => void;
246
- delayModLFO: (_channel: any, note: any, _scheduleTime: any) => void;
261
+ delayModLFO: (channel: any, note: any, _scheduleTime: any) => void;
247
262
  freqModLFO: (_channel: any, note: any, scheduleTime: any) => void;
248
263
  delayVibLFO: (channel: any, note: any, _scheduleTime: any) => void;
249
264
  freqVibLFO: (channel: any, note: any, scheduleTime: any) => void;
@@ -378,7 +393,48 @@ export class Midy extends EventTarget {
378
393
  handleSysEx(data: any, scheduleTime: any): void;
379
394
  scheduleTask(callback: any, scheduleTime: any): Promise<any>;
380
395
  }
381
- import { OggVorbisDecoderWebWorker } from "@wasm-audio-decoders/ogg-vorbis";
396
+ declare class Channel {
397
+ constructor(audioNodes: any, settings: any);
398
+ isDrum: boolean;
399
+ programNumber: number;
400
+ scheduleIndex: number;
401
+ detune: number;
402
+ bankMSB: number;
403
+ bankLSB: number;
404
+ dataMSB: number;
405
+ dataLSB: number;
406
+ rpnMSB: number;
407
+ rpnLSB: number;
408
+ mono: boolean;
409
+ modulationDepthRange: number;
410
+ fineTuning: number;
411
+ coarseTuning: number;
412
+ scheduledNotes: any[];
413
+ sustainNotes: any[];
414
+ sostenutoNotes: any[];
415
+ controlTable: Int8Array<ArrayBuffer>;
416
+ scaleOctaveTuningTable: Float32Array<ArrayBuffer>;
417
+ channelPressureTable: Int8Array<ArrayBuffer>;
418
+ polyphonicKeyPressureTable: Int8Array<ArrayBuffer>;
419
+ keyBasedTable: Int8Array<ArrayBuffer>;
420
+ keyBasedGainLs: any[];
421
+ keyBasedGainRs: any[];
422
+ currentBufferSource: null;
423
+ state: ControllerState;
424
+ resetSettings(settings: any): void;
425
+ resetTable(): void;
426
+ }
427
+ declare class RenderedBuffer {
428
+ constructor(buffer: any, meta?: {});
429
+ buffer: any;
430
+ isLoop: any;
431
+ isFull: any;
432
+ adsDuration: any;
433
+ loopStart: any;
434
+ loopDuration: any;
435
+ noteDuration: any;
436
+ releaseDuration: any;
437
+ }
382
438
  declare class Note {
383
439
  constructor(noteNumber: any, velocity: any, startTime: any);
384
440
  voice: any;
@@ -387,6 +443,9 @@ declare class Note {
387
443
  index: number;
388
444
  ending: boolean;
389
445
  bufferSource: any;
446
+ timelineIndex: null;
447
+ renderedBuffer: null;
448
+ fullCacheVoiceId: null;
390
449
  filterEnvelopeNode: any;
391
450
  volumeEnvelopeNode: any;
392
451
  volumeNode: any;
@@ -406,5 +465,8 @@ declare class Note {
406
465
  ready: Promise<any>;
407
466
  resolveReady: (value: any) => void;
408
467
  }
468
+ declare class ControllerState {
469
+ array: Float32Array<ArrayBuffer>;
470
+ }
409
471
  export {};
410
472
  //# sourceMappingURL=midy.d.ts.map
@@ -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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"}