3 ms·
Nice to see new art work in browsers! Some comments pointed out that there are latency issues, which are mainly caused by tonejs. I used tonejs a few years ago
by chaosprint 2y ago
Nice to see new art work in browsers!
Some comments pointed out that there are latency issues, which are mainly caused by tonejs. I used tonejs a few years ago for my first live coding project: https://quaverseries.web.app/ https://quaverseries.web.app/
Interestingly, I also used the same interactive rhythm prompts as op in the page title, but the timing was not accurate at all. See this classic article: https://web.dev/articles/audio-scheduling https://web.dev/articles/audio-scheduling
Later, in order to refine my idea, I used rust + wasm and made https://glicol.org/ https://glicol.org/.
It basically solved the audio latency problem, and I also made js bindings: https://glicol.js.org/ https://glicol.js.org/
I'd love to get as much feedback as possible. I feel that this sequencer is particularly suitable for glicol's seq syntax.
- strickinato 2y agoOooh!! I've played a bunch of glicol.org - but had no idea about the js bindings! Might I recommend you put a link to `glicol.js.org` from your main site. I might have given this a go instead of tone.js on a recent project.
- chaosprint 2y agoThanks for your suggestion, I will add it to the next version. I am currently rebuilding the homepage with solidjs.
- nox101 2y agoYou don't need to use rust + wasm to "solve the latency problem" but it's cool that you solved it for yourself and made a cool library. https://musiclab.chromeexperiments.com/Song-Maker/song/6339181125697536 https://musiclab.chromeexperiments.com/Song-Maker/song/63391...
- chaosprint 2y agoPartially agree. It's not necessarily Rust. But C/C++/Rust -> wasm -> AudioWorklet <- SAB -> Main Thread is basically the ceiling of web audio. Of course, there is still room for improvement in interaction. Your example is a project from 2018, also based on tonejs. The main problem is not latency, but the impact of GC and the main thread on the clock.
- riffraff 2y agorandom note: on glicol.org you have "optinal semicolon" which I presume is "optional". Cool stuff anyway :)
- mejutoco 2y agoOther small typos on the js page in case it helps: recommanded, reletively.
- thelastparadise 2y agoI'm getting buffer underrun city on glycol it sounds like crap.
- iamsaitam 2y agoCan you explain further or point to, how exactly wasm allows more precise timing? I also agree that the timing with JS and Webaudio is really poor, not as bad as MIDI with 24 PPQN, but I think a few years back from my experiments, the max I could get was a fluctuating 96PPQN.