# Help! Error messages when installing MI-UGens

**URL:** <https://uzu.lurk.org/t/help-error-messages-when-installing-mi-ugens/5617>\
**Category:** TidalCycles\
**Tags:** installation\
**Created:** [23 March 2025 10:03 UTC](https://uzu.lurk.org/t/help-error-messages-when-installing-mi-ugens/5617 "2025-03-23T10:03:23Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![AilaKri](https://uzu.lurk.org/user_avatar/uzu.lurk.org/ailakri/32/3094_2.png) [@AilaKri](https://uzu.lurk.org/u/AilaKri)\
**Post date:** [23 March 2025 10:03 UTC](https://uzu.lurk.org/t/help-error-messages-when-installing-mi-ugens/5617/1 "2025-03-23T10:03:23Z")

</div>

Hello\<3  
I am in the middle of installing the Mutable Instruments Ugens into SuperCollider to use with tidal. I have followed the instructions as close as i can, but i keep getting this error message when i restart SuperCollider-\>

ERROR: Message 'prSetEdited' not understood.  
RECEIVER:  
nil  
ARGS:  
Integer 1  
CALL STACK:  
DoesNotUnderstandError:reportError  
arg this =   
Nil:handleError  
arg this = nil  
arg error =   
Thread:handleError  
arg this =   
arg error =   
Object:throw  
arg this =   
Object:doesNotUnderstand  
arg this = nil  
arg selector = 'prSetEdited'  
arg args = [\*1]  
Process:interpretCmdLine  
arg this =   
^^ ERROR: Message 'prSetEdited' not understood.  
RECEIVER: nil

ERROR: Message 'prSetEdited' not understood.  
RECEIVER:  
nil  
ARGS:  
Integer 0  
CALL STACK:  
DoesNotUnderstandError:reportError  
arg this =   
Nil:handleError  
arg this = nil  
arg error =   
Thread:handleError  
arg this =   
arg error =   
Object:throw  
arg this =   
Object:doesNotUnderstand  
arg this = nil  
arg selector = 'prSetEdited'  
arg args = [\*1]  
Process:interpretCmdLine  
arg this =   
^^ ERROR: Message 'prSetEdited' not understood.  
RECEIVER: nil

server 'localhost' disconnected shared memory interface  
'/quit' message sent to server 'localhost'.  
compiling class library...  
Found 853 primitives.  
Compiling directory 'C:\Program Files\SuperCollider-3.12.1\SCClassLibrary'  
Compiling directory 'C:\ProgramData\SuperCollider\Extensions'  
Compiling directory 'C:\Users\kostp\AppData\Local\SuperCollider\Extensions'  
Compiling directory 'C:\Users\kostp\AppData\Local\SuperCollider\downloaded-quarks\Vowel'  
Compiling directory 'C:\Users\kostp\AppData\Local\SuperCollider\downloaded-quarks\Dirt-Samples'  
Compiling directory 'C:\Users\kostp\AppData\Local\SuperCollider\downloaded-quarks\SuperDirt'  
numentries = 1291801 / 20048200 = 0.064  
5900 method selectors, 3398 classes  
method table size 21137568 bytes, big table size 160385600  
Number of Symbols 15120  
Byte Code Size 447242  
compiled 567 files in 0.41 seconds

Info: 2 methods are currently overwritten by extensions. To see which, execute:  
MethodOverride.printAll

compile done  
localhost : setting clientID to 0.  
internal : setting clientID to 0.  
Class tree inited in 0.01 seconds  
ERROR: syntax error, unexpected NAME, expecting ')'  
in interpreted text  
line 62 char 54:

```
  s.latency = 0.3; // increase this if you get "late" messages
                                                ^^^^

```

## };

ERROR: Command line parse failed

Could this have anything to do with the help file, maybe? (my helpfile)-\>  
/\*  
This is an example startup file. You can load it from your startup file  
(to be found in Platform.userAppSupportDir +/+ "startup.scd")  
\*/

(  
s.reboot { // server options are only updated on reboot  
// configure the sound server: here you could add hardware specific options  
// see [ServerOptions | SuperCollider 3.14.0 Help](http://doc.sccode.org/Classes/ServerOptions.html)  
s.options.numBuffers = 1024 \* 256; // increase this if you need to load more samples  
s.options.memSize = 8192 \* 32; // increase this if you get "alloc failed" messages  
s.options.numWireBufs = 64; // increase this if you get "exceeded number of interconnect buffers" messages  
s.options.maxNodes = 1024 \* 32; // increase this if you are getting drop outs and the message "too many nodes"  
s.options.numOutputBusChannels = 2; // set this to your hardware output channel size, if necessary  
s.options.numInputBusChannels = 2; // set this to your hardware output channel size, if necessary  
// boot the server and start SuperDirt  
s.waitForBoot {  
~dirt = SuperDirt(2, s); // two output channels, increase if you want to pan across more channels  
//"C:\Users\kostp\Desktop\Samples"  
~dirt.loadSoundFiles("/users/kostp/Desktop/Samples/\*");  
// s.sync; // optionally: wait for samples to be read  
~dirt.start(57120, 0 ! 12); // start listening on port 57120, create two busses each sending audio to channel 0

```
    // optional, needed for convenient access from sclang:
    (
        ~d1 = ~dirt.orbits[0]; ~d2 = ~dirt.orbits[1]; ~d3 = ~dirt.orbits[2];
        ~d4 = ~dirt.orbits[3]; ~d5 = ~dirt.orbits[4]; ~d6 = ~dirt.orbits[5];
        ~d7 = ~dirt.orbits[6]; ~d8 = ~dirt.orbits[7]; ~d9 = ~dirt.orbits[8];
        ~d10 = ~dirt.orbits[9]; ~d11 = ~dirt.orbits[10]; ~d12 = ~dirt.orbits[11];
    );
};
	// Mutable instruments ->>

	  // load mi-ugens.scd synthdefs
	load("C:\Program Files\SuperCollider-3.12.1\synthdefs\mi-ugens.scd\");

```

// end load mi-ugens.scd synthdefs  
// ...  
~dirt = SuperDirt(2, s);

//...  
~d10 = ~dirt.orbits[9]; ~d11 = ~dirt.orbits[10]; ~d12 = ~dirt.orbits[11];  
// );

```
    // define global effects for mutable instruments effects
    ~dirt.orbits.do { |x|
        var clouds = GlobalDirtEffect(\global_mi_clouds, [\cloudspitch, \cloudspos, \cloudssize, \cloudsdens, \cloudstex, \cloudswet, \cloudsgain, \cloudsspread, \cloudsrvb, \cloudsfb, \cloudsfreeze, \cloudsmode, \cloudslofi]);
        var verb = GlobalDirtEffect(\global_mi_verb, [\verbwet, \verbtime, \verbdamp, \verbhp, \verbfreeze, \verbdiff, \verbgain]);
        x.globalEffects = x.globalEffects
          .addFirst(clouds)
          .addFirst(verb);
        x.initNodeTree;
    };

    // end define global effects for mutable instruments effects

s.latency = 0.3; // increase this if you get "late" messages

```

};  
);

Any help will greatly appreciated\<33

---

<div class="post-metadata">

**Author:** ![cleary](https://uzu.lurk.org/user_avatar/uzu.lurk.org/cleary/32/177_2.png) [@cleary](https://uzu.lurk.org/u/cleary)\
**Post date:** [24 March 2025 01:55 UTC](https://uzu.lurk.org/t/help-error-messages-when-installing-mi-ugens/5617/2 "2025-03-24T01:55:38Z")

</div>

Hi - Are you able to give anymore info about the environment? Operating system etc

> [@AilaKri](#):
>
> ERROR: Message 'prSetEdited' not understood.

There are some links talking about the `prSetEdited not understood` error here:

> <https://github.com/supercollider/supercollider/issues/6119>
>
> \## Environment
> 
> \* SuperCollider version: 3.13.0
> \* Operating system: Windows 1…1 Pro
> \* System Locale Language: Korean
> 
> \## Steps to reproduce
> 
> 1. Start SuperCollider
> 2. type something in the IDE editor
> 3. close the SCD document
> 
> \## Expected vs. actual behaviour
> \- Expected:
> - Typing without error messages and warnings.
> - Close without error
> \- Actual behaviour:
> https://www.dropbox.com/scl/fi/izhbkciqc3xmzrvyyndx5/Screen-Recording-2023-10-24-at-18.53.31.mov?rlkey=kfxz4duxbcy0yzlla9sh8awqv&dl=0
> 
> Not always, but often.

Beyond that, your sc startup file could potentially be an issue since it's formatting funny in the forum -  
The trick to get it to format as code is to put triple backticks before and after the block of code - can you do that with your startup file and error messages to get it formatting more readably please?

```  
example  
code block  
```

which looks like this when rendered in markdown

```haskell
example
code block

```

---

<div class="post-metadata">

**Author:** ![AilaKri](https://uzu.lurk.org/user_avatar/uzu.lurk.org/ailakri/32/3094_2.png) [@AilaKri](https://uzu.lurk.org/u/AilaKri)\
**Post date:** [24 March 2025 19:00 UTC](https://uzu.lurk.org/t/help-error-messages-when-installing-mi-ugens/5617/3 "2025-03-24T19:00:53Z")

</div>

My enviroment-\> windows 11

start up file-\>

```haskell
(
s.reboot { // server options are only updated on reboot
    // configure the sound server: here you could add hardware specific options
    // see http://doc.sccode.org/Classes/ServerOptions.html
    s.options.numBuffers = 1024 * 256; // increase this if you need to load more samples
    s.options.memSize = 8192 * 32; // increase this if you get "alloc failed" messages
    s.options.numWireBufs = 64; // increase this if you get "exceeded number of interconnect buffers" messages
    s.options.maxNodes = 1024 * 32; // increase this if you are getting drop outs and the message "too many nodes"
    s.options.numOutputBusChannels = 2; // set this to your hardware output channel size, if necessary
    s.options.numInputBusChannels = 2; // set this to your hardware output channel size, if necessary
    // boot the server and start SuperDirt
    s.waitForBoot {
        ~dirt = SuperDirt(2, s); // two output channels, increase if you want to pan across more channels
		//"C:\Users\kostp\Desktop\Samples"
		~dirt.load("C:\Program Files\SuperCollider-3.12.1\synthdefs\mi-ugens.scd\");
        ~dirt.loadSoundFiles("/users/kostp/Desktop/Samples/*");
        // s.sync; // optionally: wait for samples to be read
        ~dirt.start(57120, 0 ! 12); // start listening on port 57120, create two busses each sending audio to channel 0

        // optional, needed for convenient access from sclang:
        (
            ~d1 = ~dirt.orbits[0]; ~d2 = ~dirt.orbits[1]; ~d3 = ~dirt.orbits[2];
            ~d4 = ~dirt.orbits[3]; ~d5 = ~dirt.orbits[4]; ~d6 = ~dirt.orbits[5];
            ~d7 = ~dirt.orbits[6]; ~d8 = ~dirt.orbits[7]; ~d9 = ~dirt.orbits[8];
            ~d10 = ~dirt.orbits[9]; ~d11 = ~dirt.orbits[10]; ~d12 = ~dirt.orbits[11];
			 ~dirt.orbits.do { |x|
            var clouds = GlobalDirtEffect(\global_mi_clouds, [\cloudspitch, \cloudspos, \cloudssize, \cloudsdens, \cloudstex, \cloudswet, \cloudsgain, \cloudsspread, \cloudsrvb, \cloudsfb, \cloudsfreeze, \cloudsmode, \cloudslofi]);
            var verb = GlobalDirtEffect(\global_mi_verb, [\verbwet, \verbtime, \verbdamp, \verbhp, \verbfreeze, \verbdiff, \verbgain];
        );
				            x.globalEffects = x.globalEffects
              .addFirst(clouds)
              .addFirst(verb);
            x.initNodeTree;
    };

    s.latency = 0.3; // increase this if you get "late" messages
};
);

```

---

<div class="post-metadata">

**Author:** ![cleary](https://uzu.lurk.org/user_avatar/uzu.lurk.org/cleary/32/177_2.png) [@cleary](https://uzu.lurk.org/u/cleary)\
**Post date:** [24 March 2025 22:36 UTC](https://uzu.lurk.org/t/help-error-messages-when-installing-mi-ugens/5617/4 "2025-03-24T22:36:47Z")

</div>

Ok, there's a whole lot of mistakes in there that I can see at a first glance:

1. Line 15 - wrong load function, requires double backslash for windows (it's a highlighted tip in the docs), and it has an extraneous backslash at the end of the path

```haskell
~dirt.load("C:\Program Files\SuperCollider-3.12.1\synthdefs\mi-ugens.scd\");

```

should be

```haskell
load("C:\\Program Files\\SuperCollider-3.12.1\\synthdefs\\mi-ugens.scd");

```

1. Path you've put the mi-ugens.scd file is different to the docs  
This may or may not be an issue, but the file needs to exist at the path you've defined.  
The docs recommends:

```haskell
C:\Users\<youruser>\AppData\Local\SuperCollider\synthdefs\mi-ugens.scd

```

Let's start with getting these two right for starters and see how it goes

---

<div class="post-metadata">

**Author:** ![AilaKri](https://uzu.lurk.org/user_avatar/uzu.lurk.org/ailakri/32/3094_2.png) [@AilaKri](https://uzu.lurk.org/u/AilaKri)\
**Post date:** [25 March 2025 08:54 UTC](https://uzu.lurk.org/t/help-error-messages-when-installing-mi-ugens/5617/5 "2025-03-25T08:54:37Z")

</div>

Hi again:)  
New startup file after changes-\>

```haskell
(
s.reboot { // server options are only updated on reboot
    // configure the sound server: here you could add hardware specific options
    // see http://doc.sccode.org/Classes/ServerOptions.html
    s.options.numBuffers = 1024 * 256; // increase this if you need to load more samples
    s.options.memSize = 8192 * 32; // increase this if you get "alloc failed" messages
    s.options.numWireBufs = 64; // increase this if you get "exceeded number of interconnect buffers" messages
    s.options.maxNodes = 1024 * 32; // increase this if you are getting drop outs and the message "too many nodes"
    s.options.numOutputBusChannels = 2; // set this to your hardware output channel size, if necessary
    s.options.numInputBusChannels = 2; // set this to your hardware output channel size, if necessary
    // boot the server and start SuperDirt
    s.waitForBoot {
        ~dirt = SuperDirt(2, s); // two output channels, increase if you want to pan across more channels
		//"C:\Users\kostp\Desktop\Samples"
		~dirt.load("C:\\Users\\kostp\\AppData\\Local\\SuperCollider\\synthdefs\\mi-ugens.scd");
        ~dirt.loadSoundFiles("/users/kostp/Desktop/Samples/*");
        // s.sync; // optionally: wait for samples to be read
        ~dirt.start(57120, 0 ! 12); // start listening on port 57120, create two busses each sending audio to channel 0

        // optional, needed for convenient access from sclang:
        (
            ~d1 = ~dirt.orbits[0]; ~d2 = ~dirt.orbits[1]; ~d3 = ~dirt.orbits[2];
            ~d4 = ~dirt.orbits[3]; ~d5 = ~dirt.orbits[4]; ~d6 = ~dirt.orbits[5];
            ~d7 = ~dirt.orbits[6]; ~d8 = ~dirt.orbits[7]; ~d9 = ~dirt.orbits[8];
            ~d10 = ~dirt.orbits[9]; ~d11 = ~dirt.orbits[10]; ~d12 = ~dirt.orbits[11];
			 ~dirt.orbits.do { |x|
            var clouds = GlobalDirtEffect(\global_mi_clouds, [\cloudspitch, \cloudspos, \cloudssize, \cloudsdens, \cloudstex, \cloudswet, \cloudsgain, \cloudsspread, \cloudsrvb, \cloudsfb, \cloudsfreeze, \cloudsmode, \cloudslofi]);
            var verb = GlobalDirtEffect(\global_mi_verb, [\verbwet, \verbtime, \verbdamp, \verbhp, \verbfreeze, \verbdiff, \verbgain];
        );
				            x.globalEffects = x.globalEffects
              .addFirst(clouds)
              .addFirst(verb);
            x.initNodeTree;
    };

    s.latency = 0.3; // increase this if you get "late" messages
};
);

```

This seems to have solved some of the problem. however i still get this error message

```haskell
compiling class library...
	Found 853 primitives.
	Compiling directory 'C:\Users\AppData\Local\SuperCollider\SCClassLibrary'
	Compiling directory 'C:\ProgramData\SuperCollider\Extensions'
	Compiling directory 'C:\Users\kostp\AppData\Local\SuperCollider\Extensions'
	Compiling directory 'C:\Users\kostp\AppData\Local\SuperCollider\downloaded-quarks\Vowel'
	Compiling directory 'C:\Users\kostp\AppData\Local\SuperCollider\downloaded-quarks\Dirt-Samples'
	Compiling directory 'C:\Users\kostp\AppData\Local\SuperCollider\downloaded-quarks\SuperDirt'
	numentries = 1291801 / 20048200 = 0.064
	5900 method selectors, 3398 classes
	method table size 21137568 bytes, big table size 160385600
	Number of Symbols 15120
	Byte Code Size 447242
	compiled 567 files in 0.32 seconds

Info: 2 methods are currently overwritten by extensions. To see which, execute:
MethodOverride.printAll

compile done
localhost : setting clientID to 0.
internal : setting clientID to 0.
Class tree inited in 0.01 seconds
ERROR: Parse error
  in interpreted text
  line 38 char 1:

  };
  ^
  ); 
-----------------------------------
opening bracket was a '(', but found a '}'
  in interpreted text line 38 char 1
ERROR: syntax error, unexpected BADTOKEN, expecting DOTDOT or ':' or ',' or ')'
  in interpreted text
  line 38 char 1:

  };
  ^
  ); 
-----------------------------------
ERROR: Command line parse failed

```

---

<div class="post-metadata">

**Author:** ![julian](https://uzu.lurk.org/user_avatar/uzu.lurk.org/julian/32/1398_2.png) [@julian](https://uzu.lurk.org/u/julian)\
**Post date:** [25 March 2025 15:31 UTC](https://uzu.lurk.org/t/help-error-messages-when-installing-mi-ugens/5617/6 "2025-03-25T15:31:43Z")

</div>

you should always use `standardizePath` to automatically adjust paths depending on the OS.

---

<div class="post-metadata">

**Author:** ![julian](https://uzu.lurk.org/user_avatar/uzu.lurk.org/julian/32/1398_2.png) [@julian](https://uzu.lurk.org/u/julian)\
**Post date:** [25 March 2025 15:32 UTC](https://uzu.lurk.org/t/help-error-messages-when-installing-mi-ugens/5617/7 "2025-03-25T15:32:34Z")

</div>

probably a non-matching parentheses in the mi-ugen.scd?

---

<div class="post-metadata">

**Author:** ![AilaKri](https://uzu.lurk.org/user_avatar/uzu.lurk.org/ailakri/32/3094_2.png) [@AilaKri](https://uzu.lurk.org/u/AilaKri)\
**Post date:** [25 March 2025 20:16 UTC](https://uzu.lurk.org/t/help-error-messages-when-installing-mi-ugens/5617/8 "2025-03-25T20:16:52Z")

</div>

Can you elaborate? i'm still quite new to this.

---

<div class="post-metadata">

**Author:** ![julian](https://uzu.lurk.org/user_avatar/uzu.lurk.org/julian/32/1398_2.png) [@julian](https://uzu.lurk.org/u/julian)\
**Post date:** [25 March 2025 20:51 UTC](https://uzu.lurk.org/t/help-error-messages-when-installing-mi-ugens/5617/9 "2025-03-25T20:51:35Z")

</div>

The file in the MI-UGens seems to be a little roughly written. I haven't seen it, so I only guess.  
When you open the startup file and select all, hit cmd-ender, you can check if the same error occurs. Then it is in that file. You can try and balance the brackets so everything comes in pairs. Then it should work …

---

<div class="post-metadata">

**Author:** ![cleary](https://uzu.lurk.org/user_avatar/uzu.lurk.org/cleary/32/177_2.png) [@cleary](https://uzu.lurk.org/u/cleary)\
**Post date:** [31 March 2025 22:08 UTC](https://uzu.lurk.org/t/help-error-messages-when-installing-mi-ugens/5617/10 "2025-03-31T22:08:34Z")

</div>

The mi-ugens.scd file is standard and well tested:  
[https://raw.githubusercontent.com/cleary/ansible-tidalcycles-synth-mi-ugens/master/files/mutable-instruments-synthdefs.scd](https://raw.githubusercontent.com/cleary/ansible-tidalcycles-synth-mi-ugens/master/files/mutable-instruments-synthdefs.scd)

It may depend on how that file was copied to @AilaKri 's machine though - if it was not copied completely it may be missing a parentheses or matching brackets etc
