Andrew; Thanks for the help here. I think I get it, that the basic problem here is
that the swapped UGens don't retain their connections.
Yes. And I feel that's counter-intuitive. When I'd say "I'm assigning Mike to Tom's spot" and Tom would have been charged with tending the fire I'd then expect Mike to tend the fire from there on. As it is assignment as it relates to UGens has some of the expected effects (like disconnecting UGens without references) and lacks others that I feel should be logical, without options to remedy this easily without extensive planning ahead.
I see where the problem is for livecoding, too, although I'm just wanting to make classes that can be used for more than one thing.
IMHO there is a strong correlation between the two. Versatile, powerful and easy to grasp UGens should be good for education, for composition, for DIY instruments and for livecoding. All of those areas have their own specific demands but I feel this issue can be linked to all of those. I still feel that the link between the UGen graph and the code could be extended.
I think the solution (for me) will be to just subclass my GenX class to replace g with a Gen9. That way I can set it up with minimal code at the top of my program, while allowing more flexibility with a single public class. Thanks again,
Happy to have been helpful, Kas.