libadlmidi-js 1.1.0 → 1.2.0

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 (58) hide show
  1. package/README.md +36 -1
  2. package/dist/core.d.ts +148 -0
  3. package/dist/fm_banks/manifest.json +1 -1
  4. package/dist/libadlmidi.d.ts +119 -2
  5. package/dist/libadlmidi.dosbox.browser.js +1 -1
  6. package/dist/libadlmidi.dosbox.browser.wasm +0 -0
  7. package/dist/libadlmidi.dosbox.core.js +1 -1
  8. package/dist/libadlmidi.dosbox.core.wasm +0 -0
  9. package/dist/libadlmidi.dosbox.js +0 -0
  10. package/dist/libadlmidi.dosbox.processor.js +152 -53
  11. package/dist/libadlmidi.dosbox.slim.browser.js +1 -1
  12. package/dist/libadlmidi.dosbox.slim.browser.wasm +0 -0
  13. package/dist/libadlmidi.dosbox.slim.core.js +1 -1
  14. package/dist/libadlmidi.dosbox.slim.core.wasm +0 -0
  15. package/dist/libadlmidi.dosbox.slim.js +0 -0
  16. package/dist/libadlmidi.dosbox.slim.processor.js +152 -53
  17. package/dist/libadlmidi.full.browser.js +1 -1
  18. package/dist/libadlmidi.full.browser.wasm +0 -0
  19. package/dist/libadlmidi.full.core.js +1 -1
  20. package/dist/libadlmidi.full.core.wasm +0 -0
  21. package/dist/libadlmidi.full.js +0 -0
  22. package/dist/libadlmidi.full.processor.js +152 -53
  23. package/dist/libadlmidi.full.slim.browser.js +1 -1
  24. package/dist/libadlmidi.full.slim.browser.wasm +0 -0
  25. package/dist/libadlmidi.full.slim.core.js +1 -1
  26. package/dist/libadlmidi.full.slim.core.wasm +0 -0
  27. package/dist/libadlmidi.full.slim.js +0 -0
  28. package/dist/libadlmidi.full.slim.processor.js +152 -53
  29. package/dist/libadlmidi.js +258 -4
  30. package/dist/libadlmidi.js.map +2 -2
  31. package/dist/libadlmidi.light.browser.js +1 -1
  32. package/dist/libadlmidi.light.browser.wasm +0 -0
  33. package/dist/libadlmidi.light.core.js +1 -1
  34. package/dist/libadlmidi.light.core.wasm +0 -0
  35. package/dist/libadlmidi.light.js +0 -0
  36. package/dist/libadlmidi.light.processor.js +152 -53
  37. package/dist/libadlmidi.light.slim.browser.js +1 -1
  38. package/dist/libadlmidi.light.slim.browser.wasm +0 -0
  39. package/dist/libadlmidi.light.slim.core.js +1 -1
  40. package/dist/libadlmidi.light.slim.core.wasm +0 -0
  41. package/dist/libadlmidi.light.slim.js +0 -0
  42. package/dist/libadlmidi.light.slim.processor.js +152 -53
  43. package/dist/libadlmidi.nuked.browser.js +1 -1
  44. package/dist/libadlmidi.nuked.browser.wasm +0 -0
  45. package/dist/libadlmidi.nuked.core.js +1 -1
  46. package/dist/libadlmidi.nuked.core.wasm +0 -0
  47. package/dist/libadlmidi.nuked.js +0 -0
  48. package/dist/libadlmidi.nuked.processor.js +152 -53
  49. package/dist/libadlmidi.nuked.slim.browser.js +1 -1
  50. package/dist/libadlmidi.nuked.slim.browser.wasm +0 -0
  51. package/dist/libadlmidi.nuked.slim.core.js +1 -1
  52. package/dist/libadlmidi.nuked.slim.core.wasm +0 -0
  53. package/dist/libadlmidi.nuked.slim.js +0 -0
  54. package/dist/libadlmidi.nuked.slim.processor.js +152 -53
  55. package/package.json +6 -5
  56. package/src/core.js +289 -24
  57. package/src/libadlmidi.js +229 -4
  58. package/src/processor.js +101 -1
@@ -2385,10 +2385,11 @@ async function createADLMIDI(moduleArg = {}) {
2385
2385
  return;
2386
2386
  }
2387
2387
  try {
2388
- func();
2389
- maybeExit();
2388
+ return func();
2390
2389
  } catch (e) {
2391
2390
  handleException(e);
2391
+ } finally {
2392
+ maybeExit();
2392
2393
  }
2393
2394
  };
2394
2395
  var _emscripten_get_now = () => performance.now();
@@ -2605,60 +2606,79 @@ async function createADLMIDI(moduleArg = {}) {
2605
2606
  Module["setValue"] = setValue;
2606
2607
  Module["getValue"] = getValue;
2607
2608
  Module["UTF8ToString"] = UTF8ToString;
2608
- var _adl_init, _adl_close, _adl_setNumChips, _adl_setBank, _adl_getBanksCount, _adl_getBankNames, _adl_reserveBanks, _adl_getBank, _adl_getInstrument, _adl_setInstrument, _adl_loadEmbeddedBank, _adl_setNumFourOpsChn, _adl_setPercMode, _adl_setHVibrato, _adl_setHTremolo, _adl_setScaleModulators, _adl_setLoopEnabled, _adl_setLoopCount, _adl_setSoftPanEnabled, _adl_setVolumeRangeModel, _adl_openBankFile, _adl_openBankData, _adl_openData, _adl_chipEmulatorName, _adl_switchEmulator, _adl_errorString, _adl_errorInfo, _adl_reset, _adl_totalTimeLength, _adl_positionTell, _adl_positionSeek, _adl_positionRewind, _adl_setTempo, _adl_play, _adl_playFormat, _adl_generate, _adl_generateFormat, _adl_atEnd, _adl_panic, _adl_rt_resetState, _adl_rt_noteOn, _adl_rt_noteOff, _adl_rt_controllerChange, _adl_rt_patchChange, _adl_rt_pitchBend, _adl_rt_pitchBendML, __emscripten_timeout, _malloc, _free, __emscripten_stack_restore, __emscripten_stack_alloc, _emscripten_stack_get_current, memory, __indirect_function_table, wasmMemory;
2609
+ var _adl_init, _adl_close, _adl_setNumChips, _adl_getNumChips, _adl_getNumChipsObtained, _adl_setBank, _adl_getBanksCount, _adl_getBankNames, _adl_reserveBanks, _adl_getBank, _adl_getInstrument, _adl_setInstrument, _adl_loadEmbeddedBank, _adl_setNumFourOpsChn, _adl_getNumFourOpsChn, _adl_setPercMode, _adl_setHVibrato, _adl_setHTremolo, _adl_setScaleModulators, _adl_setFullRangeBrightness, _adl_setAutoArpeggio, _adl_getAutoArpeggio, _adl_setLoopEnabled, _adl_setLoopCount, _adl_setSoftPanEnabled, _adl_setVolumeRangeModel, _adl_getVolumeRangeModel, _adl_setChannelAllocMode, _adl_getChannelAllocMode, _adl_openBankFile, _adl_openBankData, _adl_openData, _adl_chipEmulatorName, _adl_switchEmulator, _adl_setRunAtPcmRate, _adl_linkedLibraryVersion, _adl_linkedVersion, _adl_errorString, _adl_errorInfo, _adl_reset, _adl_totalTimeLength, _adl_positionTell, _adl_positionSeek, _adl_positionRewind, _adl_setTempo, _adl_metaMusicTitle, _adl_metaMusicCopyright, _adl_play, _adl_playFormat, _adl_generate, _adl_generateFormat, _adl_atEnd, _adl_panic, _adl_rt_resetState, _adl_rt_noteOn, _adl_rt_noteOff, _adl_rt_noteAfterTouch, _adl_rt_channelAfterTouch, _adl_rt_controllerChange, _adl_rt_patchChange, _adl_rt_pitchBend, _adl_rt_pitchBendML, _adl_rt_bankChangeLSB, _adl_rt_bankChangeMSB, _adl_rt_bankChange, __emscripten_timeout, _malloc, _free, __emscripten_stack_restore, __emscripten_stack_alloc, _emscripten_stack_get_current, memory, __indirect_function_table, wasmMemory;
2609
2610
  function assignWasmExports(wasmExports2) {
2610
2611
  _adl_init = Module["_adl_init"] = wasmExports2["p"];
2611
2612
  _adl_close = Module["_adl_close"] = wasmExports2["q"];
2612
2613
  _adl_setNumChips = Module["_adl_setNumChips"] = wasmExports2["r"];
2613
- _adl_setBank = Module["_adl_setBank"] = wasmExports2["s"];
2614
- _adl_getBanksCount = Module["_adl_getBanksCount"] = wasmExports2["t"];
2615
- _adl_getBankNames = Module["_adl_getBankNames"] = wasmExports2["u"];
2616
- _adl_reserveBanks = Module["_adl_reserveBanks"] = wasmExports2["v"];
2617
- _adl_getBank = Module["_adl_getBank"] = wasmExports2["w"];
2618
- _adl_getInstrument = Module["_adl_getInstrument"] = wasmExports2["x"];
2619
- _adl_setInstrument = Module["_adl_setInstrument"] = wasmExports2["y"];
2620
- _adl_loadEmbeddedBank = Module["_adl_loadEmbeddedBank"] = wasmExports2["z"];
2621
- _adl_setNumFourOpsChn = Module["_adl_setNumFourOpsChn"] = wasmExports2["A"];
2622
- _adl_setPercMode = Module["_adl_setPercMode"] = wasmExports2["B"];
2623
- _adl_setHVibrato = Module["_adl_setHVibrato"] = wasmExports2["C"];
2624
- _adl_setHTremolo = Module["_adl_setHTremolo"] = wasmExports2["D"];
2625
- _adl_setScaleModulators = Module["_adl_setScaleModulators"] = wasmExports2["E"];
2626
- _adl_setLoopEnabled = Module["_adl_setLoopEnabled"] = wasmExports2["F"];
2627
- _adl_setLoopCount = Module["_adl_setLoopCount"] = wasmExports2["G"];
2628
- _adl_setSoftPanEnabled = Module["_adl_setSoftPanEnabled"] = wasmExports2["H"];
2629
- _adl_setVolumeRangeModel = Module["_adl_setVolumeRangeModel"] = wasmExports2["I"];
2630
- _adl_openBankFile = Module["_adl_openBankFile"] = wasmExports2["J"];
2631
- _adl_openBankData = Module["_adl_openBankData"] = wasmExports2["K"];
2632
- _adl_openData = Module["_adl_openData"] = wasmExports2["L"];
2633
- _adl_chipEmulatorName = Module["_adl_chipEmulatorName"] = wasmExports2["M"];
2634
- _adl_switchEmulator = Module["_adl_switchEmulator"] = wasmExports2["N"];
2635
- _adl_errorString = Module["_adl_errorString"] = wasmExports2["O"];
2636
- _adl_errorInfo = Module["_adl_errorInfo"] = wasmExports2["P"];
2637
- _adl_reset = Module["_adl_reset"] = wasmExports2["Q"];
2638
- _adl_totalTimeLength = Module["_adl_totalTimeLength"] = wasmExports2["R"];
2639
- _adl_positionTell = Module["_adl_positionTell"] = wasmExports2["S"];
2640
- _adl_positionSeek = Module["_adl_positionSeek"] = wasmExports2["T"];
2641
- _adl_positionRewind = Module["_adl_positionRewind"] = wasmExports2["U"];
2642
- _adl_setTempo = Module["_adl_setTempo"] = wasmExports2["V"];
2643
- _adl_play = Module["_adl_play"] = wasmExports2["W"];
2644
- _adl_playFormat = Module["_adl_playFormat"] = wasmExports2["X"];
2645
- _adl_generate = Module["_adl_generate"] = wasmExports2["Y"];
2646
- _adl_generateFormat = Module["_adl_generateFormat"] = wasmExports2["Z"];
2647
- _adl_atEnd = Module["_adl_atEnd"] = wasmExports2["_"];
2648
- _adl_panic = Module["_adl_panic"] = wasmExports2["$"];
2649
- _adl_rt_resetState = Module["_adl_rt_resetState"] = wasmExports2["aa"];
2650
- _adl_rt_noteOn = Module["_adl_rt_noteOn"] = wasmExports2["ba"];
2651
- _adl_rt_noteOff = Module["_adl_rt_noteOff"] = wasmExports2["ca"];
2652
- _adl_rt_controllerChange = Module["_adl_rt_controllerChange"] = wasmExports2["da"];
2653
- _adl_rt_patchChange = Module["_adl_rt_patchChange"] = wasmExports2["ea"];
2654
- _adl_rt_pitchBend = Module["_adl_rt_pitchBend"] = wasmExports2["fa"];
2655
- _adl_rt_pitchBendML = Module["_adl_rt_pitchBendML"] = wasmExports2["ga"];
2656
- __emscripten_timeout = wasmExports2["ha"];
2657
- _malloc = Module["_malloc"] = wasmExports2["ia"];
2658
- _free = Module["_free"] = wasmExports2["ja"];
2659
- __emscripten_stack_restore = wasmExports2["ka"];
2660
- __emscripten_stack_alloc = wasmExports2["la"];
2661
- _emscripten_stack_get_current = wasmExports2["ma"];
2614
+ _adl_getNumChips = Module["_adl_getNumChips"] = wasmExports2["s"];
2615
+ _adl_getNumChipsObtained = Module["_adl_getNumChipsObtained"] = wasmExports2["t"];
2616
+ _adl_setBank = Module["_adl_setBank"] = wasmExports2["u"];
2617
+ _adl_getBanksCount = Module["_adl_getBanksCount"] = wasmExports2["v"];
2618
+ _adl_getBankNames = Module["_adl_getBankNames"] = wasmExports2["w"];
2619
+ _adl_reserveBanks = Module["_adl_reserveBanks"] = wasmExports2["x"];
2620
+ _adl_getBank = Module["_adl_getBank"] = wasmExports2["y"];
2621
+ _adl_getInstrument = Module["_adl_getInstrument"] = wasmExports2["z"];
2622
+ _adl_setInstrument = Module["_adl_setInstrument"] = wasmExports2["A"];
2623
+ _adl_loadEmbeddedBank = Module["_adl_loadEmbeddedBank"] = wasmExports2["B"];
2624
+ _adl_setNumFourOpsChn = Module["_adl_setNumFourOpsChn"] = wasmExports2["C"];
2625
+ _adl_getNumFourOpsChn = Module["_adl_getNumFourOpsChn"] = wasmExports2["D"];
2626
+ _adl_setPercMode = Module["_adl_setPercMode"] = wasmExports2["E"];
2627
+ _adl_setHVibrato = Module["_adl_setHVibrato"] = wasmExports2["F"];
2628
+ _adl_setHTremolo = Module["_adl_setHTremolo"] = wasmExports2["G"];
2629
+ _adl_setScaleModulators = Module["_adl_setScaleModulators"] = wasmExports2["H"];
2630
+ _adl_setFullRangeBrightness = Module["_adl_setFullRangeBrightness"] = wasmExports2["I"];
2631
+ _adl_setAutoArpeggio = Module["_adl_setAutoArpeggio"] = wasmExports2["J"];
2632
+ _adl_getAutoArpeggio = Module["_adl_getAutoArpeggio"] = wasmExports2["K"];
2633
+ _adl_setLoopEnabled = Module["_adl_setLoopEnabled"] = wasmExports2["L"];
2634
+ _adl_setLoopCount = Module["_adl_setLoopCount"] = wasmExports2["M"];
2635
+ _adl_setSoftPanEnabled = Module["_adl_setSoftPanEnabled"] = wasmExports2["N"];
2636
+ _adl_setVolumeRangeModel = Module["_adl_setVolumeRangeModel"] = wasmExports2["O"];
2637
+ _adl_getVolumeRangeModel = Module["_adl_getVolumeRangeModel"] = wasmExports2["P"];
2638
+ _adl_setChannelAllocMode = Module["_adl_setChannelAllocMode"] = wasmExports2["Q"];
2639
+ _adl_getChannelAllocMode = Module["_adl_getChannelAllocMode"] = wasmExports2["R"];
2640
+ _adl_openBankFile = Module["_adl_openBankFile"] = wasmExports2["S"];
2641
+ _adl_openBankData = Module["_adl_openBankData"] = wasmExports2["T"];
2642
+ _adl_openData = Module["_adl_openData"] = wasmExports2["U"];
2643
+ _adl_chipEmulatorName = Module["_adl_chipEmulatorName"] = wasmExports2["V"];
2644
+ _adl_switchEmulator = Module["_adl_switchEmulator"] = wasmExports2["W"];
2645
+ _adl_setRunAtPcmRate = Module["_adl_setRunAtPcmRate"] = wasmExports2["X"];
2646
+ _adl_linkedLibraryVersion = Module["_adl_linkedLibraryVersion"] = wasmExports2["Y"];
2647
+ _adl_linkedVersion = Module["_adl_linkedVersion"] = wasmExports2["Z"];
2648
+ _adl_errorString = Module["_adl_errorString"] = wasmExports2["_"];
2649
+ _adl_errorInfo = Module["_adl_errorInfo"] = wasmExports2["$"];
2650
+ _adl_reset = Module["_adl_reset"] = wasmExports2["aa"];
2651
+ _adl_totalTimeLength = Module["_adl_totalTimeLength"] = wasmExports2["ba"];
2652
+ _adl_positionTell = Module["_adl_positionTell"] = wasmExports2["ca"];
2653
+ _adl_positionSeek = Module["_adl_positionSeek"] = wasmExports2["da"];
2654
+ _adl_positionRewind = Module["_adl_positionRewind"] = wasmExports2["ea"];
2655
+ _adl_setTempo = Module["_adl_setTempo"] = wasmExports2["fa"];
2656
+ _adl_metaMusicTitle = Module["_adl_metaMusicTitle"] = wasmExports2["ga"];
2657
+ _adl_metaMusicCopyright = Module["_adl_metaMusicCopyright"] = wasmExports2["ha"];
2658
+ _adl_play = Module["_adl_play"] = wasmExports2["ia"];
2659
+ _adl_playFormat = Module["_adl_playFormat"] = wasmExports2["ja"];
2660
+ _adl_generate = Module["_adl_generate"] = wasmExports2["ka"];
2661
+ _adl_generateFormat = Module["_adl_generateFormat"] = wasmExports2["la"];
2662
+ _adl_atEnd = Module["_adl_atEnd"] = wasmExports2["ma"];
2663
+ _adl_panic = Module["_adl_panic"] = wasmExports2["na"];
2664
+ _adl_rt_resetState = Module["_adl_rt_resetState"] = wasmExports2["oa"];
2665
+ _adl_rt_noteOn = Module["_adl_rt_noteOn"] = wasmExports2["pa"];
2666
+ _adl_rt_noteOff = Module["_adl_rt_noteOff"] = wasmExports2["qa"];
2667
+ _adl_rt_noteAfterTouch = Module["_adl_rt_noteAfterTouch"] = wasmExports2["ra"];
2668
+ _adl_rt_channelAfterTouch = Module["_adl_rt_channelAfterTouch"] = wasmExports2["sa"];
2669
+ _adl_rt_controllerChange = Module["_adl_rt_controllerChange"] = wasmExports2["ta"];
2670
+ _adl_rt_patchChange = Module["_adl_rt_patchChange"] = wasmExports2["ua"];
2671
+ _adl_rt_pitchBend = Module["_adl_rt_pitchBend"] = wasmExports2["va"];
2672
+ _adl_rt_pitchBendML = Module["_adl_rt_pitchBendML"] = wasmExports2["wa"];
2673
+ _adl_rt_bankChangeLSB = Module["_adl_rt_bankChangeLSB"] = wasmExports2["xa"];
2674
+ _adl_rt_bankChangeMSB = Module["_adl_rt_bankChangeMSB"] = wasmExports2["ya"];
2675
+ _adl_rt_bankChange = Module["_adl_rt_bankChange"] = wasmExports2["za"];
2676
+ __emscripten_timeout = wasmExports2["Aa"];
2677
+ _malloc = Module["_malloc"] = wasmExports2["Ba"];
2678
+ _free = Module["_free"] = wasmExports2["Ca"];
2679
+ __emscripten_stack_restore = wasmExports2["Da"];
2680
+ __emscripten_stack_alloc = wasmExports2["Ea"];
2681
+ _emscripten_stack_get_current = wasmExports2["Fa"];
2662
2682
  memory = wasmMemory = wasmExports2["n"];
2663
2683
  __indirect_function_table = wasmExports2["__indirect_function_table"];
2664
2684
  }
@@ -3036,7 +3056,7 @@ var _AdlMidiProcessor = class _AdlMidiProcessor extends AudioWorkletProcessor {
3036
3056
  this.adl._adl_rt_noteOff(this.midi, msg.channel, msg.note);
3037
3057
  break;
3038
3058
  case "pitchBend":
3039
- this.adl._adl_rt_pitchBendML(this.midi, msg.channel, msg.lsb, msg.msb);
3059
+ this.adl._adl_rt_pitchBendML(this.midi, msg.channel, msg.msb, msg.lsb);
3040
3060
  break;
3041
3061
  case "controlChange":
3042
3062
  this.adl._adl_rt_controllerChange(this.midi, msg.channel, msg.controller, msg.value);
@@ -3044,6 +3064,21 @@ var _AdlMidiProcessor = class _AdlMidiProcessor extends AudioWorkletProcessor {
3044
3064
  case "programChange":
3045
3065
  this.adl._adl_rt_patchChange(this.midi, msg.channel, msg.program);
3046
3066
  break;
3067
+ case "noteAfterTouch":
3068
+ this.adl._adl_rt_noteAfterTouch(this.midi, msg.channel, msg.note, msg.pressure);
3069
+ break;
3070
+ case "channelAfterTouch":
3071
+ this.adl._adl_rt_channelAfterTouch(this.midi, msg.channel, msg.pressure);
3072
+ break;
3073
+ case "bankChange":
3074
+ this.adl._adl_rt_bankChange(this.midi, msg.channel, msg.bank);
3075
+ break;
3076
+ case "bankChangeMSB":
3077
+ this.adl._adl_rt_bankChangeMSB(this.midi, msg.channel, msg.msb);
3078
+ break;
3079
+ case "bankChangeLSB":
3080
+ this.adl._adl_rt_bankChangeLSB(this.midi, msg.channel, msg.lsb);
3081
+ break;
3047
3082
  case "resetState":
3048
3083
  this.adl._adl_rt_resetState(this.midi);
3049
3084
  break;
@@ -3076,6 +3111,30 @@ var _AdlMidiProcessor = class _AdlMidiProcessor extends AudioWorkletProcessor {
3076
3111
  case "setNumChips":
3077
3112
  this.adl._adl_setNumChips(this.midi, msg.chips);
3078
3113
  break;
3114
+ case "setNumFourOpChannels":
3115
+ this.adl._adl_setNumFourOpsChn(this.midi, msg.channels);
3116
+ break;
3117
+ case "getNumFourOpChannels":
3118
+ this.port.postMessage({ type: "numFourOpChannels", channels: this.adl._adl_getNumFourOpsChn(this.midi) });
3119
+ break;
3120
+ case "setScaleModulators":
3121
+ this.adl._adl_setScaleModulators(this.midi, msg.enabled ? 1 : 0);
3122
+ break;
3123
+ case "setFullRangeBrightness":
3124
+ this.adl._adl_setFullRangeBrightness(this.midi, msg.enabled ? 1 : 0);
3125
+ break;
3126
+ case "setAutoArpeggio":
3127
+ this.adl._adl_setAutoArpeggio(this.midi, msg.enabled ? 1 : 0);
3128
+ break;
3129
+ case "getAutoArpeggio":
3130
+ this.port.postMessage({ type: "autoArpeggio", enabled: this.adl._adl_getAutoArpeggio(this.midi) !== 0 });
3131
+ break;
3132
+ case "setChannelAllocMode":
3133
+ this.adl._adl_setChannelAllocMode(this.midi, msg.mode);
3134
+ break;
3135
+ case "getChannelAllocMode":
3136
+ this.port.postMessage({ type: "channelAllocMode", mode: this.adl._adl_getChannelAllocMode(this.midi) });
3137
+ break;
3079
3138
  case "setVolumeModel":
3080
3139
  this.adl._adl_setVolumeRangeModel(this.midi, msg.model);
3081
3140
  break;
@@ -3088,6 +3147,9 @@ var _AdlMidiProcessor = class _AdlMidiProcessor extends AudioWorkletProcessor {
3088
3147
  case "setTremolo":
3089
3148
  this.adl._adl_setHTremolo(this.midi, msg.enabled ? 1 : 0);
3090
3149
  break;
3150
+ case "setRunAtPcmRate":
3151
+ this.adl._adl_setRunAtPcmRate(this.midi, msg.enabled ? 1 : 0);
3152
+ break;
3091
3153
  case "switchEmulator": {
3092
3154
  const result = this.adl._adl_switchEmulator(this.midi, msg.emulator);
3093
3155
  this.port.postMessage({ type: "emulatorSwitched", success: result === 0, emulator: msg.emulator });
@@ -3099,6 +3161,31 @@ var _AdlMidiProcessor = class _AdlMidiProcessor extends AudioWorkletProcessor {
3099
3161
  this.port.postMessage({ type: "emulatorName", name });
3100
3162
  break;
3101
3163
  }
3164
+ case "getLibraryVersion": {
3165
+ const ptr = this.adl._adl_linkedLibraryVersion();
3166
+ const version = ptr ? this.adl.UTF8ToString(ptr) : "Unknown";
3167
+ this.port.postMessage({ type: "libraryVersion", version });
3168
+ break;
3169
+ }
3170
+ case "getVersion": {
3171
+ const ptr = this.adl._adl_linkedVersion();
3172
+ const version = ptr ? {
3173
+ major: this.adl.getValue(ptr, "i16"),
3174
+ minor: this.adl.getValue(ptr + 2, "i16"),
3175
+ patch: this.adl.getValue(ptr + 4, "i16")
3176
+ } : null;
3177
+ this.port.postMessage({ type: "version", version });
3178
+ break;
3179
+ }
3180
+ case "getNumChips":
3181
+ this.port.postMessage({ type: "numChips", chips: this.adl._adl_getNumChips(this.midi) });
3182
+ break;
3183
+ case "getNumChipsObtained":
3184
+ this.port.postMessage({ type: "numChipsObtained", chips: this.adl._adl_getNumChipsObtained(this.midi) });
3185
+ break;
3186
+ case "getVolumeModel":
3187
+ this.port.postMessage({ type: "volumeModel", model: this.adl._adl_getVolumeRangeModel(this.midi) });
3188
+ break;
3102
3189
  case "getEmbeddedBanks": {
3103
3190
  const banks = this.getEmbeddedBankList();
3104
3191
  this.port.postMessage({ type: "embeddedBanks", banks });
@@ -3108,6 +3195,18 @@ var _AdlMidiProcessor = class _AdlMidiProcessor extends AudioWorkletProcessor {
3108
3195
  case "loadMidi":
3109
3196
  this.loadMidiData(msg.data);
3110
3197
  break;
3198
+ case "getMusicTitle": {
3199
+ const ptr = this.adl._adl_metaMusicTitle(this.midi);
3200
+ const title = ptr ? this.adl.UTF8ToString(ptr) : "";
3201
+ this.port.postMessage({ type: "musicTitle", title });
3202
+ break;
3203
+ }
3204
+ case "getMusicCopyright": {
3205
+ const ptr = this.adl._adl_metaMusicCopyright(this.midi);
3206
+ const copyright = ptr ? this.adl.UTF8ToString(ptr) : "";
3207
+ this.port.postMessage({ type: "musicCopyright", copyright });
3208
+ break;
3209
+ }
3111
3210
  case "play":
3112
3211
  if (this.adl._adl_atEnd(this.midi) !== 0) {
3113
3212
  this.adl._adl_positionRewind(this.midi);
package/package.json CHANGED
@@ -1,9 +1,9 @@
1
1
  {
2
2
  "name": "libadlmidi-js",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "libadlmidi": {
5
5
  "version": "1.6.2",
6
- "commit": "221a19d62bb643aac7ceb344712efd09dd88ea86"
6
+ "commit": "89284b0b63e236ccaf84ac2763574738840d37b4"
7
7
  },
8
8
  "description": "WebAssembly build of libADLMIDI - OPL3/FM synthesis for the browser",
9
9
  "main": "dist/libadlmidi.js",
@@ -54,6 +54,7 @@
54
54
  "build:types": "tsc",
55
55
  "build:banks": "node scripts/copy-banks.js",
56
56
  "build": "npm run build:wasm && npm run build:js && npm run build:types && npm run build:banks",
57
+ "setup:emsdk": "bash scripts/setup-emsdk.sh",
57
58
  "clean": "rm -rf build-* dist/*.js dist/*.wasm dist/*.d.ts dist/*.map dist/fm_banks",
58
59
  "test": "npm run build:types && vitest run",
59
60
  "test:watch": "vitest",
@@ -85,12 +86,12 @@
85
86
  "url": "https://github.com/libadlmidi-js/libadlmidi-js.git"
86
87
  },
87
88
  "devDependencies": {
88
- "@eslint/js": "^9.39.2",
89
+ "@eslint/js": "^10.0.1",
89
90
  "@playwright/test": "^1.57.0",
90
91
  "@types/node": "^25.0.3",
91
92
  "esbuild": "^0.27.2",
92
- "eslint": "^9.39.2",
93
- "globals": "^16.5.0",
93
+ "eslint": "^10.0.3",
94
+ "globals": "^17.4.0",
94
95
  "playwright": "^1.57.0",
95
96
  "typescript": "^5.9.3",
96
97
  "vitest": "^4.0.16"