Mutable Instruments UGens

I haven't checked cpu usage, but I've been having quite a bit of difficulty with clouds not actually stopping when I stop tidal, there is often residual noise (sometimes really significant amounts/feedback style) after I hush

I've learned to keep cloudsfeedback always under 0.4, otherwise it literally explodes :smiley:

1 Like

that may have been the issue... I think I was using 1 or 0 :stuck_out_tongue:

If you don't use all the orbits you could reduce the number of them in your superdirt startup.

Yep for sure, I was just curious because it's just a problem with clouds.
I will investigate then maybe will open an issue on the mi-ugen repo.

Maybe a way to disable global effect based on their parameters like it's possible on "non-global" effect on superdirt could be something?

You should use a separate In.ar(auxbus) UGen, and the bus you can then map from any other audio bus with the # from and # toArg "auxbus" parameters you can then route audio into it. (See scripts/internal-routing-test). I haven't tested this, but it should work.

You have to make sure that:

  • when you use the DirtPause UGen, that your signal actually gets zero
  • when you register the global effect with GlobalDirtEffect, make sure you register only parameters that will not be updated when the effect is out of use. Otherwise it'll be woken up again and again.

Using GlobalDirtEffect is a bit "risky", because it can easily add a lot of load. When out of use, the effects are paused, so it should be ok.

Since we now also have modulatable events, perhaps that is an intermediate solution, where you can use normal dirt modules.

It might be good to be able to add and remove modules from tidal so that we don't have to add them statically. Not a difficult thing technically, but needs to be organised and tested.

I just took a quick look at the mi-UGens. They are well written, but I am not sure if they are very well suited for real time allocation. They may not follow the principles that UGens should follow (roughly, do not allocate much resources in the c_tor function). Correct me if I am wrong.

But that would mean that one should not use them as a module.

All untested, just thinking.

1 Like

Don't know, I'm not too much into ugens innards... May worth opening an issue?

Hi,

sorry, yet another dummy question.

I tried to install the UGens and get at least one of the examples up and running. The installation took some time (found out the zsh does not like bits of the install script) but bash does and also obvously I first had to learn some Supercollider basics (such as: where are my extensions).

  • I finally was able to compile the UGens successfully
  • the *.sc files now reside in [my_home_dir]/.local/share/SuperCollider/Extensions (such as MiPlaits.sc)
  • I added this synth definition to my superdirt_startup.scd; is this the correct place for additional SC synth definitions?
  • from the superdirt start messages I can see that [my_home_dir]/.local/share/SuperCollider/Extensions (amongst others) is being compiled (seemingly successfully)
  • but I keep getting this message: exception in GraphDef_Recv: UGen 'MiPlaits' not installed.

Any hints how I could find out what's going wrong?

And: I could not find any documentation about adding my own SC synth definitions to use it in Tidal so I guess the right spot is the Superdirt startup file. Is it?

I think you miss to copy the compiled libraries (.so/.dylib/.dll depending on which operating system are you on).
You will find them into the "build" directory into every module folders.

About where to place synthdef, you can load scd files from your superdirt startup file with the "loadRelative" function

2 Likes

@ndr_brt, yes indeed I did miss that. The aforementioned example now works. Awesome! Looking forward to try out these UGens. Thanks a lot!

1 Like

Mads Kjeldgaard just released some new UGens for SuperCollider, adapted from previous work by Émilie Gillet: MKPlugins.

They are really easy to install and they sound great: Bass Drum, Snare Drum, and a couple of oscillators, LPGs, etc..

7 Likes

update: there's a windows build script in the repo now and it works like a charm (:

Cool! I opened an issue reporting an article that explains how to build and update plugins with google actions, it's a game changer in my opinion:

1 Like

github actions ... you had me going for a bit there :stuck_out_tongue:

This seems like a great idea, thanks for the link

Ouch! :joy:
I did some trials on my fork. Ok with the linux binaries, I'm struggling a bit with the marcos and windows...

in this "release" there is a zip for linux, it just needs to be unzipped into the sc extensions folder: Release v0.0.12 · ndr-brt/mi-UGens · GitHub

I will work to make something functional for everything and open a pr.

I noticed that the braids build does not work anymore (because the libsamplerate), anyone had this issue?

1 Like

Ok, did it:

Feedback welcome, you only need to unzip the archive into the extensions folder of supercollider.
Already opened a pr to the main repository.

6 Likes

Nice! I will totally give it a try! This will be my first experience with these UGens. Maybe I can bring some "noob" insights :smiley:

1 Like

Awesome! I've been thinking about adding support for these into my ansible installer, this should make it a lot easier :slightly_smiling_face:

2 Likes