If this comes across as negative or a rant, that is not the intention. I’m also not a programmer so bear that in mind.
It seems that a ‘presample’ is a concept used only when a UGen is an input to another UGen that requires one (or more than one). There have been lots of debates about how to do presamples correctly. Why don’t UGens that require presamples just have one or more extra arguments to define the presamples?
For example, K2A.ar(signal) needs to read signal’s presample so that it has something to start interpolating from. If K2A.ar always interpolated from 0, regardless of the input signal, this would cause problems in a minority of cases. But something like K2A.ar(signal, presample: 0.5) would surely solve that, with the ‘presample’ argument presumably defaulting to 0.
Possible reasons I’ve thought of:
- Things have always been this way
- Not enough demand for individual sample control in signals
- Would break compatibility with current implementations
- The complexity in writing/maintaining UGens would increase too much
Any perspective appreciated (: