# Mutable Instruments UGens

**URL:** <https://uzu.lurk.org/t/mutable-instruments-ugens/2730>\
**Category:** TidalCycles\
**Tags:** questions\
**Created:** [10 January 2021 21:29 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730 "2021-01-10T21:29:57Z")\
**Posts on this page:** 20\
**Page:** 3

<div class="post-metadata">

**Author:** ![ndr\_brt](https://uzu.lurk.org/user_avatar/uzu.lurk.org/ndr_brt/32/396_2.png) [@ndr\_brt](https://uzu.lurk.org/u/ndr_brt)\
**Post date:** [31 January 2021 16:17 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/41 "2021-01-31T16:17:18Z")

</div>

You see anything on the consoles (tidal/superdirt)?

---

<div class="post-metadata">

**Author:** ![sherwood](https://uzu.lurk.org/user_avatar/uzu.lurk.org/sherwood/32/1188_2.png) [@sherwood](https://uzu.lurk.org/u/sherwood)\
**Post date:** [31 January 2021 17:32 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/42 "2021-01-31T17:32:57Z")

</div>

Nope, both sc and tidal consoles are clean.

---

<div class="post-metadata">

**Author:** ![ndr\_brt](https://uzu.lurk.org/user_avatar/uzu.lurk.org/ndr_brt/32/396_2.png) [@ndr\_brt](https://uzu.lurk.org/u/ndr_brt)\
**Post date:** [1 February 2021 10:30 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/43 "2021-02-01T10:30:52Z")

</div>

Executing that supercollider code you should see in the console an output like:

```haskell
[a DirtOrbit, a DirtOrbit, a DirtOrbit, a DirtOrbit, a DirtOrbit, a DirtOrbit, a DirtOrbit, a DirtOrbit, a DirtOrbit, a DirtOrbit]
MiClouds > numAudioIns: 2
MiClouds > numAudioIns: 2
MiClouds > numAudioIns: 2
MiClouds > numAudioIns: 2
MiClouds > numAudioIns: 2
MiClouds > numAudioIns: 2
MiClouds > numAudioIns: 2
MiClouds > numAudioIns: 2
MiClouds > numAudioIns: 2
MiClouds > numAudioIns: 2

```

do you see it?

---

<div class="post-metadata">

**Author:** ![sherwood](https://uzu.lurk.org/user_avatar/uzu.lurk.org/sherwood/32/1188_2.png) [@sherwood](https://uzu.lurk.org/u/sherwood)\
**Post date:** [1 February 2021 10:42 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/44 "2021-02-01T10:42:23Z")

</div>

Sorry yes, I did see that. I thought you meant if there were any errors.

---

<div class="post-metadata">

**Author:** ![ndr\_brt](https://uzu.lurk.org/user_avatar/uzu.lurk.org/ndr_brt/32/396_2.png) [@ndr\_brt](https://uzu.lurk.org/u/ndr_brt)\
**Post date:** [1 February 2021 17:37 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/45 "2021-02-01T17:37:13Z")

</div>

At this point don't know what the problem could be... have you copied into the extensions folder of supercollider the \*.so files?

---

<div class="post-metadata">

**Author:** ![sherwood](https://uzu.lurk.org/user_avatar/uzu.lurk.org/sherwood/32/1188_2.png) [@sherwood](https://uzu.lurk.org/u/sherwood)\
**Post date:** [1 February 2021 17:54 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/46 "2021-02-01T17:54:00Z")

</div>

I copied .scx files to the extensions folder (I'm on a mac). Was there something else I needed to copy too? Where do I get those? I've got your plaits and rings working fine. I haven't tested the verb. I should do that since that is the other global effect I think.

---

<div class="post-metadata">

**Author:** ![ndr\_brt](https://uzu.lurk.org/user_avatar/uzu.lurk.org/ndr_brt/32/396_2.png) [@ndr\_brt](https://uzu.lurk.org/u/ndr_brt)\
**Post date:** [1 February 2021 18:25 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/47 "2021-02-01T18:25:12Z")

</div>

Uhm...no, if rings and plaits are working you should be ok, on linux also the \*.so (compiled libraries) are needed

---

<div class="post-metadata">

**Author:** ![martinmestres](https://uzu.lurk.org/user_avatar/uzu.lurk.org/martinmestres/32/581_2.png) [@martinmestres](https://uzu.lurk.org/u/martinmestres)\
**Post date:** [2 February 2021 08:08 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/48 "2021-02-02T08:08:02Z")

</div>

Being able to easily use plaits in Tidal would be a huge step forward. So much possibilities within one little synth...

> [@sherwood](#):
>
> After playing with plaits in tidal, I think I prefer having the access to the different engines all there just by changing a parameter, rather than breaking them out into different definitions. Meta mode on my braids is always fun to play with.

+1

---

<div class="post-metadata">

**Author:** ![sherwood](https://uzu.lurk.org/user_avatar/uzu.lurk.org/sherwood/32/1188_2.png) [@sherwood](https://uzu.lurk.org/u/sherwood)\
**Post date:** [2 February 2021 12:20 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/49 "2021-02-02T12:20:01Z")

</div>

I got clouds to work! I removed the text plus colon you had before passing the params into clouds here:

```haskell
Out.ar(effectBus, MiClouds.ar(
      inputArray: signal,
      pit: cloudspitch,
      pos: cloudspos,
      size: cloudssize,
      etc.......
    ));

```

Mine looks like this now and works:

```haskell
  SynthDef("global_mi_clouds" ++ numChannels, { |dryBus, effectBus, cloudspitch=0, cloudspos=0, cloudssize=0.5, cloudsdens=0.5, cloudstex=0.5, cloudswet=0.5, cloudsgain=0.5, cloudsspread=0.5, cloudsrvb=0.5, cloudsfb=0.5, cloudsfreeze=0, cloudsmode=0, cloudslofi=0|
    var signal = In.ar(dryBus, ~dirt.numChannels);
    Out.ar(effectBus, MiClouds.ar(
      signal,
      cloudspitch,
      cloudspos,
      cloudssize,
      cloudsdens,
      cloudstex,
      cloudswet,
      cloudsgain,
      cloudsspread,
      cloudsrvb,
      cloudsfb,
      cloudsfreeze,
      cloudsmode,
      cloudslofi
    ));
  }, [\ir, \ir]).add;
};

```

Maybe try yours similar to mine and see if it still works?

---

<div class="post-metadata">

**Author:** ![crashingbooth](https://uzu.lurk.org/user_avatar/uzu.lurk.org/crashingbooth/32/1619_2.png) [@crashingbooth](https://uzu.lurk.org/u/crashingbooth)\
**Post date:** [5 February 2021 12:02 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/50 "2021-02-05T12:02:45Z")

</div>

I've spent some time exploring Plaits and have noticed that many parameter configurations have two distinct signals in the left and right channels. According to the Mutable Instruments docs, many of these sounds have both an 'out' and an 'aux': The **AUX** output carries a variant, sidekick, or by-product of the main signal produced on **OUT**.

It seems that these two signals are hard panned left and right, which isn't ideal.

Are there any out-of-the-box (either in Tidal or SuperDirt) ways for combining these signals? Failing that, I suppose I'll figure out how to build an effect in SuperDirt for mixing stereo signals together, but hoping that there is already some way to do that.

---

<div class="post-metadata">

**Author:** ![ndr\_brt](https://uzu.lurk.org/user_avatar/uzu.lurk.org/ndr_brt/32/396_2.png) [@ndr\_brt](https://uzu.lurk.org/u/ndr_brt)\
**Post date:** [5 February 2021 21:08 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/51 "2021-02-05T21:08:40Z")

</div>

I think the best would be open an issue/pr on the github repository to improve that.  
I didn't used plaits a lot but noticed a "stereo" output also with a simple `{ MiPlaits.ar }.play` in supercollider

---

<div class="post-metadata">

**Author:** ![crashingbooth](https://uzu.lurk.org/user_avatar/uzu.lurk.org/crashingbooth/32/1619_2.png) [@crashingbooth](https://uzu.lurk.org/u/crashingbooth)\
**Post date:** [6 February 2021 14:55 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/52 "2021-02-06T14:55:01Z")

</div>

The thing is that I'm not really sure what this should look like. Should there be an additional 'aux' parameter that controls the mix of the 'aux' with the 'out' in a mono signal? That would work for me, but there might be use cases where keeping these signals distinct makes sense.

That's why I'm thinking a separate stereo mixing effect might the more flexible way to go.

---

<div class="post-metadata">

**Author:** ![ndr\_brt](https://uzu.lurk.org/user_avatar/uzu.lurk.org/ndr_brt/32/396_2.png) [@ndr\_brt](https://uzu.lurk.org/u/ndr_brt)\
**Post date:** [6 February 2021 16:35 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/53 "2021-02-06T16:35:00Z")

</div>

I think that the "sound source" ugen should be as simple as possible, so there could be a parameter to choose what the output should be. In mono.  
Then will be a synthdef choice to eventually mix them.

---

<div class="post-metadata">

**Author:** ![BXHD](https://uzu.lurk.org/user_avatar/uzu.lurk.org/bxhd/32/1448_2.png) [@BXHD](https://uzu.lurk.org/u/BXHD)\
**Post date:** [8 February 2021 01:14 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/54 "2021-02-08T01:14:30Z")

</div>

Has anyone been able to get elements to work? If so, how would I go about using it on the tidal side of things? I have installed the Ugen properly, and the tests in the SChelp file are working for me. I have a feeling that this works similarly to rings with a sample being used as the impulse, but I don't know where to go from there.

---

<div class="post-metadata">

**Author:** ![jarm](https://uzu.lurk.org/user_avatar/uzu.lurk.org/jarm/32/2756_2.png) [@jarm](https://uzu.lurk.org/u/jarm)\
**Post date:** [9 February 2021 09:51 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/55 "2021-02-09T09:51:01Z")

</div>

I had a quick go at this based on what I've been doing for the Toybox Nano Pack for Reaktor ([https://github.com/jarmitage/tidal-nano-pack](https://github.com/jarmitage/tidal-nano-pack))

Someone who knows the modules better than me should name them, and I'm also pretty sure the ordering of these is incorrect, but you get the idea.

This means you can do:

```haskell
d1
  $ sengine "wtable chords vowel" -- string engine, like irand = integer rand
  # n 0
  # s "plaits"

```

And if you want a reminder of the param list / order, print the string e.g. `plaits_engines`

```haskell
-- https://mutable-instruments.net/modules/braids/manual/
:{
braids_models = "csaw trisaw sawsq fold comb hardsync saw3 ring saw7 sawcomb toy zf vosm vowel harm fm pluk bowd blow bell drum kick cymb wtbl wmap wlin wt4 nois twnq clkn qpsk"
braidsModelN "csaw" = 0
braidsModelN "trisaw" = 1
braidsModelN "sawsq" = 2
braidsModelN "fold" = 3
braidsModelN "comb" = 4
braidsModelN "hardsync" = 5
braidsModelN "saw3" = 6
braidsModelN "ring" = 7
braidsModelN "saw7" = 8
braidsModelN "sawcomb" = 9
braidsModelN "toy" = 10
braidsModelN "zf" = 11
braidsModelN "vosm" = 12
braidsModelN "vowel" = 13
braidsModelN "harm" = 14
braidsModelN "fm" = 15
braidsModelN "pluk" = 16
braidsModelN "bowd" = 17
braidsModelN "blow" = 18
braidsModelN "bell" = 19
braidsModelN "drum" = 20
braidsModelN "kick" = 21
braidsModelN "cymb" = 22
braidsModelN "wtbl" = 23
braidsModelN "wmap" = 24
braidsModelN "wlin" = 25
braidsModelN "wt4" = 26
braidsModelN "nois" = 27
braidsModelN "twnq" = 28
braidsModelN "clkn" = 29
braidsModelN "qpsk" = 30
smodel = model . (braidsModelN <$>)
:}

-- https://mutable-instruments.net/modules/plaits/manual/
:{
plaits_engines = "anaosc wshape fm formant harm wtable chords vowel gran noisef noisep modal anabd anasn anahh"
plaitsEngineN "anaosc" = 0
plaitsEngineN "wshape" = 1
plaitsEngineN "fm" = 2
plaitsEngineN "formant" = 3
plaitsEngineN "harm" = 4
plaitsEngineN "wtable" = 5 
plaitsEngineN "chords" = 6
plaitsEngineN "vowel" = 7
plaitsEngineN "gran" = 8
plaitsEngineN "noisef" = 9
plaitsEngineN "noisep" = 10
plaitsEngineN "modal" = 11
plaitsEngineN "anabd" = 12
plaitsEngineN "anasn" = 13
plaitsEngineN "anahh" = 14
sengine = engine . (plaitsEngineN <$>)
:}

-- https://mutable-instruments.net/modules/tides/manual/
:{
tides_modes = "shapes amps time freqs"
modeN "shapes" = 0
modeN "amps" = 1
modeN "times" = 2
modeN "freqs" = 3
smode = mode . (modeN <$>)
:}

:{
rings_models = "res symp sympq mod fm rvb"
ringsModelN "res" = 0 -- MODAL_RESONATOR,
ringsModelN "symp" = 1 -- SYMPATHETIC_STRING,
ringsModelN "sympq" = 4 -- SYMPATHETIC_STRING_QUANTIZED,
ringsModelN "mod" = 2 -- MODULATED/INHARMONIC_STRING,
ringsModelN "fm" = 3 -- 2-OP_FM_VOICE,
ringsModelN "rvb" = 5 -- STRING_AND_REVERB
ringsSmodel = ringsmodel . (ringsModelN <$>)
:}

```

---

<div class="post-metadata">

**Author:** ![jarm](https://uzu.lurk.org/user_avatar/uzu.lurk.org/jarm/32/2756_2.png) [@jarm](https://uzu.lurk.org/u/jarm)\
**Post date:** [9 February 2021 11:44 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/56 "2021-02-09T11:44:47Z")

</div>

I made some demo patches to hear what's going on with these (uses some of [https://github.com/jarmitage/jarmlib](https://github.com/jarmitage/jarmlib)). Some of it sounding totally wild, especially Elements which is like an entire concert all by itself.

Some quick notes:

- With Elements it seems there's some glitchy high pitched ringing happening. Can anyone confirm?
- Ripples causes SuperCollider CPU to increase exponentially - guessing a memory leak?
- I couldn't get the global effects to work. Edit: fixed, didn't see the edit to `startup.scd`

```haskell
p1 -- plaits
  $ sl 2
  $ fa "<1 [1 2] <1 [0.5 3]> [1 [2 4]]>"
  $ struct "t(9,16)"
  $ n (arp "<up down diverge>" "<a'm9'8 e'7sus4'8>" -24)
  # engine 14
  # s "plaits"
  # adsr "0.1:1:1:0.5"
  # timbre (rsinf 0 1 0.25)
  # harm (rsinf 0 1 0.33)
  # morph (rsinf 0 1 0.11)
  # lpgdecay (rsinf 0 1 0.44)
  # lpgcolour (rsinf 0 1 0.35)

p1 -- braids
  $ n (arp "<up down>" "<c'maj'7*2 d'min'7*2 e'min'7*2 [a'min'7 f'maj'7]>" -24)
  # s "braids"
  # adsr "0:1:1:0.5"
  # model (sl 8 $ r 30)
  # timbre (rsinf 0 1 0.35)
  # color (rsinf 0 1 0.25)

p1 -- omi (elements)
  -- $ slow 2
  $ n (arp "<up down>" "<c'maj'7*2 d'min'7*2 e'min'7*2 [a'min'7 f'maj'7]>" +12)
  # s "omi"
  -- # sustain 1
  -- # adsr "0:1:1:0.5"

p1 -- tides
  $ sl 4
  $ fa "<1 [1 2] <1 [0.5 3]> [1 [2 4]]>"
  $ struct "t(<11 21 17 15>,32)"
  $ n (seg 32 $ rsinf 0 12 0.25 * rtrif 0 2 0.7 + "<0 8 4 1 3>" + "[0 0 12 -12]/4" -24)
  # s "tides"
  # mode (sl 4 $ "0 1 2 3")
  # sustain (rsinf 0.5 2 1)
  # tidesshape (rsinf 0 1 0.11)
  # tidessmooth (rsinf 0.5 1 0.33)
  # slope (rsinf 0 1 0.22)
  # shift (rsinf 0 1 0.44)

p1 -- elements
  $ fa "<1 [1 2] <1 [0.5 3]> [1 [2 4]]>"
  $ struct "t(<11 21 17 15>,32)"
  $ elementspitch (seg 32 $ rsinf 0 12 0.25 * rtrif 0 2 0.7 + "<0 8 4 1 3>" + "[0 0 12 -12]/4")
  # s "[[808bd:1(3,8)]*<1 2>, ~ 808sd:1]" --, 808:1*16]"
  # sustain (rsinf 0.4 1.5 1)
  # elementsstrength (rsinf 0 1 0.08)
  # elementscontour (rsinf 0 1 0.10)
  # elementsbowlevel (rsinf 0 1 0.12)
  # elementsblowlevel (rsinf 0 1 0.14)
  # elementsstrikelevel (rsinf 0 1 0.16)
  # elementsflow (rsinf 0 1 0.18)
  # elementsmallet (rsinf 0 1 0.20)
  # elementsbowtimb (rsinf 0 1 0.22)
  # elementsblowtimb (rsinf 0 1 0.24)
  # elementsstriketimb (rsinf 0 1 0.26)
  # elementsgeom (rsinf 0 1 0.28)
  # elementsbright (rsinf 0 1 0.30)
  # elementsdamp (rsinf 0 1 0.32)
  # elementspos (rsinf 0 1 0.34)
  # elementsspace (rsinf 0 1 0.36)
  # elementsmodel "<0 1 2>"
  # elementseasteregg 0

p1 -- mu
  $ s "[[808bd:1(3,8)]*<1 2>, ~ [808sd:4(3,8)], 808:1*16]"
  # mu 10

p1 -- rings
  $ s "[[808bd:1(3,8)]*<1 2 0.5>, ~ [808sd:4(3,8)], 808:1*<16 [32 16!3] 16 [12 24]>]"
  # ringsfreq (rsinf 50 100 0.22 * rtrif 1 1.5 1.3 * rsinf 0.8 1.2 4 * "<1 3 0.5 5>")
  # ringsstruct (rsinf 0 1 0.14)
  # ringsbright (rsinf 0.5 1 0.27)
  # ringsdamp (rsinf 0 1 0.36)
  # ringspos (rsinf 0 1 0.46)
  # ringsmodel (sl 8 $ "[0 1 2 3 4 5]")
  # ringspoly 0
  # ringsinternal 0
  # ringseasteregg (sl 7 $ "[0 1 2 3 4 5]")

p1 -- ripples MEMORY_LEAK!
  $ s "[[808bd:1(3,8)]*<1 2 0.5>, ~ [808sd:4(3,8)], 808:1*<16 [32 16!3] 16 [12 24]>]"
  # ripplescf 0.5
  # ripplesreson 0
  # ripplesdrive 1

p1 -- global_mi_verb
  $ s "[[808bd:1(3,8)]*<1 2 0.5>, ~ [808sd:4(3,8)], 808:1*<16 [32 16!3] 16 [12 24]>]"
  # verbwet 1
  # verbtime 0.9
  # verbdamp 0.5
  # verbhp 0.5
  # verbfreeze 0
  # verbdiff 0.625
  # verbgain 1

p1 -- global_mi_verb
  $ s "[[808bd:1(3,8)]*<1 2 0.5>, ~ [808sd:4(3,8)], 808:1*<16 [32 16!3] 16 [12 24]>]"
  # cloudspitch 0.5
  # cloudspos 0.5
  # cloudssize 0.5
  # cloudsdens 0.5
  # cloudstex 0.5
  # cloudswet 0.5
  # cloudsgain 0.5
  # cloudsspread 0.5
  # cloudsrvb 0.5
  # cloudsfb 0.5
  # cloudsfreeze 0.5
  # cloudsmode 0.5
  # cloudslofi 0.5

```

---

<div class="post-metadata">

**Author:** ![Robin\_Hase](https://uzu.lurk.org/user_avatar/uzu.lurk.org/robin_hase/32/1338_2.png) [@Robin\_Hase](https://uzu.lurk.org/u/Robin_Hase)\
**Post date:** [10 February 2021 21:58 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/57 "2021-02-10T21:58:41Z")

</div>

Hey everyone, does anyone have any pointers on how to build these for windows? I've only compiled some very simple c executables with gcc and mingw on the windows subsystem for linux in the past, but i have no experience with cmake and googling didn't help either...  
As far as i can tell no one has done this so far, but maybe someone in this thread is actually using these on windows?

---

<div class="post-metadata">

**Author:** ![jarm](https://uzu.lurk.org/user_avatar/uzu.lurk.org/jarm/32/2756_2.png) [@jarm](https://uzu.lurk.org/u/jarm)\
**Post date:** [11 February 2021 15:27 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/58 "2021-02-11T15:27:50Z")

</div>

Following the setup in @ndr_brt's repository worked for me: [https://github.com/ndr-brt/sc-adente](https://github.com/ndr-brt/sc-adente)

---

<div class="post-metadata">

**Author:** ![sherwood](https://uzu.lurk.org/user_avatar/uzu.lurk.org/sherwood/32/1188_2.png) [@sherwood](https://uzu.lurk.org/u/sherwood)\
**Post date:** [14 February 2021 16:27 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/59 "2021-02-14T16:27:34Z")

</div>

That elements example is sounding nuts! Nice.

I'm not getting that high pitch ringing. It sounds so crazy though, that I might not be looking for what you're hearing. Every so often there probably is a high pitched ring, but only briefly.

---

<div class="post-metadata">

**Author:** ![ndr\_brt](https://uzu.lurk.org/user_avatar/uzu.lurk.org/ndr_brt/32/396_2.png) [@ndr\_brt](https://uzu.lurk.org/u/ndr_brt)\
**Post date:** [7 March 2021 19:56 UTC](https://uzu.lurk.org/t/mutable-instruments-ugens/2730/60 "2021-03-07T19:56:31Z")

</div>

Anyone noticed an high cpu usage when clouds is loaded as global effect on every orbit? Tried before and supercollider was about 35-40% of the cpu also with no event sent by tidalcycles..., without it the cpu was around 3-4%

[Previous page](https://uzu.lurk.org/t/mutable-instruments-ugens/2730.md?page=2)

[Next page](https://uzu.lurk.org/t/mutable-instruments-ugens/2730.md?page=4)
