@marmooo/midy 0.2.1 → 0.2.3
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 +3 -5
- package/esm/midy-GM1.d.ts +5 -5
- package/esm/midy-GM1.d.ts.map +1 -1
- package/esm/midy-GM1.js +32 -29
- package/esm/midy-GM2.d.ts +35 -19
- package/esm/midy-GM2.d.ts.map +1 -1
- package/esm/midy-GM2.js +350 -155
- package/esm/midy-GMLite.d.ts +5 -5
- package/esm/midy-GMLite.d.ts.map +1 -1
- package/esm/midy-GMLite.js +26 -24
- package/esm/midy.d.ts +30 -15
- package/esm/midy.d.ts.map +1 -1
- package/esm/midy.js +312 -139
- package/package.json +1 -1
- package/script/midy-GM1.d.ts +5 -5
- package/script/midy-GM1.d.ts.map +1 -1
- package/script/midy-GM1.js +32 -29
- package/script/midy-GM2.d.ts +35 -19
- package/script/midy-GM2.d.ts.map +1 -1
- package/script/midy-GM2.js +350 -155
- package/script/midy-GMLite.d.ts +5 -5
- package/script/midy-GMLite.d.ts.map +1 -1
- package/script/midy-GMLite.js +26 -24
- package/script/midy.d.ts +30 -15
- package/script/midy.d.ts.map +1 -1
- package/script/midy.js +312 -139
package/package.json
CHANGED
package/script/midy-GM1.d.ts
CHANGED
|
@@ -32,12 +32,12 @@ export class MidyGM1 {
|
|
|
32
32
|
notePromises: any[];
|
|
33
33
|
exclusiveClassMap: Map<any, any>;
|
|
34
34
|
audioContext: any;
|
|
35
|
-
|
|
35
|
+
masterVolume: any;
|
|
36
36
|
voiceParamsHandlers: {
|
|
37
37
|
modLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
|
|
38
38
|
vibLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
|
|
39
39
|
modLfoToFilterFc: (channel: any, note: any, _prevValue: any) => void;
|
|
40
|
-
modLfoToVolume: (channel: any, note: any) => void;
|
|
40
|
+
modLfoToVolume: (channel: any, note: any, _prevValue: any) => void;
|
|
41
41
|
chorusEffectsSend: (_channel: any, _note: any, _prevValue: any) => void;
|
|
42
42
|
reverbEffectsSend: (_channel: any, _note: any, _prevValue: any) => void;
|
|
43
43
|
delayModLFO: (_channel: any, note: any, _prevValue: any) => void;
|
|
@@ -124,7 +124,7 @@ export class MidyGM1 {
|
|
|
124
124
|
modLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
|
|
125
125
|
vibLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
|
|
126
126
|
modLfoToFilterFc: (channel: any, note: any, _prevValue: any) => void;
|
|
127
|
-
modLfoToVolume: (channel: any, note: any) => void;
|
|
127
|
+
modLfoToVolume: (channel: any, note: any, _prevValue: any) => void;
|
|
128
128
|
chorusEffectsSend: (_channel: any, _note: any, _prevValue: any) => void;
|
|
129
129
|
reverbEffectsSend: (_channel: any, _note: any, _prevValue: any) => void;
|
|
130
130
|
delayModLFO: (_channel: any, note: any, _prevValue: any) => void;
|
|
@@ -132,7 +132,7 @@ export class MidyGM1 {
|
|
|
132
132
|
delayVibLFO: (channel: any, note: any, prevValue: any) => void;
|
|
133
133
|
freqVibLFO: (channel: any, note: any, _prevValue: any) => void;
|
|
134
134
|
};
|
|
135
|
-
getControllerState(channel: any, noteNumber: any, velocity: any): Float32Array
|
|
135
|
+
getControllerState(channel: any, noteNumber: any, velocity: any): Float32Array<any>;
|
|
136
136
|
applyVoiceParams(channel: any, controllerType: any): void;
|
|
137
137
|
createControlChangeHandlers(): {
|
|
138
138
|
1: (channelNumber: any, modulation: any) => void;
|
|
@@ -189,7 +189,7 @@ declare class Note {
|
|
|
189
189
|
constructor(noteNumber: any, velocity: any, startTime: any, voice: any, voiceParams: any);
|
|
190
190
|
bufferSource: any;
|
|
191
191
|
filterNode: any;
|
|
192
|
-
|
|
192
|
+
volumeEnvelopeNode: any;
|
|
193
193
|
volumeDepth: any;
|
|
194
194
|
modulationLFO: any;
|
|
195
195
|
modulationDepth: any;
|
package/script/midy-GM1.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"midy-GM1.d.ts","sourceRoot":"","sources":["../src/midy-GM1.js"],"names":[],"mappings":"AAqFA;IAoBE;;;;;;;;;;;;MAYE;IAEF,+BAQC;IAzCD,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;IAClB,iCAA8B;IAiB5B,kBAAgC;IAChC,
|
|
1
|
+
{"version":3,"file":"midy-GM1.d.ts","sourceRoot":"","sources":["../src/midy-GM1.js"],"names":[],"mappings":"AAqFA;IAoBE;;;;;;;;;;;;MAYE;IAEF,+BAQC;IAzCD,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;IAClB,iCAA8B;IAiB5B,kBAAgC;IAChC,kBAA8C;IAC9C;;;;;;;;;;;MAA2D;IAC3D;;;;;;;;;;;;;MAA+D;IAC/D,gBAAiD;IAKnD,4BAMC;IAED,mCAWC;IAED,gDAMC;IAED,sCASC;IAED;;;;MAeC;IAED,yCAUC;IAED,6DA2BC;IAED,iEAUC;IAED,2EA+CC;IAED,mCAOC;IAED,0BAkDC;IAED,uDAEC;IAED,wDAEC;IAED;;;MAgEC;IAED,+EAmBC;IAED,qDAKC;IAED,uBAKC;IAED,aAGC;IAED,cAKC;IAED,wBAIC;IAED,0BAKC;IAED,wBAOC;IAED,sBAGC;IAED,uDASC;IAED,6CAQC;IAED,2BAEC;IAED,8BAEC;IAED,8BAEC;IAED,4BAEC;IAED,qCAMC;IAED,iCAWC;IAED,mCAgBC;IAED,kCAqBC;IAED,6CAIC;IAED,mCAuBC;IAED,+DAoBC;IAED,gHA2BC;IAED,kGAgDC;IAED,0EAGC;IAED,qFA4BC;IAED,6HAuBC;IAED,0FAGC;IAED,kEAeC;IAED,gFAiBC;IAED,4DAGC;IAED,qEAGC;IAED,mDASC;IAED,gDASC;IAED,gDASC;IAED,qCAMC;IAED,mCAQC;IAED,gCAOC;IAED,+BAMC;IAED;;;;;;;;;;;MA4CC;IAED,oFAMC;IAED,0DA6CC;IAED;;;;;;;;;;;;;MAeC;IAED,+EAWC;IAED,qCAeC;IAED,8DAIC;IACD,iDAIC;IAED;;;MAMC;IAED,2CAIC;IAED,yDAIC;IAED,mDAGC;IAED,wCAWC;IAED,sDAKC;IAED,kFAeC;IAED,2DAMC;IAED,oCAkBC;IAED,gDAEC;IAED,gDAEC;IAED,mDAGC;IAED,kDAKC;IAED,wDASC;IAED,8CAKC;IAED,oDAOC;IAED,gDAKC;IAED,sDAOC;IAED,+CAEC;IAED,8CAqBC;IAED,+CAEC;IAED,4DAgBC;IAED,oBAMC;IAED,yDAaC;IAED,yCAGC;IAED,mCAQC;IAED,wCAEC;IAED,6BASC;IAED,0DAUC;CACF;AAjzCD;IAUE,0FAMC;IAfD,kBAAa;IACb,gBAAW;IACX,wBAAmB;IACnB,iBAAY;IACZ,mBAAc;IACd,qBAAgB;IAChB,gBAAW;IACX,kBAAa;IAGX,gBAA4B;IAC5B,cAAwB;IACxB,eAA0B;IAC1B,WAAkB;IAClB,iBAA8B;CAEjC"}
|
package/script/midy-GM1.js
CHANGED
|
@@ -17,7 +17,7 @@ class Note {
|
|
|
17
17
|
writable: true,
|
|
18
18
|
value: void 0
|
|
19
19
|
});
|
|
20
|
-
Object.defineProperty(this, "
|
|
20
|
+
Object.defineProperty(this, "volumeEnvelopeNode", {
|
|
21
21
|
enumerable: true,
|
|
22
22
|
configurable: true,
|
|
23
23
|
writable: true,
|
|
@@ -236,11 +236,11 @@ class MidyGM1 {
|
|
|
236
236
|
value: new Map()
|
|
237
237
|
});
|
|
238
238
|
this.audioContext = audioContext;
|
|
239
|
-
this.
|
|
239
|
+
this.masterVolume = new GainNode(audioContext);
|
|
240
240
|
this.voiceParamsHandlers = this.createVoiceParamsHandlers();
|
|
241
241
|
this.controlChangeHandlers = this.createControlChangeHandlers();
|
|
242
242
|
this.channels = this.createChannels(audioContext);
|
|
243
|
-
this.
|
|
243
|
+
this.masterVolume.connect(audioContext.destination);
|
|
244
244
|
this.GM1SystemOn();
|
|
245
245
|
}
|
|
246
246
|
initSoundFontTable() {
|
|
@@ -286,7 +286,7 @@ class MidyGM1 {
|
|
|
286
286
|
const merger = new ChannelMergerNode(audioContext, { numberOfInputs: 2 });
|
|
287
287
|
gainL.connect(merger, 0, 0);
|
|
288
288
|
gainR.connect(merger, 0, 1);
|
|
289
|
-
merger.connect(this.
|
|
289
|
+
merger.connect(this.masterVolume);
|
|
290
290
|
return {
|
|
291
291
|
gainL,
|
|
292
292
|
gainR,
|
|
@@ -634,7 +634,7 @@ class MidyGM1 {
|
|
|
634
634
|
const volAttack = volDelay + voiceParams.volAttack;
|
|
635
635
|
const volHold = volAttack + voiceParams.volHold;
|
|
636
636
|
const volDecay = volHold + voiceParams.volDecay;
|
|
637
|
-
note.
|
|
637
|
+
note.volumeEnvelopeNode.gain
|
|
638
638
|
.cancelScheduledValues(now)
|
|
639
639
|
.setValueAtTime(0, startTime)
|
|
640
640
|
.setValueAtTime(1e-6, volDelay) // exponentialRampToValueAtTime() requires a non-zero value
|
|
@@ -710,14 +710,14 @@ class MidyGM1 {
|
|
|
710
710
|
note.modulationLFO.connect(note.modulationDepth);
|
|
711
711
|
note.modulationDepth.connect(note.bufferSource.detune);
|
|
712
712
|
note.modulationLFO.connect(note.volumeDepth);
|
|
713
|
-
note.volumeDepth.connect(note.
|
|
713
|
+
note.volumeDepth.connect(note.volumeEnvelopeNode.gain);
|
|
714
714
|
}
|
|
715
715
|
async createNote(channel, voice, noteNumber, velocity, startTime, isSF3) {
|
|
716
716
|
const state = channel.state;
|
|
717
717
|
const voiceParams = voice.getAllParams(state.array);
|
|
718
718
|
const note = new Note(noteNumber, velocity, startTime, voice, voiceParams);
|
|
719
719
|
note.bufferSource = await this.createNoteBufferNode(voiceParams, isSF3);
|
|
720
|
-
note.
|
|
720
|
+
note.volumeEnvelopeNode = new GainNode(this.audioContext);
|
|
721
721
|
note.filterNode = new BiquadFilterNode(this.audioContext, {
|
|
722
722
|
type: "lowpass",
|
|
723
723
|
Q: voiceParams.initialFilterQ / 10, // dB
|
|
@@ -729,7 +729,7 @@ class MidyGM1 {
|
|
|
729
729
|
this.startModulation(channel, note, startTime);
|
|
730
730
|
}
|
|
731
731
|
note.bufferSource.connect(note.filterNode);
|
|
732
|
-
note.filterNode.connect(note.
|
|
732
|
+
note.filterNode.connect(note.volumeEnvelopeNode);
|
|
733
733
|
note.bufferSource.start(startTime);
|
|
734
734
|
return note;
|
|
735
735
|
}
|
|
@@ -745,8 +745,8 @@ class MidyGM1 {
|
|
|
745
745
|
if (!voice)
|
|
746
746
|
return;
|
|
747
747
|
const note = await this.createNote(channel, voice, noteNumber, velocity, startTime, isSF3);
|
|
748
|
-
note.
|
|
749
|
-
note.
|
|
748
|
+
note.volumeEnvelopeNode.connect(channel.gainL);
|
|
749
|
+
note.volumeEnvelopeNode.connect(channel.gainR);
|
|
750
750
|
const exclusiveClass = note.voiceParams.exclusiveClass;
|
|
751
751
|
if (exclusiveClass !== 0) {
|
|
752
752
|
if (this.exclusiveClassMap.has(exclusiveClass)) {
|
|
@@ -774,7 +774,7 @@ class MidyGM1 {
|
|
|
774
774
|
}
|
|
775
775
|
stopNote(endTime, stopTime, scheduledNotes, index) {
|
|
776
776
|
const note = scheduledNotes[index];
|
|
777
|
-
note.
|
|
777
|
+
note.volumeEnvelopeNode.gain
|
|
778
778
|
.cancelScheduledValues(endTime)
|
|
779
779
|
.linearRampToValueAtTime(0, stopTime);
|
|
780
780
|
note.ending = true;
|
|
@@ -785,8 +785,8 @@ class MidyGM1 {
|
|
|
785
785
|
note.bufferSource.onended = () => {
|
|
786
786
|
scheduledNotes[index] = null;
|
|
787
787
|
note.bufferSource.disconnect();
|
|
788
|
-
note.volumeNode.disconnect();
|
|
789
788
|
note.filterNode.disconnect();
|
|
789
|
+
note.volumeEnvelopeNode.disconnect();
|
|
790
790
|
if (note.modulationDepth) {
|
|
791
791
|
note.volumeDepth.disconnect();
|
|
792
792
|
note.modulationDepth.disconnect();
|
|
@@ -883,12 +883,12 @@ class MidyGM1 {
|
|
|
883
883
|
setModLfoToPitch(channel, note) {
|
|
884
884
|
const now = this.audioContext.currentTime;
|
|
885
885
|
const modLfoToPitch = note.voiceParams.modLfoToPitch;
|
|
886
|
-
const
|
|
886
|
+
const baseDepth = Math.abs(modLfoToPitch) +
|
|
887
887
|
channel.state.modulationDepth;
|
|
888
|
-
const
|
|
888
|
+
const modulationDepth = baseDepth * Math.sign(modLfoToPitch);
|
|
889
889
|
note.modulationDepth.gain
|
|
890
890
|
.cancelScheduledValues(now)
|
|
891
|
-
.setValueAtTime(modulationDepth
|
|
891
|
+
.setValueAtTime(modulationDepth, now);
|
|
892
892
|
}
|
|
893
893
|
setVibLfoToPitch(channel, note) {
|
|
894
894
|
const now = this.audioContext.currentTime;
|
|
@@ -910,11 +910,11 @@ class MidyGM1 {
|
|
|
910
910
|
setModLfoToVolume(note) {
|
|
911
911
|
const now = this.audioContext.currentTime;
|
|
912
912
|
const modLfoToVolume = note.voiceParams.modLfoToVolume;
|
|
913
|
-
const
|
|
914
|
-
const
|
|
913
|
+
const baseDepth = this.cbToRatio(Math.abs(modLfoToVolume)) - 1;
|
|
914
|
+
const volumeDepth = baseDepth * Math.sign(modLfoToVolume);
|
|
915
915
|
note.volumeDepth.gain
|
|
916
916
|
.cancelScheduledValues(now)
|
|
917
|
-
.setValueAtTime(volumeDepth
|
|
917
|
+
.setValueAtTime(volumeDepth, now);
|
|
918
918
|
}
|
|
919
919
|
setDelayModLFO(note) {
|
|
920
920
|
const now = this.audioContext.currentTime;
|
|
@@ -948,7 +948,7 @@ class MidyGM1 {
|
|
|
948
948
|
if (0 < channel.state.modulationDepth)
|
|
949
949
|
this.setModLfoToFilterFc(note);
|
|
950
950
|
},
|
|
951
|
-
modLfoToVolume: (channel, note) => {
|
|
951
|
+
modLfoToVolume: (channel, note, _prevValue) => {
|
|
952
952
|
if (0 < channel.state.modulationDepth)
|
|
953
953
|
this.setModLfoToVolume(note);
|
|
954
954
|
},
|
|
@@ -959,12 +959,12 @@ class MidyGM1 {
|
|
|
959
959
|
delayVibLFO: (channel, note, prevValue) => {
|
|
960
960
|
if (0 < channel.state.vibratoDepth) {
|
|
961
961
|
const now = this.audioContext.currentTime;
|
|
962
|
-
const
|
|
963
|
-
|
|
962
|
+
const vibratoDelay = channel.state.vibratoDelay * 2;
|
|
963
|
+
const prevStartTime = note.startTime + prevValue * vibratoDelay;
|
|
964
964
|
if (now < prevStartTime)
|
|
965
965
|
return;
|
|
966
|
-
const
|
|
967
|
-
|
|
966
|
+
const value = note.voiceParams.delayVibLFO;
|
|
967
|
+
const startTime = note.startTime + value * vibratoDelay;
|
|
968
968
|
note.vibratoLFO.stop(now);
|
|
969
969
|
note.vibratoLFO.start(startTime);
|
|
970
970
|
}
|
|
@@ -972,9 +972,10 @@ class MidyGM1 {
|
|
|
972
972
|
freqVibLFO: (channel, note, _prevValue) => {
|
|
973
973
|
if (0 < channel.state.vibratoDepth) {
|
|
974
974
|
const now = this.audioContext.currentTime;
|
|
975
|
+
const freqVibLFO = note.voiceParams.freqVibLFO;
|
|
975
976
|
note.vibratoLFO.frequency
|
|
976
977
|
.cancelScheduledValues(now)
|
|
977
|
-
.setValueAtTime(
|
|
978
|
+
.setValueAtTime(freqVibLFO * channel.state.vibratoRate, now);
|
|
978
979
|
}
|
|
979
980
|
},
|
|
980
981
|
};
|
|
@@ -1053,6 +1054,8 @@ class MidyGM1 {
|
|
|
1053
1054
|
const handler = this.controlChangeHandlers[controllerType];
|
|
1054
1055
|
if (handler) {
|
|
1055
1056
|
handler.call(this, channelNumber, value);
|
|
1057
|
+
const channel = this.channels[channelNumber];
|
|
1058
|
+
this.applyVoiceParams(channel, controller + 128);
|
|
1056
1059
|
}
|
|
1057
1060
|
else {
|
|
1058
1061
|
console.warn(`Unsupported Control change: controllerType=${controllerType} value=${value}`);
|
|
@@ -1060,13 +1063,14 @@ class MidyGM1 {
|
|
|
1060
1063
|
}
|
|
1061
1064
|
updateModulation(channel) {
|
|
1062
1065
|
const now = this.audioContext.currentTime;
|
|
1066
|
+
const depth = channel.state.modulationDepth * channel.modulationDepthRange;
|
|
1063
1067
|
channel.scheduledNotes.forEach((noteList) => {
|
|
1064
1068
|
for (let i = 0; i < noteList.length; i++) {
|
|
1065
1069
|
const note = noteList[i];
|
|
1066
1070
|
if (!note)
|
|
1067
1071
|
continue;
|
|
1068
1072
|
if (note.modulationDepth) {
|
|
1069
|
-
note.modulationDepth.gain.setValueAtTime(
|
|
1073
|
+
note.modulationDepth.gain.setValueAtTime(depth, now);
|
|
1070
1074
|
}
|
|
1071
1075
|
else {
|
|
1072
1076
|
this.setPitchEnvelope(note);
|
|
@@ -1077,8 +1081,7 @@ class MidyGM1 {
|
|
|
1077
1081
|
}
|
|
1078
1082
|
setModulationDepth(channelNumber, modulation) {
|
|
1079
1083
|
const channel = this.channels[channelNumber];
|
|
1080
|
-
channel.state.modulationDepth =
|
|
1081
|
-
channel.modulationDepthRange;
|
|
1084
|
+
channel.state.modulationDepth = modulation / 127;
|
|
1082
1085
|
this.updateModulation(channel);
|
|
1083
1086
|
}
|
|
1084
1087
|
setVolume(channelNumber, volume) {
|
|
@@ -1298,8 +1301,8 @@ class MidyGM1 {
|
|
|
1298
1301
|
}
|
|
1299
1302
|
else {
|
|
1300
1303
|
const now = this.audioContext.currentTime;
|
|
1301
|
-
this.
|
|
1302
|
-
this.
|
|
1304
|
+
this.masterVolume.gain.cancelScheduledValues(now);
|
|
1305
|
+
this.masterVolume.gain.setValueAtTime(volume * volume, now);
|
|
1303
1306
|
}
|
|
1304
1307
|
}
|
|
1305
1308
|
handleExclusiveMessage(data) {
|
package/script/midy-GM2.d.ts
CHANGED
|
@@ -3,6 +3,8 @@ export class MidyGM2 {
|
|
|
3
3
|
currentBufferSource: null;
|
|
4
4
|
detune: number;
|
|
5
5
|
scaleOctaveTuningTable: any[];
|
|
6
|
+
pressureTable: Uint8Array<ArrayBuffer>;
|
|
7
|
+
keyBasedInstrumentControlTable: Int8Array<ArrayBuffer>;
|
|
6
8
|
program: number;
|
|
7
9
|
bank: number;
|
|
8
10
|
bankMSB: number;
|
|
@@ -75,14 +77,14 @@ export class MidyGM2 {
|
|
|
75
77
|
output: any;
|
|
76
78
|
};
|
|
77
79
|
};
|
|
78
|
-
|
|
80
|
+
masterVolume: any;
|
|
79
81
|
voiceParamsHandlers: {
|
|
80
82
|
modLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
|
|
81
83
|
vibLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
|
|
82
84
|
modLfoToFilterFc: (channel: any, note: any, _prevValue: any) => void;
|
|
83
|
-
modLfoToVolume: (channel: any, note: any) => void;
|
|
84
|
-
chorusEffectsSend: (
|
|
85
|
-
reverbEffectsSend: (
|
|
85
|
+
modLfoToVolume: (channel: any, note: any, _prevValue: any) => void;
|
|
86
|
+
chorusEffectsSend: (channel: any, note: any, prevValue: any) => void;
|
|
87
|
+
reverbEffectsSend: (channel: any, note: any, prevValue: any) => void;
|
|
86
88
|
delayModLFO: (_channel: any, note: any, _prevValue: any) => void;
|
|
87
89
|
freqModLFO: (_channel: any, note: any, _prevValue: any) => void;
|
|
88
90
|
delayVibLFO: (channel: any, note: any, prevValue: any) => void;
|
|
@@ -187,11 +189,12 @@ export class MidyGM2 {
|
|
|
187
189
|
rateToCent(rate: any): number;
|
|
188
190
|
centToRate(cent: any): number;
|
|
189
191
|
centToHz(cent: any): number;
|
|
190
|
-
|
|
192
|
+
calcChannelDetune(channel: any): any;
|
|
191
193
|
calcNoteDetune(channel: any, note: any): any;
|
|
192
194
|
updateDetune(channel: any): void;
|
|
195
|
+
getPortamentoTime(channel: any): number;
|
|
193
196
|
setPortamentoStartVolumeEnvelope(channel: any, note: any): void;
|
|
194
|
-
setVolumeEnvelope(note: any): void;
|
|
197
|
+
setVolumeEnvelope(channel: any, note: any): void;
|
|
195
198
|
setPitchEnvelope(note: any): void;
|
|
196
199
|
clampCutoffFrequency(frequency: any): number;
|
|
197
200
|
setPortamentoStartFilterEnvelope(channel: any, note: any): void;
|
|
@@ -209,30 +212,31 @@ export class MidyGM2 {
|
|
|
209
212
|
releaseSostenutoPedal(channelNumber: any, halfVelocity: any): any[];
|
|
210
213
|
handleMIDIMessage(statusByte: any, data1: any, data2: any): void | Promise<any>;
|
|
211
214
|
handleProgramChange(channelNumber: any, program: any): void;
|
|
212
|
-
handleChannelPressure(channelNumber: any,
|
|
215
|
+
handleChannelPressure(channelNumber: any, value: any): void;
|
|
216
|
+
setChannelPressure(channel: any, note: any): void;
|
|
213
217
|
handlePitchBendMessage(channelNumber: any, lsb: any, msb: any): void;
|
|
214
218
|
setPitchBend(channelNumber: any, value: any): void;
|
|
215
219
|
setModLfoToPitch(channel: any, note: any): void;
|
|
216
220
|
setVibLfoToPitch(channel: any, note: any): void;
|
|
217
|
-
setModLfoToFilterFc(note: any): void;
|
|
218
|
-
setModLfoToVolume(note: any): void;
|
|
219
|
-
|
|
220
|
-
|
|
221
|
+
setModLfoToFilterFc(channel: any, note: any): void;
|
|
222
|
+
setModLfoToVolume(channel: any, note: any): void;
|
|
223
|
+
setReverbEffectsSend(channel: any, note: any, prevValue: any): void;
|
|
224
|
+
setChorusEffectsSend(channel: any, note: any, prevValue: any): void;
|
|
221
225
|
setDelayModLFO(note: any): void;
|
|
222
226
|
setFreqModLFO(note: any): void;
|
|
223
227
|
createVoiceParamsHandlers(): {
|
|
224
228
|
modLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
|
|
225
229
|
vibLfoToPitch: (channel: any, note: any, _prevValue: any) => void;
|
|
226
230
|
modLfoToFilterFc: (channel: any, note: any, _prevValue: any) => void;
|
|
227
|
-
modLfoToVolume: (channel: any, note: any) => void;
|
|
228
|
-
chorusEffectsSend: (
|
|
229
|
-
reverbEffectsSend: (
|
|
231
|
+
modLfoToVolume: (channel: any, note: any, _prevValue: any) => void;
|
|
232
|
+
chorusEffectsSend: (channel: any, note: any, prevValue: any) => void;
|
|
233
|
+
reverbEffectsSend: (channel: any, note: any, prevValue: any) => void;
|
|
230
234
|
delayModLFO: (_channel: any, note: any, _prevValue: any) => void;
|
|
231
235
|
freqModLFO: (_channel: any, note: any, _prevValue: any) => void;
|
|
232
236
|
delayVibLFO: (channel: any, note: any, prevValue: any) => void;
|
|
233
237
|
freqVibLFO: (channel: any, note: any, _prevValue: any) => void;
|
|
234
238
|
};
|
|
235
|
-
getControllerState(channel: any, noteNumber: any, velocity: any): Float32Array
|
|
239
|
+
getControllerState(channel: any, noteNumber: any, velocity: any): Float32Array<any>;
|
|
236
240
|
applyVoiceParams(channel: any, controllerType: any): void;
|
|
237
241
|
createControlChangeHandlers(): {
|
|
238
242
|
0: (channelNumber: any, msb: any) => void;
|
|
@@ -265,11 +269,13 @@ export class MidyGM2 {
|
|
|
265
269
|
updateModulation(channel: any): void;
|
|
266
270
|
setModulationDepth(channelNumber: any, modulation: any): void;
|
|
267
271
|
setPortamentoTime(channelNumber: any, portamentoTime: any): void;
|
|
272
|
+
setKeyBasedVolume(channel: any): void;
|
|
268
273
|
setVolume(channelNumber: any, volume: any): void;
|
|
269
274
|
panToGain(pan: any): {
|
|
270
275
|
gainLeft: number;
|
|
271
276
|
gainRight: number;
|
|
272
277
|
};
|
|
278
|
+
setKeyBasedPan(channel: any): void;
|
|
273
279
|
setPan(channelNumber: any, pan: any): void;
|
|
274
280
|
setExpression(channelNumber: any, expression: any): void;
|
|
275
281
|
setBankLSB(channelNumber: any, lsb: any): void;
|
|
@@ -277,10 +283,10 @@ export class MidyGM2 {
|
|
|
277
283
|
updateChannelVolume(channel: any): void;
|
|
278
284
|
setSustainPedal(channelNumber: any, value: any): void;
|
|
279
285
|
setPortamento(channelNumber: any, value: any): void;
|
|
280
|
-
setReverbSendLevel(channelNumber: any, reverbSendLevel: any): void;
|
|
281
|
-
setChorusSendLevel(channelNumber: any, chorusSendLevel: any): void;
|
|
282
286
|
setSostenutoPedal(channelNumber: any, value: any): void;
|
|
283
287
|
setSoftPedal(channelNumber: any, softPedal: any): void;
|
|
288
|
+
setReverbSendLevel(channelNumber: any, reverbSendLevel: any): void;
|
|
289
|
+
setChorusSendLevel(channelNumber: any, chorusSendLevel: any): void;
|
|
284
290
|
limitData(channel: any, minMSB: any, maxMSB: any, minLSB: any, maxLSB: any): void;
|
|
285
291
|
limitDataMSB(channel: any, minMSB: any, maxMSB: any): void;
|
|
286
292
|
handleRPN(channelNumber: any): void;
|
|
@@ -312,8 +318,6 @@ export class MidyGM2 {
|
|
|
312
318
|
setMasterFineTuning(value: any): void;
|
|
313
319
|
handleMasterCoarseTuningSysEx(data: any): void;
|
|
314
320
|
setMasterCoarseTuning(value: any): void;
|
|
315
|
-
getChannelBitmap(data: any): any[];
|
|
316
|
-
handleScaleOctaveTuning1ByteFormat(data: any): void;
|
|
317
321
|
handleGlobalParameterControlSysEx(data: any): void;
|
|
318
322
|
handleReverbParameterSysEx(data: any): void;
|
|
319
323
|
setReverbType(type: any): void;
|
|
@@ -332,6 +336,15 @@ export class MidyGM2 {
|
|
|
332
336
|
getChorusFeedback(value: any): number;
|
|
333
337
|
setChorusSendToReverb(value: any): void;
|
|
334
338
|
getChorusSendToReverb(value: any): number;
|
|
339
|
+
getChannelBitmap(data: any): any[];
|
|
340
|
+
handleScaleOctaveTuning1ByteFormatSysEx(data: any): void;
|
|
341
|
+
applyDestinationSettings(channel: any, note: any, table: any): void;
|
|
342
|
+
handleChannelPressureSysEx(data: any): void;
|
|
343
|
+
initControlTable(): Uint8Array<ArrayBuffer>;
|
|
344
|
+
applyControlTable(channel: any, controllerType: any): void;
|
|
345
|
+
handleControlChangeSysEx(data: any): void;
|
|
346
|
+
getKeyBasedInstrumentControlValue(channel: any, keyNumber: any, controllerType: any): number;
|
|
347
|
+
handleKeyBasedInstrumentControlSysEx(data: any): void;
|
|
335
348
|
handleExclusiveMessage(data: any): void;
|
|
336
349
|
handleSysEx(data: any): void;
|
|
337
350
|
scheduleTask(callback: any, startTime: any): Promise<any>;
|
|
@@ -340,7 +353,10 @@ declare class Note {
|
|
|
340
353
|
constructor(noteNumber: any, velocity: any, startTime: any, voice: any, voiceParams: any);
|
|
341
354
|
bufferSource: any;
|
|
342
355
|
filterNode: any;
|
|
356
|
+
volumeEnvelopeNode: any;
|
|
343
357
|
volumeNode: any;
|
|
358
|
+
gainL: any;
|
|
359
|
+
gainR: any;
|
|
344
360
|
volumeDepth: any;
|
|
345
361
|
modulationLFO: any;
|
|
346
362
|
modulationDepth: any;
|
package/script/midy-GM2.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"midy-GM2.d.ts","sourceRoot":"","sources":["../src/midy-GM2.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"midy-GM2.d.ts","sourceRoot":"","sources":["../src/midy-GM2.js"],"names":[],"mappings":"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"}
|