Why is NodeProxy outputting on the wrong bus if In.kr(\out.ir) is used inside its function?

I have a surprisingly simple solution at least for the function frames arp loading. Needs more eyes/testing.

Iā€™ve written a modified NamedControl that properly handles this now. (I have posed the code in the development thread; itā€™s 180 lines as an extension with plenty of debugging messages, but the meat of it less.) The sad part is that it doesnā€™t fix JITLib because the way you generate \out relative to user code has those two lines swapped!!

	var out2 = NamedControl.kr(\out, 42); // user func
	var out1 = Control.names(\out).kr(123); // JITLib

So even my ā€œsuper smartā€ NamedControl that now loads all the stuff created by the other interfaces (args and Control.names), it doesnā€™t help with the ordering for this because you issue Control.names(\out) after the user function is evaluated. So you really also need to change JITLib to eat your own dogfood, i.e. use NamedControl to catch the references to those controls in the user-function under the same Control.

By the way, since my version of NamedControl also sees { arg out;. ...} generated controls as such, thereā€™s no need to try to ban out as an arg in the userā€™s function def anymore.