@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.
@@ -78,13 +78,13 @@ class MidyGM2 {
78
78
  configurable: true,
79
79
  writable: true,
80
80
  value: 0
81
- });
81
+ }); // cb
82
82
  Object.defineProperty(this, "masterCoarseTuning", {
83
83
  enumerable: true,
84
84
  configurable: true,
85
85
  writable: true,
86
86
  value: 0
87
- });
87
+ }); // cb
88
88
  Object.defineProperty(this, "mono", {
89
89
  enumerable: true,
90
90
  configurable: true,
@@ -954,7 +954,7 @@ class MidyGM2 {
954
954
  case 5:
955
955
  return this.setPortamentoTime(channelNumber, value);
956
956
  case 6:
957
- return this.setDataEntry(channelNumber, value, true);
957
+ return this.dataEntryMSB(channelNumber, value);
958
958
  case 7:
959
959
  return this.setVolume(channelNumber, value);
960
960
  case 10:
@@ -964,7 +964,7 @@ class MidyGM2 {
964
964
  case 32:
965
965
  return this.setBankLSB(channelNumber, value);
966
966
  case 38:
967
- return this.setDataEntry(channelNumber, value, false);
967
+ return this.dataEntryLSB(channelNumber, value);
968
968
  case 64:
969
969
  return this.setSustainPedal(channelNumber, value);
970
970
  case 65:
@@ -974,9 +974,9 @@ class MidyGM2 {
974
974
  case 67:
975
975
  return this.setSoftPedal(channelNumber, value);
976
976
  case 91:
977
- return this.setReverb(channelNumber, value);
977
+ return this.setReverbSendLevel(channelNumber, value);
978
978
  case 93:
979
- return this.setChorus(channelNumber, value);
979
+ return this.setChorusSendLevel(channelNumber, value);
980
980
  case 100:
981
981
  return this.setRPNLSB(channelNumber, value);
982
982
  case 101:
@@ -1002,22 +1002,24 @@ class MidyGM2 {
1002
1002
  setBankMSB(channelNumber, msb) {
1003
1003
  this.channels[channelNumber].bankMSB = msb;
1004
1004
  }
1005
- setModulation(channelNumber, modulation) {
1005
+ updateModulation(channel) {
1006
1006
  const now = this.audioContext.currentTime;
1007
- const channel = this.channels[channelNumber];
1008
- channel.modulation = (modulation / 127) *
1009
- (channel.modulationDepthRange * 100);
1010
1007
  const activeNotes = this.getActiveNotes(channel, now);
1011
1008
  activeNotes.forEach((activeNote) => {
1012
1009
  if (activeNote.modLFO) {
1013
- activeNote.gainNode.gain.setValueAtTime(this.cbToRatio(activeNote.instrumentKey.modLfoToVolume) *
1014
- channel.modulation, now);
1010
+ const { gainNode, instrumentKey } = activeNote;
1011
+ gainNode.gain.setValueAtTime(this.cbToRatio(instrumentKey.modLfoToVolume + channel.modulation), now);
1015
1012
  }
1016
1013
  else {
1017
1014
  this.startModulation(channel, activeNote, now);
1018
1015
  }
1019
1016
  });
1020
1017
  }
1018
+ setModulation(channelNumber, modulation) {
1019
+ const channel = this.channels[channelNumber];
1020
+ channel.modulation = (modulation / 127) * channel.modulationDepthRange;
1021
+ this.updateModulation(channel);
1022
+ }
1021
1023
  setPortamentoTime(channelNumber, portamentoTime) {
1022
1024
  this.channels[channelNumber].portamentoTime = portamentoTime / 127;
1023
1025
  }
@@ -1046,6 +1048,10 @@ class MidyGM2 {
1046
1048
  setBankLSB(channelNumber, lsb) {
1047
1049
  this.channels[channelNumber].bankLSB = lsb;
1048
1050
  }
1051
+ dataEntryLSB(channelNumber, value) {
1052
+ this.channels[channelNumber].dataLSB = value;
1053
+ this.handleRPN(channelNumber);
1054
+ }
1049
1055
  updateChannelGain(channel) {
1050
1056
  const now = this.audioContext.currentTime;
1051
1057
  const volume = channel.volume * channel.expression;
@@ -1067,7 +1073,7 @@ class MidyGM2 {
1067
1073
  setPortamento(channelNumber, value) {
1068
1074
  this.channels[channelNumber].portamento = value >= 64;
1069
1075
  }
1070
- setReverb(channelNumber, reverb) {
1076
+ setReverbSendLevel(channelNumber, reverb) {
1071
1077
  const now = this.audioContext.currentTime;
1072
1078
  const channel = this.channels[channelNumber];
1073
1079
  const reverbEffect = channel.reverbEffect;
@@ -1077,7 +1083,7 @@ class MidyGM2 {
1077
1083
  reverbEffect.wetGain.gain.cancelScheduledValues(now);
1078
1084
  reverbEffect.wetGain.gain.setValueAtTime(channel.reverb, now);
1079
1085
  }
1080
- setChorus(channelNumber, chorus) {
1086
+ setChorusSendLevel(channelNumber, chorus) {
1081
1087
  const channel = this.channels[channelNumber];
1082
1088
  channel.chorus = chorus / 127;
1083
1089
  channel.chorusEffect.lfoGain = channel.chorus;
@@ -1125,21 +1131,21 @@ class MidyGM2 {
1125
1131
  channel.dataMSB = minMSB;
1126
1132
  }
1127
1133
  }
1128
- handleRPN(channelNumber, value) {
1134
+ handleRPN(channelNumber) {
1129
1135
  const channel = this.channels[channelNumber];
1130
1136
  const rpn = channel.rpnMSB * 128 + channel.rpnLSB;
1131
1137
  switch (rpn) {
1132
1138
  case 0:
1133
- channel.dataLSB += value;
1134
- this.handlePitchBendRangeMessage(channelNumber);
1139
+ this.handlePitchBendRangeRPN(channelNumber);
1135
1140
  break;
1136
1141
  case 1:
1137
- channel.dataLSB += value;
1138
- this.handleFineTuningMessage(channelNumber);
1142
+ this.handleFineTuningRPN(channelNumber);
1139
1143
  break;
1140
1144
  case 2:
1141
- channel.dataMSB += value;
1142
- this.handleCoarseTuningMessage(channelNumber);
1145
+ this.handleCoarseTuningRPN(channelNumber);
1146
+ break;
1147
+ case 5:
1148
+ this.handleModulationDepthRangeRPN(channelNumber);
1143
1149
  break;
1144
1150
  default:
1145
1151
  console.warn(`Channel ${channelNumber}: Unsupported RPN MSB=${channel.rpnMSB} LSB=${channel.rpnLSB}`);
@@ -1151,9 +1157,8 @@ class MidyGM2 {
1151
1157
  setRPNLSB(channelNumber, value) {
1152
1158
  this.channels[channelNumber].rpnLSB = value;
1153
1159
  }
1154
- setDataEntry(channelNumber, value, isMSB) {
1155
- const channel = this.channels[channelNumber];
1156
- isMSB ? channel.dataMSB = value : channel.dataLSB = value;
1160
+ dataEntryMSB(channelNumber, value) {
1161
+ this.channels[channelNumber].dataMSB = value;
1157
1162
  this.handleRPN(channelNumber);
1158
1163
  }
1159
1164
  updateDetune(channel, detuneChange) {
@@ -1167,7 +1172,7 @@ class MidyGM2 {
1167
1172
  .setValueAtTime(detune, now);
1168
1173
  });
1169
1174
  }
1170
- handlePitchBendRangeMessage(channelNumber) {
1175
+ handlePitchBendRangeRPN(channelNumber) {
1171
1176
  const channel = this.channels[channelNumber];
1172
1177
  this.limitData(channel, 0, 127, 0, 99);
1173
1178
  const pitchBendRange = channel.dataMSB + channel.dataLSB / 100;
@@ -1181,7 +1186,7 @@ class MidyGM2 {
1181
1186
  channel.pitchBend * 100;
1182
1187
  this.updateDetune(channel, detuneChange);
1183
1188
  }
1184
- handleFineTuningMessage(channelNumber) {
1189
+ handleFineTuningRPN(channelNumber) {
1185
1190
  const channel = this.channels[channelNumber];
1186
1191
  this.limitData(channel, 0, 127, 0, 127);
1187
1192
  const fineTuning = (channel.dataMSB * 128 + channel.dataLSB - 8192) / 8192;
@@ -1189,9 +1194,12 @@ class MidyGM2 {
1189
1194
  }
1190
1195
  setFineTuning(channelNumber, fineTuning) {
1191
1196
  const channel = this.channels[channelNumber];
1197
+ const prevFineTuning = channel.fineTuning;
1192
1198
  channel.fineTuning = fineTuning;
1199
+ const detuneChange = channel.fineTuning - prevFineTuning;
1200
+ this.updateDetune(channel, detuneChange);
1193
1201
  }
1194
- handleCoarseTuningMessage(channelNumber) {
1202
+ handleCoarseTuningRPN(channelNumber) {
1195
1203
  const channel = this.channels[channelNumber];
1196
1204
  this.limitDataMSB(channel, 0, 127);
1197
1205
  const coarseTuning = channel.dataMSB - 64;
@@ -1199,7 +1207,22 @@ class MidyGM2 {
1199
1207
  }
1200
1208
  setCoarseTuning(channelNumber, coarseTuning) {
1201
1209
  const channel = this.channels[channelNumber];
1202
- channel.fineTuning = coarseTuning;
1210
+ const prevCoarseTuning = channel.coarseTuning;
1211
+ channel.coarseTuning = coarseTuning;
1212
+ const detuneChange = channel.coarseTuning - prevCoarseTuning;
1213
+ this.updateDetune(channel, detuneChange);
1214
+ }
1215
+ handleModulationDepthRangeRPN(channelNumber) {
1216
+ const channel = this.channels[channelNumber];
1217
+ this.limitData(channel, 0, 127, 0, 127);
1218
+ const modulationDepthRange = dataMSB + dataLSB / 128;
1219
+ this.setModulationDepthRange(channelNumber, modulationDepthRange);
1220
+ }
1221
+ setModulationDepthRange(channelNumber, modulationDepthRange) {
1222
+ const channel = this.channels[channelNumber];
1223
+ channel.modulationDepthRange = modulationDepthRange;
1224
+ channel.modulation = (modulation / 127) * channel.modulationDepthRange;
1225
+ this.updateModulation(channel);
1203
1226
  }
1204
1227
  allSoundOff(channelNumber) {
1205
1228
  const now = this.audioContext.currentTime;
@@ -1290,9 +1313,9 @@ class MidyGM2 {
1290
1313
  switch (data[3]) {
1291
1314
  case 1:
1292
1315
  return this.handleMasterVolumeSysEx(data);
1293
- case 3:
1316
+ case 3: // https://amei.or.jp/midistandardcommittee/Recommended_Practice/e/ca25.pdf
1294
1317
  return this.handleMasterFineTuningSysEx(data);
1295
- case 4:
1318
+ case 4: // https://amei.or.jp/midistandardcommittee/Recommended_Practice/e/ca25.pdf
1296
1319
  return this.handleMasterCoarseTuningSysEx(data);
1297
1320
  // case 5: // TODO: Global Parameter Control
1298
1321
  default:
@@ -1404,7 +1427,7 @@ Object.defineProperty(MidyGM2, "channelSettings", {
1404
1427
  value: {
1405
1428
  currentBufferSource: null,
1406
1429
  volume: 100 / 127,
1407
- pan: 0,
1430
+ pan: 64,
1408
1431
  portamentoTime: 0,
1409
1432
  reverb: 0,
1410
1433
  chorus: 0,
@@ -1415,9 +1438,9 @@ Object.defineProperty(MidyGM2, "channelSettings", {
1415
1438
  dataLSB: 0,
1416
1439
  program: 0,
1417
1440
  pitchBend: 0,
1418
- fineTuning: 0,
1419
- coarseTuning: 0,
1420
- modulationDepthRange: 0.5,
1441
+ fineTuning: 0, // cb
1442
+ coarseTuning: 0, // cb
1443
+ modulationDepthRange: 0.5, // cb
1421
1444
  }
1422
1445
  });
1423
1446
  Object.defineProperty(MidyGM2, "effectSettings", {
@@ -124,6 +124,7 @@ export class MidyGMLite {
124
124
  handlePitchBendMessage(channelNumber: any, lsb: any, msb: any): void;
125
125
  setPitchBend(channelNumber: any, pitchBend: any): void;
126
126
  handleControlChange(channelNumber: any, controller: any, value: any): void | any[];
127
+ updateModulation(channel: any): void;
127
128
  setModulation(channelNumber: any, modulation: any): void;
128
129
  setVolume(channelNumber: any, volume: any): void;
129
130
  panToGain(pan: any): {
@@ -132,14 +133,15 @@ export class MidyGMLite {
132
133
  };
133
134
  setPan(channelNumber: any, pan: any): void;
134
135
  setExpression(channelNumber: any, expression: any): void;
136
+ dataEntryLSB(channelNumber: any, value: any): void;
135
137
  updateChannelGain(channel: any): void;
136
138
  setSustainPedal(channelNumber: any, value: any): void;
137
139
  handleRPN(channelNumber: any): void;
138
140
  setRPNMSB(channelNumber: any, value: any): void;
139
141
  setRPNLSB(channelNumber: any, value: any): void;
140
- setDataEntry(channelNumber: any, value: any, isMSB: any): void;
142
+ dataEntryMSB(channelNumber: any, value: any): void;
141
143
  updateDetune(channel: any, detuneChange: any): void;
142
- handlePitchBendRangeMessage(channelNumber: any): void;
144
+ handlePitchBendRangeRPN(channelNumber: any): void;
143
145
  setPitchBendRange(channelNumber: any, pitchBendRange: any): void;
144
146
  allSoundOff(channelNumber: any): any[];
145
147
  resetAllControllers(channelNumber: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"midy-GMLite.d.ts","sourceRoot":"","sources":["../src/midy-GMLite.js"],"names":[],"mappings":"AAqBA;IAmBE;;;;;;;;;MASE;IAEF;;;;;;;MAOE;IAEF,+BAMC;IA5CD,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;IAuBhB,kBAAgC;IAChC,gBAA4C;IAE5C;;;;;;;;;;;;;;;;;;QAAiD;IAInD,4BAMC;IAED,mCASC;IAED,gDAMC;IAED,sCASC;IAED;;;MAcC;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,yCAEC;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,yDAiBC;IAED,iDAIC;IAED;;;MAMC;IAED,2CAIC;IAED,yDAIC;IAED,sCAUC;IAED,sDAMC;IAED,oCAYC;IAED,gDAEC;IAED,gDAEC;IAED,+DAIC;IAED,oDAUC;IAED,sDAKC;IAED,iEAOC;IAED,uCAoBC;IAED,8CAEC;IAED,uCAoBC;IAED,4DAgBC;IAED,oBAQC;IAED,yDAaC;IAED,yCAGC;IAED,mCAQC;IAED,wCAEC;IAED,6BASC;IAED,0DAUC;CACF;AAl/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-GMLite.d.ts","sourceRoot":"","sources":["../src/midy-GMLite.js"],"names":[],"mappings":"AAqBA;IAmBE;;;;;;;;;MASE;IAEF;;;;;;;MAOE;IAEF,+BAMC;IA5CD,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;IAuBhB,kBAAgC;IAChC,gBAA4C;IAE5C;;;;;;;;;;;;;;;;;;QAAiD;IAInD,4BAMC;IAED,mCASC;IAED,gDAMC;IAED,sCASC;IAED;;;MAcC;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,yCAEC;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,oCAYC;IAED,gDAEC;IAED,gDAEC;IAED,mDAGC;IAED,oDAUC;IAED,kDAKC;IAED,iEAOC;IAED,uCAoBC;IAED,8CAEC;IAED,uCAoBC;IAED,4DAgBC;IAED,oBAQC;IAED,yDAaC;IAED,yCAGC;IAED,mCAQC;IAED,wCAEC;IAED,6BASC;IAED,0DAUC;CACF;AAx/BD;IAOE,gFAKC;IAXD,kBAAa;IACb,cAAS;IACT,gBAAW;IACX,YAAO;IACP,gBAAW;IAGT,gBAA4B;IAC5B,cAAwB;IACxB,eAA0B;IAC1B,mBAAkC;CAErC"}
@@ -718,7 +718,7 @@ class MidyGMLite {
718
718
  case 1:
719
719
  return this.setModulation(channelNumber, value);
720
720
  case 6:
721
- return this.setDataEntry(channelNumber, value, true);
721
+ return this.dataEntryMSB(channelNumber, value);
722
722
  case 7:
723
723
  return this.setVolume(channelNumber, value);
724
724
  case 10:
@@ -726,7 +726,7 @@ class MidyGMLite {
726
726
  case 11:
727
727
  return this.setExpression(channelNumber, value);
728
728
  case 38:
729
- return this.setDataEntry(channelNumber, value, false);
729
+ return this.dataEntryLSB(channelNumber, value);
730
730
  case 64:
731
731
  return this.setSustainPedal(channelNumber, value);
732
732
  case 100:
@@ -743,22 +743,24 @@ class MidyGMLite {
743
743
  console.warn(`Unsupported Control change: controller=${controller} value=${value}`);
744
744
  }
745
745
  }
746
- setModulation(channelNumber, modulation) {
746
+ updateModulation(channel) {
747
747
  const now = this.audioContext.currentTime;
748
- const channel = this.channels[channelNumber];
749
- channel.modulation = (modulation / 127) *
750
- (channel.modulationDepthRange * 100);
751
748
  const activeNotes = this.getActiveNotes(channel, now);
752
749
  activeNotes.forEach((activeNote) => {
753
750
  if (activeNote.modLFO) {
754
- activeNote.gainNode.gain.setValueAtTime(this.cbToRatio(activeNote.instrumentKey.modLfoToVolume) *
755
- channel.modulation, now);
751
+ const { gainNode, instrumentKey } = activeNote;
752
+ gainNode.gain.setValueAtTime(this.cbToRatio(instrumentKey.modLfoToVolume + channel.modulation), now);
756
753
  }
757
754
  else {
758
755
  this.startModulation(channel, activeNote, now);
759
756
  }
760
757
  });
761
758
  }
759
+ setModulation(channelNumber, modulation) {
760
+ const channel = this.channels[channelNumber];
761
+ channel.modulation = (modulation / 127) * channel.modulationDepthRange;
762
+ this.updateModulation(channel);
763
+ }
762
764
  setVolume(channelNumber, volume) {
763
765
  const channel = this.channels[channelNumber];
764
766
  channel.volume = volume / 127;
@@ -781,6 +783,10 @@ class MidyGMLite {
781
783
  channel.expression = expression / 127;
782
784
  this.updateChannelGain(channel);
783
785
  }
786
+ dataEntryLSB(channelNumber, value) {
787
+ this.channels[channelNumber].dataLSB = value;
788
+ this.handleRPN(channelNumber);
789
+ }
784
790
  updateChannelGain(channel) {
785
791
  const now = this.audioContext.currentTime;
786
792
  const volume = channel.volume * channel.expression;
@@ -804,7 +810,7 @@ class MidyGMLite {
804
810
  const rpn = channel.rpnMSB * 128 + channel.rpnLSB;
805
811
  switch (rpn) {
806
812
  case 0:
807
- this.handlePitchBendRangeMessage(channelNumber);
813
+ this.handlePitchBendRangeRPN(channelNumber);
808
814
  break;
809
815
  default:
810
816
  console.warn(`Channel ${channelNumber}: Unsupported RPN MSB=${channel.rpnMSB} LSB=${channel.rpnLSB}`);
@@ -816,9 +822,8 @@ class MidyGMLite {
816
822
  setRPNLSB(channelNumber, value) {
817
823
  this.channels[channelNumber].rpnLSB = value;
818
824
  }
819
- setDataEntry(channelNumber, value, isMSB) {
820
- const channel = this.channels[channelNumber];
821
- isMSB ? channel.dataMSB = value : channel.dataLSB = value;
825
+ dataEntryMSB(channelNumber, value) {
826
+ this.channels[channelNumber].dataMSB = value;
822
827
  this.handleRPN(channelNumber);
823
828
  }
824
829
  updateDetune(channel, detuneChange) {
@@ -832,7 +837,7 @@ class MidyGMLite {
832
837
  .setValueAtTime(detune, now);
833
838
  });
834
839
  }
835
- handlePitchBendRangeMessage(channelNumber) {
840
+ handlePitchBendRangeRPN(channelNumber) {
836
841
  const channel = this.channels[channelNumber];
837
842
  this.limitData(channel, 0, 127, 0, 99);
838
843
  const pitchBendRange = channel.dataMSB + channel.dataLSB / 100;
@@ -971,7 +976,7 @@ Object.defineProperty(MidyGMLite, "channelSettings", {
971
976
  dataLSB: 0,
972
977
  program: 0,
973
978
  pitchBend: 0,
974
- modulationDepthRange: 0.5,
979
+ modulationDepthRange: 0.5, // cb
975
980
  }
976
981
  });
977
982
  Object.defineProperty(MidyGMLite, "effectSettings", {
package/script/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
- setReverb(channelNumber: any, reverb: any): void;
281
- setChorus(channelNumber: any, chorus: any): void;
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
- incrementRPNValue(channelNumber: any): void;
291
- decrementRPNValue(channelNumber: any): void;
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
- setDataEntry(channelNumber: any, value: any, isMSB: any): void;
296
+ dataEntryMSB(channelNumber: any, value: any): void;
295
297
  updateDetune(channel: any, detuneChange: any): void;
296
- handlePitchBendRangeMessage(channelNumber: any): void;
298
+ handlePitchBendRangeRPN(channelNumber: any): void;
297
299
  setPitchBendRange(channelNumber: any, pitchBendRange: any): void;
298
- handleFineTuningMessage(channelNumber: any): void;
300
+ handleFineTuningRPN(channelNumber: any): void;
299
301
  setFineTuning(channelNumber: any, fineTuning: any): void;
300
- handleCoarseTuningMessage(channelNumber: any): void;
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[];
@@ -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,gEAqBC;IAED,sFAcC;IAED,4DAIC;IAED,+DAcC;IAED,qEAGC;IAED,uDAOC;IAED,0EAkEC;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,2DAGC;IAED,6DAGC;IAED,6DASC;IAED,kFAeC;IAED,2DAMC;IAGD,gDAqBC;IAED,4CAEC;IAED,4CAEC;IAED,gDAEC;IAED,gDAEC;IAED,+DAIC;IAED,oDAUC;IAED,sDAKC;IAED,iEAOC;IAED,kDAKC;IAED,yDAGC;IAED,oDAKC;IAED,6DAGC;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;AA1hDD;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.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"}