audioContext = {
var ctx = new (window.AudioContext || window.webkitAudioContext)();
if (ctx.state !== "running") {
await new Promise(resolve => {
viewof volume.addEventListener('input', resolve);
});
ctx = new (window.AudioContext || window.webkitAudioContext)();
}
invalidation.then(() => ctx.close());
await ctx.audioWorklet.addModule(scriptUrl);
return ctx;
}