Development of contemporary Ugens for SC

hey,

i would like to discuss a topic which is on my mind for some time now.
In my opinion most of the Ugens available in SC are completely outdated.
Im following alot of threads here or on Discord and synthesis is not often times discussed.
The main focus either seems to be on control structures or on specific programming syntax.
Are people happy with the selection of Ugens available in current SC?
In my opinion there should be a group of people who are dedicated to the development of contemporary Ugens exclusively for SC. That this means C++ doesnt make things more easy.
But otherwise Im afraid that SC will make itself completely irrelevant in the next years.
What are your opinions?

In general, this is the area of development I enjoy most.
What do you think is missing?

/*
Josh Parmenter
www.realizedsound.net/josh
*/

1 Like

In my opinion there is yet another nuance to this, if we want as a open source community to be independent from commercial available devices, then the synthesis models implemented in SC cant be just ripoffs from commercial devices. Otherwise these devices will always be one step ahead and SC will follow. Alot of times people are inspired by current Live 12 (which is awesome imo) and want to implement a multiband compressor preset like OTT, implement self vocoding like in Abletons Vocoder or figure out the distortion device Roar.

i think the most obvious is a general implementation for single-sample feedback (but thats a major change).
But here are some Ugen ideas:

  • a modern multiband compressor
  • delay based fx with single-sample feedback like phaser, flanger, echo etc.
  • contemporary attempts for linear phase anti-aliasing and oversampling for oscillators, dynamic waveshaping, single-sample feedback self-modulating PM/FM etc.
  • contemporary attempts for granulation with these anti-aliasing and oversampling methods implemented for the carrier and sub-sample accurate scheduling, with access to per grain frequency trajectories for something like PM /FM cross synthesis granulation, and dynamic window functions etc.
  • a feedback-delay network for either reverbs but especially resonators
  • contemporary spectral fx
  • thats probably a bold statement, but i think Impulse and Dust are completely useless. If you are doing server side sequencing you want to implement polyphony, where the only option available without single-sample feedback is the round robin method (increment counter by one per trigger and distribute next event to next channel independent, if that channel is busy or not, which for events of unequal length always results in phase distortion of your window / envelope or truncated windows / envelopes)
2 Likes

if you are doing server side stuff, you want your oscillators to have a hard sync / phase reset input which should include anti-aliasing of the carrier.

i think the most obvious is a general implementation for single-sample feedback (but thats a major change).

if you are doing server side stuff, you want your oscillators to have a hard sync / phase reset input which should include anti-aliasing of the carrier.

I have a working (backwards compatible) PoC implementation for reblocking and up/downsampling of whole UGen graphs. In fact, I’ve just presented it today in my keynote for the SC symposium :smiley: This might already land in the next minor SC release (3.14). Fingers crossed!

10 Likes

One things that’s always put me off this part of the code base is having to untangle all the macros - particularly in the buffer related ugens -, they just make reading the code so much harder.

Tidying these up, while not sexy, would be a big improvement in my opinion!

5 Likes

That being said, most of the things you list can simply be provided as Server plugins. The SC project is already too large and at this point we should be careful of adding more things. IMO the actual issue is that SC does not have a package manager for Server plugins.

4 Likes

I think the reason why m4l is thriving is the easy sample per sample Access (compare that with c++) inside gen together with the possibility of modern guis and a big Community of developers. I think developing Static ugens with some people can only be an intermediate approach.

There is currently just a small List of ugens made available via externals and none of them is exclusively developed for SC, they are all Ports. For example with the miUgens this results in Frequency always be expressed as Midi notes, which is Not really SC imo.

One thing I’ve always wanted to do is wrap Reaper’s JSFX engine in a UGen. That would be pretty fun. First, you could use all of Reaper’s JSFX plugins. Second, you could edit the JSFX code in realtime and immediately hear the results.

In the meantime, you will soon have per-sample access just by reblocking a Synth to a block size of 1 sample. It won’t be very performant though compared to a JIT compiler like gen~ or JSFX.

5 Likes

Awesome. Just dreaming but in my opinion Synthesis in SC shouldnt always be a compromise. To be completely honest: im really invested in SC and happy to figure out what could be done next and willing to contribute with the Little amount of what I know, but otherwise i wouldnt use it anymore. Without a Major Change Synthesis in sc is dead imo (thats just my State of mind).

1 Like

I think this is a really good idea! You could also have normal looking ugens that are backed by a jsfx file, meaning they could be distributed as a quark.

Do you know what the difference between jsfx and eel2 is? I can only find eel2’s code on GitHub (as a part of the wdl).

When it comes to Single sample Feedback in sc my Vision would not be to have all your ugens available for Single-sample Feedback but following the gen Model of having a small Set of Basic Operators available for Single sample Feedback. So Single sample Feedback is for „developing“ of ugens but not for Executing them.

In my opinion everyone should be given free money! (I’m sort of serious about this. Also, more and larger guillotines.) I can’t really comment on the technical aspect of any of this but there is the factor of human labor power which I would assume is the bottleneck here, so comparing sc to Max or Ableton isn’t really sensible, I think, because the people working on those projects get paid for it. Comparisons to csound or pd are probably fairer…

I can just speak for myself but since ive picked up SC about 5 years ago im dedicating about 5-6 Hours on average everyday beside my day Job on This. Don’t know if Thats sustainable, probably not.

1 Like

I mean, it’s admirable and I salute you, but yes I also have my doubts about the sustainability of that workload for your person (or potential other persons). Or of an open source project that relies on such workloads (unpaid).
But I didn’t mean to imply that you shouldn’t be discussing development priorities! More like, with the exception probably of really big projects that have a gazillon of contributors (say python or whatever), I imagine that the priorities for commercial and open-source software diverge for this reason.

Im Not interested in Money im interested in cutting Edge Synthesis, well informed and aware of whats the State of the Art. But Yes I should probably Double down on my personal Investment here. For me it’s more like either we figure that out or im out (and thats totally okay :slight_smile:)

1 Like

Seems to me this is the big headline in this thread.

hjh

7 Likes

Eel2 is the name of the scripting language that powers JSFX: Cockos Incorporated |