3 ms·
```Elementary JS core.render(el.cycle(440)); ``` ```SuperCollider { SinOsc.ar(440) }.play ```
by chaosprint 5y ago
```Elementary JS
core.render(el.cycle(440));
```
```SuperCollider
{ SinOsc.ar(440) }.play
```
- PaulDavisThe1st 5y agoIf 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!
- chaosprint 5y agoIt 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.
- spacemanmatt 5y ago> 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)