All the audio library and langauge parser are written in Rust and compiled to WebAssembly, running in AudioWorklet thread.
The control parameter is constantly shared from main thread to AudioWorklet thread with my customised ringbuf.js to avoid GC from JS in real-time audio:
Wow, I checked your website/desktop (https://dustinbrett.com/) again and tried to open your browser to make some music there. Apparently for Glicol you need to enable CORS. I think that's the only thing that stops the website to make sound now.
But my another project QuaverSeries, the precursor of Glicol, works like a charm in your browser:
https://quaverseries.web.app
For SharedArrayBuffer and CORS, I have some experience and it's not difficult to deal with.
You can check my project for music live coding in browsers:
https://glicol.org
All the audio library and langauge parser are written in Rust and compiled to WebAssembly, running in AudioWorklet thread.
The control parameter is constantly shared from main thread to AudioWorklet thread with my customised ringbuf.js to avoid GC from JS in real-time audio:
https://github.com/chaosprint/glicol
I use vite.js for development; for local dev server CORS, check:
https://github.com/vitejs/vite/issues/3909
For deployment CORS, e.g. Netlify, just edit the '_header' file as:
/*
in the 'public' folder.