Supercollider vs Csound


I am quite new to supercollider but have some experience with csound. I am wondering, if switching from csound to supercollider makes any sense. Does anyone here have experiences with both and can tell me why they switched or which strength they see in each language that the other one does not have?
I am aware that most people here will likely be biased towards supercollider.

1 Like


I did the same jump 12 years ago and never regretted it. I’m told csound has evolved a bit in terms of modularity and real-time capacity but at the time it was just impossible to do anything serious in both terms - I had loads of fun with a variable ‘vocoder’ where each voice had to be made manually in CSound… the scaling and modularity of SC just won. Now learning it then was a challenge, but now there are a few good learning resources (which I’m still learning on)

my 2c

I dabbled in Csound starting in the 90s ! But never could make a whole piece with it - the trouble I had was how long the write - render - revise cycle was (of course those were ancient days in terms of processor power etc…)

Supercollider on the other hand is build around a complete general purpose language - so lead me into building a whole environment to work inside - a sort of alternate DAW - and also introduced me to programming as a creative practice.

What was hard in supercollider initially was to generate the equivalent of a score (not as hard as Max though!) - you sort of have to roll your own equivalent of notation (unless you are satisfied with the pattern system which didn’t quite do it for me although I still use elements of it).

It can also be hard to stay down at the very lowest level of detail, something that csound seemed great at, as it is so easy to start re-using abstractions. Sometimes my work gets to be like a glorified tracker or DAW.

Finally SC is just huge and you can literally learn it for years. I learn things here on the forum most days!

1 Like

I am obviously pro-SC. CSound was my first music language. Then Max and SC. But CSound, being C, nicely plays with WebAudio:

Kind of dope.



csound has that java based blue sequencer, to help in the notation area. And that cabbage ide gui maker has some really interesting sounds in there. Certainly something that doesn’t come out of the box in something like pure data.

I’m not so keen on the pattern based notation of supercollider, so something like tidalcycles works a lot better. On the other hand, i’ve not had much luck getting tidalcycles to sync to midi on reaper. But mididefs would work ok, but I like the tidalcycle rhythmic notation.

If you’re a samplist, then either or doesn’t make much difference. Sample the output and go. But if you’re thinking compositionally, then having integration with a proper sequencer is much more important. Also maybe the ability to do presets or save state of inputs.

I was wondering recently how CSound has evolved over the years. Has it achieve some of the features os SuperCollider Server (real-time modularity etc)? Or its architecture doesn’t allow? Many languages have bindings to it, btw.

Anyway, we should be grateful, without it would not be SC

Tidal is Haskell+SuperCollider actually. I’m sure a few years ago a language with a garbage collector not tuned to real-time scheduling would not be anything like scsynth. I’ve been told that Haskell has improved a lot in this respect (because of other reason, not audio, but that did benefit (SOFT) realtime audio too), but it would be hard to beat such specialized software in this regard as scsynth.

BTW, the solution some hard-realtime people found to solve some problems in Haskell is not very dissimilar to SuperCollider Server. They created a EDS embedded in Haskell doing the hard realtime hardcore stuff. JMC vision is sill rolling. )))