@marmooo/midy 0.0.6 → 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 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,13 +139,22 @@ 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;
145
+ limitData(channel: any, minMSB: any, maxMSB: any, minLSB: any, maxLSB: any): void;
146
+ limitDataMSB(channel: any, minMSB: any, maxMSB: any): void;
147
+ handleRPN(channelNumber: any): void;
143
148
  setRPNMSB(channelNumber: any, value: any): void;
144
149
  setRPNLSB(channelNumber: any, value: any): void;
145
- setDataEntry(channelNumber: any, value: any, isMSB: any): void;
146
- handlePitchBendRangeMessage(channelNumber: any, dataMSB: any, dataLSB: any): void;
150
+ dataEntryMSB(channelNumber: any, value: any): void;
151
+ updateDetune(channel: any, detuneChange: any): void;
152
+ handlePitchBendRangeRPN(channelNumber: any): void;
147
153
  setPitchBendRange(channelNumber: any, pitchBendRange: any): void;
154
+ handleFineTuningRPN(channelNumber: any): void;
155
+ setFineTuning(channelNumber: any, fineTuning: any): void;
156
+ handleCoarseTuningRPN(channelNumber: any): void;
157
+ setCoarseTuning(channelNumber: any, coarseTuning: any): void;
148
158
  allSoundOff(channelNumber: any): any[];
149
159
  resetAllControllers(channelNumber: any): void;
150
160
  allNotesOff(channelNumber: any): any[];
@@ -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,sDAEC;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,uDAeC;IAED,mFA+BC;IAED,yDAiBC;IAED,iDAIC;IAED;;;MAMC;IAED,2CAIC;IAED,yDAIC;IAED,sCAUC;IAED,sDAMC;IAED,gDAEC;IAED,gDAEC;IAED,+DAuBC;IAED,kFAGC;IAED,iEAeC;IAED,uCAoBC;IAED,8CAEC;IAED,uCAoBC;IAED,4DAgBC;IAED,oBAQC;IAED,yDAaC;IAED,yCAGC;IAED,mCAQC;IAED,wCAEC;IAED,6BASC;IAED,0DAUC;CACF;AAz/BD;IAOE,gFAKC;IAXD,kBAAa;IACb,cAAS;IACT,gBAAW;IACX,YAAO;IACP,gBAAW;IAGT,gBAA4B;IAC5B,cAAwB;IACxB,eAA0B;IAC1B,mBAAkC;CAErC"}
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/esm/midy-GM1.js CHANGED
@@ -492,7 +492,8 @@ export class MidyGM1 {
492
492
  return noteList[0];
493
493
  }
494
494
  connectNoteEffects(channel, gainNode) {
495
- gainNode.connect(channel.pannerNode);
495
+ gainNode.connect(channel.gainL);
496
+ gainNode.connect(channel.gainR);
496
497
  }
497
498
  cbToRatio(cb) {
498
499
  return Math.pow(10, cb / 200);
@@ -703,27 +704,19 @@ export class MidyGM1 {
703
704
  this.setPitchBend(channelNumber, pitchBend);
704
705
  }
705
706
  setPitchBend(channelNumber, pitchBend) {
706
- const now = this.audioContext.currentTime;
707
707
  const channel = this.channels[channelNumber];
708
708
  const prevPitchBend = channel.pitchBend;
709
709
  channel.pitchBend = (pitchBend - 8192) / 8192;
710
710
  const detuneChange = (channel.pitchBend - prevPitchBend) *
711
711
  channel.pitchBendRange * 100;
712
- const activeNotes = this.getActiveNotes(channel, now);
713
- activeNotes.forEach((activeNote) => {
714
- const { bufferSource } = activeNote;
715
- const detune = bufferSource.detune.value + detuneChange;
716
- bufferSource.detune
717
- .cancelScheduledValues(now)
718
- .setValueAtTime(detune, now);
719
- });
712
+ this.updateDetune(channel, detuneChange);
720
713
  }
721
714
  handleControlChange(channelNumber, controller, value) {
722
715
  switch (controller) {
723
716
  case 1:
724
717
  return this.setModulation(channelNumber, value);
725
718
  case 6:
726
- return this.setDataEntry(channelNumber, value, true);
719
+ return this.dataEntryMSB(channelNumber, value);
727
720
  case 7:
728
721
  return this.setVolume(channelNumber, value);
729
722
  case 10:
@@ -731,13 +724,13 @@ export class MidyGM1 {
731
724
  case 11:
732
725
  return this.setExpression(channelNumber, value);
733
726
  case 38:
734
- return this.setDataEntry(channelNumber, value, false);
727
+ return this.dataEntryLSB(channelNumber, value);
735
728
  case 64:
736
729
  return this.setSustainPedal(channelNumber, value);
737
730
  case 100:
738
- return this.setRPNMSB(channelNumber, value);
739
- case 101:
740
731
  return this.setRPNLSB(channelNumber, value);
732
+ case 101:
733
+ return this.setRPNMSB(channelNumber, value);
741
734
  case 120:
742
735
  return this.allSoundOff(channelNumber);
743
736
  case 121:
@@ -748,22 +741,24 @@ export class MidyGM1 {
748
741
  console.warn(`Unsupported Control change: controller=${controller} value=${value}`);
749
742
  }
750
743
  }
751
- setModulation(channelNumber, modulation) {
744
+ updateModulation(channel) {
752
745
  const now = this.audioContext.currentTime;
753
- const channel = this.channels[channelNumber];
754
- channel.modulation = (modulation / 127) *
755
- (channel.modulationDepthRange * 100);
756
746
  const activeNotes = this.getActiveNotes(channel, now);
757
747
  activeNotes.forEach((activeNote) => {
758
748
  if (activeNote.modLFO) {
759
- activeNote.gainNode.gain.setValueAtTime(this.cbToRatio(activeNote.instrumentKey.modLfoToVolume) *
760
- channel.modulation, now);
749
+ const { gainNode, instrumentKey } = activeNote;
750
+ gainNode.gain.setValueAtTime(this.cbToRatio(instrumentKey.modLfoToVolume + channel.modulation), now);
761
751
  }
762
752
  else {
763
753
  this.startModulation(channel, activeNote, now);
764
754
  }
765
755
  });
766
756
  }
757
+ setModulation(channelNumber, modulation) {
758
+ const channel = this.channels[channelNumber];
759
+ channel.modulation = (modulation / 127) * channel.modulationDepthRange;
760
+ this.updateModulation(channel);
761
+ }
767
762
  setVolume(channelNumber, volume) {
768
763
  const channel = this.channels[channelNumber];
769
764
  channel.volume = volume / 127;
@@ -786,6 +781,10 @@ export class MidyGM1 {
786
781
  channel.expression = expression / 127;
787
782
  this.updateChannelGain(channel);
788
783
  }
784
+ dataEntryLSB(channelNumber, value) {
785
+ this.channels[channelNumber].dataLSB = value;
786
+ this.handleRPN(channelNumber, 0);
787
+ }
789
788
  updateChannelGain(channel) {
790
789
  const now = this.audioContext.currentTime;
791
790
  const volume = channel.volume * channel.expression;
@@ -804,41 +803,61 @@ export class MidyGM1 {
804
803
  this.releaseSustainPedal(channelNumber, value);
805
804
  }
806
805
  }
807
- setRPNMSB(channelNumber, value) {
808
- this.channels[channelNumber].rpnMSB = value;
806
+ limitData(channel, minMSB, maxMSB, minLSB, maxLSB) {
807
+ if (maxLSB < channel.dataLSB) {
808
+ channel.dataMSB++;
809
+ channel.dataLSB = minLSB;
810
+ }
811
+ else if (channel.dataLSB < 0) {
812
+ channel.dataMSB--;
813
+ channel.dataLSB = maxLSB;
814
+ }
815
+ if (maxMSB < channel.dataMSB) {
816
+ channel.dataMSB = maxMSB;
817
+ channel.dataLSB = maxLSB;
818
+ }
819
+ else if (channel.dataMSB < 0) {
820
+ channel.dataMSB = minMSB;
821
+ channel.dataLSB = minLSB;
822
+ }
809
823
  }
810
- setRPNLSB(channelNumber, value) {
811
- this.channels[channelNumber].rpnLSB = value;
824
+ limitDataMSB(channel, minMSB, maxMSB) {
825
+ if (maxMSB < channel.dataMSB) {
826
+ channel.dataMSB = maxMSB;
827
+ }
828
+ else if (channel.dataMSB < 0) {
829
+ channel.dataMSB = minMSB;
830
+ }
812
831
  }
813
- setDataEntry(channelNumber, value, isMSB) {
832
+ handleRPN(channelNumber) {
814
833
  const channel = this.channels[channelNumber];
815
834
  const rpn = channel.rpnMSB * 128 + channel.rpnLSB;
816
- isMSB ? channel.dataMSB = value : channel.dataLSB = value;
817
- const { dataMSB, dataLSB } = channel;
818
835
  switch (rpn) {
819
836
  case 0:
820
- return this.handlePitchBendRangeMessage(channelNumber, dataMSB, dataLSB);
837
+ this.handlePitchBendRangeRPN(channelNumber);
838
+ break;
821
839
  case 1:
822
- channel.fineTuning = (dataMSB * 128 + dataLSB - 8192) / 8192;
840
+ this.handleFineTuningRPN(channelNumber);
823
841
  break;
824
842
  case 2:
825
- channel.coarseTuning = dataMSB - 64;
843
+ this.handleCoarseTuningRPN(channelNumber);
826
844
  break;
827
845
  default:
828
846
  console.warn(`Channel ${channelNumber}: Unsupported RPN MSB=${channel.rpnMSB} LSB=${channel.rpnLSB}`);
829
847
  }
830
848
  }
831
- handlePitchBendRangeMessage(channelNumber, dataMSB, dataLSB) {
832
- const pitchBendRange = dataMSB + dataLSB / 100;
833
- this.setPitchBendRange(channelNumber, pitchBendRange);
849
+ setRPNMSB(channelNumber, value) {
850
+ this.channels[channelNumber].rpnMSB = value;
834
851
  }
835
- setPitchBendRange(channelNumber, pitchBendRange) {
852
+ setRPNLSB(channelNumber, value) {
853
+ this.channels[channelNumber].rpnLSB = value;
854
+ }
855
+ dataEntryMSB(channelNumber, value) {
856
+ this.channels[channelNumber].dataMSB = value;
857
+ this.handleRPN(channelNumber);
858
+ }
859
+ updateDetune(channel, detuneChange) {
836
860
  const now = this.audioContext.currentTime;
837
- const channel = this.channels[channelNumber];
838
- const prevPitchBendRange = channel.pitchBendRange;
839
- channel.pitchBendRange = pitchBendRange;
840
- const detuneChange = (channel.pitchBendRange - prevPitchBendRange) *
841
- channel.pitchBend * 100;
842
861
  const activeNotes = this.getActiveNotes(channel, now);
843
862
  activeNotes.forEach((activeNote) => {
844
863
  const { bufferSource } = activeNote;
@@ -848,6 +867,46 @@ export class MidyGM1 {
848
867
  .setValueAtTime(detune, now);
849
868
  });
850
869
  }
870
+ handlePitchBendRangeRPN(channelNumber) {
871
+ const channel = this.channels[channelNumber];
872
+ this.limitData(channel, 0, 127, 0, 99);
873
+ const pitchBendRange = channel.dataMSB + channel.dataLSB / 100;
874
+ this.setPitchBendRange(channelNumber, pitchBendRange);
875
+ }
876
+ setPitchBendRange(channelNumber, pitchBendRange) {
877
+ const channel = this.channels[channelNumber];
878
+ const prevPitchBendRange = channel.pitchBendRange;
879
+ channel.pitchBendRange = pitchBendRange;
880
+ const detuneChange = (channel.pitchBendRange - prevPitchBendRange) *
881
+ channel.pitchBend * 100;
882
+ this.updateDetune(channel, detuneChange);
883
+ }
884
+ handleFineTuningRPN(channelNumber) {
885
+ const channel = this.channels[channelNumber];
886
+ this.limitData(channel, 0, 127, 0, 127);
887
+ const fineTuning = (channel.dataMSB * 128 + channel.dataLSB - 8192) / 8192;
888
+ this.setFineTuning(channelNumber, fineTuning);
889
+ }
890
+ setFineTuning(channelNumber, fineTuning) {
891
+ const channel = this.channels[channelNumber];
892
+ const prevFineTuning = channel.fineTuning;
893
+ channel.fineTuning = fineTuning;
894
+ const detuneChange = channel.fineTuning - prevFineTuning;
895
+ this.updateDetune(channel, detuneChange);
896
+ }
897
+ handleCoarseTuningRPN(channelNumber) {
898
+ const channel = this.channels[channelNumber];
899
+ this.limitDataMSB(channel, 0, 127);
900
+ const coarseTuning = channel.dataMSB - 64;
901
+ this.setFineTuning(channelNumber, coarseTuning);
902
+ }
903
+ setCoarseTuning(channelNumber, coarseTuning) {
904
+ const channel = this.channels[channelNumber];
905
+ const prevCoarseTuning = channel.coarseTuning;
906
+ channel.coarseTuning = coarseTuning;
907
+ const detuneChange = channel.coarseTuning - prevCoarseTuning;
908
+ this.updateDetune(channel, detuneChange);
909
+ }
851
910
  allSoundOff(channelNumber) {
852
911
  const now = this.audioContext.currentTime;
853
912
  const channel = this.channels[channelNumber];
@@ -972,9 +1031,9 @@ Object.defineProperty(MidyGM1, "channelSettings", {
972
1031
  dataLSB: 0,
973
1032
  program: 0,
974
1033
  pitchBend: 0,
975
- fineTuning: 0,
976
- coarseTuning: 0,
977
- modulationDepthRange: 0.5,
1034
+ fineTuning: 0, // cb
1035
+ coarseTuning: 0, // cb
1036
+ modulationDepthRange: 0.5, // cb
978
1037
  }
979
1038
  });
980
1039
  Object.defineProperty(MidyGM1, "effectSettings", {
package/esm/midy-GM2.d.ts CHANGED
@@ -73,8 +73,8 @@ export class MidyGM2 {
73
73
  lfoFilterDepth: number;
74
74
  lfoAmplitudeDepth: number;
75
75
  };
76
- gainNode: any;
77
- pannerNode: any;
76
+ gainL: any;
77
+ gainR: any;
78
78
  reverbEffect: {
79
79
  convolverNode: any;
80
80
  dryGain: any;
@@ -117,8 +117,8 @@ export class MidyGM2 {
117
117
  loadSoundFont(soundFontUrl: any): Promise<void>;
118
118
  loadMIDI(midiUrl: any): Promise<void>;
119
119
  setChannelAudioNodes(audioContext: any): {
120
- gainNode: any;
121
- pannerNode: any;
120
+ gainL: any;
121
+ gainR: any;
122
122
  reverbEffect: {
123
123
  convolverNode: any;
124
124
  dryGain: any;
@@ -142,8 +142,8 @@ export class MidyGM2 {
142
142
  lfoFilterDepth: number;
143
143
  lfoAmplitudeDepth: number;
144
144
  };
145
- gainNode: any;
146
- pannerNode: any;
145
+ gainL: any;
146
+ gainR: any;
147
147
  reverbEffect: {
148
148
  convolverNode: any;
149
149
  dryGain: any;
@@ -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,18 +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
- setReverb(channelNumber: any, reverb: any): void;
254
- setChorus(channelNumber: any, chorus: any): void;
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;
259
+ limitData(channel: any, minMSB: any, maxMSB: any, minLSB: any, maxLSB: any): void;
260
+ limitDataMSB(channel: any, minMSB: any, maxMSB: any): void;
261
+ handleRPN(channelNumber: any): void;
257
262
  setRPNMSB(channelNumber: any, value: any): void;
258
263
  setRPNLSB(channelNumber: any, value: any): void;
259
- setDataEntry(channelNumber: any, value: any, isMSB: any): void;
260
- handlePitchBendRangeMessage(channelNumber: any, dataMSB: any, dataLSB: any): void;
264
+ dataEntryMSB(channelNumber: any, value: any): void;
265
+ updateDetune(channel: any, detuneChange: any): void;
266
+ handlePitchBendRangeRPN(channelNumber: any): void;
261
267
  setPitchBendRange(channelNumber: any, pitchBendRange: any): void;
268
+ handleFineTuningRPN(channelNumber: any): void;
269
+ setFineTuning(channelNumber: any, fineTuning: any): void;
270
+ handleCoarseTuningRPN(channelNumber: any): void;
271
+ setCoarseTuning(channelNumber: any, coarseTuning: any): void;
272
+ handleModulationDepthRangeRPN(channelNumber: any): void;
273
+ setModulationDepthRange(channelNumber: any, modulationDepthRange: any): void;
262
274
  allSoundOff(channelNumber: any): any[];
263
275
  resetAllControllers(channelNumber: any): void;
264
276
  allNotesOff(channelNumber: any): any[];
@@ -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;;;;;;;;;;;;;;MAoBC;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,sDA2BC;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,uDAeC;IAED,mFAuDC;IAED,+CAEC;IAED,yDAiBC;IAED,iEAEC;IAED,iDAIC;IAED;;;MAMC;IAED,2CAIC;IAED,yDAIC;IAED,+CAEC;IAED,sCAUC;IAED,sDAMC;IAED,oDAEC;IAED,iDASC;IAED,iDAIC;IAED,wDAWC;IAED,uDAGC;IAED,gDAEC;IAED,gDAEC;IAED,+DA0BC;IAED,kFAGC;IAED,iEAeC;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;AAv4CD;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"}
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"}