Confusion about how to manipulate NodeProxy[n]

When I enter:

~foo = NodeProxy.audio(s, 2);
~foo.source = { SinOsc.ar };
~foo.edit;

SuperCollider responds by opening a control window

however when I try to stack my NodeProxy:

~foo = NodeProxy.audio(s, 2);
~foo[0].source = { SinOsc.ar };
~foo[1].source = { SinOsc.ar };
~foo[1].edit;

It errors out:

ERROR: Message ‘edit’ not understood.

In fact, when I enter:

~foo = NodeProxy.audio(s, 2);
~foo.source = { SinOsc.ar };
~foo[0].edit;

It errors out the same way, in spite of (apparently) ~foo and ~foo[0]
referring to the same object. What gives?

Thanks

They don’t.

~foo = NodeProxy.audio(s, 2);
~foo.source = { SinOsc.ar };

~foo
-> NodeProxy.audio(localhost, 2)

~foo[0]
-> a Function

My understanding is that the editor applies to the NodeProxy level only, not to its children.

If you want separate editors, they need to be separate NodeProxies.

hjh