libadlmidi-js 1.2.0 → 2.0.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 (75) hide show
  1. package/dist/core.d.ts +186 -4
  2. package/dist/fm_banks/manifest.json +1 -1
  3. package/dist/libadlmidi.d.ts +143 -65
  4. package/dist/libadlmidi.dosbox.browser.js +1 -1
  5. package/dist/libadlmidi.dosbox.browser.wasm +0 -0
  6. package/dist/libadlmidi.dosbox.core.js +1 -1
  7. package/dist/libadlmidi.dosbox.core.wasm +0 -0
  8. package/dist/libadlmidi.dosbox.js +0 -0
  9. package/dist/libadlmidi.dosbox.processor.js +242 -74
  10. package/dist/libadlmidi.dosbox.slim.browser.js +1 -1
  11. package/dist/libadlmidi.dosbox.slim.browser.wasm +0 -0
  12. package/dist/libadlmidi.dosbox.slim.core.js +1 -1
  13. package/dist/libadlmidi.dosbox.slim.core.wasm +0 -0
  14. package/dist/libadlmidi.dosbox.slim.js +0 -0
  15. package/dist/libadlmidi.dosbox.slim.processor.js +242 -74
  16. package/dist/libadlmidi.full.browser.js +1 -1
  17. package/dist/libadlmidi.full.browser.wasm +0 -0
  18. package/dist/libadlmidi.full.core.js +1 -1
  19. package/dist/libadlmidi.full.core.wasm +0 -0
  20. package/dist/libadlmidi.full.js +0 -0
  21. package/dist/libadlmidi.full.processor.js +242 -74
  22. package/dist/libadlmidi.full.slim.browser.js +1 -1
  23. package/dist/libadlmidi.full.slim.browser.wasm +0 -0
  24. package/dist/libadlmidi.full.slim.core.js +1 -1
  25. package/dist/libadlmidi.full.slim.core.wasm +0 -0
  26. package/dist/libadlmidi.full.slim.js +0 -0
  27. package/dist/libadlmidi.full.slim.processor.js +242 -74
  28. package/dist/libadlmidi.js +465 -21
  29. package/dist/libadlmidi.js.map +3 -3
  30. package/dist/libadlmidi.light.browser.js +1 -1
  31. package/dist/libadlmidi.light.browser.wasm +0 -0
  32. package/dist/libadlmidi.light.core.js +1 -1
  33. package/dist/libadlmidi.light.core.wasm +0 -0
  34. package/dist/libadlmidi.light.js +0 -0
  35. package/dist/libadlmidi.light.processor.js +242 -74
  36. package/dist/libadlmidi.light.slim.browser.js +1 -1
  37. package/dist/libadlmidi.light.slim.browser.wasm +0 -0
  38. package/dist/libadlmidi.light.slim.core.js +1 -1
  39. package/dist/libadlmidi.light.slim.core.wasm +0 -0
  40. package/dist/libadlmidi.light.slim.js +0 -0
  41. package/dist/libadlmidi.light.slim.processor.js +242 -74
  42. package/dist/libadlmidi.nuked.browser.js +1 -1
  43. package/dist/libadlmidi.nuked.browser.wasm +0 -0
  44. package/dist/libadlmidi.nuked.core.js +1 -1
  45. package/dist/libadlmidi.nuked.core.wasm +0 -0
  46. package/dist/libadlmidi.nuked.js +0 -0
  47. package/dist/libadlmidi.nuked.processor.js +242 -74
  48. package/dist/libadlmidi.nuked.slim.browser.js +1 -1
  49. package/dist/libadlmidi.nuked.slim.browser.wasm +0 -0
  50. package/dist/libadlmidi.nuked.slim.core.js +1 -1
  51. package/dist/libadlmidi.nuked.slim.core.wasm +0 -0
  52. package/dist/libadlmidi.nuked.slim.js +0 -0
  53. package/dist/libadlmidi.nuked.slim.processor.js +242 -74
  54. package/dist/profiles/dosbox.d.ts +1 -0
  55. package/dist/profiles/dosbox.slim.d.ts +1 -0
  56. package/dist/profiles/full.d.ts +1 -0
  57. package/dist/profiles/full.slim.d.ts +1 -0
  58. package/dist/profiles/light.d.ts +1 -0
  59. package/dist/profiles/light.slim.d.ts +1 -0
  60. package/dist/profiles/nuked.d.ts +1 -0
  61. package/dist/profiles/nuked.slim.d.ts +1 -0
  62. package/dist/utils/constants.d.ts +59 -0
  63. package/package.json +1 -1
  64. package/src/core.js +352 -4
  65. package/src/libadlmidi.js +374 -56
  66. package/src/processor.js +204 -12
  67. package/src/profiles/dosbox.js +7 -4
  68. package/src/profiles/dosbox.slim.js +7 -4
  69. package/src/profiles/full.js +7 -4
  70. package/src/profiles/full.slim.js +7 -4
  71. package/src/profiles/light.js +7 -4
  72. package/src/profiles/light.slim.js +7 -4
  73. package/src/profiles/nuked.js +7 -4
  74. package/src/profiles/nuked.slim.js +7 -4
  75. package/src/utils/constants.js +51 -0
@@ -2606,7 +2606,7 @@ async function createADLMIDI(moduleArg = {}) {
2606
2606
  Module["setValue"] = setValue;
2607
2607
  Module["getValue"] = getValue;
2608
2608
  Module["UTF8ToString"] = UTF8ToString;
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
+ var _adl_init, _adl_close, _adl_setNumChips, _adl_getNumChips, _adl_getNumChipsObtained, _adl_setBank, _adl_getBanksCount, _adl_getBankNames, _adl_reserveBanks, _adl_getBank, _adl_getBankId, _adl_removeBank, _adl_getFirstBank, _adl_getNextBank, _adl_getInstrument, _adl_setInstrument, _adl_loadEmbeddedBank, _adl_setNumFourOpsChn, _adl_getNumFourOpsChn, _adl_getNumFourOpsChnObtained, _adl_setHVibrato, _adl_getHVibrato, _adl_setHTremolo, _adl_getHTremolo, _adl_setScaleModulators, _adl_setFullRangeBrightness, _adl_setAutoArpeggio, _adl_getAutoArpeggio, _adl_setLoopEnabled, _adl_setLoopCount, _adl_setLoopHooksOnly, _adl_setSoftPanEnabled, _adl_setVolumeRangeModel, _adl_getVolumeRangeModel, _adl_setChannelAllocMode, _adl_getChannelAllocMode, _adl_openBankFile, _adl_openBankData, _adl_openData, _adl_selectSongNum, _adl_getSongsCount, _adl_chipEmulatorName, _adl_switchEmulator, _adl_setRunAtPcmRate, _adl_linkedLibraryVersion, _adl_linkedVersion, _adl_errorString, _adl_errorInfo, _adl_reset, _adl_totalTimeLength, _adl_loopStartTime, _adl_loopEndTime, _adl_positionTell, _adl_positionSeek, _adl_positionRewind, _adl_setTempo, _adl_describeChannels, _adl_metaMusicTitle, _adl_metaMusicCopyright, _adl_metaTrackTitleCount, _adl_metaTrackTitle, _adl_metaMarkerCount, _adl_play, _adl_playFormat, _adl_generate, _adl_generateFormat, _adl_atEnd, _adl_trackCount, _adl_setTrackOptions, _adl_setChannelEnabled, _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, _adl_rt_systemExclusive, __emscripten_timeout, _malloc, _free, __emscripten_stack_restore, __emscripten_stack_alloc, _emscripten_stack_get_current, memory, __indirect_function_table, wasmMemory;
2610
2610
  function assignWasmExports(wasmExports2) {
2611
2611
  _adl_init = Module["_adl_init"] = wasmExports2["p"];
2612
2612
  _adl_close = Module["_adl_close"] = wasmExports2["q"];
@@ -2618,67 +2618,86 @@ async function createADLMIDI(moduleArg = {}) {
2618
2618
  _adl_getBankNames = Module["_adl_getBankNames"] = wasmExports2["w"];
2619
2619
  _adl_reserveBanks = Module["_adl_reserveBanks"] = wasmExports2["x"];
2620
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"];
2621
+ _adl_getBankId = Module["_adl_getBankId"] = wasmExports2["z"];
2622
+ _adl_removeBank = Module["_adl_removeBank"] = wasmExports2["A"];
2623
+ _adl_getFirstBank = Module["_adl_getFirstBank"] = wasmExports2["B"];
2624
+ _adl_getNextBank = Module["_adl_getNextBank"] = wasmExports2["C"];
2625
+ _adl_getInstrument = Module["_adl_getInstrument"] = wasmExports2["D"];
2626
+ _adl_setInstrument = Module["_adl_setInstrument"] = wasmExports2["E"];
2627
+ _adl_loadEmbeddedBank = Module["_adl_loadEmbeddedBank"] = wasmExports2["F"];
2628
+ _adl_setNumFourOpsChn = Module["_adl_setNumFourOpsChn"] = wasmExports2["G"];
2629
+ _adl_getNumFourOpsChn = Module["_adl_getNumFourOpsChn"] = wasmExports2["H"];
2630
+ _adl_getNumFourOpsChnObtained = Module["_adl_getNumFourOpsChnObtained"] = wasmExports2["I"];
2631
+ _adl_setHVibrato = Module["_adl_setHVibrato"] = wasmExports2["J"];
2632
+ _adl_getHVibrato = Module["_adl_getHVibrato"] = wasmExports2["K"];
2633
+ _adl_setHTremolo = Module["_adl_setHTremolo"] = wasmExports2["L"];
2634
+ _adl_getHTremolo = Module["_adl_getHTremolo"] = wasmExports2["M"];
2635
+ _adl_setScaleModulators = Module["_adl_setScaleModulators"] = wasmExports2["N"];
2636
+ _adl_setFullRangeBrightness = Module["_adl_setFullRangeBrightness"] = wasmExports2["O"];
2637
+ _adl_setAutoArpeggio = Module["_adl_setAutoArpeggio"] = wasmExports2["P"];
2638
+ _adl_getAutoArpeggio = Module["_adl_getAutoArpeggio"] = wasmExports2["Q"];
2639
+ _adl_setLoopEnabled = Module["_adl_setLoopEnabled"] = wasmExports2["R"];
2640
+ _adl_setLoopCount = Module["_adl_setLoopCount"] = wasmExports2["S"];
2641
+ _adl_setLoopHooksOnly = Module["_adl_setLoopHooksOnly"] = wasmExports2["T"];
2642
+ _adl_setSoftPanEnabled = Module["_adl_setSoftPanEnabled"] = wasmExports2["U"];
2643
+ _adl_setVolumeRangeModel = Module["_adl_setVolumeRangeModel"] = wasmExports2["V"];
2644
+ _adl_getVolumeRangeModel = Module["_adl_getVolumeRangeModel"] = wasmExports2["W"];
2645
+ _adl_setChannelAllocMode = Module["_adl_setChannelAllocMode"] = wasmExports2["X"];
2646
+ _adl_getChannelAllocMode = Module["_adl_getChannelAllocMode"] = wasmExports2["Y"];
2647
+ _adl_openBankFile = Module["_adl_openBankFile"] = wasmExports2["Z"];
2648
+ _adl_openBankData = Module["_adl_openBankData"] = wasmExports2["_"];
2649
+ _adl_openData = Module["_adl_openData"] = wasmExports2["$"];
2650
+ _adl_selectSongNum = Module["_adl_selectSongNum"] = wasmExports2["aa"];
2651
+ _adl_getSongsCount = Module["_adl_getSongsCount"] = wasmExports2["ba"];
2652
+ _adl_chipEmulatorName = Module["_adl_chipEmulatorName"] = wasmExports2["ca"];
2653
+ _adl_switchEmulator = Module["_adl_switchEmulator"] = wasmExports2["da"];
2654
+ _adl_setRunAtPcmRate = Module["_adl_setRunAtPcmRate"] = wasmExports2["ea"];
2655
+ _adl_linkedLibraryVersion = Module["_adl_linkedLibraryVersion"] = wasmExports2["fa"];
2656
+ _adl_linkedVersion = Module["_adl_linkedVersion"] = wasmExports2["ga"];
2657
+ _adl_errorString = Module["_adl_errorString"] = wasmExports2["ha"];
2658
+ _adl_errorInfo = Module["_adl_errorInfo"] = wasmExports2["ia"];
2659
+ _adl_reset = Module["_adl_reset"] = wasmExports2["ja"];
2660
+ _adl_totalTimeLength = Module["_adl_totalTimeLength"] = wasmExports2["ka"];
2661
+ _adl_loopStartTime = Module["_adl_loopStartTime"] = wasmExports2["la"];
2662
+ _adl_loopEndTime = Module["_adl_loopEndTime"] = wasmExports2["ma"];
2663
+ _adl_positionTell = Module["_adl_positionTell"] = wasmExports2["na"];
2664
+ _adl_positionSeek = Module["_adl_positionSeek"] = wasmExports2["oa"];
2665
+ _adl_positionRewind = Module["_adl_positionRewind"] = wasmExports2["pa"];
2666
+ _adl_setTempo = Module["_adl_setTempo"] = wasmExports2["qa"];
2667
+ _adl_describeChannels = Module["_adl_describeChannels"] = wasmExports2["ra"];
2668
+ _adl_metaMusicTitle = Module["_adl_metaMusicTitle"] = wasmExports2["sa"];
2669
+ _adl_metaMusicCopyright = Module["_adl_metaMusicCopyright"] = wasmExports2["ta"];
2670
+ _adl_metaTrackTitleCount = Module["_adl_metaTrackTitleCount"] = wasmExports2["ua"];
2671
+ _adl_metaTrackTitle = Module["_adl_metaTrackTitle"] = wasmExports2["va"];
2672
+ _adl_metaMarkerCount = Module["_adl_metaMarkerCount"] = wasmExports2["wa"];
2673
+ _adl_play = Module["_adl_play"] = wasmExports2["xa"];
2674
+ _adl_playFormat = Module["_adl_playFormat"] = wasmExports2["ya"];
2675
+ _adl_generate = Module["_adl_generate"] = wasmExports2["za"];
2676
+ _adl_generateFormat = Module["_adl_generateFormat"] = wasmExports2["Aa"];
2677
+ _adl_atEnd = Module["_adl_atEnd"] = wasmExports2["Ba"];
2678
+ _adl_trackCount = Module["_adl_trackCount"] = wasmExports2["Ca"];
2679
+ _adl_setTrackOptions = Module["_adl_setTrackOptions"] = wasmExports2["Da"];
2680
+ _adl_setChannelEnabled = Module["_adl_setChannelEnabled"] = wasmExports2["Ea"];
2681
+ _adl_panic = Module["_adl_panic"] = wasmExports2["Fa"];
2682
+ _adl_rt_resetState = Module["_adl_rt_resetState"] = wasmExports2["Ga"];
2683
+ _adl_rt_noteOn = Module["_adl_rt_noteOn"] = wasmExports2["Ha"];
2684
+ _adl_rt_noteOff = Module["_adl_rt_noteOff"] = wasmExports2["Ia"];
2685
+ _adl_rt_noteAfterTouch = Module["_adl_rt_noteAfterTouch"] = wasmExports2["Ja"];
2686
+ _adl_rt_channelAfterTouch = Module["_adl_rt_channelAfterTouch"] = wasmExports2["Ka"];
2687
+ _adl_rt_controllerChange = Module["_adl_rt_controllerChange"] = wasmExports2["La"];
2688
+ _adl_rt_patchChange = Module["_adl_rt_patchChange"] = wasmExports2["Ma"];
2689
+ _adl_rt_pitchBend = Module["_adl_rt_pitchBend"] = wasmExports2["Na"];
2690
+ _adl_rt_pitchBendML = Module["_adl_rt_pitchBendML"] = wasmExports2["Oa"];
2691
+ _adl_rt_bankChangeLSB = Module["_adl_rt_bankChangeLSB"] = wasmExports2["Pa"];
2692
+ _adl_rt_bankChangeMSB = Module["_adl_rt_bankChangeMSB"] = wasmExports2["Qa"];
2693
+ _adl_rt_bankChange = Module["_adl_rt_bankChange"] = wasmExports2["Ra"];
2694
+ _adl_rt_systemExclusive = Module["_adl_rt_systemExclusive"] = wasmExports2["Sa"];
2695
+ __emscripten_timeout = wasmExports2["Ta"];
2696
+ _malloc = Module["_malloc"] = wasmExports2["Ua"];
2697
+ _free = Module["_free"] = wasmExports2["Va"];
2698
+ __emscripten_stack_restore = wasmExports2["Wa"];
2699
+ __emscripten_stack_alloc = wasmExports2["Xa"];
2700
+ _emscripten_stack_get_current = wasmExports2["Ya"];
2682
2701
  memory = wasmMemory = wasmExports2["n"];
2683
2702
  __indirect_function_table = wasmExports2["__indirect_function_table"];
2684
2703
  }
@@ -3090,8 +3109,8 @@ var _AdlMidiProcessor = class _AdlMidiProcessor extends AudioWorkletProcessor {
3090
3109
  this.applySettings(msg.settings);
3091
3110
  this.port.postMessage({ type: "configured" });
3092
3111
  break;
3093
- case "loadBank":
3094
- this.loadBank(msg.data);
3112
+ case "loadBankData":
3113
+ this.loadBankData(msg.data);
3095
3114
  break;
3096
3115
  case "setBank": {
3097
3116
  const result = this.adl._adl_setBank(this.midi, msg.bank);
@@ -3117,6 +3136,9 @@ var _AdlMidiProcessor = class _AdlMidiProcessor extends AudioWorkletProcessor {
3117
3136
  case "getNumFourOpChannels":
3118
3137
  this.port.postMessage({ type: "numFourOpChannels", channels: this.adl._adl_getNumFourOpsChn(this.midi) });
3119
3138
  break;
3139
+ case "getNumFourOpChannelsObtained":
3140
+ this.port.postMessage({ type: "numFourOpChannelsObtained", channels: this.adl._adl_getNumFourOpsChnObtained(this.midi) });
3141
+ break;
3120
3142
  case "setScaleModulators":
3121
3143
  this.adl._adl_setScaleModulators(this.midi, msg.enabled ? 1 : 0);
3122
3144
  break;
@@ -3135,18 +3157,24 @@ var _AdlMidiProcessor = class _AdlMidiProcessor extends AudioWorkletProcessor {
3135
3157
  case "getChannelAllocMode":
3136
3158
  this.port.postMessage({ type: "channelAllocMode", mode: this.adl._adl_getChannelAllocMode(this.midi) });
3137
3159
  break;
3138
- case "setVolumeModel":
3160
+ case "setVolumeRangeModel":
3139
3161
  this.adl._adl_setVolumeRangeModel(this.midi, msg.model);
3140
3162
  break;
3141
- case "setPercMode":
3142
- this.adl._adl_setPercMode(this.midi, msg.enabled ? 1 : 0);
3143
- break;
3144
- case "setVibrato":
3163
+ case "setDeepVibrato":
3145
3164
  this.adl._adl_setHVibrato(this.midi, msg.enabled ? 1 : 0);
3146
3165
  break;
3147
- case "setTremolo":
3166
+ case "getDeepVibrato":
3167
+ this.port.postMessage({ type: "deepVibrato", enabled: this.adl._adl_getHVibrato(this.midi) !== 0 });
3168
+ break;
3169
+ case "setDeepTremolo":
3148
3170
  this.adl._adl_setHTremolo(this.midi, msg.enabled ? 1 : 0);
3149
3171
  break;
3172
+ case "getDeepTremolo":
3173
+ this.port.postMessage({ type: "deepTremolo", enabled: this.adl._adl_getHTremolo(this.midi) !== 0 });
3174
+ break;
3175
+ case "setSoftPanEnabled":
3176
+ this.adl._adl_setSoftPanEnabled(this.midi, msg.enabled ? 1 : 0);
3177
+ break;
3150
3178
  case "setRunAtPcmRate":
3151
3179
  this.adl._adl_setRunAtPcmRate(this.midi, msg.enabled ? 1 : 0);
3152
3180
  break;
@@ -3161,6 +3189,12 @@ var _AdlMidiProcessor = class _AdlMidiProcessor extends AudioWorkletProcessor {
3161
3189
  this.port.postMessage({ type: "emulatorName", name });
3162
3190
  break;
3163
3191
  }
3192
+ case "getErrorInfo": {
3193
+ const ptr = this.adl._adl_errorInfo(this.midi);
3194
+ const info = ptr ? this.adl.UTF8ToString(ptr) : "";
3195
+ this.port.postMessage({ type: "errorInfo", info });
3196
+ break;
3197
+ }
3164
3198
  case "getLibraryVersion": {
3165
3199
  const ptr = this.adl._adl_linkedLibraryVersion();
3166
3200
  const version = ptr ? this.adl.UTF8ToString(ptr) : "Unknown";
@@ -3183,8 +3217,8 @@ var _AdlMidiProcessor = class _AdlMidiProcessor extends AudioWorkletProcessor {
3183
3217
  case "getNumChipsObtained":
3184
3218
  this.port.postMessage({ type: "numChipsObtained", chips: this.adl._adl_getNumChipsObtained(this.midi) });
3185
3219
  break;
3186
- case "getVolumeModel":
3187
- this.port.postMessage({ type: "volumeModel", model: this.adl._adl_getVolumeRangeModel(this.midi) });
3220
+ case "getVolumeRangeModel":
3221
+ this.port.postMessage({ type: "volumeRangeModel", model: this.adl._adl_getVolumeRangeModel(this.midi) });
3188
3222
  break;
3189
3223
  case "getEmbeddedBanks": {
3190
3224
  const banks = this.getEmbeddedBankList();
@@ -3207,6 +3241,18 @@ var _AdlMidiProcessor = class _AdlMidiProcessor extends AudioWorkletProcessor {
3207
3241
  this.port.postMessage({ type: "musicCopyright", copyright });
3208
3242
  break;
3209
3243
  }
3244
+ case "getTrackTitleCount":
3245
+ this.port.postMessage({ type: "trackTitleCount", count: this.adl._adl_metaTrackTitleCount(this.midi) });
3246
+ break;
3247
+ case "getTrackTitle": {
3248
+ const ptr = this.adl._adl_metaTrackTitle(this.midi, msg.index);
3249
+ const title = ptr ? this.adl.UTF8ToString(ptr) : "";
3250
+ this.port.postMessage({ type: "trackTitle", title, index: msg.index, reqId: msg.reqId });
3251
+ break;
3252
+ }
3253
+ case "getMarkerCount":
3254
+ this.port.postMessage({ type: "markerCount", count: this.adl._adl_metaMarkerCount(this.midi) });
3255
+ break;
3210
3256
  case "play":
3211
3257
  if (this.adl._adl_atEnd(this.midi) !== 0) {
3212
3258
  this.adl._adl_positionRewind(this.midi);
@@ -3221,9 +3267,40 @@ var _AdlMidiProcessor = class _AdlMidiProcessor extends AudioWorkletProcessor {
3221
3267
  case "seek":
3222
3268
  this.adl._adl_positionSeek(this.midi, msg.position);
3223
3269
  break;
3224
- case "setLoop":
3270
+ case "setLoopEnabled":
3225
3271
  this.adl._adl_setLoopEnabled(this.midi, msg.enabled ? 1 : 0);
3226
3272
  break;
3273
+ case "setLoopCount":
3274
+ this.adl._adl_setLoopCount(this.midi, msg.count);
3275
+ break;
3276
+ case "setLoopHooksOnly":
3277
+ this.adl._adl_setLoopHooksOnly(this.midi, msg.enabled ? 1 : 0);
3278
+ break;
3279
+ case "getLoopStartTime":
3280
+ this.port.postMessage({ type: "loopStartTime", time: this.adl._adl_loopStartTime(this.midi) });
3281
+ break;
3282
+ case "getLoopEndTime":
3283
+ this.port.postMessage({ type: "loopEndTime", time: this.adl._adl_loopEndTime(this.midi) });
3284
+ break;
3285
+ case "selectSongNum":
3286
+ this.adl._adl_selectSongNum(this.midi, msg.num);
3287
+ break;
3288
+ case "getSongsCount":
3289
+ this.port.postMessage({ type: "songsCount", count: this.adl._adl_getSongsCount(this.midi) });
3290
+ break;
3291
+ case "getTrackCount":
3292
+ this.port.postMessage({ type: "trackCount", count: this.adl._adl_trackCount(this.midi) });
3293
+ break;
3294
+ case "setTrackOptions": {
3295
+ const result = this.adl._adl_setTrackOptions(this.midi, msg.track, msg.options);
3296
+ this.port.postMessage({ type: "trackOptionsSet", success: result === 0, track: msg.track, reqId: msg.reqId });
3297
+ break;
3298
+ }
3299
+ case "setChannelEnabled": {
3300
+ const result = this.adl._adl_setChannelEnabled(this.midi, msg.channel, msg.enabled ? 1 : 0);
3301
+ this.port.postMessage({ type: "channelEnabledSet", success: result === 0, channel: msg.channel, reqId: msg.reqId });
3302
+ break;
3303
+ }
3227
3304
  case "setTempo":
3228
3305
  this.adl._adl_setTempo(this.midi, msg.tempo);
3229
3306
  break;
@@ -3240,6 +3317,97 @@ var _AdlMidiProcessor = class _AdlMidiProcessor extends AudioWorkletProcessor {
3240
3317
  this.adl._adl_reset(this.midi);
3241
3318
  this.playMode = "realtime";
3242
3319
  break;
3320
+ // ================== Bank Management ==================
3321
+ case "reserveBanks": {
3322
+ const result = this.adl._adl_reserveBanks(this.midi, msg.count);
3323
+ this.port.postMessage({ type: "banksReserved", success: result >= 0, reqId: msg.reqId });
3324
+ break;
3325
+ }
3326
+ case "getBankId": {
3327
+ const bankIdPtr = this.adl._malloc(_AdlMidiProcessor.SIZEOF_ADL_BANK_ID);
3328
+ this.adl.HEAPU8[bankIdPtr] = msg.bankId.percussive ? 1 : 0;
3329
+ this.adl.HEAPU8[bankIdPtr + 1] = msg.bankId.msb || 0;
3330
+ this.adl.HEAPU8[bankIdPtr + 2] = msg.bankId.lsb || 0;
3331
+ const bankPtr = this.adl._malloc(_AdlMidiProcessor.SIZEOF_ADL_BANK);
3332
+ const bankResult = this.adl._adl_getBank(this.midi, bankIdPtr, 0, bankPtr);
3333
+ let id = null;
3334
+ if (bankResult === 0) {
3335
+ const outIdPtr = this.adl._malloc(_AdlMidiProcessor.SIZEOF_ADL_BANK_ID);
3336
+ const idResult = this.adl._adl_getBankId(this.midi, bankPtr, outIdPtr);
3337
+ if (idResult === 0) {
3338
+ id = {
3339
+ percussive: this.adl.HEAPU8[outIdPtr],
3340
+ msb: this.adl.HEAPU8[outIdPtr + 1],
3341
+ lsb: this.adl.HEAPU8[outIdPtr + 2]
3342
+ };
3343
+ }
3344
+ this.adl._free(outIdPtr);
3345
+ }
3346
+ this.adl._free(bankIdPtr);
3347
+ this.adl._free(bankPtr);
3348
+ this.port.postMessage({ type: "bankId", id, bankId: msg.bankId, reqId: msg.reqId });
3349
+ break;
3350
+ }
3351
+ case "removeBank": {
3352
+ const bankIdPtr = this.adl._malloc(_AdlMidiProcessor.SIZEOF_ADL_BANK_ID);
3353
+ this.adl.HEAPU8[bankIdPtr] = msg.bankId.percussive ? 1 : 0;
3354
+ this.adl.HEAPU8[bankIdPtr + 1] = msg.bankId.msb || 0;
3355
+ this.adl.HEAPU8[bankIdPtr + 2] = msg.bankId.lsb || 0;
3356
+ const bankPtr = this.adl._malloc(_AdlMidiProcessor.SIZEOF_ADL_BANK);
3357
+ const bankResult = this.adl._adl_getBank(this.midi, bankIdPtr, 0, bankPtr);
3358
+ let success = false;
3359
+ if (bankResult === 0) {
3360
+ success = this.adl._adl_removeBank(this.midi, bankPtr) === 0;
3361
+ }
3362
+ this.adl._free(bankIdPtr);
3363
+ this.adl._free(bankPtr);
3364
+ this.port.postMessage({ type: "bankRemoved", success, bankId: msg.bankId, reqId: msg.reqId });
3365
+ break;
3366
+ }
3367
+ case "loadEmbeddedBank": {
3368
+ const bankIdPtr = this.adl._malloc(_AdlMidiProcessor.SIZEOF_ADL_BANK_ID);
3369
+ this.adl.HEAPU8[bankIdPtr] = msg.bankId.percussive ? 1 : 0;
3370
+ this.adl.HEAPU8[bankIdPtr + 1] = msg.bankId.msb || 0;
3371
+ this.adl.HEAPU8[bankIdPtr + 2] = msg.bankId.lsb || 0;
3372
+ const bankPtr = this.adl._malloc(_AdlMidiProcessor.SIZEOF_ADL_BANK);
3373
+ const existed = this.adl._adl_getBank(this.midi, bankIdPtr, 0, bankPtr) === 0;
3374
+ const bankResult = existed ? 0 : this.adl._adl_getBank(this.midi, bankIdPtr, 1, bankPtr);
3375
+ let success = false;
3376
+ if (bankResult === 0) {
3377
+ success = this.adl._adl_loadEmbeddedBank(this.midi, bankPtr, msg.num) === 0;
3378
+ if (!success && !existed) {
3379
+ this.adl._adl_removeBank(this.midi, bankPtr);
3380
+ }
3381
+ }
3382
+ this.adl._free(bankIdPtr);
3383
+ this.adl._free(bankPtr);
3384
+ this.port.postMessage({ type: "embeddedBankLoaded", success, bankId: msg.bankId, reqId: msg.reqId });
3385
+ break;
3386
+ }
3387
+ // ================== SysEx ==================
3388
+ case "systemExclusive": {
3389
+ const bytes = new Uint8Array(msg.data);
3390
+ const ptr = this.adl._malloc(bytes.length);
3391
+ this.adl.HEAPU8.set(bytes, ptr);
3392
+ const result = this.adl._adl_rt_systemExclusive(this.midi, ptr, bytes.length);
3393
+ this.adl._free(ptr);
3394
+ this.port.postMessage({ type: "systemExclusiveSent", success: result !== 0, reqId: msg.reqId });
3395
+ break;
3396
+ }
3397
+ // ================== Debug / Diagnostics ==================
3398
+ case "describeChannels": {
3399
+ const numChips = this.adl._adl_getNumChipsObtained(this.midi);
3400
+ const size = Math.max(256, (numChips + 1) * 23);
3401
+ const textPtr = this.adl._malloc(size);
3402
+ const attrPtr = this.adl._malloc(size);
3403
+ this.adl._adl_describeChannels(this.midi, textPtr, attrPtr, size);
3404
+ const text = this.adl.UTF8ToString(textPtr);
3405
+ const attr = Array.from(this.adl.HEAPU8.slice(attrPtr, attrPtr + text.length));
3406
+ this.adl._free(textPtr);
3407
+ this.adl._free(attrPtr);
3408
+ this.port.postMessage({ type: "channelsDescribed", text, attr, reqId: msg.reqId });
3409
+ break;
3410
+ }
3243
3411
  }
3244
3412
  }
3245
3413
  loadMidiData(arrayBuffer) {
@@ -3286,7 +3454,7 @@ var _AdlMidiProcessor = class _AdlMidiProcessor extends AudioWorkletProcessor {
3286
3454
  }
3287
3455
  return banks;
3288
3456
  }
3289
- loadBank(arrayBuffer) {
3457
+ loadBankData(arrayBuffer) {
3290
3458
  try {
3291
3459
  const data = new Uint8Array(arrayBuffer);
3292
3460
  const dataPtr = this.adl._malloc(data.length);
@@ -47,3 +47,4 @@ export class AdlMidiCore {
47
47
  import { AdlMidi as BaseAdlMidi } from '../libadlmidi.js';
48
48
  import { AdlMidiCore as BaseAdlMidiCore } from '../core.js';
49
49
  export { encodeInstrument, decodeInstrument, defaultInstrument, encodeOperator, decodeOperator, defaultOperator } from "../utils/struct.js";
50
+ export { Emulator, TrackOption } from "../utils/constants.js";
@@ -47,3 +47,4 @@ export class AdlMidiCore {
47
47
  import { AdlMidi as BaseAdlMidi } from '../libadlmidi.js';
48
48
  import { AdlMidiCore as BaseAdlMidiCore } from '../core.js';
49
49
  export { encodeInstrument, decodeInstrument, defaultInstrument, encodeOperator, decodeOperator, defaultOperator } from "../utils/struct.js";
50
+ export { Emulator, TrackOption } from "../utils/constants.js";
@@ -47,3 +47,4 @@ export class AdlMidiCore {
47
47
  import { AdlMidi as BaseAdlMidi } from '../libadlmidi.js';
48
48
  import { AdlMidiCore as BaseAdlMidiCore } from '../core.js';
49
49
  export { encodeInstrument, decodeInstrument, defaultInstrument, encodeOperator, decodeOperator, defaultOperator } from "../utils/struct.js";
50
+ export { Emulator, TrackOption } from "../utils/constants.js";
@@ -47,3 +47,4 @@ export class AdlMidiCore {
47
47
  import { AdlMidi as BaseAdlMidi } from '../libadlmidi.js';
48
48
  import { AdlMidiCore as BaseAdlMidiCore } from '../core.js';
49
49
  export { encodeInstrument, decodeInstrument, defaultInstrument, encodeOperator, decodeOperator, defaultOperator } from "../utils/struct.js";
50
+ export { Emulator, TrackOption } from "../utils/constants.js";
@@ -47,3 +47,4 @@ export class AdlMidiCore {
47
47
  import { AdlMidi as BaseAdlMidi } from '../libadlmidi.js';
48
48
  import { AdlMidiCore as BaseAdlMidiCore } from '../core.js';
49
49
  export { encodeInstrument, decodeInstrument, defaultInstrument, encodeOperator, decodeOperator, defaultOperator } from "../utils/struct.js";
50
+ export { Emulator, TrackOption } from "../utils/constants.js";
@@ -47,3 +47,4 @@ export class AdlMidiCore {
47
47
  import { AdlMidi as BaseAdlMidi } from '../libadlmidi.js';
48
48
  import { AdlMidiCore as BaseAdlMidiCore } from '../core.js';
49
49
  export { encodeInstrument, decodeInstrument, defaultInstrument, encodeOperator, decodeOperator, defaultOperator } from "../utils/struct.js";
50
+ export { Emulator, TrackOption } from "../utils/constants.js";
@@ -47,3 +47,4 @@ export class AdlMidiCore {
47
47
  import { AdlMidi as BaseAdlMidi } from '../libadlmidi.js';
48
48
  import { AdlMidiCore as BaseAdlMidiCore } from '../core.js';
49
49
  export { encodeInstrument, decodeInstrument, defaultInstrument, encodeOperator, decodeOperator, defaultOperator } from "../utils/struct.js";
50
+ export { Emulator, TrackOption } from "../utils/constants.js";
@@ -47,3 +47,4 @@ export class AdlMidiCore {
47
47
  import { AdlMidi as BaseAdlMidi } from '../libadlmidi.js';
48
48
  import { AdlMidiCore as BaseAdlMidiCore } from '../core.js';
49
49
  export { encodeInstrument, decodeInstrument, defaultInstrument, encodeOperator, decodeOperator, defaultOperator } from "../utils/struct.js";
50
+ export { Emulator, TrackOption } from "../utils/constants.js";
@@ -0,0 +1,59 @@
1
+ /**
2
+ * Available OPL2/OPL3 emulator cores.
3
+ * Use with switchEmulator() to change the synthesis engine at runtime.
4
+ * Note: Only emulators compiled into the current profile are available.
5
+ */
6
+ export type Emulator = number;
7
+ /**
8
+ * Shared constants for libADLMIDI-JS
9
+ */
10
+ /**
11
+ * Available OPL2/OPL3 emulator cores.
12
+ * Use with switchEmulator() to change the synthesis engine at runtime.
13
+ * Note: Only emulators compiled into the current profile are available.
14
+ * @readonly
15
+ * @enum {number}
16
+ */
17
+ export const Emulator: Readonly<{
18
+ /** Nuked OPL3 v1.8 - Most accurate, higher CPU usage */
19
+ NUKED: 0;
20
+ /** Nuked OPL3 v1.7.4 - Slightly older version */
21
+ NUKED_174: 1;
22
+ /** DosBox OPL3 - Good accuracy, lower CPU usage */
23
+ DOSBOX: 2;
24
+ /** Opal - Reality Adlib Tracker emulator */
25
+ OPAL: 3;
26
+ /** Java OPL3 - Port of emu8950 */
27
+ JAVA: 4;
28
+ /** ESFMu - ESFM chip emulator */
29
+ ESFMu: 5;
30
+ /** MAME OPL2 */
31
+ MAME_OPL2: 6;
32
+ /** YMFM OPL2 */
33
+ YMFM_OPL2: 7;
34
+ /** YMFM OPL3 */
35
+ YMFM_OPL3: 8;
36
+ /** Nuked OPL2 LLE - Transistor-level emulation */
37
+ NUKED_OPL2_LLE: 9;
38
+ /** Nuked OPL3 LLE - Transistor-level emulation */
39
+ NUKED_OPL3_LLE: 10;
40
+ /** Nuked OPL2 Lite - Lightweight OPL2 emulation for AdLib-era music */
41
+ NUKED_OPL2_LITE: 11;
42
+ }>;
43
+ /**
44
+ * Track option flags for use with setTrackOptions().
45
+ */
46
+ export type TrackOption = number;
47
+ /**
48
+ * Track option flags for use with setTrackOptions().
49
+ * @readonly
50
+ * @enum {number}
51
+ */
52
+ export const TrackOption: Readonly<{
53
+ /** Enable the track (default state) */
54
+ ON: 1;
55
+ /** Mute/disable the track */
56
+ OFF: 2;
57
+ /** Solo the track (mute all others) */
58
+ SOLO: 3;
59
+ }>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "libadlmidi-js",
3
- "version": "1.2.0",
3
+ "version": "2.0.0",
4
4
  "libadlmidi": {
5
5
  "version": "1.6.2",
6
6
  "commit": "89284b0b63e236ccaf84ac2763574738840d37b4"