Hmmm, after testing I found that sadly the following will run (without errors) but won't "fly";
===============
SawOsc s => UGen patchpoint => dac;

second => now;

new LPF @=> patchpoint;

second => now;
========================


It seems that asignment to a UGen doesn't affect the Ugen-graph?



That sounds like the correct behaviour, as you only change the memory address 'patchpoint' is pointing to. The actual graph will know nothing of this event.

I was thinking of a class that achieves what you are aiming for: UGenRepatch - usage would look like:

UGenRepatch repatch;
repatch.ugen(LPF lpf);
repatch.addIn(SawOsc osc);
repatch.addOut(dac);

To setup the basic graph. After this you could repatch by saying:

repatch.ugen(HPF hpf);

Internally it would then unchuck the old LPF and place the HPF in the middle.

Obviously you could also write functions to remove/replace Ins or Outs from the central UGen.

This method adds yet another wrapper around the UGens, but might be worth it for the flexibility it provides.

-Tiemen