@marmooo/midy 0.1.4 → 0.1.5

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.
Files changed (35) hide show
  1. package/esm/deps/cdn.jsdelivr.net/npm/@marmooo/{soundfont-parser@0.0.4 → soundfont-parser@0.0.6}/+esm.d.ts +16 -20
  2. package/esm/deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.6/+esm.d.ts.map +1 -0
  3. package/esm/deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.6/+esm.js +180 -0
  4. package/esm/midy-GM1.d.ts +29 -1
  5. package/esm/midy-GM1.d.ts.map +1 -1
  6. package/esm/midy-GM1.js +27 -32
  7. package/esm/midy-GM2.d.ts +53 -1
  8. package/esm/midy-GM2.d.ts.map +1 -1
  9. package/esm/midy-GM2.js +81 -79
  10. package/esm/midy-GMLite.d.ts +29 -1
  11. package/esm/midy-GMLite.d.ts.map +1 -1
  12. package/esm/midy-GMLite.js +27 -32
  13. package/esm/midy.d.ts +73 -1
  14. package/esm/midy.d.ts.map +1 -1
  15. package/esm/midy.js +104 -97
  16. package/package.json +1 -1
  17. package/script/deps/cdn.jsdelivr.net/npm/@marmooo/{soundfont-parser@0.0.4 → soundfont-parser@0.0.6}/+esm.d.ts +16 -20
  18. package/script/deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.6/+esm.d.ts.map +1 -0
  19. package/script/deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.6/+esm.js +190 -0
  20. package/script/midy-GM1.d.ts +29 -1
  21. package/script/midy-GM1.d.ts.map +1 -1
  22. package/script/midy-GM1.js +27 -32
  23. package/script/midy-GM2.d.ts +53 -1
  24. package/script/midy-GM2.d.ts.map +1 -1
  25. package/script/midy-GM2.js +81 -79
  26. package/script/midy-GMLite.d.ts +29 -1
  27. package/script/midy-GMLite.d.ts.map +1 -1
  28. package/script/midy-GMLite.js +27 -32
  29. package/script/midy.d.ts +73 -1
  30. package/script/midy.d.ts.map +1 -1
  31. package/script/midy.js +104 -97
  32. package/esm/deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.4/+esm.d.ts.map +0 -1
  33. package/esm/deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.4/+esm.js +0 -162
  34. package/script/deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.4/+esm.d.ts.map +0 -1
  35. package/script/deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.4/+esm.js +0 -169
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MidyGM1 = void 0;
4
4
  const _esm_js_1 = require("./deps/cdn.jsdelivr.net/npm/midi-file@1.2.4/+esm.js");
5
- const _esm_js_2 = require("./deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.4/+esm.js");
5
+ const _esm_js_2 = require("./deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.6/+esm.js");
6
6
  class Note {
7
7
  constructor(noteNumber, velocity, startTime, instrumentKey) {
8
8
  Object.defineProperty(this, "bufferSource", {
@@ -165,6 +165,7 @@ class MidyGM1 {
165
165
  });
166
166
  this.audioContext = audioContext;
167
167
  this.masterGain = new GainNode(audioContext);
168
+ this.controlChangeHandlers = this.createControlChangeHandlers();
168
169
  this.channels = this.createChannels(audioContext);
169
170
  this.masterGain.connect(audioContext.destination);
170
171
  this.GM1SystemOn();
@@ -649,7 +650,7 @@ class MidyGM1 {
649
650
  return;
650
651
  const soundFont = this.soundFonts[soundFontIndex];
651
652
  const isSF3 = soundFont.parsed.info.version.major === 3;
652
- const instrumentKey = soundFont.getInstrumentKey(bankNumber, channel.program, noteNumber);
653
+ const instrumentKey = soundFont.getInstrumentKey(bankNumber, channel.program, noteNumber, velocity);
653
654
  if (!instrumentKey)
654
655
  return;
655
656
  const note = await this.createNote(channel, instrumentKey, noteNumber, velocity, startTime, isSF3);
@@ -698,12 +699,11 @@ class MidyGM1 {
698
699
  note.bufferSource.disconnect();
699
700
  note.volumeNode.disconnect();
700
701
  note.filterNode.disconnect();
701
- if (note.volumeDepth)
702
+ if (note.modulationDepth) {
702
703
  note.volumeDepth.disconnect();
703
- if (note.modulationDepth)
704
704
  note.modulationDepth.disconnect();
705
- if (note.modulationLFO)
706
705
  note.modulationLFO.stop();
706
+ }
707
707
  resolve();
708
708
  };
709
709
  note.bufferSource.stop(volEndTime);
@@ -765,34 +765,29 @@ class MidyGM1 {
765
765
  channel.pitchBendRange * 100;
766
766
  this.updateDetune(channel, detuneChange);
767
767
  }
768
+ createControlChangeHandlers() {
769
+ return {
770
+ 1: this.setModulationDepth,
771
+ 6: this.dataEntryMSB,
772
+ 7: this.setVolume,
773
+ 10: this.setPan,
774
+ 11: this.setExpression,
775
+ 38: this.dataEntryLSB,
776
+ 64: this.setSustainPedal,
777
+ 100: this.setRPNLSB,
778
+ 101: this.setRPNMSB,
779
+ 120: this.allSoundOff,
780
+ 121: this.resetAllControllers,
781
+ 123: this.allNotesOff,
782
+ };
783
+ }
768
784
  handleControlChange(channelNumber, controller, value) {
769
- switch (controller) {
770
- case 1:
771
- return this.setModulationDepth(channelNumber, value);
772
- case 6:
773
- return this.dataEntryMSB(channelNumber, value);
774
- case 7:
775
- return this.setVolume(channelNumber, value);
776
- case 10:
777
- return this.setPan(channelNumber, value);
778
- case 11:
779
- return this.setExpression(channelNumber, value);
780
- case 38:
781
- return this.dataEntryLSB(channelNumber, value);
782
- case 64:
783
- return this.setSustainPedal(channelNumber, value);
784
- case 100:
785
- return this.setRPNLSB(channelNumber, value);
786
- case 101:
787
- return this.setRPNMSB(channelNumber, value);
788
- case 120:
789
- return this.allSoundOff(channelNumber);
790
- case 121:
791
- return this.resetAllControllers(channelNumber);
792
- case 123:
793
- return this.allNotesOff(channelNumber);
794
- default:
795
- console.warn(`Unsupported Control change: controller=${controller} value=${value}`);
785
+ const handler = this.controlChangeHandlers[controller];
786
+ if (handler) {
787
+ handler.call(this, channelNumber, value);
788
+ }
789
+ else {
790
+ console.warn(`Unsupported Control change: controller=${controller} value=${value}`);
796
791
  }
797
792
  }
798
793
  updateModulation(channel) {
@@ -92,6 +92,32 @@ export class MidyGM2 {
92
92
  };
93
93
  };
94
94
  masterGain: any;
95
+ controlChangeHandlers: {
96
+ 0: (channelNumber: any, msb: any) => void;
97
+ 1: (channelNumber: any, modulation: any) => void;
98
+ 5: (channelNumber: any, portamentoTime: any) => void;
99
+ 6: (channelNumber: any, value: any) => void;
100
+ 7: (channelNumber: any, volume: any) => void;
101
+ 10: (channelNumber: any, pan: any) => void;
102
+ 11: (channelNumber: any, expression: any) => void;
103
+ 32: (channelNumber: any, lsb: any) => void;
104
+ 38: (channelNumber: any, value: any) => void;
105
+ 64: (channelNumber: any, value: any) => void;
106
+ 65: (channelNumber: any, value: any) => void;
107
+ 66: (channelNumber: any, value: any) => void;
108
+ 67: (channelNumber: any, softPedal: any) => void;
109
+ 91: (channelNumber: any, reverbSendLevel: any) => void;
110
+ 93: (channelNumber: any, chorusSendLevel: any) => void;
111
+ 100: (channelNumber: any, value: any) => void;
112
+ 101: (channelNumber: any, value: any) => void;
113
+ 120: (channelNumber: any) => Promise<void>;
114
+ 121: (channelNumber: any) => void;
115
+ 123: (channelNumber: any) => Promise<void>;
116
+ 124: () => void;
117
+ 125: () => void;
118
+ 126: () => void;
119
+ 127: () => void;
120
+ };
95
121
  channels: any[];
96
122
  reverbEffect: {
97
123
  input: any;
@@ -184,7 +210,33 @@ export class MidyGM2 {
184
210
  handleChannelPressure(channelNumber: any, pressure: any): void;
185
211
  handlePitchBendMessage(channelNumber: any, lsb: any, msb: any): void;
186
212
  setPitchBend(channelNumber: any, pitchBend: any): void;
187
- handleControlChange(channelNumber: any, controller: any, value: any): void | Promise<void>;
213
+ createControlChangeHandlers(): {
214
+ 0: (channelNumber: any, msb: any) => void;
215
+ 1: (channelNumber: any, modulation: any) => void;
216
+ 5: (channelNumber: any, portamentoTime: any) => void;
217
+ 6: (channelNumber: any, value: any) => void;
218
+ 7: (channelNumber: any, volume: any) => void;
219
+ 10: (channelNumber: any, pan: any) => void;
220
+ 11: (channelNumber: any, expression: any) => void;
221
+ 32: (channelNumber: any, lsb: any) => void;
222
+ 38: (channelNumber: any, value: any) => void;
223
+ 64: (channelNumber: any, value: any) => void;
224
+ 65: (channelNumber: any, value: any) => void;
225
+ 66: (channelNumber: any, value: any) => void;
226
+ 67: (channelNumber: any, softPedal: any) => void;
227
+ 91: (channelNumber: any, reverbSendLevel: any) => void;
228
+ 93: (channelNumber: any, chorusSendLevel: any) => void;
229
+ 100: (channelNumber: any, value: any) => void;
230
+ 101: (channelNumber: any, value: any) => void;
231
+ 120: (channelNumber: any) => Promise<void>;
232
+ 121: (channelNumber: any) => void;
233
+ 123: (channelNumber: any) => Promise<void>;
234
+ 124: () => void;
235
+ 125: () => void;
236
+ 126: () => void;
237
+ 127: () => void;
238
+ };
239
+ handleControlChange(channelNumber: any, controller: any, value: any): void;
188
240
  setBankMSB(channelNumber: any, msb: any): void;
189
241
  updateModulation(channel: any): void;
190
242
  setModulationDepth(channelNumber: any, modulation: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"midy-GM2.d.ts","sourceRoot":"","sources":["../src/midy-GM2.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"midy-GM2.d.ts","sourceRoot":"","sources":["../src/midy-GM2.js"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MidyGM2 = void 0;
4
4
  const _esm_js_1 = require("./deps/cdn.jsdelivr.net/npm/midi-file@1.2.4/+esm.js");
5
- const _esm_js_2 = require("./deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.4/+esm.js");
5
+ const _esm_js_2 = require("./deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.6/+esm.js");
6
6
  class Note {
7
7
  constructor(noteNumber, velocity, startTime, instrumentKey) {
8
8
  Object.defineProperty(this, "bufferSource", {
@@ -233,6 +233,7 @@ class MidyGM2 {
233
233
  this.audioContext = audioContext;
234
234
  this.options = { ...this.defaultOptions, ...options };
235
235
  this.masterGain = new GainNode(audioContext);
236
+ this.controlChangeHandlers = this.createControlChangeHandlers();
236
237
  this.channels = this.createChannels(audioContext);
237
238
  this.reverbEffect = this.options.reverbAlgorithm(audioContext);
238
239
  this.chorusEffect = this.createChorusEffect(audioContext);
@@ -928,7 +929,7 @@ class MidyGM2 {
928
929
  return;
929
930
  const soundFont = this.soundFonts[soundFontIndex];
930
931
  const isSF3 = soundFont.parsed.info.version.major === 3;
931
- const instrumentKey = soundFont.getInstrumentKey(bankNumber, channel.program, noteNumber);
932
+ const instrumentKey = soundFont.getInstrumentKey(bankNumber, channel.program, noteNumber, velocity);
932
933
  if (!instrumentKey)
933
934
  return;
934
935
  const note = await this.createNote(channel, instrumentKey, noteNumber, velocity, startTime, isSF3);
@@ -951,10 +952,12 @@ class MidyGM2 {
951
952
  }
952
953
  scheduleNoteRelease(channelNumber, noteNumber, _velocity, stopTime, stopPedal = false) {
953
954
  const channel = this.channels[channelNumber];
954
- if (stopPedal && channel.sustainPedal)
955
- return;
956
- if (stopPedal && channel.sostenutoNotes.has(noteNumber))
957
- return;
955
+ if (stopPedal) {
956
+ if (channel.sustainPedal)
957
+ return;
958
+ if (channel.sostenutoNotes.has(noteNumber))
959
+ return;
960
+ }
958
961
  if (!channel.scheduledNotes.has(noteNumber))
959
962
  return;
960
963
  const scheduledNotes = channel.scheduledNotes.get(noteNumber);
@@ -982,16 +985,11 @@ class MidyGM2 {
982
985
  note.bufferSource.disconnect();
983
986
  note.volumeNode.disconnect();
984
987
  note.filterNode.disconnect();
985
- if (note.volumeDepth)
988
+ if (note.modulationDepth) {
986
989
  note.volumeDepth.disconnect();
987
- if (note.modulationDepth)
988
990
  note.modulationDepth.disconnect();
989
- if (note.modulationLFO)
990
991
  note.modulationLFO.stop();
991
- if (note.vibratoDepth)
992
- note.vibratoDepth.disconnect();
993
- if (note.vibratoLFO)
994
- note.vibratoLFO.stop();
992
+ }
995
993
  resolve();
996
994
  };
997
995
  note.bufferSource.stop(volEndTime);
@@ -1084,58 +1082,41 @@ class MidyGM2 {
1084
1082
  channel.pitchBendRange * 100;
1085
1083
  this.updateDetune(channel, detuneChange);
1086
1084
  }
1085
+ createControlChangeHandlers() {
1086
+ return {
1087
+ 0: this.setBankMSB,
1088
+ 1: this.setModulationDepth,
1089
+ 5: this.setPortamentoTime,
1090
+ 6: this.dataEntryMSB,
1091
+ 7: this.setVolume,
1092
+ 10: this.setPan,
1093
+ 11: this.setExpression,
1094
+ 32: this.setBankLSB,
1095
+ 38: this.dataEntryLSB,
1096
+ 64: this.setSustainPedal,
1097
+ 65: this.setPortamento,
1098
+ 66: this.setSostenutoPedal,
1099
+ 67: this.setSoftPedal,
1100
+ 91: this.setReverbSendLevel,
1101
+ 93: this.setChorusSendLevel,
1102
+ 100: this.setRPNLSB,
1103
+ 101: this.setRPNMSB,
1104
+ 120: this.allSoundOff,
1105
+ 121: this.resetAllControllers,
1106
+ 123: this.allNotesOff,
1107
+ 124: this.omniOff,
1108
+ 125: this.omniOn,
1109
+ 126: this.monoOn,
1110
+ 127: this.polyOn,
1111
+ };
1112
+ }
1087
1113
  handleControlChange(channelNumber, controller, value) {
1088
- switch (controller) {
1089
- case 0:
1090
- return this.setBankMSB(channelNumber, value);
1091
- case 1:
1092
- return this.setModulationDepth(channelNumber, value);
1093
- case 5:
1094
- return this.setPortamentoTime(channelNumber, value);
1095
- case 6:
1096
- return this.dataEntryMSB(channelNumber, value);
1097
- case 7:
1098
- return this.setVolume(channelNumber, value);
1099
- case 10:
1100
- return this.setPan(channelNumber, value);
1101
- case 11:
1102
- return this.setExpression(channelNumber, value);
1103
- case 32:
1104
- return this.setBankLSB(channelNumber, value);
1105
- case 38:
1106
- return this.dataEntryLSB(channelNumber, value);
1107
- case 64:
1108
- return this.setSustainPedal(channelNumber, value);
1109
- case 65:
1110
- return this.setPortamento(channelNumber, value);
1111
- case 66:
1112
- return this.setSostenutoPedal(channelNumber, value);
1113
- case 67:
1114
- return this.setSoftPedal(channelNumber, value);
1115
- case 91:
1116
- return this.setReverbSendLevel(channelNumber, value);
1117
- case 93:
1118
- return this.setChorusSendLevel(channelNumber, value);
1119
- case 100:
1120
- return this.setRPNLSB(channelNumber, value);
1121
- case 101:
1122
- return this.setRPNMSB(channelNumber, value);
1123
- case 120:
1124
- return this.allSoundOff(channelNumber);
1125
- case 121:
1126
- return this.resetAllControllers(channelNumber);
1127
- case 123:
1128
- return this.allNotesOff(channelNumber);
1129
- case 124:
1130
- return this.omniOff();
1131
- case 125:
1132
- return this.omniOn();
1133
- case 126:
1134
- return this.monoOn();
1135
- case 127:
1136
- return this.polyOn();
1137
- default:
1138
- console.warn(`Unsupported Control change: controller=${controller} value=${value}`);
1114
+ const handler = this.controlChangeHandlers[controller];
1115
+ if (handler) {
1116
+ handler.call(this, channelNumber, value);
1117
+ }
1118
+ else {
1119
+ console.warn(`Unsupported Control change: controller=${controller} value=${value}`);
1139
1120
  }
1140
1121
  }
1141
1122
  setBankMSB(channelNumber, msb) {
@@ -1220,28 +1201,49 @@ class MidyGM2 {
1220
1201
  }
1221
1202
  setReverbSendLevel(channelNumber, reverbSendLevel) {
1222
1203
  const channel = this.channels[channelNumber];
1223
- const reverbEffect = this.reverbEffect;
1224
- if (0 < reverbSendLevel) {
1225
- const now = this.audioContext.currentTime;
1226
- channel.reverbSendLevel = reverbSendLevel / 127;
1227
- reverbEffect.output.gain.cancelScheduledValues(now);
1228
- reverbEffect.output.gain.setValueAtTime(channel.reverbSendLevel, now);
1204
+ if (0 < channel.reverbSendLevel) {
1205
+ if (0 < reverbSendLevel) {
1206
+ const now = this.audioContext.currentTime;
1207
+ channel.reverbSendLevel = reverbSendLevel / 127;
1208
+ reverbEffect.output.gain.cancelScheduledValues(now);
1209
+ reverbEffect.output.gain.setValueAtTime(channel.reverbSendLevel, now);
1210
+ }
1211
+ else {
1212
+ channel.merger.disconnect(reverbEffect.input);
1213
+ }
1229
1214
  }
1230
- else if (channel.reverbSendLevel !== 0) {
1231
- channel.merger.disconnect(reverbEffect.input);
1215
+ else {
1216
+ if (0 < reverbSendLevel) {
1217
+ channel.merger.connect(reverbEffect.input);
1218
+ const now = this.audioContext.currentTime;
1219
+ channel.reverbSendLevel = reverbSendLevel / 127;
1220
+ reverbEffect.output.gain.cancelScheduledValues(now);
1221
+ reverbEffect.output.gain.setValueAtTime(channel.reverbSendLevel, now);
1222
+ }
1232
1223
  }
1233
1224
  }
1234
1225
  setChorusSendLevel(channelNumber, chorusSendLevel) {
1235
1226
  const channel = this.channels[channelNumber];
1236
1227
  const chorusEffect = this.chorusEffect;
1237
- if (0 < chorusSendLevel) {
1238
- const now = this.audioContext.currentTime;
1239
- channel.chorusSendLevel = chorusSendLevel / 127;
1240
- chorusEffect.output.gain.cancelScheduledValues(now);
1241
- chorusEffect.output.gain.setValueAtTime(channel.chorusSendLevel, now);
1228
+ if (0 < channel.chorusSendLevel) {
1229
+ if (0 < chorusSendLevel) {
1230
+ const now = this.audioContext.currentTime;
1231
+ channel.chorusSendLevel = chorusSendLevel / 127;
1232
+ chorusEffect.output.gain.cancelScheduledValues(now);
1233
+ chorusEffect.output.gain.setValueAtTime(channel.chorusSendLevel, now);
1234
+ }
1235
+ else {
1236
+ channel.merger.disconnect(chorusEffect.input);
1237
+ }
1242
1238
  }
1243
- else if (channel.chorusSendLevel !== 0) {
1244
- channel.merger.disconnect(chorusEffect.input);
1239
+ else {
1240
+ if (0 < chorusSendLevel) {
1241
+ channel.merger.connect(chorusEffect.input);
1242
+ const now = this.audioContext.currentTime;
1243
+ channel.chorusSendLevel = chorusSendLevel / 127;
1244
+ chorusEffect.output.gain.cancelScheduledValues(now);
1245
+ chorusEffect.output.gain.setValueAtTime(channel.chorusSendLevel, now);
1246
+ }
1245
1247
  }
1246
1248
  }
1247
1249
  setSostenutoPedal(channelNumber, value) {
@@ -37,6 +37,20 @@ export class MidyGMLite {
37
37
  notePromises: any[];
38
38
  audioContext: any;
39
39
  masterGain: any;
40
+ controlChangeHandlers: {
41
+ 1: (channelNumber: any, modulation: any) => void;
42
+ 6: (channelNumber: any, value: any) => void;
43
+ 7: (channelNumber: any, volume: any) => void;
44
+ 10: (channelNumber: any, pan: any) => void;
45
+ 11: (channelNumber: any, expression: any) => void;
46
+ 38: (channelNumber: any, value: any) => void;
47
+ 64: (channelNumber: any, value: any) => void;
48
+ 100: (channelNumber: any, value: any) => void;
49
+ 101: (channelNumber: any, value: any) => void;
50
+ 120: (channelNumber: any) => Promise<void>;
51
+ 121: (channelNumber: any) => void;
52
+ 123: (channelNumber: any) => Promise<void>;
53
+ };
40
54
  channels: any[];
41
55
  initSoundFontTable(): any[];
42
56
  addSoundFont(soundFont: any): void;
@@ -90,7 +104,21 @@ export class MidyGMLite {
90
104
  handleProgramChange(channelNumber: any, program: any): void;
91
105
  handlePitchBendMessage(channelNumber: any, lsb: any, msb: any): void;
92
106
  setPitchBend(channelNumber: any, pitchBend: any): void;
93
- handleControlChange(channelNumber: any, controller: any, value: any): void | Promise<void>;
107
+ createControlChangeHandlers(): {
108
+ 1: (channelNumber: any, modulation: any) => void;
109
+ 6: (channelNumber: any, value: any) => void;
110
+ 7: (channelNumber: any, volume: any) => void;
111
+ 10: (channelNumber: any, pan: any) => void;
112
+ 11: (channelNumber: any, expression: any) => void;
113
+ 38: (channelNumber: any, value: any) => void;
114
+ 64: (channelNumber: any, value: any) => void;
115
+ 100: (channelNumber: any, value: any) => void;
116
+ 101: (channelNumber: any, value: any) => void;
117
+ 120: (channelNumber: any) => Promise<void>;
118
+ 121: (channelNumber: any) => void;
119
+ 123: (channelNumber: any) => Promise<void>;
120
+ };
121
+ handleControlChange(channelNumber: any, controller: any, value: any): void;
94
122
  updateModulation(channel: any): void;
95
123
  setModulationDepth(channelNumber: any, modulation: any): void;
96
124
  setVolume(channelNumber: any, volume: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"midy-GMLite.d.ts","sourceRoot":"","sources":["../src/midy-GMLite.js"],"names":[],"mappings":"AAsBA;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;IAC5C,gBAAiD;IAKnD,4BAMC;IAED,mCASC;IAED,gDAMC;IAED,sCASC;IAED;;;;MAeC;IAED,yCAUC;IAED,+DAyBC;IAED,mEAWC;IAED,qDAOC;IAED,2EA+CC;IAED,mCAOC;IAED,0BA+CC;IAED,uDAEC;IAED,wDAEC;IAED;;;MA8DC;IAED,mFAmBC;IAED,yDAKC;IAED,uBAKC;IAED,aAGC;IAED,cAKC;IAED,wBAIC;IAED,0BAKC;IAED,wBAOC;IAED,sBAGC;IAED,uDASC;IAED,6CAQC;IAED,2BAEC;IAED,4BAEC;IAED,yCAEC;IAED,mFAGC;IAED,mCAeC;IAED,+CAwBC;IAED,6CAIC;IAED,mCAsBC;IAED,+DA0BC;IAED,wHAmCC;IAED,kGA6BC;IAED,0EAGC;IAED,uIAyCC;IAED,0FAGC;IAED,kEAeC;IAED,gFAiBC;IAED,4DAGC;IAED,qEAGC;IAED,uDAOC;IAED,2FA+BC;IAED,qCAkBC;IAED,8DAIC;IACD,iDAIC;IAED;;;MAMC;IAED,2CAIC;IAED,yDAIC;IAED,mDAGC;IAED,sCAUC;IAED,sDAMC;IAED,oCAYC;IAED,gDAEC;IAED,gDAEC;IAED,mDAGC;IAED,oDAaC;IAED,kDAKC;IAED,iEAOC;IAED,+CAEC;IAED,8CAEC;IAED,+CAEC;IAED,4DAgBC;IAED,oBAQC;IAED,yDAaC;IAED,yCAGC;IAED,mCAQC;IAED,wCAEC;IAED,6BASC;IAED,0DAUC;CACF;AAl/BD;IAQE,gFAKC;IAZD,kBAAa;IACb,gBAAW;IACX,gBAAW;IACX,iBAAY;IACZ,mBAAc;IACd,qBAAgB;IAGd,gBAA4B;IAC5B,cAAwB;IACxB,eAA0B;IAC1B,mBAAkC;CAErC"}
1
+ {"version":3,"file":"midy-GMLite.d.ts","sourceRoot":"","sources":["../src/midy-GMLite.js"],"names":[],"mappings":"AAsBA;IAmBE;;;;;;;;;MASE;IAEF;;;;;;;MAOE;IAEF,+BAOC;IA7CD,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;IAC5C;;;;;;;;;;;;;MAA+D;IAC/D,gBAAiD;IAKnD,4BAMC;IAED,mCASC;IAED,gDAMC;IAED,sCASC;IAED;;;;MAeC;IAED,yCAUC;IAED,+DAyBC;IAED,mEAWC;IAED,qDAOC;IAED,2EA+CC;IAED,mCAOC;IAED,0BA+CC;IAED,uDAEC;IAED,wDAEC;IAED;;;MA8DC;IAED,mFAmBC;IAED,yDAKC;IAED,uBAKC;IAED,aAGC;IAED,cAKC;IAED,wBAIC;IAED,0BAKC;IAED,wBAOC;IAED,sBAGC;IAED,uDASC;IAED,6CAQC;IAED,2BAEC;IAED,4BAEC;IAED,yCAEC;IAED,mFAGC;IAED,mCAeC;IAED,+CAwBC;IAED,6CAIC;IAED,mCAsBC;IAED,+DA0BC;IAED,wHAmCC;IAED,kGA8BC;IAED,0EAGC;IAED,uIA2CC;IAED,0FAGC;IAED,kEAeC;IAED,gFAiBC;IAED,4DAGC;IAED,qEAGC;IAED,uDAOC;IAED;;;;;;;;;;;;;MAeC;IAED,2EASC;IAED,qCAkBC;IAED,8DAIC;IACD,iDAIC;IAED;;;MAMC;IAED,2CAIC;IAED,yDAIC;IAED,mDAGC;IAED,sCAUC;IAED,sDAMC;IAED,oCAYC;IAED,gDAEC;IAED,gDAEC;IAED,mDAGC;IAED,oDAaC;IAED,kDAKC;IAED,iEAOC;IAED,+CAEC;IAED,8CAEC;IAED,+CAEC;IAED,4DAgBC;IAED,oBAQC;IAED,yDAaC;IAED,yCAGC;IAED,mCAQC;IAED,wCAEC;IAED,6BASC;IAED,0DAUC;CACF;AAj/BD;IAQE,gFAKC;IAZD,kBAAa;IACb,gBAAW;IACX,gBAAW;IACX,iBAAY;IACZ,mBAAc;IACd,qBAAgB;IAGd,gBAA4B;IAC5B,cAAwB;IACxB,eAA0B;IAC1B,mBAAkC;CAErC"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MidyGMLite = void 0;
4
4
  const _esm_js_1 = require("./deps/cdn.jsdelivr.net/npm/midi-file@1.2.4/+esm.js");
5
- const _esm_js_2 = require("./deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.4/+esm.js");
5
+ const _esm_js_2 = require("./deps/cdn.jsdelivr.net/npm/@marmooo/soundfont-parser@0.0.6/+esm.js");
6
6
  class Note {
7
7
  constructor(noteNumber, velocity, startTime, instrumentKey) {
8
8
  Object.defineProperty(this, "bufferSource", {
@@ -153,6 +153,7 @@ class MidyGMLite {
153
153
  });
154
154
  this.audioContext = audioContext;
155
155
  this.masterGain = new GainNode(audioContext);
156
+ this.controlChangeHandlers = this.createControlChangeHandlers();
156
157
  this.channels = this.createChannels(audioContext);
157
158
  this.masterGain.connect(audioContext.destination);
158
159
  this.GM1SystemOn();
@@ -636,7 +637,7 @@ class MidyGMLite {
636
637
  return;
637
638
  const soundFont = this.soundFonts[soundFontIndex];
638
639
  const isSF3 = soundFont.parsed.info.version.major === 3;
639
- const instrumentKey = soundFont.getInstrumentKey(bankNumber, channel.program, noteNumber);
640
+ const instrumentKey = soundFont.getInstrumentKey(bankNumber, channel.program, noteNumber, velocity);
640
641
  if (!instrumentKey)
641
642
  return;
642
643
  const note = await this.createNote(channel, instrumentKey, noteNumber, velocity, startTime, isSF3);
@@ -685,12 +686,11 @@ class MidyGMLite {
685
686
  note.bufferSource.disconnect();
686
687
  note.volumeNode.disconnect();
687
688
  note.filterNode.disconnect();
688
- if (note.volumeDepth)
689
+ if (note.modulationDepth) {
689
690
  note.volumeDepth.disconnect();
690
- if (note.modulationDepth)
691
691
  note.modulationDepth.disconnect();
692
- if (note.modulationLFO)
693
692
  note.modulationLFO.stop();
693
+ }
694
694
  resolve();
695
695
  };
696
696
  note.bufferSource.stop(volEndTime);
@@ -752,34 +752,29 @@ class MidyGMLite {
752
752
  channel.pitchBendRange * 100;
753
753
  this.updateDetune(channel, detuneChange);
754
754
  }
755
+ createControlChangeHandlers() {
756
+ return {
757
+ 1: this.setModulationDepth,
758
+ 6: this.dataEntryMSB,
759
+ 7: this.setVolume,
760
+ 10: this.setPan,
761
+ 11: this.setExpression,
762
+ 38: this.dataEntryLSB,
763
+ 64: this.setSustainPedal,
764
+ 100: this.setRPNLSB,
765
+ 101: this.setRPNMSB,
766
+ 120: this.allSoundOff,
767
+ 121: this.resetAllControllers,
768
+ 123: this.allNotesOff,
769
+ };
770
+ }
755
771
  handleControlChange(channelNumber, controller, value) {
756
- switch (controller) {
757
- case 1:
758
- return this.setModulationDepth(channelNumber, value);
759
- case 6:
760
- return this.dataEntryMSB(channelNumber, value);
761
- case 7:
762
- return this.setVolume(channelNumber, value);
763
- case 10:
764
- return this.setPan(channelNumber, value);
765
- case 11:
766
- return this.setExpression(channelNumber, value);
767
- case 38:
768
- return this.dataEntryLSB(channelNumber, value);
769
- case 64:
770
- return this.setSustainPedal(channelNumber, value);
771
- case 100:
772
- return this.setRPNLSB(channelNumber, value);
773
- case 101:
774
- return this.setRPNMSB(channelNumber, value);
775
- case 120:
776
- return this.allSoundOff(channelNumber);
777
- case 121:
778
- return this.resetAllControllers(channelNumber);
779
- case 123:
780
- return this.allNotesOff(channelNumber);
781
- default:
782
- console.warn(`Unsupported Control change: controller=${controller} value=${value}`);
772
+ const handler = this.controlChangeHandlers[controller];
773
+ if (handler) {
774
+ handler.call(this, channelNumber, value);
775
+ }
776
+ else {
777
+ console.warn(`Unsupported Control change: controller=${controller} value=${value}`);
783
778
  }
784
779
  }
785
780
  updateModulation(channel) {
package/script/midy.d.ts CHANGED
@@ -97,6 +97,42 @@ export class Midy {
97
97
  };
98
98
  };
99
99
  masterGain: any;
100
+ controlChangeHandlers: {
101
+ 0: (channelNumber: any, msb: any) => void;
102
+ 1: (channelNumber: any, modulation: any) => void;
103
+ 5: (channelNumber: any, portamentoTime: any) => void;
104
+ 6: (channelNumber: any, value: any) => void;
105
+ 7: (channelNumber: any, volume: any) => void;
106
+ 10: (channelNumber: any, pan: any) => void;
107
+ 11: (channelNumber: any, expression: any) => void;
108
+ 32: (channelNumber: any, lsb: any) => void;
109
+ 38: (channelNumber: any, value: any) => void;
110
+ 64: (channelNumber: any, value: any) => void;
111
+ 65: (channelNumber: any, value: any) => void;
112
+ 66: (channelNumber: any, value: any) => void;
113
+ 67: (channelNumber: any, softPedal: any) => void;
114
+ 71: (channelNumber: any, filterResonance: any) => void;
115
+ 72: (channelNumber: any, releaseTime: any) => void;
116
+ 73: (channelNumber: any, attackTime: any) => void;
117
+ 74: (channelNumber: any, brightness: any) => void;
118
+ 75: (channelNumber: any, dacayTime: any) => void;
119
+ 76: (channelNumber: any, vibratoRate: any) => void;
120
+ 77: (channelNumber: any, vibratoDepth: any) => void;
121
+ 78: (channelNumber: any, vibratoDelay: any) => void;
122
+ 91: (channelNumber: any, reverbSendLevel: any) => void;
123
+ 93: (channelNumber: any, chorusSendLevel: any) => void;
124
+ 96: (channelNumber: any) => void;
125
+ 97: (channelNumber: any) => void;
126
+ 100: (channelNumber: any, value: any) => void;
127
+ 101: (channelNumber: any, value: any) => void;
128
+ 120: (channelNumber: any) => Promise<void>;
129
+ 121: (channelNumber: any) => void;
130
+ 123: (channelNumber: any) => Promise<void>;
131
+ 124: () => void;
132
+ 125: () => void;
133
+ 126: () => void;
134
+ 127: () => void;
135
+ };
100
136
  channels: any[];
101
137
  reverbEffect: {
102
138
  input: any;
@@ -190,7 +226,43 @@ export class Midy {
190
226
  handleChannelPressure(channelNumber: any, pressure: any): void;
191
227
  handlePitchBendMessage(channelNumber: any, lsb: any, msb: any): void;
192
228
  setPitchBend(channelNumber: any, pitchBend: any): void;
193
- handleControlChange(channelNumber: any, controller: any, value: any): void | Promise<void>;
229
+ createControlChangeHandlers(): {
230
+ 0: (channelNumber: any, msb: any) => void;
231
+ 1: (channelNumber: any, modulation: any) => void;
232
+ 5: (channelNumber: any, portamentoTime: any) => void;
233
+ 6: (channelNumber: any, value: any) => void;
234
+ 7: (channelNumber: any, volume: any) => void;
235
+ 10: (channelNumber: any, pan: any) => void;
236
+ 11: (channelNumber: any, expression: any) => void;
237
+ 32: (channelNumber: any, lsb: any) => void;
238
+ 38: (channelNumber: any, value: any) => void;
239
+ 64: (channelNumber: any, value: any) => void;
240
+ 65: (channelNumber: any, value: any) => void;
241
+ 66: (channelNumber: any, value: any) => void;
242
+ 67: (channelNumber: any, softPedal: any) => void;
243
+ 71: (channelNumber: any, filterResonance: any) => void;
244
+ 72: (channelNumber: any, releaseTime: any) => void;
245
+ 73: (channelNumber: any, attackTime: any) => void;
246
+ 74: (channelNumber: any, brightness: any) => void;
247
+ 75: (channelNumber: any, dacayTime: any) => void;
248
+ 76: (channelNumber: any, vibratoRate: any) => void;
249
+ 77: (channelNumber: any, vibratoDepth: any) => void;
250
+ 78: (channelNumber: any, vibratoDelay: any) => void;
251
+ 91: (channelNumber: any, reverbSendLevel: any) => void;
252
+ 93: (channelNumber: any, chorusSendLevel: any) => void;
253
+ 96: (channelNumber: any) => void;
254
+ 97: (channelNumber: any) => void;
255
+ 100: (channelNumber: any, value: any) => void;
256
+ 101: (channelNumber: any, value: any) => void;
257
+ 120: (channelNumber: any) => Promise<void>;
258
+ 121: (channelNumber: any) => void;
259
+ 123: (channelNumber: any) => Promise<void>;
260
+ 124: () => void;
261
+ 125: () => void;
262
+ 126: () => void;
263
+ 127: () => void;
264
+ };
265
+ handleControlChange(channelNumber: any, controller: any, value: any): void;
194
266
  setBankMSB(channelNumber: any, msb: any): void;
195
267
  updateModulation(channel: any): void;
196
268
  setModulationDepth(channelNumber: any, modulation: any): void;
@@ -1 +1 @@
1
- {"version":3,"file":"midy.d.ts","sourceRoot":"","sources":["../src/midy.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"midy.d.ts","sourceRoot":"","sources":["../src/midy.js"],"names":[],"mappings":"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"}