Problem is how to express. Cache would make it easy: no interface necessary - patch just retrieves the controller values. Alternatively, route them to code when they arrive. Hmm.. not much difference apart from requiring a cache. This seems acceptable, as most updates likely need a couple of values at once to recompute synth params.