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);
|
|
@@ -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";
|
package/dist/profiles/full.d.ts
CHANGED
|
@@ -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";
|
package/dist/profiles/light.d.ts
CHANGED
|
@@ -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";
|
package/dist/profiles/nuked.d.ts
CHANGED
|
@@ -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
|
+
}>;
|