Weird issue whens etting mul zero

I filled an array with 32 feedback sine osc’s , the feedback is controlled by an LFNoise0 , the mul of the lfo noise defines the amount of feedback , thus turning the sin into a sawosh knd of shape .
All works well , except when the LFO noise mul: is set to zero , then supercollider gives an error
Failure in server ,new synthdef not found
I think the !2 has something to do with it , when processing it mono it works .
Also , there is are obvious discontiniuities in the sound w (when LFnoise mul is not zero )

(
{
	Array.fill(32,{SinOscFB.ar(220+(220.rand),feedback:LFNoise0.ar(1,mul:1,add:0.5))})*1/32!2;/////turn LFNoise mul: to zero 
}.play
)

When creating an arg for the LFO noise mul and set it to zero , the issue disappears

(
{ arg noisemod=0;
	Array.fill(32,{SinOscFB.ar(220+220.rand,feedback:LFNoise0.ar(1,mul:noisemod,add:0.5))})*1/32!2;/////turn LFNoise mul: to zero 
}.play
)

Side note: “An error” is not really useful to post without error text (which error? … If readers have to guess then it’s harder to help).

Then: What is the result of LFNoise0.ar(...) * 0? The answer is known without calculating anything: it can only be 0. Therefore the LFNoise0 has no influence on the sound… therefore there is no need to calculate it at all (because you know its value will be suppressed)… therefore it can be deleted from the SynthDef.

So it is no longer an audio rate multiplication, but rather a scalar value 0.

I’m not sure why SinOscFB doesn’t like a scalar value for its feedback input (not at the computer now), but I’d like at least to assure you that it isn’t weird for SC to delete units whose output will be known to be disregarded.

Yes, because the argument value is not known in advance – so it is necessary to do the calculation, and SC doesn’t delete it.

I think, if you investigate the shape of the LFNoise0 output, you might see why discontinuities would be expected with it.

Last: Did you intend to mix down the 32 channels? Array.fill(...).sum – you have to write the mixdown operation explicitly, it’s not optional.

hjh

I used the Splay.ar

(
{
	y=Array.fill(16,{SinOscFB.ar(200+400.rand)});
	Splay.ar(y,2)*1/16;
	
	
	
}.play
)