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.
- package/dist/core.d.ts +186 -4
- package/dist/fm_banks/manifest.json +1 -1
- package/dist/libadlmidi.d.ts +143 -65
- package/dist/libadlmidi.dosbox.browser.js +1 -1
- package/dist/libadlmidi.dosbox.browser.wasm +0 -0
- package/dist/libadlmidi.dosbox.core.js +1 -1
- package/dist/libadlmidi.dosbox.core.wasm +0 -0
- package/dist/libadlmidi.dosbox.js +0 -0
- package/dist/libadlmidi.dosbox.processor.js +242 -74
- package/dist/libadlmidi.dosbox.slim.browser.js +1 -1
- package/dist/libadlmidi.dosbox.slim.browser.wasm +0 -0
- package/dist/libadlmidi.dosbox.slim.core.js +1 -1
- package/dist/libadlmidi.dosbox.slim.core.wasm +0 -0
- package/dist/libadlmidi.dosbox.slim.js +0 -0
- package/dist/libadlmidi.dosbox.slim.processor.js +242 -74
- package/dist/libadlmidi.full.browser.js +1 -1
- package/dist/libadlmidi.full.browser.wasm +0 -0
- package/dist/libadlmidi.full.core.js +1 -1
- package/dist/libadlmidi.full.core.wasm +0 -0
- package/dist/libadlmidi.full.js +0 -0
- package/dist/libadlmidi.full.processor.js +242 -74
- package/dist/libadlmidi.full.slim.browser.js +1 -1
- package/dist/libadlmidi.full.slim.browser.wasm +0 -0
- package/dist/libadlmidi.full.slim.core.js +1 -1
- package/dist/libadlmidi.full.slim.core.wasm +0 -0
- package/dist/libadlmidi.full.slim.js +0 -0
- package/dist/libadlmidi.full.slim.processor.js +242 -74
- package/dist/libadlmidi.js +465 -21
- package/dist/libadlmidi.js.map +3 -3
- package/dist/libadlmidi.light.browser.js +1 -1
- package/dist/libadlmidi.light.browser.wasm +0 -0
- package/dist/libadlmidi.light.core.js +1 -1
- package/dist/libadlmidi.light.core.wasm +0 -0
- package/dist/libadlmidi.light.js +0 -0
- package/dist/libadlmidi.light.processor.js +242 -74
- package/dist/libadlmidi.light.slim.browser.js +1 -1
- package/dist/libadlmidi.light.slim.browser.wasm +0 -0
- package/dist/libadlmidi.light.slim.core.js +1 -1
- package/dist/libadlmidi.light.slim.core.wasm +0 -0
- package/dist/libadlmidi.light.slim.js +0 -0
- package/dist/libadlmidi.light.slim.processor.js +242 -74
- package/dist/libadlmidi.nuked.browser.js +1 -1
- package/dist/libadlmidi.nuked.browser.wasm +0 -0
- package/dist/libadlmidi.nuked.core.js +1 -1
- package/dist/libadlmidi.nuked.core.wasm +0 -0
- package/dist/libadlmidi.nuked.js +0 -0
- package/dist/libadlmidi.nuked.processor.js +242 -74
- package/dist/libadlmidi.nuked.slim.browser.js +1 -1
- package/dist/libadlmidi.nuked.slim.browser.wasm +0 -0
- package/dist/libadlmidi.nuked.slim.core.js +1 -1
- package/dist/libadlmidi.nuked.slim.core.wasm +0 -0
- package/dist/libadlmidi.nuked.slim.js +0 -0
- package/dist/libadlmidi.nuked.slim.processor.js +242 -74
- package/dist/profiles/dosbox.d.ts +1 -0
- package/dist/profiles/dosbox.slim.d.ts +1 -0
- package/dist/profiles/full.d.ts +1 -0
- package/dist/profiles/full.slim.d.ts +1 -0
- package/dist/profiles/light.d.ts +1 -0
- package/dist/profiles/light.slim.d.ts +1 -0
- package/dist/profiles/nuked.d.ts +1 -0
- package/dist/profiles/nuked.slim.d.ts +1 -0
- package/dist/utils/constants.d.ts +59 -0
- package/package.json +1 -1
- package/src/core.js +352 -4
- package/src/libadlmidi.js +374 -56
- package/src/processor.js +204 -12
- package/src/profiles/dosbox.js +7 -4
- package/src/profiles/dosbox.slim.js +7 -4
- package/src/profiles/full.js +7 -4
- package/src/profiles/full.slim.js +7 -4
- package/src/profiles/light.js +7 -4
- package/src/profiles/light.slim.js +7 -4
- package/src/profiles/nuked.js +7 -4
- package/src/profiles/nuked.slim.js +7 -4
- 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,
|
|
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
|
-
|
|
2622
|
-
|
|
2623
|
-
|
|
2624
|
-
|
|
2625
|
-
|
|
2626
|
-
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
|
|
2634
|
-
|
|
2635
|
-
|
|
2636
|
-
|
|
2637
|
-
|
|
2638
|
-
|
|
2639
|
-
|
|
2640
|
-
|
|
2641
|
-
|
|
2642
|
-
|
|
2643
|
-
|
|
2644
|
-
|
|
2645
|
-
|
|
2646
|
-
|
|
2647
|
-
|
|
2648
|
-
|
|
2649
|
-
|
|
2650
|
-
|
|
2651
|
-
|
|
2652
|
-
|
|
2653
|
-
|
|
2654
|
-
|
|
2655
|
-
|
|
2656
|
-
|
|
2657
|
-
|
|
2658
|
-
|
|
2659
|
-
|
|
2660
|
-
|
|
2661
|
-
|
|
2662
|
-
|
|
2663
|
-
|
|
2664
|
-
|
|
2665
|
-
|
|
2666
|
-
|
|
2667
|
-
|
|
2668
|
-
|
|
2669
|
-
|
|
2670
|
-
|
|
2671
|
-
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2677
|
-
|
|
2678
|
-
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
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 "
|
|
3094
|
-
this.
|
|
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 "
|
|
3160
|
+
case "setVolumeRangeModel":
|
|
3139
3161
|
this.adl._adl_setVolumeRangeModel(this.midi, msg.model);
|
|
3140
3162
|
break;
|
|
3141
|
-
case "
|
|
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 "
|
|
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 "
|
|
3187
|
-
this.port.postMessage({ type: "
|
|
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 "
|
|
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
|
-
|
|
3457
|
+
loadBankData(arrayBuffer) {
|
|
3290
3458
|
try {
|
|
3291
3459
|
const data = new Uint8Array(arrayBuffer);
|
|
3292
3460
|
const dataPtr = this.adl._malloc(data.length);
|