@marmooo/midy 0.0.7 → 0.0.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/esm/midy-GM1.d.ts +6 -4
- package/esm/midy-GM1.d.ts.map +1 -1
- package/esm/midy-GM1.js +32 -21
- package/esm/midy-GM2.d.ts +11 -7
- package/esm/midy-GM2.d.ts.map +1 -1
- package/esm/midy-GM2.js +57 -34
- package/esm/midy-GMLite.d.ts +4 -2
- package/esm/midy-GMLite.d.ts.map +1 -1
- package/esm/midy-GMLite.js +19 -14
- package/esm/midy.d.ts +14 -10
- package/esm/midy.d.ts.map +1 -1
- package/esm/midy.js +61 -35
- package/package.json +1 -1
- package/script/midy-GM1.d.ts +6 -4
- package/script/midy-GM1.d.ts.map +1 -1
- package/script/midy-GM1.js +32 -21
- package/script/midy-GM2.d.ts +11 -7
- package/script/midy-GM2.d.ts.map +1 -1
- package/script/midy-GM2.js +57 -34
- package/script/midy-GMLite.d.ts +4 -2
- package/script/midy-GMLite.d.ts.map +1 -1
- package/script/midy-GMLite.js +19 -14
- package/script/midy.d.ts +14 -10
- package/script/midy.d.ts.map +1 -1
- package/script/midy.js +61 -35
package/esm/midy.d.ts
CHANGED
|
@@ -256,14 +256,15 @@ export class Midy {
|
|
|
256
256
|
releaseNote(channelNumber: any, noteNumber: any, velocity: any): Promise<any> | undefined;
|
|
257
257
|
releaseSustainPedal(channelNumber: any, halfVelocity: any): any[];
|
|
258
258
|
releaseSostenutoPedal(channelNumber: any, halfVelocity: any): any[];
|
|
259
|
-
handleMIDIMessage(statusByte: any, data1: any, data2: any): any
|
|
259
|
+
handleMIDIMessage(statusByte: any, data1: any, data2: any): void | any[] | Promise<any>;
|
|
260
260
|
handlePolyphonicKeyPressure(channelNumber: any, noteNumber: any, pressure: any): void;
|
|
261
261
|
handleProgramChange(channelNumber: any, program: any): void;
|
|
262
262
|
handleChannelPressure(channelNumber: any, pressure: any): void;
|
|
263
263
|
handlePitchBendMessage(channelNumber: any, lsb: any, msb: any): void;
|
|
264
264
|
setPitchBend(channelNumber: any, pitchBend: any): void;
|
|
265
|
-
handleControlChange(channelNumber: any, controller: any, value: any): any;
|
|
265
|
+
handleControlChange(channelNumber: any, controller: any, value: any): void | any[];
|
|
266
266
|
setBankMSB(channelNumber: any, msb: any): void;
|
|
267
|
+
updateModulation(channel: any): void;
|
|
267
268
|
setModulation(channelNumber: any, modulation: any): void;
|
|
268
269
|
setPortamentoTime(channelNumber: any, portamentoTime: any): void;
|
|
269
270
|
setVolume(channelNumber: any, volume: any): void;
|
|
@@ -274,11 +275,12 @@ export class Midy {
|
|
|
274
275
|
setPan(channelNumber: any, pan: any): void;
|
|
275
276
|
setExpression(channelNumber: any, expression: any): void;
|
|
276
277
|
setBankLSB(channelNumber: any, lsb: any): void;
|
|
278
|
+
dataEntryLSB(channelNumber: any, value: any): void;
|
|
277
279
|
updateChannelGain(channel: any): void;
|
|
278
280
|
setSustainPedal(channelNumber: any, value: any): void;
|
|
279
281
|
setPortamento(channelNumber: any, value: any): void;
|
|
280
|
-
|
|
281
|
-
|
|
282
|
+
setReverbSendLevel(channelNumber: any, reverb: any): void;
|
|
283
|
+
setChorusSendLevel(channelNumber: any, chorus: any): void;
|
|
282
284
|
setSostenutoPedal(channelNumber: any, value: any): void;
|
|
283
285
|
setSoftPedal(channelNumber: any, softPedal: any): void;
|
|
284
286
|
setVibratoRate(channelNumber: any, vibratoRate: any): void;
|
|
@@ -287,18 +289,20 @@ export class Midy {
|
|
|
287
289
|
limitData(channel: any, minMSB: any, maxMSB: any, minLSB: any, maxLSB: any): void;
|
|
288
290
|
limitDataMSB(channel: any, minMSB: any, maxMSB: any): void;
|
|
289
291
|
handleRPN(channelNumber: any, value: any): void;
|
|
290
|
-
|
|
291
|
-
|
|
292
|
+
dataIncrement(channelNumber: any): void;
|
|
293
|
+
dataDecrement(channelNumber: any): void;
|
|
292
294
|
setRPNMSB(channelNumber: any, value: any): void;
|
|
293
295
|
setRPNLSB(channelNumber: any, value: any): void;
|
|
294
|
-
|
|
296
|
+
dataEntryMSB(channelNumber: any, value: any): void;
|
|
295
297
|
updateDetune(channel: any, detuneChange: any): void;
|
|
296
|
-
|
|
298
|
+
handlePitchBendRangeRPN(channelNumber: any): void;
|
|
297
299
|
setPitchBendRange(channelNumber: any, pitchBendRange: any): void;
|
|
298
|
-
|
|
300
|
+
handleFineTuningRPN(channelNumber: any): void;
|
|
299
301
|
setFineTuning(channelNumber: any, fineTuning: any): void;
|
|
300
|
-
|
|
302
|
+
handleCoarseTuningRPN(channelNumber: any): void;
|
|
301
303
|
setCoarseTuning(channelNumber: any, coarseTuning: any): void;
|
|
304
|
+
handleModulationDepthRangeRPN(channelNumber: any): void;
|
|
305
|
+
setModulationDepthRange(channelNumber: any, modulationDepthRange: any): void;
|
|
302
306
|
allSoundOff(channelNumber: any): any[];
|
|
303
307
|
resetAllControllers(channelNumber: any): void;
|
|
304
308
|
allNotesOff(channelNumber: any): any[];
|
package/esm/midy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"midy.d.ts","sourceRoot":"","sources":["../src/midy.js"],"names":[],"mappings":"AAuBA;IAwBE;;;;;;;;;;;;;;;;;;;;MAoBE;IAEF;;;;;;;;;;;MAWE;IAEF;;;;;;;MAOE;IAEF,+BAMC;IAzED,qBAAmB;IACnB,kBAAc;IACd,qBAAmB;IACnB,yBAAqB;IACrB,2BAAuB;IACvB,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;IA+ChB,kBAAgC;IAChC,gBAA4C;IAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAAiD;IAInD,4BAMC;IAED,mCASC;IAED,gDAMC;IAED,sCASC;IAED;;;;;;;;;;;;;;MAqBC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiBC;IAED,+DAyBC;IAED,mEAWC;IAED,qDAOC;IAED,2EAyDC;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;;;;MAoCC;IAED;;;;;MAqCC;IAED,sDA6BC;IAED,2BAEC;IAED,4BAEC;IAED,sCAKC;IAED,mFAGC;IAED,iDAiBC;IAED,iDAiCC;IAED,0DAmBC;IAED,uDAcC;IAED,wHAqCC;IAED,gDAQC;IAED,kGAgCC;IAED,0EAGC;IAED,sIAwDC;IAED,0FAGC;IAED,kEAeC;IAED,oEAYC;IAED,
|
|
1
|
+
{"version":3,"file":"midy.d.ts","sourceRoot":"","sources":["../src/midy.js"],"names":[],"mappings":"AAuBA;IAwBE;;;;;;;;;;;;;;;;;;;;MAoBE;IAEF;;;;;;;;;;;MAWE;IAEF;;;;;;;MAOE;IAEF,+BAMC;IAzED,qBAAmB;IACnB,kBAAc;IACd,qBAAmB;IACnB,yBAAqB;IACrB,2BAAuB;IACvB,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;IA+ChB,kBAAgC;IAChC,gBAA4C;IAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAAiD;IAInD,4BAMC;IAED,mCASC;IAED,gDAMC;IAED,sCASC;IAED;;;;;;;;;;;;;;MAqBC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAiBC;IAED,+DAyBC;IAED,mEAWC;IAED,qDAOC;IAED,2EAyDC;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;;;;MAoCC;IAED;;;;;MAqCC;IAED,sDA6BC;IAED,2BAEC;IAED,4BAEC;IAED,sCAKC;IAED,mFAGC;IAED,iDAiBC;IAED,iDAiCC;IAED,0DAmBC;IAED,uDAcC;IAED,wHAqCC;IAED,gDAQC;IAED,kGAgCC;IAED,0EAGC;IAED,sIAwDC;IAED,0FAGC;IAED,kEAeC;IAED,oEAYC;IAED,wFAqBC;IAED,sFAcC;IAED,4DAIC;IAED,+DAcC;IAED,qEAGC;IAED,uDAOC;IAED,mFAkEC;IAED,+CAEC;IAED,qCAcC;IAED,yDAIC;IAED,iEAEC;IAED,iDAIC;IAED;;;MAMC;IAED,2CAIC;IAED,yDAIC;IAED,+CAEC;IAED,mDAGC;IAED,sCAUC;IAED,sDAMC;IAED,oDAEC;IAED,0DASC;IAED,0DAIC;IAED,wDAWC;IAED,uDAGC;IAED,2DAGC;IAED,6DAGC;IAED,6DASC;IAED,kFAeC;IAED,2DAMC;IAED,gDAyBC;IAED,wCAEC;IAED,wCAEC;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,yDAgDC;IAED,yCAGC;IAED,mCAQC;IAED,6CAGC;IAED,2CAMC;IAED,+CAGC;IAED,+CAMC;IAED,wCAEC;IAED,6BASC;IAED,0DAUC;CACF;AAxjDD;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"}
|
package/esm/midy.js
CHANGED
|
@@ -75,13 +75,13 @@ export class Midy {
|
|
|
75
75
|
configurable: true,
|
|
76
76
|
writable: true,
|
|
77
77
|
value: 0
|
|
78
|
-
});
|
|
78
|
+
}); // cb
|
|
79
79
|
Object.defineProperty(this, "masterCoarseTuning", {
|
|
80
80
|
enumerable: true,
|
|
81
81
|
configurable: true,
|
|
82
82
|
writable: true,
|
|
83
83
|
value: 0
|
|
84
|
-
});
|
|
84
|
+
}); // cb
|
|
85
85
|
Object.defineProperty(this, "mono", {
|
|
86
86
|
enumerable: true,
|
|
87
87
|
configurable: true,
|
|
@@ -748,7 +748,7 @@ export class Midy {
|
|
|
748
748
|
startModulation(channel, note, time) {
|
|
749
749
|
const { instrumentKey } = note;
|
|
750
750
|
note.modLFOGain = new GainNode(this.audioContext, {
|
|
751
|
-
gain: this.cbToRatio(instrumentKey.modLfoToVolume
|
|
751
|
+
gain: this.cbToRatio(instrumentKey.modLfoToVolume + channel.modulation),
|
|
752
752
|
});
|
|
753
753
|
note.modLFO = new OscillatorNode(this.audioContext, {
|
|
754
754
|
frequency: this.centToHz(instrumentKey.freqModLFO),
|
|
@@ -995,7 +995,7 @@ export class Midy {
|
|
|
995
995
|
case 5:
|
|
996
996
|
return this.setPortamentoTime(channelNumber, value);
|
|
997
997
|
case 6:
|
|
998
|
-
return this.
|
|
998
|
+
return this.dataEntryMSB(channelNumber, value);
|
|
999
999
|
case 7:
|
|
1000
1000
|
return this.setVolume(channelNumber, value);
|
|
1001
1001
|
case 10:
|
|
@@ -1005,7 +1005,7 @@ export class Midy {
|
|
|
1005
1005
|
case 32:
|
|
1006
1006
|
return this.setBankLSB(channelNumber, value);
|
|
1007
1007
|
case 38:
|
|
1008
|
-
return this.
|
|
1008
|
+
return this.dataEntryLSB(channelNumber, value);
|
|
1009
1009
|
case 64:
|
|
1010
1010
|
return this.setSustainPedal(channelNumber, value);
|
|
1011
1011
|
case 65:
|
|
@@ -1022,13 +1022,13 @@ export class Midy {
|
|
|
1022
1022
|
case 78:
|
|
1023
1023
|
return this.setVibratoDelay(channelNumber, value);
|
|
1024
1024
|
case 91:
|
|
1025
|
-
return this.
|
|
1025
|
+
return this.setReverbSendLevel(channelNumber, value);
|
|
1026
1026
|
case 93:
|
|
1027
|
-
return this.
|
|
1027
|
+
return this.setChorusSendLevel(channelNumber, value);
|
|
1028
1028
|
case 96: // https://amei.or.jp/midistandardcommittee/Recommended_Practice/e/rp18.pdf
|
|
1029
|
-
return
|
|
1029
|
+
return this.dataIncrement(channelNumber);
|
|
1030
1030
|
case 97: // https://amei.or.jp/midistandardcommittee/Recommended_Practice/e/rp18.pdf
|
|
1031
|
-
return
|
|
1031
|
+
return this.dataDecrement(channelNumber);
|
|
1032
1032
|
case 100:
|
|
1033
1033
|
return this.setRPNLSB(channelNumber, value);
|
|
1034
1034
|
case 101:
|
|
@@ -1054,22 +1054,24 @@ export class Midy {
|
|
|
1054
1054
|
setBankMSB(channelNumber, msb) {
|
|
1055
1055
|
this.channels[channelNumber].bankMSB = msb;
|
|
1056
1056
|
}
|
|
1057
|
-
|
|
1057
|
+
updateModulation(channel) {
|
|
1058
1058
|
const now = this.audioContext.currentTime;
|
|
1059
|
-
const channel = this.channels[channelNumber];
|
|
1060
|
-
channel.modulation = (modulation / 127) *
|
|
1061
|
-
(channel.modulationDepthRange * 100);
|
|
1062
1059
|
const activeNotes = this.getActiveNotes(channel, now);
|
|
1063
1060
|
activeNotes.forEach((activeNote) => {
|
|
1064
1061
|
if (activeNote.modLFO) {
|
|
1065
|
-
|
|
1066
|
-
|
|
1062
|
+
const { gainNode, instrumentKey } = activeNote;
|
|
1063
|
+
gainNode.gain.setValueAtTime(this.cbToRatio(instrumentKey.modLfoToVolume + channel.modulation), now);
|
|
1067
1064
|
}
|
|
1068
1065
|
else {
|
|
1069
1066
|
this.startModulation(channel, activeNote, now);
|
|
1070
1067
|
}
|
|
1071
1068
|
});
|
|
1072
1069
|
}
|
|
1070
|
+
setModulation(channelNumber, modulation) {
|
|
1071
|
+
const channel = this.channels[channelNumber];
|
|
1072
|
+
channel.modulation = (modulation / 127) * channel.modulationDepthRange;
|
|
1073
|
+
this.updateModulation(channel);
|
|
1074
|
+
}
|
|
1073
1075
|
setPortamentoTime(channelNumber, portamentoTime) {
|
|
1074
1076
|
this.channels[channelNumber].portamentoTime = portamentoTime / 127;
|
|
1075
1077
|
}
|
|
@@ -1098,6 +1100,10 @@ export class Midy {
|
|
|
1098
1100
|
setBankLSB(channelNumber, lsb) {
|
|
1099
1101
|
this.channels[channelNumber].bankLSB = lsb;
|
|
1100
1102
|
}
|
|
1103
|
+
dataEntryLSB(channelNumber, value) {
|
|
1104
|
+
this.channels[channelNumber].dataLSB = value;
|
|
1105
|
+
this.handleRPN(channelNumber, 0);
|
|
1106
|
+
}
|
|
1101
1107
|
updateChannelGain(channel) {
|
|
1102
1108
|
const now = this.audioContext.currentTime;
|
|
1103
1109
|
const volume = channel.volume * channel.expression;
|
|
@@ -1119,7 +1125,7 @@ export class Midy {
|
|
|
1119
1125
|
setPortamento(channelNumber, value) {
|
|
1120
1126
|
this.channels[channelNumber].portamento = value >= 64;
|
|
1121
1127
|
}
|
|
1122
|
-
|
|
1128
|
+
setReverbSendLevel(channelNumber, reverb) {
|
|
1123
1129
|
const now = this.audioContext.currentTime;
|
|
1124
1130
|
const channel = this.channels[channelNumber];
|
|
1125
1131
|
const reverbEffect = channel.reverbEffect;
|
|
@@ -1129,7 +1135,7 @@ export class Midy {
|
|
|
1129
1135
|
reverbEffect.wetGain.gain.cancelScheduledValues(now);
|
|
1130
1136
|
reverbEffect.wetGain.gain.setValueAtTime(channel.reverb, now);
|
|
1131
1137
|
}
|
|
1132
|
-
|
|
1138
|
+
setChorusSendLevel(channelNumber, chorus) {
|
|
1133
1139
|
const channel = this.channels[channelNumber];
|
|
1134
1140
|
channel.chorus = chorus / 127;
|
|
1135
1141
|
channel.chorusEffect.lfoGain = channel.chorus;
|
|
@@ -1195,31 +1201,34 @@ export class Midy {
|
|
|
1195
1201
|
channel.dataMSB = minMSB;
|
|
1196
1202
|
}
|
|
1197
1203
|
}
|
|
1198
|
-
// TODO: support 3-4?
|
|
1199
1204
|
handleRPN(channelNumber, value) {
|
|
1200
1205
|
const channel = this.channels[channelNumber];
|
|
1201
1206
|
const rpn = channel.rpnMSB * 128 + channel.rpnLSB;
|
|
1202
1207
|
switch (rpn) {
|
|
1203
1208
|
case 0:
|
|
1204
1209
|
channel.dataLSB += value;
|
|
1205
|
-
this.
|
|
1210
|
+
this.handlePitchBendRangeRPN(channelNumber);
|
|
1206
1211
|
break;
|
|
1207
1212
|
case 1:
|
|
1208
1213
|
channel.dataLSB += value;
|
|
1209
|
-
this.
|
|
1214
|
+
this.handleFineTuningRPN(channelNumber);
|
|
1210
1215
|
break;
|
|
1211
1216
|
case 2:
|
|
1212
1217
|
channel.dataMSB += value;
|
|
1213
|
-
this.
|
|
1218
|
+
this.handleCoarseTuningRPN(channelNumber);
|
|
1219
|
+
break;
|
|
1220
|
+
case 5:
|
|
1221
|
+
channel.dataLSB += value;
|
|
1222
|
+
this.handleModulationDepthRangeRPN(channelNumber);
|
|
1214
1223
|
break;
|
|
1215
1224
|
default:
|
|
1216
1225
|
console.warn(`Channel ${channelNumber}: Unsupported RPN MSB=${channel.rpnMSB} LSB=${channel.rpnLSB}`);
|
|
1217
1226
|
}
|
|
1218
1227
|
}
|
|
1219
|
-
|
|
1228
|
+
dataIncrement(channelNumber) {
|
|
1220
1229
|
this.handleRPN(channelNumber, 1);
|
|
1221
1230
|
}
|
|
1222
|
-
|
|
1231
|
+
dataDecrement(channelNumber) {
|
|
1223
1232
|
this.handleRPN(channelNumber, -1);
|
|
1224
1233
|
}
|
|
1225
1234
|
setRPNMSB(channelNumber, value) {
|
|
@@ -1228,9 +1237,8 @@ export class Midy {
|
|
|
1228
1237
|
setRPNLSB(channelNumber, value) {
|
|
1229
1238
|
this.channels[channelNumber].rpnLSB = value;
|
|
1230
1239
|
}
|
|
1231
|
-
|
|
1232
|
-
|
|
1233
|
-
isMSB ? channel.dataMSB = value : channel.dataLSB = value;
|
|
1240
|
+
dataEntryMSB(channelNumber, value) {
|
|
1241
|
+
this.channels[channelNumber].dataMSB = value;
|
|
1234
1242
|
this.handleRPN(channelNumber, 0);
|
|
1235
1243
|
}
|
|
1236
1244
|
updateDetune(channel, detuneChange) {
|
|
@@ -1244,7 +1252,7 @@ export class Midy {
|
|
|
1244
1252
|
.setValueAtTime(detune, now);
|
|
1245
1253
|
});
|
|
1246
1254
|
}
|
|
1247
|
-
|
|
1255
|
+
handlePitchBendRangeRPN(channelNumber) {
|
|
1248
1256
|
const channel = this.channels[channelNumber];
|
|
1249
1257
|
this.limitData(channel, 0, 127, 0, 99);
|
|
1250
1258
|
const pitchBendRange = channel.dataMSB + channel.dataLSB / 100;
|
|
@@ -1258,7 +1266,7 @@ export class Midy {
|
|
|
1258
1266
|
channel.pitchBend * 100;
|
|
1259
1267
|
this.updateDetune(channel, detuneChange);
|
|
1260
1268
|
}
|
|
1261
|
-
|
|
1269
|
+
handleFineTuningRPN(channelNumber) {
|
|
1262
1270
|
const channel = this.channels[channelNumber];
|
|
1263
1271
|
this.limitData(channel, 0, 127, 0, 127);
|
|
1264
1272
|
const fineTuning = (channel.dataMSB * 128 + channel.dataLSB - 8192) / 8192;
|
|
@@ -1266,9 +1274,12 @@ export class Midy {
|
|
|
1266
1274
|
}
|
|
1267
1275
|
setFineTuning(channelNumber, fineTuning) {
|
|
1268
1276
|
const channel = this.channels[channelNumber];
|
|
1277
|
+
const prevFineTuning = channel.fineTuning;
|
|
1269
1278
|
channel.fineTuning = fineTuning;
|
|
1279
|
+
const detuneChange = channel.fineTuning - prevFineTuning;
|
|
1280
|
+
this.updateDetune(channel, detuneChange);
|
|
1270
1281
|
}
|
|
1271
|
-
|
|
1282
|
+
handleCoarseTuningRPN(channelNumber) {
|
|
1272
1283
|
const channel = this.channels[channelNumber];
|
|
1273
1284
|
this.limitDataMSB(channel, 0, 127);
|
|
1274
1285
|
const coarseTuning = channel.dataMSB - 64;
|
|
@@ -1276,7 +1287,22 @@ export class Midy {
|
|
|
1276
1287
|
}
|
|
1277
1288
|
setCoarseTuning(channelNumber, coarseTuning) {
|
|
1278
1289
|
const channel = this.channels[channelNumber];
|
|
1279
|
-
|
|
1290
|
+
const prevCoarseTuning = channel.coarseTuning;
|
|
1291
|
+
channel.coarseTuning = coarseTuning;
|
|
1292
|
+
const detuneChange = channel.coarseTuning - prevCoarseTuning;
|
|
1293
|
+
this.updateDetune(channel, detuneChange);
|
|
1294
|
+
}
|
|
1295
|
+
handleModulationDepthRangeRPN(channelNumber) {
|
|
1296
|
+
const channel = this.channels[channelNumber];
|
|
1297
|
+
this.limitData(channel, 0, 127, 0, 127);
|
|
1298
|
+
const modulationDepthRange = dataMSB + dataLSB / 128;
|
|
1299
|
+
this.setModulationDepthRange(channelNumber, modulationDepthRange);
|
|
1300
|
+
}
|
|
1301
|
+
setModulationDepthRange(channelNumber, modulationDepthRange) {
|
|
1302
|
+
const channel = this.channels[channelNumber];
|
|
1303
|
+
channel.modulationDepthRange = modulationDepthRange;
|
|
1304
|
+
channel.modulation = (modulation / 127) * channel.modulationDepthRange;
|
|
1305
|
+
this.updateModulation(channel);
|
|
1280
1306
|
}
|
|
1281
1307
|
allSoundOff(channelNumber) {
|
|
1282
1308
|
const now = this.audioContext.currentTime;
|
|
@@ -1367,9 +1393,9 @@ export class Midy {
|
|
|
1367
1393
|
switch (data[3]) {
|
|
1368
1394
|
case 1:
|
|
1369
1395
|
return this.handleMasterVolumeSysEx(data);
|
|
1370
|
-
case 3:
|
|
1396
|
+
case 3: // https://amei.or.jp/midistandardcommittee/Recommended_Practice/e/ca25.pdf
|
|
1371
1397
|
return this.handleMasterFineTuningSysEx(data);
|
|
1372
|
-
case 4:
|
|
1398
|
+
case 4: // https://amei.or.jp/midistandardcommittee/Recommended_Practice/e/ca25.pdf
|
|
1373
1399
|
return this.handleMasterCoarseTuningSysEx(data);
|
|
1374
1400
|
// case 5: // TODO: Global Parameter Control
|
|
1375
1401
|
default:
|
|
@@ -1494,9 +1520,9 @@ Object.defineProperty(Midy, "channelSettings", {
|
|
|
1494
1520
|
dataLSB: 0,
|
|
1495
1521
|
program: 0,
|
|
1496
1522
|
pitchBend: 0,
|
|
1497
|
-
fineTuning: 0,
|
|
1498
|
-
coarseTuning: 0,
|
|
1499
|
-
modulationDepthRange: 0.5,
|
|
1523
|
+
fineTuning: 0, // cb
|
|
1524
|
+
coarseTuning: 0, // cb
|
|
1525
|
+
modulationDepthRange: 0.5, // cb
|
|
1500
1526
|
}
|
|
1501
1527
|
});
|
|
1502
1528
|
Object.defineProperty(Midy, "effectSettings", {
|
package/package.json
CHANGED
package/script/midy-GM1.d.ts
CHANGED
|
@@ -130,6 +130,7 @@ export class MidyGM1 {
|
|
|
130
130
|
handlePitchBendMessage(channelNumber: any, lsb: any, msb: any): void;
|
|
131
131
|
setPitchBend(channelNumber: any, pitchBend: any): void;
|
|
132
132
|
handleControlChange(channelNumber: any, controller: any, value: any): void | any[];
|
|
133
|
+
updateModulation(channel: any): void;
|
|
133
134
|
setModulation(channelNumber: any, modulation: any): void;
|
|
134
135
|
setVolume(channelNumber: any, volume: any): void;
|
|
135
136
|
panToGain(pan: any): {
|
|
@@ -138,6 +139,7 @@ export class MidyGM1 {
|
|
|
138
139
|
};
|
|
139
140
|
setPan(channelNumber: any, pan: any): void;
|
|
140
141
|
setExpression(channelNumber: any, expression: any): void;
|
|
142
|
+
dataEntryLSB(channelNumber: any, value: any): void;
|
|
141
143
|
updateChannelGain(channel: any): void;
|
|
142
144
|
setSustainPedal(channelNumber: any, value: any): void;
|
|
143
145
|
limitData(channel: any, minMSB: any, maxMSB: any, minLSB: any, maxLSB: any): void;
|
|
@@ -145,13 +147,13 @@ export class MidyGM1 {
|
|
|
145
147
|
handleRPN(channelNumber: any): void;
|
|
146
148
|
setRPNMSB(channelNumber: any, value: any): void;
|
|
147
149
|
setRPNLSB(channelNumber: any, value: any): void;
|
|
148
|
-
|
|
150
|
+
dataEntryMSB(channelNumber: any, value: any): void;
|
|
149
151
|
updateDetune(channel: any, detuneChange: any): void;
|
|
150
|
-
|
|
152
|
+
handlePitchBendRangeRPN(channelNumber: any): void;
|
|
151
153
|
setPitchBendRange(channelNumber: any, pitchBendRange: any): void;
|
|
152
|
-
|
|
154
|
+
handleFineTuningRPN(channelNumber: any): void;
|
|
153
155
|
setFineTuning(channelNumber: any, fineTuning: any): void;
|
|
154
|
-
|
|
156
|
+
handleCoarseTuningRPN(channelNumber: any): void;
|
|
155
157
|
setCoarseTuning(channelNumber: any, coarseTuning: any): void;
|
|
156
158
|
allSoundOff(channelNumber: any): any[];
|
|
157
159
|
resetAllControllers(channelNumber: any): void;
|
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":"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;;;;;;;;;;;;;;;;;;;;QAAiD;IAInD,4BAMC;IAED,mCASC;IAED,gDAMC;IAED,sCASC;IAED;;;MAYC;IAED;;;;;;;;;;;;;;;;;;;;QAUC;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,sDAGC;IAED,2BAEC;IAED,4BAEC;IAED,sCAGC;IAED,mFAGC;IAED,iDAiBC;IAED,iDAiCC;IAED,0DAmBC;IAED,wHA6BC;IAED,kGA6BC;IAED,0EAGC;IAED,sIAmDC;IAED,0FAGC;IAED,kEAeC;IAED,wFAiBC;IAED,4DAGC;IAED,qEAGC;IAED,uDAOC;IAED,mFA+BC;IAED,
|
|
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;;;;;;;;;;;;;;;;;;;;QAAiD;IAInD,4BAMC;IAED,mCASC;IAED,gDAMC;IAED,sCASC;IAED;;;MAYC;IAED;;;;;;;;;;;;;;;;;;;;QAUC;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,sDAGC;IAED,2BAEC;IAED,4BAEC;IAED,sCAGC;IAED,mFAGC;IAED,iDAiBC;IAED,iDAiCC;IAED,0DAmBC;IAED,wHA6BC;IAED,kGA6BC;IAED,0EAGC;IAED,sIAmDC;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;AAtjCD;IAOE,gFAKC;IAXD,kBAAa;IACb,cAAS;IACT,gBAAW;IACX,YAAO;IACP,gBAAW;IAGT,gBAA4B;IAC5B,cAAwB;IACxB,eAA0B;IAC1B,mBAAkC;CAErC"}
|
package/script/midy-GM1.js
CHANGED
|
@@ -719,7 +719,7 @@ class MidyGM1 {
|
|
|
719
719
|
case 1:
|
|
720
720
|
return this.setModulation(channelNumber, value);
|
|
721
721
|
case 6:
|
|
722
|
-
return this.
|
|
722
|
+
return this.dataEntryMSB(channelNumber, value);
|
|
723
723
|
case 7:
|
|
724
724
|
return this.setVolume(channelNumber, value);
|
|
725
725
|
case 10:
|
|
@@ -727,7 +727,7 @@ class MidyGM1 {
|
|
|
727
727
|
case 11:
|
|
728
728
|
return this.setExpression(channelNumber, value);
|
|
729
729
|
case 38:
|
|
730
|
-
return this.
|
|
730
|
+
return this.dataEntryLSB(channelNumber, value);
|
|
731
731
|
case 64:
|
|
732
732
|
return this.setSustainPedal(channelNumber, value);
|
|
733
733
|
case 100:
|
|
@@ -744,22 +744,24 @@ class MidyGM1 {
|
|
|
744
744
|
console.warn(`Unsupported Control change: controller=${controller} value=${value}`);
|
|
745
745
|
}
|
|
746
746
|
}
|
|
747
|
-
|
|
747
|
+
updateModulation(channel) {
|
|
748
748
|
const now = this.audioContext.currentTime;
|
|
749
|
-
const channel = this.channels[channelNumber];
|
|
750
|
-
channel.modulation = (modulation / 127) *
|
|
751
|
-
(channel.modulationDepthRange * 100);
|
|
752
749
|
const activeNotes = this.getActiveNotes(channel, now);
|
|
753
750
|
activeNotes.forEach((activeNote) => {
|
|
754
751
|
if (activeNote.modLFO) {
|
|
755
|
-
|
|
756
|
-
|
|
752
|
+
const { gainNode, instrumentKey } = activeNote;
|
|
753
|
+
gainNode.gain.setValueAtTime(this.cbToRatio(instrumentKey.modLfoToVolume + channel.modulation), now);
|
|
757
754
|
}
|
|
758
755
|
else {
|
|
759
756
|
this.startModulation(channel, activeNote, now);
|
|
760
757
|
}
|
|
761
758
|
});
|
|
762
759
|
}
|
|
760
|
+
setModulation(channelNumber, modulation) {
|
|
761
|
+
const channel = this.channels[channelNumber];
|
|
762
|
+
channel.modulation = (modulation / 127) * channel.modulationDepthRange;
|
|
763
|
+
this.updateModulation(channel);
|
|
764
|
+
}
|
|
763
765
|
setVolume(channelNumber, volume) {
|
|
764
766
|
const channel = this.channels[channelNumber];
|
|
765
767
|
channel.volume = volume / 127;
|
|
@@ -782,6 +784,10 @@ class MidyGM1 {
|
|
|
782
784
|
channel.expression = expression / 127;
|
|
783
785
|
this.updateChannelGain(channel);
|
|
784
786
|
}
|
|
787
|
+
dataEntryLSB(channelNumber, value) {
|
|
788
|
+
this.channels[channelNumber].dataLSB = value;
|
|
789
|
+
this.handleRPN(channelNumber, 0);
|
|
790
|
+
}
|
|
785
791
|
updateChannelGain(channel) {
|
|
786
792
|
const now = this.audioContext.currentTime;
|
|
787
793
|
const volume = channel.volume * channel.expression;
|
|
@@ -831,13 +837,13 @@ class MidyGM1 {
|
|
|
831
837
|
const rpn = channel.rpnMSB * 128 + channel.rpnLSB;
|
|
832
838
|
switch (rpn) {
|
|
833
839
|
case 0:
|
|
834
|
-
this.
|
|
840
|
+
this.handlePitchBendRangeRPN(channelNumber);
|
|
835
841
|
break;
|
|
836
842
|
case 1:
|
|
837
|
-
this.
|
|
843
|
+
this.handleFineTuningRPN(channelNumber);
|
|
838
844
|
break;
|
|
839
845
|
case 2:
|
|
840
|
-
this.
|
|
846
|
+
this.handleCoarseTuningRPN(channelNumber);
|
|
841
847
|
break;
|
|
842
848
|
default:
|
|
843
849
|
console.warn(`Channel ${channelNumber}: Unsupported RPN MSB=${channel.rpnMSB} LSB=${channel.rpnLSB}`);
|
|
@@ -849,9 +855,8 @@ class MidyGM1 {
|
|
|
849
855
|
setRPNLSB(channelNumber, value) {
|
|
850
856
|
this.channels[channelNumber].rpnLSB = value;
|
|
851
857
|
}
|
|
852
|
-
|
|
853
|
-
|
|
854
|
-
isMSB ? channel.dataMSB = value : channel.dataLSB = value;
|
|
858
|
+
dataEntryMSB(channelNumber, value) {
|
|
859
|
+
this.channels[channelNumber].dataMSB = value;
|
|
855
860
|
this.handleRPN(channelNumber);
|
|
856
861
|
}
|
|
857
862
|
updateDetune(channel, detuneChange) {
|
|
@@ -865,7 +870,7 @@ class MidyGM1 {
|
|
|
865
870
|
.setValueAtTime(detune, now);
|
|
866
871
|
});
|
|
867
872
|
}
|
|
868
|
-
|
|
873
|
+
handlePitchBendRangeRPN(channelNumber) {
|
|
869
874
|
const channel = this.channels[channelNumber];
|
|
870
875
|
this.limitData(channel, 0, 127, 0, 99);
|
|
871
876
|
const pitchBendRange = channel.dataMSB + channel.dataLSB / 100;
|
|
@@ -879,7 +884,7 @@ class MidyGM1 {
|
|
|
879
884
|
channel.pitchBend * 100;
|
|
880
885
|
this.updateDetune(channel, detuneChange);
|
|
881
886
|
}
|
|
882
|
-
|
|
887
|
+
handleFineTuningRPN(channelNumber) {
|
|
883
888
|
const channel = this.channels[channelNumber];
|
|
884
889
|
this.limitData(channel, 0, 127, 0, 127);
|
|
885
890
|
const fineTuning = (channel.dataMSB * 128 + channel.dataLSB - 8192) / 8192;
|
|
@@ -887,9 +892,12 @@ class MidyGM1 {
|
|
|
887
892
|
}
|
|
888
893
|
setFineTuning(channelNumber, fineTuning) {
|
|
889
894
|
const channel = this.channels[channelNumber];
|
|
895
|
+
const prevFineTuning = channel.fineTuning;
|
|
890
896
|
channel.fineTuning = fineTuning;
|
|
897
|
+
const detuneChange = channel.fineTuning - prevFineTuning;
|
|
898
|
+
this.updateDetune(channel, detuneChange);
|
|
891
899
|
}
|
|
892
|
-
|
|
900
|
+
handleCoarseTuningRPN(channelNumber) {
|
|
893
901
|
const channel = this.channels[channelNumber];
|
|
894
902
|
this.limitDataMSB(channel, 0, 127);
|
|
895
903
|
const coarseTuning = channel.dataMSB - 64;
|
|
@@ -897,7 +905,10 @@ class MidyGM1 {
|
|
|
897
905
|
}
|
|
898
906
|
setCoarseTuning(channelNumber, coarseTuning) {
|
|
899
907
|
const channel = this.channels[channelNumber];
|
|
900
|
-
|
|
908
|
+
const prevCoarseTuning = channel.coarseTuning;
|
|
909
|
+
channel.coarseTuning = coarseTuning;
|
|
910
|
+
const detuneChange = channel.coarseTuning - prevCoarseTuning;
|
|
911
|
+
this.updateDetune(channel, detuneChange);
|
|
901
912
|
}
|
|
902
913
|
allSoundOff(channelNumber) {
|
|
903
914
|
const now = this.audioContext.currentTime;
|
|
@@ -1024,9 +1035,9 @@ Object.defineProperty(MidyGM1, "channelSettings", {
|
|
|
1024
1035
|
dataLSB: 0,
|
|
1025
1036
|
program: 0,
|
|
1026
1037
|
pitchBend: 0,
|
|
1027
|
-
fineTuning: 0,
|
|
1028
|
-
coarseTuning: 0,
|
|
1029
|
-
modulationDepthRange: 0.5,
|
|
1038
|
+
fineTuning: 0, // cb
|
|
1039
|
+
coarseTuning: 0, // cb
|
|
1040
|
+
modulationDepthRange: 0.5, // cb
|
|
1030
1041
|
}
|
|
1031
1042
|
});
|
|
1032
1043
|
Object.defineProperty(MidyGM1, "effectSettings", {
|
package/script/midy-GM2.d.ts
CHANGED
|
@@ -237,6 +237,7 @@ export class MidyGM2 {
|
|
|
237
237
|
setPitchBend(channelNumber: any, pitchBend: any): void;
|
|
238
238
|
handleControlChange(channelNumber: any, controller: any, value: any): void | any[];
|
|
239
239
|
setBankMSB(channelNumber: any, msb: any): void;
|
|
240
|
+
updateModulation(channel: any): void;
|
|
240
241
|
setModulation(channelNumber: any, modulation: any): void;
|
|
241
242
|
setPortamentoTime(channelNumber: any, portamentoTime: any): void;
|
|
242
243
|
setVolume(channelNumber: any, volume: any): void;
|
|
@@ -247,26 +248,29 @@ export class MidyGM2 {
|
|
|
247
248
|
setPan(channelNumber: any, pan: any): void;
|
|
248
249
|
setExpression(channelNumber: any, expression: any): void;
|
|
249
250
|
setBankLSB(channelNumber: any, lsb: any): void;
|
|
251
|
+
dataEntryLSB(channelNumber: any, value: any): void;
|
|
250
252
|
updateChannelGain(channel: any): void;
|
|
251
253
|
setSustainPedal(channelNumber: any, value: any): void;
|
|
252
254
|
setPortamento(channelNumber: any, value: any): void;
|
|
253
|
-
|
|
254
|
-
|
|
255
|
+
setReverbSendLevel(channelNumber: any, reverb: any): void;
|
|
256
|
+
setChorusSendLevel(channelNumber: any, chorus: any): void;
|
|
255
257
|
setSostenutoPedal(channelNumber: any, value: any): void;
|
|
256
258
|
setSoftPedal(channelNumber: any, softPedal: any): void;
|
|
257
259
|
limitData(channel: any, minMSB: any, maxMSB: any, minLSB: any, maxLSB: any): void;
|
|
258
260
|
limitDataMSB(channel: any, minMSB: any, maxMSB: any): void;
|
|
259
|
-
handleRPN(channelNumber: any
|
|
261
|
+
handleRPN(channelNumber: any): void;
|
|
260
262
|
setRPNMSB(channelNumber: any, value: any): void;
|
|
261
263
|
setRPNLSB(channelNumber: any, value: any): void;
|
|
262
|
-
|
|
264
|
+
dataEntryMSB(channelNumber: any, value: any): void;
|
|
263
265
|
updateDetune(channel: any, detuneChange: any): void;
|
|
264
|
-
|
|
266
|
+
handlePitchBendRangeRPN(channelNumber: any): void;
|
|
265
267
|
setPitchBendRange(channelNumber: any, pitchBendRange: any): void;
|
|
266
|
-
|
|
268
|
+
handleFineTuningRPN(channelNumber: any): void;
|
|
267
269
|
setFineTuning(channelNumber: any, fineTuning: any): void;
|
|
268
|
-
|
|
270
|
+
handleCoarseTuningRPN(channelNumber: any): void;
|
|
269
271
|
setCoarseTuning(channelNumber: any, coarseTuning: any): void;
|
|
272
|
+
handleModulationDepthRangeRPN(channelNumber: any): void;
|
|
273
|
+
setModulationDepthRange(channelNumber: any, modulationDepthRange: any): void;
|
|
270
274
|
allSoundOff(channelNumber: any): any[];
|
|
271
275
|
resetAllControllers(channelNumber: any): void;
|
|
272
276
|
allNotesOff(channelNumber: any): 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":"AAuBA;IAwBE;;;;;;;;;;;;;;;;;MAiBE;IAEF;;;;;;;;;;;MAWE;IAEF;;;;;;;MAOE;IAEF,+BAMC;IAtED,qBAAmB;IACnB,kBAAc;IACd,qBAAmB;IACnB,yBAAqB;IACrB,2BAAuB;IACvB,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;IA4ChB,kBAAgC;IAChC,gBAA4C;IAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAAiD;IAInD,4BAMC;IAED,mCASC;IAED,gDAMC;IAED,sCASC;IAED;;;;;;;;;;;;;;MAqBC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAcC;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;;;;MAoCC;IAED;;;;;MAqCC;IAED,sDA6BC;IAED,2BAEC;IAED,4BAEC;IAED,sCAKC;IAED,mFAGC;IAED,iDAiBC;IAED,iDAiCC;IAED,0DAmBC;IAED,wHAiCC;IAED,gDAQC;IAED,kGAgCC;IAED,0EAGC;IAED,sIAoDC;IAED,0FAGC;IAED,kEAeC;IAED,oEAYC;IAED,wFAmBC;IAED,4DAIC;IAED,+DAcC;IAED,qEAGC;IAED,uDAOC;IAED,mFAuDC;IAED,+CAEC;IAED,
|
|
1
|
+
{"version":3,"file":"midy-GM2.d.ts","sourceRoot":"","sources":["../src/midy-GM2.js"],"names":[],"mappings":"AAuBA;IAwBE;;;;;;;;;;;;;;;;;MAiBE;IAEF;;;;;;;;;;;MAWE;IAEF;;;;;;;MAOE;IAEF,+BAMC;IAtED,qBAAmB;IACnB,kBAAc;IACd,qBAAmB;IACnB,yBAAqB;IACrB,2BAAuB;IACvB,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;IA4ChB,kBAAgC;IAChC,gBAA4C;IAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAAiD;IAInD,4BAMC;IAED,mCASC;IAED,gDAMC;IAED,sCASC;IAED;;;;;;;;;;;;;;MAqBC;IAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;QAcC;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;;;;MAoCC;IAED;;;;;MAqCC;IAED,sDA6BC;IAED,2BAEC;IAED,4BAEC;IAED,sCAKC;IAED,mFAGC;IAED,iDAiBC;IAED,iDAiCC;IAED,0DAmBC;IAED,wHAiCC;IAED,gDAQC;IAED,kGAgCC;IAED,0EAGC;IAED,sIAoDC;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;IAED,oDAEC;IAED,0DASC;IAED,0DAIC;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,yDAgDC;IAED,yCAGC;IAED,mCAQC;IAED,6CAGC;IAED,2CAMC;IAED,+CAGC;IAED,+CAMC;IAED,wCAEC;IAED,6BASC;IAED,0DAUC;CACF;AAr9CD;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"}
|