Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

That was my impression too, it looks very much like an SC style computer music language. Which begs the question, who is this for? Someone who writes plugins doesn't need or want the high level SC style language. Someone seriously into computer music/audio isn't going to want the limitations, and has a lot of options already to choose from that are mature, if relatively unknown outside music circles.

If it were my company, I would be marketing this squarely at people with the need for high level procedural audio in a web context. This looks like it could be great for browser-based game devs, for example. I do know that Pure Data and Andy Farnell's great sound design book for it were a hit in the game dev world of procedural audio, FWTW.



It's probably for people who are smart enough to know DSP, but only know JavaScript and refuse to learn anything else. If you squint it looks like an empty set.


SC is typical OOP language. From this perspective, the raw Web Audio API or Tone.js are more relevant for SC.

This Elementary Audio prefers FP, which makes it quite different and I think it has the potential to be very friendly for beginners. But the docs need a lot of more works there.


Can you provide an example of where SC syntax and Elementary/JS syntax for the same thing differ in a significant way?


```Elementary JS

core.render(el.cycle(440));

```

```SuperCollider

{ SinOsc.ar(440) }.play

```


If that seems "quite different" to you, then good luck!

Personally speaking, SC's approach seems more amenable to composition (in the programming, not the musical sense). Collapsing everything down to core.render() puts the emphasis in the wrong place IMO. The oscillator is better considered to be an independent entity, and the "render" step really ought to be implicit. But to each, their own!


It really depends on your angle.

for example, "1 + 1" in FP is different from "1 + 1" in OOP.

In FP, everything is func. 1 is func; + is a combinator.

In OOP, 1 is an obj, + is the method of that obj that takes another obj.

It looks like you really enjoy SC's syntax. It's great. But essentially, the language is just one part of SuperCollider.

SuperCollider = sclang + scsynth

sclang -> OSC msg -> scsynth

The scsynth is actually the soul of SuperCollider to many computer musicians and that is what drives many to develop different language front-ends for scsynth.

Language is just a wrapper, with different programming paradigms. But down to the lower abstraction, it's the audio graph. I have no connection with Elementary js at all but I think it does a good job for providing a new angle for Web audio. Yet I understand your concern of using it for developing vst plugins.


> In FP, everything is func. 1 is func; + is a combinator.

In Clojure we use RP notation, so + can be a n-ary function: (+ 1 1 1 1)




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: