Isolating parts of nodeproxy

Starting with a bit of code

a = NodeProxy(s, \audio, 2);
a.play;
a.source = {SinOsc.ar(430, 0, 0.2)};
a[1] = \filter-> {|sig| Decimator.ar(sig, SinOsc.ar(0.3).range(100, 2000), 8)};
a[2] = \filter-> {|sig| sig*0.1;};

I know I can play “a.source” on a new NodeProxy. I know I can play the whole tree on a new NodeProxy with {a.ar}. But is there a way to play the NodeProxy from a[1] and exclude a[2] on the new NodeProxy?

Alright…presumably this isn’t possible, right?

I am not sure I understand your question correctly, but would this achieve what you are looking for?

a.set(\wet2, 0);

I don’t use NodeProxy roles as much, but I know that you can set this special wet parameter. From the NodeProxy roles help file, “Default controls are wet++index, where index is the slot of the proxy”

Bruno

Unfortunately, no… I’m looking to have a bunch of filters on a NodeProxy, but somehow take a “tap” out at an arbitrary point on the tree and have it available for other NodeProxies.

maybe use an array of NodeProxies, each routed to the next, instead? Could make a cool little class for this.

Very interesting idea! Thank you!

How about routing the signal throu an extra bus?

b = Bus.audio(s, 2);
a = NodeProxy(s, \audio, 2);
a.play;
a.source = {SinOsc.ar(430, 0, 0.2)};
a[1] = \filter-> {|sig|var out=Decimator.ar(sig, SinOsc.ar(0.3).range(100, 2000), 8);Out.ar(b,out);out};
a[2] = \filter-> {|sig| sig*0.1;};

c=NodeProxy.audio(s,2);
c.source = b;
c[1]= \filter->{|sig|sig*2};
c.play;