SC: SynthDef().add doesn't like FluidStats?

It seems that trying to .add a SynthDef with a FluidStats instance throws an error (one I haven’t seen before):

// this:
SynthDef(\test,{
	var sig = SinOsc.ar();
	FluidStats.kr(sig,20);
}).add

// throws:
ERROR: source: Not an Array of OutputProxy(s)

// while this:
SynthDef(\test,{
	var sig = SinOsc.ar();
	FluidStats.kr(sig,20);
}).send // also .play

// or this:
{ FluidStats.kr(SinOsc.ar(),20) }.play

// seems to work without issue...

I can post more of the error message if needed, but perhaps someone here has a clue? :slight_smile:

1 Like

the tl;dr is that it looks like my attempts to structure FluidStats’ output channels as an array of arrays breaks stuff for synthdefs :sob:

If you want to fix this quickly so you can get on with your day, change line 33 of FluidStats.sc from

 ^channels.reshape(2,numChans);

to just

^channels; 

Meanwhile, I’ll put my head together with @tedmoore and see what breakage that change might cause.

2 Likes

It looks like I’m going to take an Ndef approach in my project after all, but thanks for the quick fix (and the quick reply)! Would be great if I could send this sucker to the SynthDescLib eventually - I could imagine using instances within Patterns at some point, for example!

1 Like

Turns out that if I move the Array.reshape out of init to the return of .kr, everything is happy with SynthDefs again.

So it looks like maybe we can have nice things :smile:

2 Likes

You’re a hero!