@marmooo/midy 0.3.7 → 0.3.8
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/README.md +31 -11
- package/esm/midy-GM1.d.ts +9 -6
- package/esm/midy-GM1.d.ts.map +1 -1
- package/esm/midy-GM1.js +67 -57
- package/esm/midy-GM2.d.ts +13 -7
- package/esm/midy-GM2.d.ts.map +1 -1
- package/esm/midy-GM2.js +147 -154
- package/esm/midy-GMLite.d.ts +8 -6
- package/esm/midy-GMLite.d.ts.map +1 -1
- package/esm/midy-GMLite.js +68 -59
- package/esm/midy.d.ts +13 -7
- package/esm/midy.d.ts.map +1 -1
- package/esm/midy.js +208 -226
- package/package.json +2 -2
- package/script/midy-GM1.d.ts +9 -6
- package/script/midy-GM1.d.ts.map +1 -1
- package/script/midy-GM1.js +67 -57
- package/script/midy-GM2.d.ts +13 -7
- package/script/midy-GM2.d.ts.map +1 -1
- package/script/midy-GM2.js +147 -154
- package/script/midy-GMLite.d.ts +8 -6
- package/script/midy-GMLite.d.ts.map +1 -1
- package/script/midy-GMLite.js +68 -59
- package/script/midy.d.ts +13 -7
- package/script/midy.d.ts.map +1 -1
- package/script/midy.js +208 -226
package/script/midy-GMLite.js
CHANGED
|
@@ -216,7 +216,7 @@ class MidyGMLite {
|
|
|
216
216
|
enumerable: true,
|
|
217
217
|
configurable: true,
|
|
218
218
|
writable: true,
|
|
219
|
-
value:
|
|
219
|
+
value: Array.from({ length: 128 }, () => [])
|
|
220
220
|
});
|
|
221
221
|
Object.defineProperty(this, "voiceCounter", {
|
|
222
222
|
enumerable: true,
|
|
@@ -303,6 +303,7 @@ class MidyGMLite {
|
|
|
303
303
|
length: 1,
|
|
304
304
|
sampleRate: audioContext.sampleRate,
|
|
305
305
|
});
|
|
306
|
+
this.messageHandlers = this.createMessageHandlers();
|
|
306
307
|
this.voiceParamsHandlers = this.createVoiceParamsHandlers();
|
|
307
308
|
this.controlChangeHandlers = this.createControlChangeHandlers();
|
|
308
309
|
this.channels = this.createChannels(audioContext);
|
|
@@ -310,21 +311,14 @@ class MidyGMLite {
|
|
|
310
311
|
this.scheduler.connect(audioContext.destination);
|
|
311
312
|
this.GM1SystemOn();
|
|
312
313
|
}
|
|
313
|
-
initSoundFontTable() {
|
|
314
|
-
const table = new Array(128);
|
|
315
|
-
for (let i = 0; i < 128; i++) {
|
|
316
|
-
table[i] = new Map();
|
|
317
|
-
}
|
|
318
|
-
return table;
|
|
319
|
-
}
|
|
320
314
|
addSoundFont(soundFont) {
|
|
321
315
|
const index = this.soundFonts.length;
|
|
322
316
|
this.soundFonts.push(soundFont);
|
|
323
317
|
const presetHeaders = soundFont.parsed.presetHeaders;
|
|
318
|
+
const soundFontTable = this.soundFontTable;
|
|
324
319
|
for (let i = 0; i < presetHeaders.length; i++) {
|
|
325
|
-
const
|
|
326
|
-
|
|
327
|
-
banks.set(presetHeader.bank, index);
|
|
320
|
+
const { preset, bank } = presetHeaders[i];
|
|
321
|
+
soundFontTable[preset][bank] = index;
|
|
328
322
|
}
|
|
329
323
|
}
|
|
330
324
|
async toUint8Array(input) {
|
|
@@ -402,13 +396,16 @@ class MidyGMLite {
|
|
|
402
396
|
this.GM1SystemOn();
|
|
403
397
|
}
|
|
404
398
|
getVoiceId(channel, noteNumber, velocity) {
|
|
405
|
-
const
|
|
406
|
-
const
|
|
407
|
-
|
|
399
|
+
const programNumber = channel.programNumber;
|
|
400
|
+
const bankTable = this.soundFontTable[programNumber];
|
|
401
|
+
if (!bankTable)
|
|
402
|
+
return;
|
|
403
|
+
const bank = channel.isDrum ? 128 : 0;
|
|
404
|
+
const soundFontIndex = bankTable[bank];
|
|
408
405
|
if (soundFontIndex === undefined)
|
|
409
406
|
return;
|
|
410
407
|
const soundFont = this.soundFonts[soundFontIndex];
|
|
411
|
-
const voice = soundFont.getVoice(
|
|
408
|
+
const voice = soundFont.getVoice(bank, programNumber, noteNumber, velocity);
|
|
412
409
|
const { instrument, sampleID } = voice.generators;
|
|
413
410
|
return soundFontIndex * (2 ** 32) + (instrument << 16) + sampleID;
|
|
414
411
|
}
|
|
@@ -459,13 +456,16 @@ class MidyGMLite {
|
|
|
459
456
|
}
|
|
460
457
|
return bufferSource;
|
|
461
458
|
}
|
|
462
|
-
async scheduleTimelineEvents(
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
459
|
+
async scheduleTimelineEvents(scheduleTime, queueIndex) {
|
|
460
|
+
const timeOffset = this.resumeTime - this.startTime;
|
|
461
|
+
const lookAheadCheckTime = scheduleTime + timeOffset + this.lookAhead;
|
|
462
|
+
const schedulingOffset = this.startDelay - timeOffset;
|
|
463
|
+
const timeline = this.timeline;
|
|
464
|
+
while (queueIndex < timeline.length) {
|
|
465
|
+
const event = timeline[queueIndex];
|
|
466
|
+
if (lookAheadCheckTime < event.startTime)
|
|
466
467
|
break;
|
|
467
|
-
const
|
|
468
|
-
const startTime = event.startTime + delay;
|
|
468
|
+
const startTime = event.startTime + schedulingOffset;
|
|
469
469
|
switch (event.type) {
|
|
470
470
|
case "noteOn":
|
|
471
471
|
await this.scheduleNoteOn(event.channel, event.noteNumber, event.velocity, startTime);
|
|
@@ -537,13 +537,11 @@ class MidyGMLite {
|
|
|
537
537
|
this.isPaused = false;
|
|
538
538
|
this.startTime = this.audioContext.currentTime;
|
|
539
539
|
let queueIndex = this.getQueueIndex(this.resumeTime);
|
|
540
|
-
let resumeTime = this.resumeTime - this.startTime;
|
|
541
540
|
let finished = false;
|
|
542
541
|
this.notePromises = [];
|
|
543
542
|
while (queueIndex < this.timeline.length) {
|
|
544
543
|
const now = this.audioContext.currentTime;
|
|
545
|
-
|
|
546
|
-
queueIndex = await this.scheduleTimelineEvents(t, resumeTime, queueIndex);
|
|
544
|
+
queueIndex = await this.scheduleTimelineEvents(now, queueIndex);
|
|
547
545
|
if (this.isPausing) {
|
|
548
546
|
await this.stopNotes(0, true, now);
|
|
549
547
|
await this.audioContext.suspend();
|
|
@@ -562,7 +560,6 @@ class MidyGMLite {
|
|
|
562
560
|
const nextQueueIndex = this.getQueueIndex(this.resumeTime);
|
|
563
561
|
this.updateStates(queueIndex, nextQueueIndex);
|
|
564
562
|
queueIndex = nextQueueIndex;
|
|
565
|
-
resumeTime = this.resumeTime - this.startTime;
|
|
566
563
|
this.isSeeking = false;
|
|
567
564
|
continue;
|
|
568
565
|
}
|
|
@@ -581,16 +578,16 @@ class MidyGMLite {
|
|
|
581
578
|
secondToTicks(second, secondsPerBeat) {
|
|
582
579
|
return second * this.ticksPerBeat / secondsPerBeat;
|
|
583
580
|
}
|
|
581
|
+
getSoundFontId(channel) {
|
|
582
|
+
const programNumber = channel.programNumber;
|
|
583
|
+
const bank = channel.isDrum ? "128" : "000";
|
|
584
|
+
const program = programNumber.toString().padStart(3, "0");
|
|
585
|
+
return `${bank}:${program}`;
|
|
586
|
+
}
|
|
584
587
|
extractMidiData(midi) {
|
|
585
588
|
const instruments = new Set();
|
|
586
589
|
const timeline = [];
|
|
587
|
-
const
|
|
588
|
-
for (let i = 0; i < tmpChannels.length; i++) {
|
|
589
|
-
tmpChannels[i] = {
|
|
590
|
-
programNumber: -1,
|
|
591
|
-
bank: this.channels[i].bank,
|
|
592
|
-
};
|
|
593
|
-
}
|
|
590
|
+
const channels = this.channels;
|
|
594
591
|
for (let i = 0; i < midi.tracks.length; i++) {
|
|
595
592
|
const track = midi.tracks[i];
|
|
596
593
|
let currentTicks = 0;
|
|
@@ -600,17 +597,15 @@ class MidyGMLite {
|
|
|
600
597
|
event.ticks = currentTicks;
|
|
601
598
|
switch (event.type) {
|
|
602
599
|
case "noteOn": {
|
|
603
|
-
const channel =
|
|
604
|
-
|
|
605
|
-
instruments.add(`${channel.bank}:0`);
|
|
606
|
-
channel.programNumber = 0;
|
|
607
|
-
}
|
|
600
|
+
const channel = channels[event.channel];
|
|
601
|
+
instruments.add(this.getSoundFontId(channel));
|
|
608
602
|
break;
|
|
609
603
|
}
|
|
610
604
|
case "programChange": {
|
|
611
|
-
const channel =
|
|
612
|
-
channel
|
|
613
|
-
instruments.add(
|
|
605
|
+
const channel = channels[event.channel];
|
|
606
|
+
this.setProgramChange(event.channel, event.programNumber);
|
|
607
|
+
instruments.add(this.getSoundFontId(channel));
|
|
608
|
+
break;
|
|
614
609
|
}
|
|
615
610
|
}
|
|
616
611
|
delete event.deltaTime;
|
|
@@ -880,7 +875,7 @@ class MidyGMLite {
|
|
|
880
875
|
const voiceParams = voice.getAllParams(controllerState);
|
|
881
876
|
const note = new Note(noteNumber, velocity, startTime, voice, voiceParams);
|
|
882
877
|
const audioBuffer = await this.getAudioBuffer(channel, noteNumber, velocity, voiceParams);
|
|
883
|
-
note.bufferSource = this.createBufferSource(voiceParams, audioBuffer);
|
|
878
|
+
note.bufferSource = this.createBufferSource(channel, voiceParams, audioBuffer);
|
|
884
879
|
note.volumeEnvelopeNode = new GainNode(this.audioContext);
|
|
885
880
|
note.filterNode = new BiquadFilterNode(this.audioContext, {
|
|
886
881
|
type: "lowpass",
|
|
@@ -916,7 +911,7 @@ class MidyGMLite {
|
|
|
916
911
|
const channel = this.channels[channelNumber];
|
|
917
912
|
if (!channel.isDrum)
|
|
918
913
|
return;
|
|
919
|
-
const drumExclusiveClass = drumExclusiveClasses[noteNumber];
|
|
914
|
+
const drumExclusiveClass = drumExclusiveClasses[note.noteNumber];
|
|
920
915
|
if (drumExclusiveClass === 0)
|
|
921
916
|
return;
|
|
922
917
|
const index = drumExclusiveClass * this.channels.length + channelNumber;
|
|
@@ -929,13 +924,16 @@ class MidyGMLite {
|
|
|
929
924
|
}
|
|
930
925
|
async scheduleNoteOn(channelNumber, noteNumber, velocity, startTime) {
|
|
931
926
|
const channel = this.channels[channelNumber];
|
|
932
|
-
const
|
|
933
|
-
const
|
|
934
|
-
|
|
927
|
+
const programNumber = channel.programNumber;
|
|
928
|
+
const bankTable = this.soundFontTable[programNumber];
|
|
929
|
+
if (!bankTable)
|
|
930
|
+
return;
|
|
931
|
+
const bank = channel.isDrum ? 128 : 0;
|
|
932
|
+
const soundFontIndex = bankTable[bank];
|
|
935
933
|
if (soundFontIndex === undefined)
|
|
936
934
|
return;
|
|
937
935
|
const soundFont = this.soundFonts[soundFontIndex];
|
|
938
|
-
const voice = soundFont.getVoice(
|
|
936
|
+
const voice = soundFont.getVoice(bank, programNumber, noteNumber, velocity);
|
|
939
937
|
if (!voice)
|
|
940
938
|
return;
|
|
941
939
|
const note = await this.createNote(channel, voice, noteNumber, velocity, startTime);
|
|
@@ -1042,7 +1040,26 @@ class MidyGMLite {
|
|
|
1042
1040
|
channel.sustainNotes = [];
|
|
1043
1041
|
return promises;
|
|
1044
1042
|
}
|
|
1045
|
-
|
|
1043
|
+
createMessageHandlers() {
|
|
1044
|
+
const handlers = new Array(256);
|
|
1045
|
+
// Channel Message
|
|
1046
|
+
handlers[0x80] = (data, scheduleTime) => this.noteOff(data[0] & 0x0F, data[1], data[2], scheduleTime);
|
|
1047
|
+
handlers[0x90] = (data, scheduleTime) => this.noteOn(data[0] & 0x0F, data[1], data[2], scheduleTime);
|
|
1048
|
+
handlers[0xB0] = (data, scheduleTime) => this.setControlChange(data[0] & 0x0F, data[1], data[2], scheduleTime);
|
|
1049
|
+
handlers[0xC0] = (data, scheduleTime) => this.setProgramChange(data[0] & 0x0F, data[1], scheduleTime);
|
|
1050
|
+
handlers[0xE0] = (data, scheduleTime) => this.handlePitchBendMessage(data[0] & 0x0F, data[1], data[2], scheduleTime);
|
|
1051
|
+
return handlers;
|
|
1052
|
+
}
|
|
1053
|
+
handleMessage(data, scheduleTime) {
|
|
1054
|
+
const status = data[0];
|
|
1055
|
+
if (status === 0xF0) {
|
|
1056
|
+
return this.handleSysEx(data.subarray(1), scheduleTime);
|
|
1057
|
+
}
|
|
1058
|
+
const handler = this.messageHandlers[status];
|
|
1059
|
+
if (handler)
|
|
1060
|
+
handler(data, scheduleTime);
|
|
1061
|
+
}
|
|
1062
|
+
handleChannelMessage(statusByte, data1, data2, scheduleTime) {
|
|
1046
1063
|
const channelNumber = statusByte & 0x0F;
|
|
1047
1064
|
const messageType = statusByte & 0xF0;
|
|
1048
1065
|
switch (messageType) {
|
|
@@ -1425,10 +1442,8 @@ class MidyGMLite {
|
|
|
1425
1442
|
for (let i = 0; i < this.channels.length; i++) {
|
|
1426
1443
|
this.allSoundOff(i, 0, scheduleTime);
|
|
1427
1444
|
const channel = this.channels[i];
|
|
1428
|
-
channel.bank = 0;
|
|
1429
1445
|
channel.isDrum = false;
|
|
1430
1446
|
}
|
|
1431
|
-
this.channels[9].bank = 128;
|
|
1432
1447
|
this.channels[9].isDrum = true;
|
|
1433
1448
|
}
|
|
1434
1449
|
handleUniversalRealTimeExclusiveMessage(data, scheduleTime) {
|
|
@@ -1449,16 +1464,11 @@ class MidyGMLite {
|
|
|
1449
1464
|
const volume = (data[5] * 128 + data[4]) / 16383;
|
|
1450
1465
|
this.setMasterVolume(volume, scheduleTime);
|
|
1451
1466
|
}
|
|
1452
|
-
setMasterVolume(
|
|
1467
|
+
setMasterVolume(value, scheduleTime) {
|
|
1453
1468
|
scheduleTime ??= this.audioContext.currentTime;
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
else {
|
|
1458
|
-
this.masterVolume.gain
|
|
1459
|
-
.cancelScheduledValues(scheduleTime)
|
|
1460
|
-
.setValueAtTime(volume * volume, scheduleTime);
|
|
1461
|
-
}
|
|
1469
|
+
this.masterVolume.gain
|
|
1470
|
+
.cancelScheduledValues(scheduleTime)
|
|
1471
|
+
.setValueAtTime(value * value, scheduleTime);
|
|
1462
1472
|
}
|
|
1463
1473
|
handleSysEx(data, scheduleTime) {
|
|
1464
1474
|
switch (data[0]) {
|
|
@@ -1499,7 +1509,6 @@ Object.defineProperty(MidyGMLite, "channelSettings", {
|
|
|
1499
1509
|
scheduleIndex: 0,
|
|
1500
1510
|
detune: 0,
|
|
1501
1511
|
programNumber: 0,
|
|
1502
|
-
bank: 0,
|
|
1503
1512
|
dataMSB: 0,
|
|
1504
1513
|
dataLSB: 0,
|
|
1505
1514
|
rpnMSB: 127,
|
package/script/midy.d.ts
CHANGED
|
@@ -3,7 +3,6 @@ export class Midy {
|
|
|
3
3
|
scheduleIndex: number;
|
|
4
4
|
detune: number;
|
|
5
5
|
programNumber: number;
|
|
6
|
-
bank: number;
|
|
7
6
|
bankMSB: number;
|
|
8
7
|
bankLSB: number;
|
|
9
8
|
dataMSB: number;
|
|
@@ -34,13 +33,15 @@ export class Midy {
|
|
|
34
33
|
numChannels: number;
|
|
35
34
|
ticksPerBeat: number;
|
|
36
35
|
totalTime: number;
|
|
36
|
+
lastActiveSensing: number;
|
|
37
|
+
activeSensingThreshold: number;
|
|
37
38
|
noteCheckInterval: number;
|
|
38
39
|
lookAhead: number;
|
|
39
40
|
startDelay: number;
|
|
40
41
|
startTime: number;
|
|
41
42
|
resumeTime: number;
|
|
42
43
|
soundFonts: any[];
|
|
43
|
-
soundFontTable:
|
|
44
|
+
soundFontTable: never[][];
|
|
44
45
|
voiceCounter: Map<any, any>;
|
|
45
46
|
voiceCache: Map<any, any>;
|
|
46
47
|
isPlaying: boolean;
|
|
@@ -58,6 +59,7 @@ export class Midy {
|
|
|
58
59
|
masterVolume: any;
|
|
59
60
|
scheduler: any;
|
|
60
61
|
schedulerBuffer: any;
|
|
62
|
+
messageHandlers: any[];
|
|
61
63
|
voiceParamsHandlers: {
|
|
62
64
|
modLfoToPitch: (channel: any, note: any, scheduleTime: any) => void;
|
|
63
65
|
vibLfoToPitch: (channel: any, note: any, scheduleTime: any) => void;
|
|
@@ -71,6 +73,7 @@ export class Midy {
|
|
|
71
73
|
freqVibLFO: (channel: any, note: any, scheduleTime: any) => void;
|
|
72
74
|
};
|
|
73
75
|
controlChangeHandlers: any[];
|
|
76
|
+
keyBasedControllerHandlers: any[];
|
|
74
77
|
channels: any[];
|
|
75
78
|
reverbEffect: {
|
|
76
79
|
input: any;
|
|
@@ -85,7 +88,6 @@ export class Midy {
|
|
|
85
88
|
delayNodes: any[];
|
|
86
89
|
feedbackGains: any[];
|
|
87
90
|
};
|
|
88
|
-
initSoundFontTable(): any[];
|
|
89
91
|
addSoundFont(soundFont: any): void;
|
|
90
92
|
toUint8Array(input: any): Promise<Uint8Array<ArrayBuffer>>;
|
|
91
93
|
loadSoundFont(input: any): Promise<void>;
|
|
@@ -102,13 +104,14 @@ export class Midy {
|
|
|
102
104
|
createAudioBuffer(voiceParams: any): Promise<any>;
|
|
103
105
|
isLoopDrum(channel: any, noteNumber: any): boolean;
|
|
104
106
|
createBufferSource(channel: any, noteNumber: any, voiceParams: any, audioBuffer: any): any;
|
|
105
|
-
scheduleTimelineEvents(
|
|
107
|
+
scheduleTimelineEvents(scheduleTime: any, queueIndex: any): Promise<any>;
|
|
106
108
|
getQueueIndex(second: any): number;
|
|
107
109
|
resetAllStates(): void;
|
|
108
110
|
updateStates(queueIndex: any, nextQueueIndex: any): void;
|
|
109
111
|
playNotes(): Promise<void>;
|
|
110
112
|
ticksToSecond(ticks: any, secondsPerBeat: any): number;
|
|
111
113
|
secondToTicks(second: any, secondsPerBeat: any): number;
|
|
114
|
+
getSoundFontId(channel: any): string;
|
|
112
115
|
extractMidiData(midi: any): {
|
|
113
116
|
instruments: Set<any>;
|
|
114
117
|
timeline: any[];
|
|
@@ -172,7 +175,6 @@ export class Midy {
|
|
|
172
175
|
startVibrato(channel: any, note: any, scheduleTime: any): void;
|
|
173
176
|
getAudioBuffer(channel: any, noteNumber: any, velocity: any, voiceParams: any): Promise<any>;
|
|
174
177
|
createNote(channel: any, voice: any, noteNumber: any, velocity: any, startTime: any): Promise<Note>;
|
|
175
|
-
calcBank(channel: any): any;
|
|
176
178
|
handleExclusiveClass(note: any, channelNumber: any, startTime: any): void;
|
|
177
179
|
handleDrumExclusiveClass(note: any, channelNumber: any, startTime: any): void;
|
|
178
180
|
scheduleNoteOn(channelNumber: any, noteNumber: any, velocity: any, startTime: any): Promise<void>;
|
|
@@ -185,7 +187,9 @@ export class Midy {
|
|
|
185
187
|
noteOff(channelNumber: any, noteNumber: any, velocity: any, scheduleTime: any): void;
|
|
186
188
|
releaseSustainPedal(channelNumber: any, halfVelocity: any, scheduleTime: any): void[];
|
|
187
189
|
releaseSostenutoPedal(channelNumber: any, halfVelocity: any, scheduleTime: any): void[];
|
|
188
|
-
|
|
190
|
+
createMessageHandlers(): any[];
|
|
191
|
+
handleMessage(data: any, scheduleTime: any): void;
|
|
192
|
+
activeSensing(): void;
|
|
189
193
|
setPolyphonicKeyPressure(channelNumber: any, noteNumber: any, pressure: any, scheduleTime: any): void;
|
|
190
194
|
setProgramChange(channelNumber: any, programNumber: any, _scheduleTime: any): void;
|
|
191
195
|
setChannelPressure(channelNumber: any, value: any, scheduleTime: any): void;
|
|
@@ -234,6 +238,7 @@ export class Midy {
|
|
|
234
238
|
updateChannelVolume(channel: any, scheduleTime: any): void;
|
|
235
239
|
updateKeyBasedVolume(channel: any, keyNumber: any, scheduleTime: any): void;
|
|
236
240
|
setSustainPedal(channelNumber: any, value: any, scheduleTime: any): void;
|
|
241
|
+
isPortamento(channel: any, note: any): boolean;
|
|
237
242
|
setPortamento(channelNumber: any, value: any, scheduleTime: any): void;
|
|
238
243
|
setSostenutoPedal(channelNumber: any, value: any, scheduleTime: any): void;
|
|
239
244
|
getSoftPedalFactor(channel: any, note: any): number;
|
|
@@ -278,7 +283,7 @@ export class Midy {
|
|
|
278
283
|
GM2SystemOn(scheduleTime: any): void;
|
|
279
284
|
handleUniversalRealTimeExclusiveMessage(data: any, scheduleTime: any): void;
|
|
280
285
|
handleMasterVolumeSysEx(data: any, scheduleTime: any): void;
|
|
281
|
-
setMasterVolume(
|
|
286
|
+
setMasterVolume(value: any, scheduleTime: any): void;
|
|
282
287
|
handleMasterFineTuningSysEx(data: any, scheduleTime: any): void;
|
|
283
288
|
setMasterFineTuning(value: any, scheduleTime: any): void;
|
|
284
289
|
handleMasterCoarseTuningSysEx(data: any, scheduleTime: any): void;
|
|
@@ -316,6 +321,7 @@ export class Midy {
|
|
|
316
321
|
setControlChangeEffects(channel: any, controllerType: any, scheduleTime: any): void;
|
|
317
322
|
handleControlChangeSysEx(data: any, scheduleTime: any): void;
|
|
318
323
|
getKeyBasedValue(channel: any, keyNumber: any, controllerType: any): any;
|
|
324
|
+
createKeyBasedControllerHandlers(): any[];
|
|
319
325
|
handleKeyBasedInstrumentControlSysEx(data: any, scheduleTime: any): void;
|
|
320
326
|
handleSysEx(data: any, scheduleTime: any): void;
|
|
321
327
|
scheduleTask(callback: any, scheduleTime: any): Promise<any>;
|
package/script/midy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"midy.d.ts","sourceRoot":"","sources":["../src/midy.js"],"names":[],"mappings":"AA4JA;
|
|
1
|
+
{"version":3,"file":"midy.d.ts","sourceRoot":"","sources":["../src/midy.js"],"names":[],"mappings":"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"}
|