Thanks @xigoi . One compilation error remains: `Error: attempting to call undeclared routine: 'then'`.
Code here: import dom import webaudio import std/asyncjs import std/jsconsole import std/sugar proc createNoiseProcessor(c : AudioContext) : Future[AudioNode] {.async.} = discard await c.audioWorklet.addModule("worklets/random-noise.js") result = newAudioWorkletNode(c, "random-noise") window.addEventListener("click") do(e: Event) : var ctx : AudioContext = newAudioContext() createNoiseProcessor(ctx).then((noise : AudioNode) => ( noise.connect(ctx.destination) )) ctx.resume() Run