@marmooo/midy 0.0.8 → 0.1.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/esm/midy-GM1.d.ts +4 -43
- package/esm/midy-GM1.d.ts.map +1 -1
- package/esm/midy-GM1.js +39 -37
- package/esm/midy-GM2.d.ts +64 -113
- package/esm/midy-GM2.d.ts.map +1 -1
- package/esm/midy-GM2.js +301 -95
- package/esm/midy-GMLite.d.ts +4 -39
- package/esm/midy-GMLite.d.ts.map +1 -1
- package/esm/midy-GMLite.js +39 -37
- package/esm/midy.d.ts +64 -135
- package/esm/midy.d.ts.map +1 -1
- package/esm/midy.js +301 -99
- package/package.json +1 -1
- package/script/midy-GM1.d.ts +4 -43
- package/script/midy-GM1.d.ts.map +1 -1
- package/script/midy-GM1.js +39 -37
- package/script/midy-GM2.d.ts +64 -113
- package/script/midy-GM2.d.ts.map +1 -1
- package/script/midy-GM2.js +301 -95
- package/script/midy-GMLite.d.ts +4 -39
- package/script/midy-GMLite.d.ts.map +1 -1
- package/script/midy-GMLite.js +39 -37
- package/script/midy.d.ts +64 -135
- package/script/midy.d.ts.map +1 -1
- package/script/midy.js +301 -99
package/esm/midy-GM1.d.ts
CHANGED
|
@@ -39,27 +39,7 @@ export class MidyGM1 {
|
|
|
39
39
|
notePromises: any[];
|
|
40
40
|
audioContext: any;
|
|
41
41
|
masterGain: any;
|
|
42
|
-
channels:
|
|
43
|
-
scheduledNotes: Map<any, any>;
|
|
44
|
-
gainL: any;
|
|
45
|
-
gainR: any;
|
|
46
|
-
expression: number;
|
|
47
|
-
modulation: number;
|
|
48
|
-
sustainPedal: boolean;
|
|
49
|
-
rpnMSB: number;
|
|
50
|
-
rpnLSB: number;
|
|
51
|
-
pitchBendRange: number;
|
|
52
|
-
volume: number;
|
|
53
|
-
pan: number;
|
|
54
|
-
bank: number;
|
|
55
|
-
dataMSB: number;
|
|
56
|
-
dataLSB: number;
|
|
57
|
-
program: number;
|
|
58
|
-
pitchBend: number;
|
|
59
|
-
fineTuning: number;
|
|
60
|
-
coarseTuning: number;
|
|
61
|
-
modulationDepthRange: number;
|
|
62
|
-
}[];
|
|
42
|
+
channels: any[];
|
|
63
43
|
initSoundFontTable(): any[];
|
|
64
44
|
addSoundFont(soundFont: any): void;
|
|
65
45
|
loadSoundFont(soundFontUrl: any): Promise<void>;
|
|
@@ -67,28 +47,9 @@ export class MidyGM1 {
|
|
|
67
47
|
setChannelAudioNodes(audioContext: any): {
|
|
68
48
|
gainL: any;
|
|
69
49
|
gainR: any;
|
|
50
|
+
merger: any;
|
|
70
51
|
};
|
|
71
|
-
createChannels(audioContext: any):
|
|
72
|
-
scheduledNotes: Map<any, any>;
|
|
73
|
-
gainL: any;
|
|
74
|
-
gainR: any;
|
|
75
|
-
expression: number;
|
|
76
|
-
modulation: number;
|
|
77
|
-
sustainPedal: boolean;
|
|
78
|
-
rpnMSB: number;
|
|
79
|
-
rpnLSB: number;
|
|
80
|
-
pitchBendRange: number;
|
|
81
|
-
volume: number;
|
|
82
|
-
pan: number;
|
|
83
|
-
bank: number;
|
|
84
|
-
dataMSB: number;
|
|
85
|
-
dataLSB: number;
|
|
86
|
-
program: number;
|
|
87
|
-
pitchBend: number;
|
|
88
|
-
fineTuning: number;
|
|
89
|
-
coarseTuning: number;
|
|
90
|
-
modulationDepthRange: number;
|
|
91
|
-
}[];
|
|
52
|
+
createChannels(audioContext: any): any[];
|
|
92
53
|
createNoteBuffer(instrumentKey: any, isSF3: any): Promise<any>;
|
|
93
54
|
createNoteBufferNode(instrumentKey: any, isSF3: any): Promise<any>;
|
|
94
55
|
convertToFloat32Array(uint8Array: any): Float32Array;
|
|
@@ -111,7 +72,7 @@ export class MidyGM1 {
|
|
|
111
72
|
currentTime(): number;
|
|
112
73
|
getActiveNotes(channel: any, time: any): Map<any, any>;
|
|
113
74
|
getActiveNote(noteList: any, time: any): any;
|
|
114
|
-
|
|
75
|
+
connectEffects(channel: any, gainNode: any): void;
|
|
115
76
|
cbToRatio(cb: any): number;
|
|
116
77
|
centToHz(cent: any): number;
|
|
117
78
|
calcSemitoneOffset(channel: any): any;
|
package/esm/midy-GM1.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"midy-GM1.d.ts","sourceRoot":"","sources":["../src/midy-GM1.js"],"names":[],"mappings":"AAqBA;IAmBE;;;;;;;;;;;MAWE;IAEF;;;;;;;MAOE;IAEF,+BAMC;IA9CD,qBAAmB;IACnB,kBAAc;IACd,0BAAwB;IACxB,kBAAc;IACd,mBAAiB;IACjB,kBAAc;IACd,mBAAe;IACf,kBAAgB;IAChB,sBAA2C;IAC3C,mBAAkB;IAClB,mBAAkB;IAClB,kBAAiB;IACjB,oBAAmB;IACnB,mBAAkB;IAClB,gBAAc;IACd,mBAAiB;IACjB,oBAAkB;IAyBhB,kBAAgC;IAChC,gBAA4C;IAE5C
|
|
1
|
+
{"version":3,"file":"midy-GM1.d.ts","sourceRoot":"","sources":["../src/midy-GM1.js"],"names":[],"mappings":"AAqBA;IAmBE;;;;;;;;;;;MAWE;IAEF;;;;;;;MAOE;IAEF,+BAMC;IA9CD,qBAAmB;IACnB,kBAAc;IACd,0BAAwB;IACxB,kBAAc;IACd,mBAAiB;IACjB,kBAAc;IACd,mBAAe;IACf,kBAAgB;IAChB,sBAA2C;IAC3C,mBAAkB;IAClB,mBAAkB;IAClB,kBAAiB;IACjB,oBAAmB;IACnB,mBAAkB;IAClB,gBAAc;IACd,mBAAiB;IACjB,oBAAkB;IAyBhB,kBAAgC;IAChC,gBAA4C;IAE5C,gBAAiD;IAInD,4BAMC;IAED,mCASC;IAED,gDAMC;IAED,sCASC;IAED;;;;MAcC;IAED,yCAUC;IAED,+DAyBC;IAED,mEAWC;IAED,qDAOC;IAED,2EA+CC;IAED,mCAOC;IAED,0BA+CC;IAED,uDAEC;IAED,wDAEC;IAED;;;MA8DC;IAED,4BAsBC;IAED,uBAKC;IAED,aAGC;IAED,cAKC;IAED,wBAIC;IAED,0BAKC;IAED,wBAOC;IAED,sBAGC;IAED,uDASC;IAED,6CAQC;IAED,kDAGC;IAED,2BAEC;IAED,4BAEC;IAED,sCAGC;IAED,mFAGC;IAED,iDAiBC;IAED,iDAiCC;IAED,0DAmBC;IAED,wHA6BC;IAED,kGA6BC;IAED,0EAGC;IAED,sIA8CC;IAED,0FAGC;IAED,kEAeC;IAED,wFAiBC;IAED,4DAGC;IAED,qEAGC;IAED,uDAOC;IAED,mFA+BC;IAED,qCAcC;IAED,yDAIC;IACD,iDAIC;IAED;;;MAMC;IAED,2CAIC;IAED,yDAIC;IAED,mDAGC;IAED,sCAUC;IAED,sDAMC;IAED,kFAeC;IAED,2DAMC;IAED,oCAkBC;IAED,gDAEC;IAED,gDAEC;IAED,mDAGC;IAED,oDAUC;IAED,kDAKC;IAED,iEAOC;IAED,8CAKC;IAED,yDAMC;IAED,gDAKC;IAED,6DAMC;IAED,uCAoBC;IAED,8CAEC;IAED,uCAoBC;IAED,4DAgBC;IAED,oBAQC;IAED,yDAaC;IAED,yCAGC;IAED,mCAQC;IAED,wCAEC;IAED,6BASC;IAED,0DAUC;CACF;AAnjCD;IAOE,gFAKC;IAXD,kBAAa;IACb,cAAS;IACT,gBAAW;IACX,YAAO;IACP,gBAAW;IAGT,gBAA4B;IAC5B,cAAwB;IACxB,eAA0B;IAC1B,mBAAkC;CAErC"}
|
package/esm/midy-GM1.js
CHANGED
|
@@ -183,23 +183,23 @@ export class MidyGM1 {
|
|
|
183
183
|
this.totalTime = this.calcTotalTime();
|
|
184
184
|
}
|
|
185
185
|
setChannelAudioNodes(audioContext) {
|
|
186
|
-
const { gainLeft, gainRight } = this.panToGain(
|
|
186
|
+
const { gainLeft, gainRight } = this.panToGain(this.constructor.channelSettings.pan);
|
|
187
187
|
const gainL = new GainNode(audioContext, { gain: gainLeft });
|
|
188
188
|
const gainR = new GainNode(audioContext, { gain: gainRight });
|
|
189
189
|
const merger = new ChannelMergerNode(audioContext, { numberOfInputs: 2 });
|
|
190
190
|
gainL.connect(merger, 0, 0);
|
|
191
191
|
gainR.connect(merger, 0, 1);
|
|
192
|
-
merger.connect(this.masterGain);
|
|
193
192
|
return {
|
|
194
193
|
gainL,
|
|
195
194
|
gainR,
|
|
195
|
+
merger,
|
|
196
196
|
};
|
|
197
197
|
}
|
|
198
198
|
createChannels(audioContext) {
|
|
199
199
|
const channels = Array.from({ length: 16 }, () => {
|
|
200
200
|
return {
|
|
201
|
-
...
|
|
202
|
-
...
|
|
201
|
+
...this.constructor.channelSettings,
|
|
202
|
+
...this.constructor.effectSettings,
|
|
203
203
|
...this.setChannelAudioNodes(audioContext),
|
|
204
204
|
scheduledNotes: new Map(),
|
|
205
205
|
};
|
|
@@ -491,9 +491,9 @@ export class MidyGM1 {
|
|
|
491
491
|
}
|
|
492
492
|
return noteList[0];
|
|
493
493
|
}
|
|
494
|
-
|
|
495
|
-
gainNode.connect(channel.
|
|
496
|
-
|
|
494
|
+
connectEffects(channel, gainNode) {
|
|
495
|
+
gainNode.connect(channel.merger);
|
|
496
|
+
merger.connect(this.masterGain);
|
|
497
497
|
}
|
|
498
498
|
cbToRatio(cb) {
|
|
499
499
|
return Math.pow(10, cb / 200);
|
|
@@ -560,7 +560,7 @@ export class MidyGM1 {
|
|
|
560
560
|
startModulation(channel, note, time) {
|
|
561
561
|
const { instrumentKey } = note;
|
|
562
562
|
note.modLFOGain = new GainNode(this.audioContext, {
|
|
563
|
-
gain: this.cbToRatio(instrumentKey.modLfoToVolume
|
|
563
|
+
gain: this.cbToRatio(instrumentKey.modLfoToVolume + channel.modulation),
|
|
564
564
|
});
|
|
565
565
|
note.modLFO = new OscillatorNode(this.audioContext, {
|
|
566
566
|
frequency: this.centToHz(instrumentKey.freqModLFO),
|
|
@@ -599,7 +599,7 @@ export class MidyGM1 {
|
|
|
599
599
|
if (!instrumentKey)
|
|
600
600
|
return;
|
|
601
601
|
const note = await this.createNote(channel, instrumentKey, noteNumber, velocity, startTime, isSF3);
|
|
602
|
-
this.
|
|
602
|
+
this.connectEffects(channel, note.gainNode);
|
|
603
603
|
const scheduledNotes = channel.scheduledNotes;
|
|
604
604
|
if (scheduledNotes.has(noteNumber)) {
|
|
605
605
|
scheduledNotes.get(noteNumber).push(note);
|
|
@@ -618,39 +618,41 @@ export class MidyGM1 {
|
|
|
618
618
|
return;
|
|
619
619
|
if (!channel.scheduledNotes.has(noteNumber))
|
|
620
620
|
return;
|
|
621
|
-
const
|
|
622
|
-
for (let i = 0; i <
|
|
623
|
-
const
|
|
624
|
-
if (!
|
|
621
|
+
const scheduledNotes = channel.scheduledNotes.get(noteNumber);
|
|
622
|
+
for (let i = 0; i < scheduledNotes.length; i++) {
|
|
623
|
+
const note = scheduledNotes[i];
|
|
624
|
+
if (!note)
|
|
625
625
|
continue;
|
|
626
|
-
if (
|
|
626
|
+
if (note.ending)
|
|
627
627
|
continue;
|
|
628
|
-
const { bufferSource, filterNode, gainNode, modLFO, modLFOGain, instrumentKey, } = targetNote;
|
|
629
628
|
const velocityRate = (velocity + 127) / 127;
|
|
630
|
-
const volEndTime = stopTime +
|
|
631
|
-
|
|
632
|
-
gainNode.gain
|
|
629
|
+
const volEndTime = stopTime +
|
|
630
|
+
note.instrumentKey.volRelease * velocityRate;
|
|
631
|
+
note.gainNode.gain
|
|
632
|
+
.cancelScheduledValues(stopTime)
|
|
633
|
+
.linearRampToValueAtTime(0, volEndTime);
|
|
633
634
|
const maxFreq = this.audioContext.sampleRate / 2;
|
|
634
|
-
const baseFreq = this.centToHz(instrumentKey.initialFilterFc);
|
|
635
|
+
const baseFreq = this.centToHz(note.instrumentKey.initialFilterFc);
|
|
635
636
|
const adjustedBaseFreq = Math.min(maxFreq, baseFreq);
|
|
636
|
-
const modEndTime = stopTime +
|
|
637
|
-
|
|
637
|
+
const modEndTime = stopTime +
|
|
638
|
+
note.instrumentKey.modRelease * velocityRate;
|
|
639
|
+
note.filterNode.frequency
|
|
638
640
|
.cancelScheduledValues(stopTime)
|
|
639
641
|
.linearRampToValueAtTime(adjustedBaseFreq, modEndTime);
|
|
640
|
-
|
|
642
|
+
note.ending = true;
|
|
641
643
|
this.scheduleTask(() => {
|
|
642
|
-
bufferSource.loop = false;
|
|
644
|
+
note.bufferSource.loop = false;
|
|
643
645
|
}, stopTime);
|
|
644
646
|
return new Promise((resolve) => {
|
|
645
|
-
bufferSource.onended = () => {
|
|
646
|
-
|
|
647
|
-
bufferSource.disconnect(
|
|
648
|
-
filterNode.disconnect(
|
|
649
|
-
gainNode.disconnect(
|
|
650
|
-
if (modLFOGain)
|
|
651
|
-
modLFOGain.disconnect(
|
|
652
|
-
if (modLFO)
|
|
653
|
-
modLFO.stop();
|
|
647
|
+
note.bufferSource.onended = () => {
|
|
648
|
+
scheduledNotes[i] = null;
|
|
649
|
+
note.bufferSource.disconnect();
|
|
650
|
+
note.filterNode.disconnect();
|
|
651
|
+
note.gainNode.disconnect();
|
|
652
|
+
if (note.modLFOGain)
|
|
653
|
+
note.modLFOGain.disconnect();
|
|
654
|
+
if (note.modLFO)
|
|
655
|
+
note.modLFO.stop();
|
|
654
656
|
resolve();
|
|
655
657
|
};
|
|
656
658
|
bufferSource.stop(volEndTime);
|
|
@@ -950,11 +952,11 @@ export class MidyGM1 {
|
|
|
950
952
|
case 2: // GM System Off
|
|
951
953
|
break;
|
|
952
954
|
default:
|
|
953
|
-
console.warn(`Unsupported Exclusive Message ${data}`);
|
|
955
|
+
console.warn(`Unsupported Exclusive Message: ${data}`);
|
|
954
956
|
}
|
|
955
957
|
break;
|
|
956
958
|
default:
|
|
957
|
-
console.warn(`Unsupported Exclusive Message ${data}`);
|
|
959
|
+
console.warn(`Unsupported Exclusive Message: ${data}`);
|
|
958
960
|
}
|
|
959
961
|
}
|
|
960
962
|
GM1SystemOn() {
|
|
@@ -973,11 +975,11 @@ export class MidyGM1 {
|
|
|
973
975
|
case 1:
|
|
974
976
|
return this.handleMasterVolumeSysEx(data);
|
|
975
977
|
default:
|
|
976
|
-
console.warn(`Unsupported Exclusive Message ${data}`);
|
|
978
|
+
console.warn(`Unsupported Exclusive Message: ${data}`);
|
|
977
979
|
}
|
|
978
980
|
break;
|
|
979
981
|
default:
|
|
980
|
-
console.warn(`Unsupported Exclusive Message ${data}`);
|
|
982
|
+
console.warn(`Unsupported Exclusive Message: ${data}`);
|
|
981
983
|
}
|
|
982
984
|
}
|
|
983
985
|
handleMasterVolumeSysEx(data) {
|
|
@@ -995,7 +997,7 @@ export class MidyGM1 {
|
|
|
995
997
|
}
|
|
996
998
|
}
|
|
997
999
|
handleExclusiveMessage(data) {
|
|
998
|
-
console.warn(`Unsupported Exclusive Message ${data}`);
|
|
1000
|
+
console.warn(`Unsupported Exclusive Message: ${data}`);
|
|
999
1001
|
}
|
|
1000
1002
|
handleSysEx(data) {
|
|
1001
1003
|
switch (data[0]) {
|
package/esm/midy-GM2.d.ts
CHANGED
|
@@ -4,8 +4,8 @@ export class MidyGM2 {
|
|
|
4
4
|
volume: number;
|
|
5
5
|
pan: number;
|
|
6
6
|
portamentoTime: number;
|
|
7
|
-
|
|
8
|
-
|
|
7
|
+
reverbSendLevel: number;
|
|
8
|
+
chorusSendLevel: number;
|
|
9
9
|
bank: number;
|
|
10
10
|
bankMSB: number;
|
|
11
11
|
bankLSB: number;
|
|
@@ -37,12 +37,26 @@ export class MidyGM2 {
|
|
|
37
37
|
lfoFilterDepth: number;
|
|
38
38
|
lfoAmplitudeDepth: number;
|
|
39
39
|
};
|
|
40
|
-
constructor(audioContext: any
|
|
40
|
+
constructor(audioContext: any, options?: {
|
|
41
|
+
reverbAlgorithm: (audioContext: any) => {
|
|
42
|
+
input: any;
|
|
43
|
+
output: any;
|
|
44
|
+
};
|
|
45
|
+
});
|
|
41
46
|
ticksPerBeat: number;
|
|
42
47
|
totalTime: number;
|
|
43
|
-
reverbFactor: number;
|
|
44
48
|
masterFineTuning: number;
|
|
45
49
|
masterCoarseTuning: number;
|
|
50
|
+
reverb: {
|
|
51
|
+
time: number;
|
|
52
|
+
feedback: number;
|
|
53
|
+
};
|
|
54
|
+
chorus: {
|
|
55
|
+
modRate: number;
|
|
56
|
+
modDepth: number;
|
|
57
|
+
feedback: number;
|
|
58
|
+
sendToReverb: number;
|
|
59
|
+
};
|
|
46
60
|
mono: boolean;
|
|
47
61
|
omni: boolean;
|
|
48
62
|
noteCheckInterval: number;
|
|
@@ -60,58 +74,21 @@ export class MidyGM2 {
|
|
|
60
74
|
timeline: any[];
|
|
61
75
|
instruments: any[];
|
|
62
76
|
notePromises: any[];
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
sostenutoNotes: Map<any, any>;
|
|
68
|
-
channelPressure: {
|
|
69
|
-
pitchControl: number;
|
|
70
|
-
filterCutoffControl: number;
|
|
71
|
-
amplitudeControl: number;
|
|
72
|
-
lfoPitchDepth: number;
|
|
73
|
-
lfoFilterDepth: number;
|
|
74
|
-
lfoAmplitudeDepth: number;
|
|
77
|
+
defaultOptions: {
|
|
78
|
+
reverbAlgorithm: (audioContext: any) => {
|
|
79
|
+
input: any;
|
|
80
|
+
output: any;
|
|
75
81
|
};
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
};
|
|
83
|
-
chorusEffect: {
|
|
84
|
-
lfo: any;
|
|
85
|
-
lfoGain: any;
|
|
86
|
-
delayNodes: any[];
|
|
87
|
-
chorusGains: any[];
|
|
82
|
+
};
|
|
83
|
+
audioContext: any;
|
|
84
|
+
options: {
|
|
85
|
+
reverbAlgorithm: (audioContext: any) => {
|
|
86
|
+
input: any;
|
|
87
|
+
output: any;
|
|
88
88
|
};
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
portamento: boolean;
|
|
93
|
-
sostenutoPedal: boolean;
|
|
94
|
-
softPedal: number;
|
|
95
|
-
rpnMSB: number;
|
|
96
|
-
rpnLSB: number;
|
|
97
|
-
pitchBendRange: number;
|
|
98
|
-
currentBufferSource: null;
|
|
99
|
-
volume: number;
|
|
100
|
-
pan: number;
|
|
101
|
-
portamentoTime: number;
|
|
102
|
-
reverb: number;
|
|
103
|
-
chorus: number;
|
|
104
|
-
bank: number;
|
|
105
|
-
bankMSB: number;
|
|
106
|
-
bankLSB: number;
|
|
107
|
-
dataMSB: number;
|
|
108
|
-
dataLSB: number;
|
|
109
|
-
program: number;
|
|
110
|
-
pitchBend: number;
|
|
111
|
-
fineTuning: number;
|
|
112
|
-
coarseTuning: number;
|
|
113
|
-
modulationDepthRange: number;
|
|
114
|
-
}[];
|
|
89
|
+
};
|
|
90
|
+
masterGain: any;
|
|
91
|
+
channels: any[];
|
|
115
92
|
initSoundFontTable(): any[];
|
|
116
93
|
addSoundFont(soundFont: any): void;
|
|
117
94
|
loadSoundFont(soundFontUrl: any): Promise<void>;
|
|
@@ -119,68 +96,20 @@ export class MidyGM2 {
|
|
|
119
96
|
setChannelAudioNodes(audioContext: any): {
|
|
120
97
|
gainL: any;
|
|
121
98
|
gainR: any;
|
|
99
|
+
merger: any;
|
|
122
100
|
reverbEffect: {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
wetGain: any;
|
|
101
|
+
input: any;
|
|
102
|
+
output: any;
|
|
126
103
|
};
|
|
127
104
|
chorusEffect: {
|
|
128
105
|
lfo: any;
|
|
129
106
|
lfoGain: any;
|
|
130
107
|
delayNodes: any[];
|
|
131
108
|
chorusGains: any[];
|
|
109
|
+
output: any;
|
|
132
110
|
};
|
|
133
111
|
};
|
|
134
|
-
createChannels(audioContext: any):
|
|
135
|
-
scheduledNotes: Map<any, any>;
|
|
136
|
-
sostenutoNotes: Map<any, any>;
|
|
137
|
-
channelPressure: {
|
|
138
|
-
pitchControl: number;
|
|
139
|
-
filterCutoffControl: number;
|
|
140
|
-
amplitudeControl: number;
|
|
141
|
-
lfoPitchDepth: number;
|
|
142
|
-
lfoFilterDepth: number;
|
|
143
|
-
lfoAmplitudeDepth: number;
|
|
144
|
-
};
|
|
145
|
-
gainL: any;
|
|
146
|
-
gainR: any;
|
|
147
|
-
reverbEffect: {
|
|
148
|
-
convolverNode: any;
|
|
149
|
-
dryGain: any;
|
|
150
|
-
wetGain: any;
|
|
151
|
-
};
|
|
152
|
-
chorusEffect: {
|
|
153
|
-
lfo: any;
|
|
154
|
-
lfoGain: any;
|
|
155
|
-
delayNodes: any[];
|
|
156
|
-
chorusGains: any[];
|
|
157
|
-
};
|
|
158
|
-
expression: number;
|
|
159
|
-
modulation: number;
|
|
160
|
-
sustainPedal: boolean;
|
|
161
|
-
portamento: boolean;
|
|
162
|
-
sostenutoPedal: boolean;
|
|
163
|
-
softPedal: number;
|
|
164
|
-
rpnMSB: number;
|
|
165
|
-
rpnLSB: number;
|
|
166
|
-
pitchBendRange: number;
|
|
167
|
-
currentBufferSource: null;
|
|
168
|
-
volume: number;
|
|
169
|
-
pan: number;
|
|
170
|
-
portamentoTime: number;
|
|
171
|
-
reverb: number;
|
|
172
|
-
chorus: number;
|
|
173
|
-
bank: number;
|
|
174
|
-
bankMSB: number;
|
|
175
|
-
bankLSB: number;
|
|
176
|
-
dataMSB: number;
|
|
177
|
-
dataLSB: number;
|
|
178
|
-
program: number;
|
|
179
|
-
pitchBend: number;
|
|
180
|
-
fineTuning: number;
|
|
181
|
-
coarseTuning: number;
|
|
182
|
-
modulationDepthRange: number;
|
|
183
|
-
}[];
|
|
112
|
+
createChannels(audioContext: any): any[];
|
|
184
113
|
createNoteBuffer(instrumentKey: any, isSF3: any): Promise<any>;
|
|
185
114
|
createNoteBufferNode(instrumentKey: any, isSF3: any): Promise<any>;
|
|
186
115
|
convertToFloat32Array(uint8Array: any): Float32Array;
|
|
@@ -203,18 +132,27 @@ export class MidyGM2 {
|
|
|
203
132
|
currentTime(): number;
|
|
204
133
|
getActiveNotes(channel: any, time: any): Map<any, any>;
|
|
205
134
|
getActiveNote(noteList: any, time: any): any;
|
|
206
|
-
|
|
135
|
+
createConvolutionReverbImpulse(audioContext: any, decay: any, preDecay: any): any;
|
|
136
|
+
createConvolutionReverb(audioContext: any, impulse: any): {
|
|
137
|
+
input: any;
|
|
138
|
+
output: any;
|
|
207
139
|
convolverNode: any;
|
|
208
|
-
|
|
209
|
-
|
|
140
|
+
};
|
|
141
|
+
createCombFilter(audioContext: any, input: any, delay: any, feedback: any): any;
|
|
142
|
+
createAllpassFilter(audioContext: any, input: any, delay: any, feedback: any): any;
|
|
143
|
+
generateDistributedArray(center: any, count: any, varianceRatio?: number, randomness?: number): any[];
|
|
144
|
+
createSchroederReverb(audioContext: any, combDelays: any, combFeedbacks: any, allpassDelays: any, allpassFeedbacks: any): {
|
|
145
|
+
input: any;
|
|
146
|
+
output: any;
|
|
210
147
|
};
|
|
211
148
|
createChorusEffect(audioContext: any, options?: {}): {
|
|
212
149
|
lfo: any;
|
|
213
150
|
lfoGain: any;
|
|
214
151
|
delayNodes: any[];
|
|
215
152
|
chorusGains: any[];
|
|
153
|
+
output: any;
|
|
216
154
|
};
|
|
217
|
-
|
|
155
|
+
connectEffects(channel: any, gainNode: any): void;
|
|
218
156
|
cbToRatio(cb: any): number;
|
|
219
157
|
centToHz(cent: any): number;
|
|
220
158
|
calcSemitoneOffset(channel: any): any;
|
|
@@ -252,8 +190,8 @@ export class MidyGM2 {
|
|
|
252
190
|
updateChannelGain(channel: any): void;
|
|
253
191
|
setSustainPedal(channelNumber: any, value: any): void;
|
|
254
192
|
setPortamento(channelNumber: any, value: any): void;
|
|
255
|
-
setReverbSendLevel(channelNumber: any,
|
|
256
|
-
setChorusSendLevel(channelNumber: any,
|
|
193
|
+
setReverbSendLevel(channelNumber: any, reverbSendLevel: any): void;
|
|
194
|
+
setChorusSendLevel(channelNumber: any, chorusSendLevel: any): void;
|
|
257
195
|
setSostenutoPedal(channelNumber: any, value: any): void;
|
|
258
196
|
setSoftPedal(channelNumber: any, softPedal: any): void;
|
|
259
197
|
limitData(channel: any, minMSB: any, maxMSB: any, minLSB: any, maxLSB: any): void;
|
|
@@ -288,6 +226,19 @@ export class MidyGM2 {
|
|
|
288
226
|
setMasterFineTuning(fineTuning: any): void;
|
|
289
227
|
handleMasterCoarseTuningSysEx(data: any): void;
|
|
290
228
|
setMasterCoarseTuning(coarseTuning: any): void;
|
|
229
|
+
handleGlobalParameterControl(data: any): void;
|
|
230
|
+
handleReverbParameter(data: any): void;
|
|
231
|
+
setReverbType(type: any): void;
|
|
232
|
+
getReverbTimeFromType(type: any): number | undefined;
|
|
233
|
+
setReverbTime(value: any): void;
|
|
234
|
+
getReverbTime(value: any): number;
|
|
235
|
+
calcDelay(rt60: any, feedback: any): number;
|
|
236
|
+
handleChorusParameter(data: any): void;
|
|
237
|
+
setChorusType(type: any): void;
|
|
238
|
+
setChorusModRate(value: any): void;
|
|
239
|
+
setChorusModDepth(value: any): void;
|
|
240
|
+
setChorusFeedback(value: any): void;
|
|
241
|
+
setChorusSendToReverb(value: any): void;
|
|
291
242
|
handleExclusiveMessage(data: any): void;
|
|
292
243
|
handleSysEx(data: any): void;
|
|
293
244
|
scheduleTask(callback: any, startTime: any): Promise<any>;
|
package/esm/midy-GM2.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"midy-GM2.d.ts","sourceRoot":"","sources":["../src/midy-GM2.js"],"names":[],"mappings":"AAuBA;
|
|
1
|
+
{"version":3,"file":"midy-GM2.d.ts","sourceRoot":"","sources":["../src/midy-GM2.js"],"names":[],"mappings":"AAuBA;IAiCE;;;;;;;;;;;;;;;;;MAiBE;IAEF;;;;;;;;;;;MAWE;IAEF;;;;;;;MAOE;IAgCF;;;;;OAOC;IA9GD,qBAAmB;IACnB,kBAAc;IACd,yBAAqB;IACrB,2BAAuB;IACvB;;;MAGE;IACF;;;;;MAKE;IACF,cAAa;IACb,cAAa;IACb,0BAAwB;IACxB,kBAAc;IACd,mBAAiB;IACjB,kBAAc;IACd,mBAAe;IACf,kBAAgB;IAChB,sBAA2C;IAC3C,mBAAkB;IAClB,mBAAkB;IAClB,kBAAiB;IACjB,oBAAmB;IACnB,mBAAkB;IAClB,gBAAc;IACd,mBAAiB;IACjB,oBAAkB;IA2ClB;;;;;MA4BE;IAGA,kBAAgC;IAChC;;;;;MAAqD;IACrD,gBAA4C;IAE5C,gBAAiD;IAInD,4BAMC;IAED,mCASC;IAED,gDAMC;IAED,sCASC;IAED;;;;;;;;;;;;;;;MAkBC;IAED,yCAcC;IAED,+DAyBC;IAED,mEAWC;IAED,qDAOC;IAED,2EAkDC;IAED,mCAOC;IAED,0BA+CC;IAED,uDAEC;IAED,wDAEC;IAED;;;MAgGC;IAED,4BAsBC;IAED,uBAKC;IAED,aAGC;IAED,cAKC;IAED,wBAIC;IAED,0BAKC;IAED,wBAOC;IAED,sBAGC;IAED,uDASC;IAED,6CAQC;IAED,kFAuBC;IAED;;;;MAWC;IAED,gFAUC;IAED,mFAYC;IAED,sGAcC;IAID;;;MAiCC;IAED;;;;;;MAoCC;IAED,kDAsBC;IAED,2BAEC;IAED,4BAEC;IAED,sCAKC;IAED,mFAGC;IAED,iDAiBC;IAED,iDAiCC;IAED,0DAmBC;IAED,wHAiCC;IAED,gDAQC;IAED,kGAgCC;IAED,0EAGC;IAED,sIAiDC;IAED,0FAGC;IAED,kEAeC;IAED,oEAYC;IAED,wFAmBC;IAED,4DAIC;IAED,+DAcC;IAED,qEAGC;IAED,uDAOC;IAED,mFAuDC;IAED,+CAEC;IAED,qCAcC;IAED,yDAIC;IAED,iEAEC;IAED,iDAIC;IAED;;;MAMC;IAED,2CAIC;IAED,yDAIC;IAED,+CAEC;IAED,mDAGC;IAED,sCAUC;IAED,sDAMC;IAGD,oDAEC;IAED,mEAOC;IAED,mEAIC;IAED,wDAWC;IAED,uDAGC;IAED,kFAeC;IAED,2DAMC;IAED,oCAqBC;IAED,gDAEC;IAED,gDAEC;IAED,mDAGC;IAED,oDAUC;IAED,kDAKC;IAED,iEAOC;IAED,8CAKC;IAED,yDAMC;IAED,gDAKC;IAED,6DAMC;IAED,wDAKC;IAED,6EAKC;IAED,uCAoBC;IAED,8CAEC;IAED,uCAoBC;IAED,gBAEC;IAED,eAEC;IAED,eAEC;IAED,eAEC;IAED,4DAmBC;IAED,oBAQC;IAED,oBAQC;IAED,yDAiDC;IAED,yCAGC;IAED,mCAQC;IAED,6CAGC;IAED,2CAMC;IAED,+CAGC;IAED,+CAMC;IAED,8CAeC;IAED,uCAOC;IAED,+BAOC;IAED,qDAiBC;IAED,gCAMC;IAED,kCAEC;IA2BD,4CAEC;IAED,uCAaC;IAED,+BAEC;IAED,mCAEC;IAED,oCAEC;IAED,oCAEC;IAED,wCAEC;IAED,wCAEC;IAED,6BASC;IAED,0DAUC;CACF;AAhsDD;IASE,gFAKC;IAbD,kBAAa;IACb,cAAS;IACT,gBAAW;IACX,YAAO;IACP,gBAAW;IACX,YAAO;IACP,gBAAW;IAGT,gBAA4B;IAC5B,cAAwB;IACxB,eAA0B;IAC1B,mBAAkC;CAErC"}
|