@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/esm/midy-GMLite.js
CHANGED
|
@@ -213,7 +213,7 @@ export class MidyGMLite {
|
|
|
213
213
|
enumerable: true,
|
|
214
214
|
configurable: true,
|
|
215
215
|
writable: true,
|
|
216
|
-
value:
|
|
216
|
+
value: Array.from({ length: 128 }, () => [])
|
|
217
217
|
});
|
|
218
218
|
Object.defineProperty(this, "voiceCounter", {
|
|
219
219
|
enumerable: true,
|
|
@@ -300,6 +300,7 @@ export class MidyGMLite {
|
|
|
300
300
|
length: 1,
|
|
301
301
|
sampleRate: audioContext.sampleRate,
|
|
302
302
|
});
|
|
303
|
+
this.messageHandlers = this.createMessageHandlers();
|
|
303
304
|
this.voiceParamsHandlers = this.createVoiceParamsHandlers();
|
|
304
305
|
this.controlChangeHandlers = this.createControlChangeHandlers();
|
|
305
306
|
this.channels = this.createChannels(audioContext);
|
|
@@ -307,21 +308,14 @@ export class MidyGMLite {
|
|
|
307
308
|
this.scheduler.connect(audioContext.destination);
|
|
308
309
|
this.GM1SystemOn();
|
|
309
310
|
}
|
|
310
|
-
initSoundFontTable() {
|
|
311
|
-
const table = new Array(128);
|
|
312
|
-
for (let i = 0; i < 128; i++) {
|
|
313
|
-
table[i] = new Map();
|
|
314
|
-
}
|
|
315
|
-
return table;
|
|
316
|
-
}
|
|
317
311
|
addSoundFont(soundFont) {
|
|
318
312
|
const index = this.soundFonts.length;
|
|
319
313
|
this.soundFonts.push(soundFont);
|
|
320
314
|
const presetHeaders = soundFont.parsed.presetHeaders;
|
|
315
|
+
const soundFontTable = this.soundFontTable;
|
|
321
316
|
for (let i = 0; i < presetHeaders.length; i++) {
|
|
322
|
-
const
|
|
323
|
-
|
|
324
|
-
banks.set(presetHeader.bank, index);
|
|
317
|
+
const { preset, bank } = presetHeaders[i];
|
|
318
|
+
soundFontTable[preset][bank] = index;
|
|
325
319
|
}
|
|
326
320
|
}
|
|
327
321
|
async toUint8Array(input) {
|
|
@@ -399,13 +393,16 @@ export class MidyGMLite {
|
|
|
399
393
|
this.GM1SystemOn();
|
|
400
394
|
}
|
|
401
395
|
getVoiceId(channel, noteNumber, velocity) {
|
|
402
|
-
const
|
|
403
|
-
const
|
|
404
|
-
|
|
396
|
+
const programNumber = channel.programNumber;
|
|
397
|
+
const bankTable = this.soundFontTable[programNumber];
|
|
398
|
+
if (!bankTable)
|
|
399
|
+
return;
|
|
400
|
+
const bank = channel.isDrum ? 128 : 0;
|
|
401
|
+
const soundFontIndex = bankTable[bank];
|
|
405
402
|
if (soundFontIndex === undefined)
|
|
406
403
|
return;
|
|
407
404
|
const soundFont = this.soundFonts[soundFontIndex];
|
|
408
|
-
const voice = soundFont.getVoice(
|
|
405
|
+
const voice = soundFont.getVoice(bank, programNumber, noteNumber, velocity);
|
|
409
406
|
const { instrument, sampleID } = voice.generators;
|
|
410
407
|
return soundFontIndex * (2 ** 32) + (instrument << 16) + sampleID;
|
|
411
408
|
}
|
|
@@ -456,13 +453,16 @@ export class MidyGMLite {
|
|
|
456
453
|
}
|
|
457
454
|
return bufferSource;
|
|
458
455
|
}
|
|
459
|
-
async scheduleTimelineEvents(
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
456
|
+
async scheduleTimelineEvents(scheduleTime, queueIndex) {
|
|
457
|
+
const timeOffset = this.resumeTime - this.startTime;
|
|
458
|
+
const lookAheadCheckTime = scheduleTime + timeOffset + this.lookAhead;
|
|
459
|
+
const schedulingOffset = this.startDelay - timeOffset;
|
|
460
|
+
const timeline = this.timeline;
|
|
461
|
+
while (queueIndex < timeline.length) {
|
|
462
|
+
const event = timeline[queueIndex];
|
|
463
|
+
if (lookAheadCheckTime < event.startTime)
|
|
463
464
|
break;
|
|
464
|
-
const
|
|
465
|
-
const startTime = event.startTime + delay;
|
|
465
|
+
const startTime = event.startTime + schedulingOffset;
|
|
466
466
|
switch (event.type) {
|
|
467
467
|
case "noteOn":
|
|
468
468
|
await this.scheduleNoteOn(event.channel, event.noteNumber, event.velocity, startTime);
|
|
@@ -534,13 +534,11 @@ export class MidyGMLite {
|
|
|
534
534
|
this.isPaused = false;
|
|
535
535
|
this.startTime = this.audioContext.currentTime;
|
|
536
536
|
let queueIndex = this.getQueueIndex(this.resumeTime);
|
|
537
|
-
let resumeTime = this.resumeTime - this.startTime;
|
|
538
537
|
let finished = false;
|
|
539
538
|
this.notePromises = [];
|
|
540
539
|
while (queueIndex < this.timeline.length) {
|
|
541
540
|
const now = this.audioContext.currentTime;
|
|
542
|
-
|
|
543
|
-
queueIndex = await this.scheduleTimelineEvents(t, resumeTime, queueIndex);
|
|
541
|
+
queueIndex = await this.scheduleTimelineEvents(now, queueIndex);
|
|
544
542
|
if (this.isPausing) {
|
|
545
543
|
await this.stopNotes(0, true, now);
|
|
546
544
|
await this.audioContext.suspend();
|
|
@@ -559,7 +557,6 @@ export class MidyGMLite {
|
|
|
559
557
|
const nextQueueIndex = this.getQueueIndex(this.resumeTime);
|
|
560
558
|
this.updateStates(queueIndex, nextQueueIndex);
|
|
561
559
|
queueIndex = nextQueueIndex;
|
|
562
|
-
resumeTime = this.resumeTime - this.startTime;
|
|
563
560
|
this.isSeeking = false;
|
|
564
561
|
continue;
|
|
565
562
|
}
|
|
@@ -578,16 +575,16 @@ export class MidyGMLite {
|
|
|
578
575
|
secondToTicks(second, secondsPerBeat) {
|
|
579
576
|
return second * this.ticksPerBeat / secondsPerBeat;
|
|
580
577
|
}
|
|
578
|
+
getSoundFontId(channel) {
|
|
579
|
+
const programNumber = channel.programNumber;
|
|
580
|
+
const bank = channel.isDrum ? "128" : "000";
|
|
581
|
+
const program = programNumber.toString().padStart(3, "0");
|
|
582
|
+
return `${bank}:${program}`;
|
|
583
|
+
}
|
|
581
584
|
extractMidiData(midi) {
|
|
582
585
|
const instruments = new Set();
|
|
583
586
|
const timeline = [];
|
|
584
|
-
const
|
|
585
|
-
for (let i = 0; i < tmpChannels.length; i++) {
|
|
586
|
-
tmpChannels[i] = {
|
|
587
|
-
programNumber: -1,
|
|
588
|
-
bank: this.channels[i].bank,
|
|
589
|
-
};
|
|
590
|
-
}
|
|
587
|
+
const channels = this.channels;
|
|
591
588
|
for (let i = 0; i < midi.tracks.length; i++) {
|
|
592
589
|
const track = midi.tracks[i];
|
|
593
590
|
let currentTicks = 0;
|
|
@@ -597,17 +594,15 @@ export class MidyGMLite {
|
|
|
597
594
|
event.ticks = currentTicks;
|
|
598
595
|
switch (event.type) {
|
|
599
596
|
case "noteOn": {
|
|
600
|
-
const channel =
|
|
601
|
-
|
|
602
|
-
instruments.add(`${channel.bank}:0`);
|
|
603
|
-
channel.programNumber = 0;
|
|
604
|
-
}
|
|
597
|
+
const channel = channels[event.channel];
|
|
598
|
+
instruments.add(this.getSoundFontId(channel));
|
|
605
599
|
break;
|
|
606
600
|
}
|
|
607
601
|
case "programChange": {
|
|
608
|
-
const channel =
|
|
609
|
-
channel
|
|
610
|
-
instruments.add(
|
|
602
|
+
const channel = channels[event.channel];
|
|
603
|
+
this.setProgramChange(event.channel, event.programNumber);
|
|
604
|
+
instruments.add(this.getSoundFontId(channel));
|
|
605
|
+
break;
|
|
611
606
|
}
|
|
612
607
|
}
|
|
613
608
|
delete event.deltaTime;
|
|
@@ -877,7 +872,7 @@ export class MidyGMLite {
|
|
|
877
872
|
const voiceParams = voice.getAllParams(controllerState);
|
|
878
873
|
const note = new Note(noteNumber, velocity, startTime, voice, voiceParams);
|
|
879
874
|
const audioBuffer = await this.getAudioBuffer(channel, noteNumber, velocity, voiceParams);
|
|
880
|
-
note.bufferSource = this.createBufferSource(voiceParams, audioBuffer);
|
|
875
|
+
note.bufferSource = this.createBufferSource(channel, voiceParams, audioBuffer);
|
|
881
876
|
note.volumeEnvelopeNode = new GainNode(this.audioContext);
|
|
882
877
|
note.filterNode = new BiquadFilterNode(this.audioContext, {
|
|
883
878
|
type: "lowpass",
|
|
@@ -913,7 +908,7 @@ export class MidyGMLite {
|
|
|
913
908
|
const channel = this.channels[channelNumber];
|
|
914
909
|
if (!channel.isDrum)
|
|
915
910
|
return;
|
|
916
|
-
const drumExclusiveClass = drumExclusiveClasses[noteNumber];
|
|
911
|
+
const drumExclusiveClass = drumExclusiveClasses[note.noteNumber];
|
|
917
912
|
if (drumExclusiveClass === 0)
|
|
918
913
|
return;
|
|
919
914
|
const index = drumExclusiveClass * this.channels.length + channelNumber;
|
|
@@ -926,13 +921,16 @@ export class MidyGMLite {
|
|
|
926
921
|
}
|
|
927
922
|
async scheduleNoteOn(channelNumber, noteNumber, velocity, startTime) {
|
|
928
923
|
const channel = this.channels[channelNumber];
|
|
929
|
-
const
|
|
930
|
-
const
|
|
931
|
-
|
|
924
|
+
const programNumber = channel.programNumber;
|
|
925
|
+
const bankTable = this.soundFontTable[programNumber];
|
|
926
|
+
if (!bankTable)
|
|
927
|
+
return;
|
|
928
|
+
const bank = channel.isDrum ? 128 : 0;
|
|
929
|
+
const soundFontIndex = bankTable[bank];
|
|
932
930
|
if (soundFontIndex === undefined)
|
|
933
931
|
return;
|
|
934
932
|
const soundFont = this.soundFonts[soundFontIndex];
|
|
935
|
-
const voice = soundFont.getVoice(
|
|
933
|
+
const voice = soundFont.getVoice(bank, programNumber, noteNumber, velocity);
|
|
936
934
|
if (!voice)
|
|
937
935
|
return;
|
|
938
936
|
const note = await this.createNote(channel, voice, noteNumber, velocity, startTime);
|
|
@@ -1039,7 +1037,26 @@ export class MidyGMLite {
|
|
|
1039
1037
|
channel.sustainNotes = [];
|
|
1040
1038
|
return promises;
|
|
1041
1039
|
}
|
|
1042
|
-
|
|
1040
|
+
createMessageHandlers() {
|
|
1041
|
+
const handlers = new Array(256);
|
|
1042
|
+
// Channel Message
|
|
1043
|
+
handlers[0x80] = (data, scheduleTime) => this.noteOff(data[0] & 0x0F, data[1], data[2], scheduleTime);
|
|
1044
|
+
handlers[0x90] = (data, scheduleTime) => this.noteOn(data[0] & 0x0F, data[1], data[2], scheduleTime);
|
|
1045
|
+
handlers[0xB0] = (data, scheduleTime) => this.setControlChange(data[0] & 0x0F, data[1], data[2], scheduleTime);
|
|
1046
|
+
handlers[0xC0] = (data, scheduleTime) => this.setProgramChange(data[0] & 0x0F, data[1], scheduleTime);
|
|
1047
|
+
handlers[0xE0] = (data, scheduleTime) => this.handlePitchBendMessage(data[0] & 0x0F, data[1], data[2], scheduleTime);
|
|
1048
|
+
return handlers;
|
|
1049
|
+
}
|
|
1050
|
+
handleMessage(data, scheduleTime) {
|
|
1051
|
+
const status = data[0];
|
|
1052
|
+
if (status === 0xF0) {
|
|
1053
|
+
return this.handleSysEx(data.subarray(1), scheduleTime);
|
|
1054
|
+
}
|
|
1055
|
+
const handler = this.messageHandlers[status];
|
|
1056
|
+
if (handler)
|
|
1057
|
+
handler(data, scheduleTime);
|
|
1058
|
+
}
|
|
1059
|
+
handleChannelMessage(statusByte, data1, data2, scheduleTime) {
|
|
1043
1060
|
const channelNumber = statusByte & 0x0F;
|
|
1044
1061
|
const messageType = statusByte & 0xF0;
|
|
1045
1062
|
switch (messageType) {
|
|
@@ -1422,10 +1439,8 @@ export class MidyGMLite {
|
|
|
1422
1439
|
for (let i = 0; i < this.channels.length; i++) {
|
|
1423
1440
|
this.allSoundOff(i, 0, scheduleTime);
|
|
1424
1441
|
const channel = this.channels[i];
|
|
1425
|
-
channel.bank = 0;
|
|
1426
1442
|
channel.isDrum = false;
|
|
1427
1443
|
}
|
|
1428
|
-
this.channels[9].bank = 128;
|
|
1429
1444
|
this.channels[9].isDrum = true;
|
|
1430
1445
|
}
|
|
1431
1446
|
handleUniversalRealTimeExclusiveMessage(data, scheduleTime) {
|
|
@@ -1446,16 +1461,11 @@ export class MidyGMLite {
|
|
|
1446
1461
|
const volume = (data[5] * 128 + data[4]) / 16383;
|
|
1447
1462
|
this.setMasterVolume(volume, scheduleTime);
|
|
1448
1463
|
}
|
|
1449
|
-
setMasterVolume(
|
|
1464
|
+
setMasterVolume(value, scheduleTime) {
|
|
1450
1465
|
scheduleTime ??= this.audioContext.currentTime;
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
else {
|
|
1455
|
-
this.masterVolume.gain
|
|
1456
|
-
.cancelScheduledValues(scheduleTime)
|
|
1457
|
-
.setValueAtTime(volume * volume, scheduleTime);
|
|
1458
|
-
}
|
|
1466
|
+
this.masterVolume.gain
|
|
1467
|
+
.cancelScheduledValues(scheduleTime)
|
|
1468
|
+
.setValueAtTime(value * value, scheduleTime);
|
|
1459
1469
|
}
|
|
1460
1470
|
handleSysEx(data, scheduleTime) {
|
|
1461
1471
|
switch (data[0]) {
|
|
@@ -1495,7 +1505,6 @@ Object.defineProperty(MidyGMLite, "channelSettings", {
|
|
|
1495
1505
|
scheduleIndex: 0,
|
|
1496
1506
|
detune: 0,
|
|
1497
1507
|
programNumber: 0,
|
|
1498
|
-
bank: 0,
|
|
1499
1508
|
dataMSB: 0,
|
|
1500
1509
|
dataLSB: 0,
|
|
1501
1510
|
rpnMSB: 127,
|
package/esm/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/esm/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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"}
|