3 ms·
I'm excited that audio-programming-in-the-browser is becoming a thing. It means more people are likely to fall down this exquisite rabbit hole. I'm totally in t
by pierrec 7y ago
I'm excited that audio-programming-in-the-browser is becoming a thing. It means more people are likely to fall down this exquisite rabbit hole. I'm totally in this field so I'll list a few websites that let you program music in the browser, and my rough opinion on them:
- http://wavepot.com/ http://wavepot.com/ is just built on top of Javascript. The code tends to be long since the library is pretty bare-bones right now, but it's really well executed.
- https://gibber.cc/ https://gibber.cc/ is also JS-based. The library and functions provided make for some pretty terse yet readable code, though focused on somewhat traditional synthesis methods (and I still don't think JS is ideal for this...)
- http://ctford.github.io/klangmeister/ http://ctford.github.io/klangmeister/ is based on Clojurescript, which is a safe choice since Overtone has long demonstrated that Lisp is great for music programming. Right now there's not much of a library to go with it, though.
- http://faust.grame.fr/editor/ http://faust.grame.fr/editor/ - Faust is one of the greatest music programming languages, and it also runs in the browser, but I think they haven't sufficiently polished the browser experience in a way that lets a novice learn the language in the browser.
- https://audiomasher.org/browse https://audiomasher.org/browse - I'm biased on that one since I made it. An obvious weakness is that the language is a little frightening at first glance, but there's a tutorial. It's terse yet open-ended, and the built-in library is pretty extensive.
For SOUL, it seems running in the browser is just a little demo, and the language is meant to be used in other situations. In fact, most of the above projects have grander aspirations than running in the browser - it's generally just a way of getting people to try out the language or system. But I still wish more projects would take the extra step and create a community-style website where anyone can upload and play with each other's code, otherwise the web experience just seems like a proof-of-concept.
- ris 7y agoBut is a browser-based audio environment ever going to have the low latency and robustness requirements for something like live performance?
- julesrms 7y agoWASM will probably start catching up with natively-compiled C++ eventually, but we're working on the hypothesis that even natively-compiled C++ can't quite get the best performance out of audio hardware, because running it on the CPU in a normal OS is the wrong place for a realtime task like that. Something we do want to create will be network-attached SOUL audio i/o devices which can run the code using native JIT engines. Then, Javascript in a browser can send its SOUL code to be compiled + executed directly on these bare-metal devices and get super-low latency.
- sletz 7y agoLow-Latency is one thing (now much better with AudioWorklet model), real-time rendering is another thing. With AudioWorklet the audio code now runs in a dedicated thread, but without real-time priority for now.
- hombre_fatal 7y agoOnly checked out wavepot so far. Love their logo (it's a lil wave pot, and the wave is a tilde because it's computery) and the last half of the tracks like "on the verge". Impressive what people are making with something so low level. Geez, cool mixture of artistic and technical skill.
- ttoinou 7y agoAnd shadertoy.com where you have an Audio buffer generated before the real time rendering :)