In other news, I just now realized that it would be a lot easier, when making those block diagrams, to draw the lines BEFORE drawing the blocks, so I don't have to draw pixel perfect lines.
class Smoother extends VolatileDevice{
private Device signal,controller;
private double value;
Smoother(double v){value=v;}
protected void prepareSources(){signal.prepare();controller.prepare();}
protected long recalculate(){
double ctrl=controller.getValue();
double input=signal.getValue();
value+=ctrl*(input-value);
return value;
}
}