It seems we have to really carefully test this new implementation.
There is a subtle error here:
t = Steno.push(2);
t.quelle(\i, { Impulse.ar(3) });
t.filter(\f, { |in, controls| RLPF.ar(in, Rand(4000, 8000), 0.01) });
t.filter(\d, { |in, controls| DelayL.ar(in, 0.2, SinOsc.kr(0.3, Rand(0, 2pi)).range(0, 0.2)) });
// all these are ok
-- i
-- if
-- if if
-- i[f f]
-- i[f f]d
-- i[f df]
-- i[f fd]
// but these are wrong (both signals go through the same delay)
-- i[fd fd]
-- i[(fd)(fd)]
It seems we have to really carefully test this new implementation.
There is a subtle error here:
The structure is this (correct):
but somehow the signal flow doesn't follow it correctly.
The dumped node tree is: