Other things on this site...

MCLD
music
Evolutionary sound
Listen to Flat Four Internet Radio
Learn about
The Molecules of HIV
MCLD
software
Make Oddmusic!
Make oddmusic!

SuperCollider inspired web audio coding environments

SuperCollider is an audio environment that gets a lot of things right in terms of hacking around with multichannel sound, live coding and composing the different structures you need for music.

So it's no surprise that in the world of Web Audio currently being born, various people are getting inspired by SuperCollider. I've seen a few people make pure-JavaScript systems which emulate SuperCollider's language style. So here's a list:

I think there's at least one I've forgotten. Please let me know if you spot others, I'd be interested to keep tabs.

So there are obvious questions: is this a duplication of effort? should these people get together and hack on one system? is any one of them better than the others? I don't know if any of them is better, but one thing I know: it's still very early days in the world of Web Audio. (The underlying APIs aren't even implemented fully by all major browsers yet.) I'm sure some cool live coding web systems will emerge, and they may or may not be based on the older generation. But there's still plenty of room for experimentation.

Wednesday 18th December 2013 | supercollider | Permalink
Comments:
Name: Alex
Website: http://yaxu.org/
Email: alex art slab dort org
Date: Wednesday 18th December 2013 14:39
As I understand it, webaudio is based on unit generators. So this makes me wonder, is webaudio itself inspired by supercollider in some way?
Either way, you have to use the ugens that come with webaudio - it's possible to do pure javascript synthesis but in practice that's too slow. So I guess there isn't so much duplication of effort because everything is using the same scsynth equivalent, and I think some diversity and experimentation on the language side is no bad thing..
Name: Dan
Date: Wednesday 18th December 2013 15:27
Not sure about "In practice that's too slow" - I know at least two of the above environments do include custom JS ugens, and yes it's slower than using the builtins, but with modern JIT compiling etc, it's not a massive difference. I know Flocking includes quite a lot of custom ugens directly based on SC's palette. The web audio standard itself includes quite a narrow palette, so I think interesting systems will generally use at least some custom JS nodes.
Name: Alex
Website: http://yaxu.org/
Email: alex art slab dort org
Date: Wednesday 18th December 2013 15:38
Ah, then it'll be my laptop that's too slow then!
Name: Dan
Date: Wednesday 18th December 2013 15:43
Or your browser. When I say "modern JIT compilers" I might be talking about the present day or I might actually talking about two years forward from now...
Name: charlie
Date: Tuesday 24th December 2013 02:29
None of the environments above use any of the built in web audio unit generators. They all simply use the scriptprocessing node to define all synthesis and the audio graph itself in JavaScript. The only library I'm aware of that has done work to use make using the built-in ugens more fluid is WAAX:

https://github.com/hoch/WAAX/tree/master

Whether or not using the scriptprocessing node is too slow depends on the specific signal processing requirements of what you're trying to do of course... but it's worked well for me, even on my laptop that is 3+ years old. Although I'd prefer to use firefox, chrome does seem to be much faster for web audio at the moment.

Add your comments:

Name:
Email:
Website:
Comment:
I am a:
Everything is optional - and email addresses will be marmalised to protect you
Creative Commons License
Dan's blog articles may be re-used under the Creative Commons Attribution-Noncommercial-Share Alike 2.5 License. Click the link to see what that means...