@marmooo/midy 0.2.7 → 0.2.9

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/esm/midy-GM2.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  export class MidyGM2 {
2
2
  static channelSettings: {
3
3
  currentBufferSource: null;
4
+ isDrum: boolean;
4
5
  detune: number;
5
6
  program: number;
6
7
  bank: number;
@@ -10,9 +11,10 @@ export class MidyGM2 {
10
11
  dataLSB: number;
11
12
  rpnMSB: number;
12
13
  rpnLSB: number;
14
+ mono: boolean;
15
+ modulationDepthRange: number;
13
16
  fineTuning: number;
14
17
  coarseTuning: number;
15
- modulationDepthRange: number;
16
18
  };
17
19
  constructor(audioContext: any, options?: {
18
20
  reverbAlgorithm: (audioContext: any) => {
@@ -20,6 +22,7 @@ export class MidyGM2 {
20
22
  output: any;
21
23
  };
22
24
  });
25
+ mode: string;
23
26
  ticksPerBeat: number;
24
27
  totalTime: number;
25
28
  masterFineTuning: number;
@@ -35,8 +38,6 @@ export class MidyGM2 {
35
38
  sendToReverb: number;
36
39
  delayTimes: any[];
37
40
  };
38
- mono: boolean;
39
- omni: boolean;
40
41
  noteCheckInterval: number;
41
42
  lookAhead: number;
42
43
  startDelay: number;
@@ -69,6 +70,8 @@ export class MidyGM2 {
69
70
  };
70
71
  };
71
72
  masterVolume: any;
73
+ scheduler: any;
74
+ schedulerBuffer: any;
72
75
  voiceParamsHandlers: {
73
76
  modLfoToPitch: (channel: any, note: any, _prevValue: any, scheduleTime: any) => void;
74
77
  vibLfoToPitch: (channel: any, note: any, _prevValue: any, scheduleTime: any) => void;
@@ -94,7 +97,7 @@ export class MidyGM2 {
94
97
  64: (channelNumber: any, value: any, scheduleTime: any) => void;
95
98
  65: (channelNumber: any, value: any) => void;
96
99
  66: (channelNumber: any, value: any, scheduleTime: any) => void;
97
- 67: (channelNumber: any, softPedal: any, _scheduleTime: any) => void;
100
+ 67: (channelNumber: any, softPedal: any, scheduleTime: any) => void;
98
101
  91: (channelNumber: any, reverbSendLevel: any, scheduleTime: any) => void;
99
102
  93: (channelNumber: any, chorusSendLevel: any, scheduleTime: any) => void;
100
103
  100: (channelNumber: any, value: any) => void;
@@ -102,10 +105,10 @@ export class MidyGM2 {
102
105
  120: (channelNumber: any, _value: any, scheduleTime: any) => Promise<any[]>;
103
106
  121: (channelNumber: any) => void;
104
107
  123: (channelNumber: any, _value: any, scheduleTime: any) => Promise<any[]>;
105
- 124: () => void;
106
- 125: () => void;
107
- 126: () => void;
108
- 127: () => void;
108
+ 124: (channelNumber: any, value: any, scheduleTime: any) => void;
109
+ 125: (channelNumber: any, value: any, scheduleTime: any) => void;
110
+ 126: (channelNumber: any, value: any, scheduleTime: any) => void;
111
+ 127: (channelNumber: any, value: any, scheduleTime: any) => void;
109
112
  };
110
113
  channels: any[];
111
114
  reverbEffect: {
@@ -132,7 +135,8 @@ export class MidyGM2 {
132
135
  };
133
136
  createChannels(audioContext: any): any[];
134
137
  createNoteBuffer(voiceParams: any, isSF3: any): Promise<any>;
135
- createNoteBufferNode(audioBuffer: any, voiceParams: any): any;
138
+ calcLoopMode(channel: any, note: any, voiceParams: any): boolean;
139
+ createBufferSource(channel: any, note: any, voiceParams: any, audioBuffer: any): any;
136
140
  findPortamentoTarget(queueIndex: any): any;
137
141
  scheduleTimelineEvents(t: any, offset: any, queueIndex: any): Promise<any>;
138
142
  getQueueIndex(second: any): number;
@@ -153,7 +157,7 @@ export class MidyGM2 {
153
157
  seekTo(second: any): void;
154
158
  calcTotalTime(): number;
155
159
  currentTime(): number;
156
- processScheduledNotes(channel: any, scheduleTime: any, callback: any): void;
160
+ processScheduledNotes(channel: any, callback: any): void;
157
161
  getActiveNotes(channel: any, scheduleTime: any): SparseMap;
158
162
  getActiveNote(noteList: any, scheduleTime: any): any;
159
163
  createConvolutionReverbImpulse(audioContext: any, decay: any, preDecay: any): any;
@@ -197,14 +201,14 @@ export class MidyGM2 {
197
201
  startVibrato(channel: any, note: any, scheduleTime: any): void;
198
202
  getAudioBuffer(program: any, noteNumber: any, velocity: any, voiceParams: any, isSF3: any): Promise<any>;
199
203
  createNote(channel: any, voice: any, noteNumber: any, velocity: any, startTime: any, portamento: any, isSF3: any): Promise<Note>;
200
- calcBank(channel: any, channelNumber: any): any;
204
+ calcBank(channel: any): any;
201
205
  scheduleNoteOn(channelNumber: any, noteNumber: any, velocity: any, startTime: any, portamento: any): Promise<void>;
202
206
  noteOn(channelNumber: any, noteNumber: any, velocity: any, scheduleTime: any): Promise<void>;
203
207
  stopNote(endTime: any, stopTime: any, scheduledNotes: any, index: any): Promise<any>;
204
208
  scheduleNoteOff(channelNumber: any, noteNumber: any, _velocity: any, endTime: any, force: any, portamentoNoteNumber: any): Promise<any> | undefined;
205
209
  noteOff(channelNumber: any, noteNumber: any, velocity: any, scheduleTime: any): Promise<any> | undefined;
206
- releaseSustainPedal(channelNumber: any, halfVelocity: any, scheduleTime: any): any[];
207
- releaseSostenutoPedal(channelNumber: any, halfVelocity: any): any[];
210
+ releaseSustainPedal(channelNumber: any, halfVelocity: any, scheduleTime: any): (Promise<any> | undefined)[];
211
+ releaseSostenutoPedal(channelNumber: any, halfVelocity: any, scheduleTime: any): any[];
208
212
  handleMIDIMessage(statusByte: any, data1: any, data2: any, scheduleTime: any): void | Promise<any>;
209
213
  handleProgramChange(channelNumber: any, program: any, _scheduleTime: any): void;
210
214
  handleChannelPressure(channelNumber: any, value: any, scheduleTime: any): void;
@@ -246,7 +250,7 @@ export class MidyGM2 {
246
250
  64: (channelNumber: any, value: any, scheduleTime: any) => void;
247
251
  65: (channelNumber: any, value: any) => void;
248
252
  66: (channelNumber: any, value: any, scheduleTime: any) => void;
249
- 67: (channelNumber: any, softPedal: any, _scheduleTime: any) => void;
253
+ 67: (channelNumber: any, softPedal: any, scheduleTime: any) => void;
250
254
  91: (channelNumber: any, reverbSendLevel: any, scheduleTime: any) => void;
251
255
  93: (channelNumber: any, chorusSendLevel: any, scheduleTime: any) => void;
252
256
  100: (channelNumber: any, value: any) => void;
@@ -254,10 +258,10 @@ export class MidyGM2 {
254
258
  120: (channelNumber: any, _value: any, scheduleTime: any) => Promise<any[]>;
255
259
  121: (channelNumber: any) => void;
256
260
  123: (channelNumber: any, _value: any, scheduleTime: any) => Promise<any[]>;
257
- 124: () => void;
258
- 125: () => void;
259
- 126: () => void;
260
- 127: () => void;
261
+ 124: (channelNumber: any, value: any, scheduleTime: any) => void;
262
+ 125: (channelNumber: any, value: any, scheduleTime: any) => void;
263
+ 126: (channelNumber: any, value: any, scheduleTime: any) => void;
264
+ 127: (channelNumber: any, value: any, scheduleTime: any) => void;
261
265
  };
262
266
  handleControlChange(channelNumber: any, controllerType: any, value: any, scheduleTime: any): void;
263
267
  setBankMSB(channelNumber: any, msb: any): void;
@@ -279,7 +283,7 @@ export class MidyGM2 {
279
283
  setSustainPedal(channelNumber: any, value: any, scheduleTime: any): void;
280
284
  setPortamento(channelNumber: any, value: any): void;
281
285
  setSostenutoPedal(channelNumber: any, value: any, scheduleTime: any): void;
282
- setSoftPedal(channelNumber: any, softPedal: any, _scheduleTime: any): void;
286
+ setSoftPedal(channelNumber: any, softPedal: any, scheduleTime: any): void;
283
287
  setReverbSendLevel(channelNumber: any, reverbSendLevel: any, scheduleTime: any): void;
284
288
  setChorusSendLevel(channelNumber: any, chorusSendLevel: any, scheduleTime: any): void;
285
289
  limitData(channel: any, minMSB: any, maxMSB: any, minLSB: any, maxLSB: any): void;
@@ -290,22 +294,22 @@ export class MidyGM2 {
290
294
  dataEntryMSB(channelNumber: any, value: any, scheduleTime: any): void;
291
295
  handlePitchBendRangeRPN(channelNumber: any, scheduleTime: any): void;
292
296
  setPitchBendRange(channelNumber: any, value: any, scheduleTime: any): void;
293
- handleFineTuningRPN(channelNumber: any): void;
294
- setFineTuning(channelNumber: any, value: any): void;
295
- handleCoarseTuningRPN(channelNumber: any): void;
296
- setCoarseTuning(channelNumber: any, value: any): void;
297
- handleModulationDepthRangeRPN(channelNumber: any): void;
298
- setModulationDepthRange(channelNumber: any, modulationDepthRange: any): void;
297
+ handleFineTuningRPN(channelNumber: any, scheduleTime: any): void;
298
+ setFineTuning(channelNumber: any, value: any, scheduleTime: any): void;
299
+ handleCoarseTuningRPN(channelNumber: any, scheduleTime: any): void;
300
+ setCoarseTuning(channelNumber: any, value: any, scheduleTime: any): void;
301
+ handleModulationDepthRangeRPN(channelNumber: any, scheduleTime: any): void;
302
+ setModulationDepthRange(channelNumber: any, modulationDepthRange: any, scheduleTime: any): void;
299
303
  allSoundOff(channelNumber: any, _value: any, scheduleTime: any): Promise<any[]>;
300
304
  resetAllControllers(channelNumber: any): void;
301
305
  allNotesOff(channelNumber: any, _value: any, scheduleTime: any): Promise<any[]>;
302
- omniOff(): void;
303
- omniOn(): void;
304
- monoOn(): void;
305
- polyOn(): void;
306
+ omniOff(channelNumber: any, value: any, scheduleTime: any): void;
307
+ omniOn(channelNumber: any, value: any, scheduleTime: any): void;
308
+ monoOn(channelNumber: any, value: any, scheduleTime: any): void;
309
+ polyOn(channelNumber: any, value: any, scheduleTime: any): void;
306
310
  handleUniversalNonRealTimeExclusiveMessage(data: any, scheduleTime: any): void;
307
- GM1SystemOn(): void;
308
- GM2SystemOn(): void;
311
+ GM1SystemOn(scheduleTime: any): void;
312
+ GM2SystemOn(scheduleTime: any): void;
309
313
  handleUniversalRealTimeExclusiveMessage(data: any, scheduleTime: any): void;
310
314
  handleMasterVolumeSysEx(data: any, scheduleTime: any): void;
311
315
  setMasterVolume(volume: any, scheduleTime: any): void;
@@ -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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"}