SuperCollider 4: First Thoughts

You can have a small CMake project to hack UGens and copy it to the lib folder.

You just will need to restart the language, like we used to do with language classes.

EDIT: but yes, compiling C++ at runtime and sending it to the server would be a breakthrough. Huge stuff.

1 Like

Thanks smoge. Yes, I already have the cmake hack, the issue i was pointing to is, as you said, not having to restart the whole thing. I was planning (still am) on looking into it on a fork but itā€™s on hold for the forseable future because of other work.

If you have the skills, that would be something. Hope you find the time!

1 Like

Iā€™d say i do have the skills (wrote a new audio engine+node style audio processors for a light console company), maybe i will try to apply to some eu funds (similar to flucoma ones) after my current research grant has ended, time will tell, the will is stong :joy:

1 Like

That would be the main enhancement, or do you have a plan with more redesign?

(There are so many possibilities in the airā€¦)

1 Like

I had sone ideas of a pre-synthesis stage for synthdefs on the server, where you could declare osc tx/rx, before your func instead/complementing the || args. But that idea came out of a specific workflow(ping pong-ing buffers filled with 0/1 trigs and info for sequencing, i donā€™t like patterns) iā€™m using so maybe wouldnā€™t be so useful.

1 Like

UGens, Plugins, and SynthDefs, could all be just C++ compiled at runtime. Why not

1 Like

Yes, it might sound as an unpopular opinion seeing the previous thread posts, but c++ and sclang should be here to stay!

1 Like

interesting unpopular opinion > boring popular opinion

1 Like

So people donā€™t see Chuck as a alternative for sclang/scsynth apparently? I rarely see it mentioned.

It can be used via the web ide and it has a plugin for visual studio code and nvim (SC has nvim plugin). That would help SC as well.

It has been slower and less supported for 20 years, so I donā€™t see it as an alternative. It only ever really caught on at Princeton, and once Ge and Perry left, it left with them. It looks like Ge is working on it again, so thatā€™s a good thing. Back in the day it could play like 2 sine waves at a time before it overloaded the cpu. But maybe it is better now?

Sam

Was he the only developer? If Iā€™m not mistaken, in Stanford he was working more time with iPhone apps or something similar. I wonder how challenging is to restart development after 10+ years.

ChucKā€™s ā€œroll your own ratesā€ looks good in a doctoral thesis, and it natively handles problems like shorter delays with feedback, but I never quite grasped how to run multiple ā€œroll your own ratesā€ in the same shred. Also imagine running a routine (ā€œsporking a shredā€) for every polyphonic note. (I thinkā€¦? Seemed to me this was ChucKā€™s way of doing concurrency.) I do like the double-dispatch => operator and stole the idea for my work.

Btw, out of SC, Max/MSP, Pd and ChucK, SC is by far the easiest for polyphonic usage (ā€œadd a synth, now add another one,ā€ vs ā€œsave a patch file with your note player, then poly~ it, and donā€™t forget that you canā€™t use regular inlets and outlets here, you have to use special [in] and [out] objects that arenā€™t used anywhere else, and also donā€™t forget that itā€™s 1, mute 0 and not 1, run 1 going to that [thispoly~]ā€ which isnā€™t germane to SC, just pointing out that in a major, expen$$$ive audio platform, polyphony is awkward but in SC, itā€™s fully idiomatic).

I never heard whether Ge finally put really good garbage collection in it. In ChucKā€™s early days, it would leak memory until it crashed, while I can easily run SC for a few hours, no trouble.

Ge, btw, was an undergrad at Duke while I was a grad student. Our paths crossed briefly and it was pretty clear he was going to make it in the field.

hjh

3 Likes

Or wfscollider

Why is there talk of Sc4 when there is so much broken code? There is still two crucial libraries in the quarks

SC4 does not exist. There is SuperCollider Server / SC3, and other people have other ideas. Thatā€™s it.

So people donā€™t see Chuck as a alternative for sclang/scsynth apparently?

CSound is a serious alternative if you want to try something else. The language is kind of unpleasant, but itā€™s undeniably powerful and can do things that SuperCollider canā€™t. There are also some good written resources for CSound that teach synthesis/DSP pretty well.

1 Like

I contemplated using CSound-expression (haskell bindings for CSound), but I was not sure CSound is capable of doing all the things I do with SC in terms of real-time control, the node tree model, etc

The author of csound-expression, a Russian hacker, did some work writing documentation and tutorials, which is not common in the Haskell world. Itā€™s ā€œbeginner-friendlyā€. It would be good for someone trying out DSP (on that level) for the first time, for example.

(Iā€™d be glad to know more what CSound can do today, Iā€™m not really well-informed)

What is this thread about then?

1 Like

Been many years since I looked at csound. What can it do that SC canā€™t?

1 Like

I believe thereā€™s nothing, but I was curious about recent developments just because of convenience and curiosity since there was a very good library out there.

But thinking a bit more, several factors could impact usersā€™ musical ā€œphilosophyā€. For instance, Patterns have a significant presence in the SuperCollider, while non-real-time (NRT) synthesis hasnā€™t been developed in a user-friendly manner, although it could. And I remember software like Paul Bergā€™s ACToolBox that created NRT output for supercollider that felt like a different approach using SC. Unfortunately, he passed away and his system was not free software.

I wrote a bit about it here on Interval Algebra, and how it could be done in SC: Interval Algebra and Event Scheduling?

But those are just random thoughts. Nothing that would shift a paradigm.

EDIT: the only thing I know csound can do and sc canā€™t is playing SOUNDFONTS :grin: