Hi stkr,
Well i really don't see how i could make this patch simpler, ok you can replace the cycle~ with the dc offset by a simple [phasor~ 0.4] if you want, this a just a source signal to vary the delay time from 0 to something...
The only weirdness in my patch is this [+~1.] before the delay amount to gen, you can put it away but then the difference between gen and [delay~], in the scope~, gets wider in that case. This is because the [delay~] is delaying one sample more than the value you give to it, while delay in gen is delaying the right amount of samples, and only 0. sample become 1. sample. (This is effectively a bit weird and it would be nice if this would be documented)
So, for int value of the delay time, gen and [delay~], give exactly the same result, the problem is that i cannot get the same result when using float signal values for the delay time.
The interpolation must be different, and i would love to know where the interpolation is wrong... in [delay] in gen or in [delay~]?
And it would be nice if cycling correct that so we can have at the same interpolation working on both... so we can transfer patches from msp to gen without stress. :-)
The reason to use delay~ instead of tapout~ is because i'm doing a formant shifting algorithm using delay times that are constantly moving down to zero: tapout~ cannot delay less than a vector size.
The max help is clear about what those delay object are doing:
[delay~] in msp: delay a signal by a certain amount of time specified in samples.
[delay] in gen: delay a signal by a certain amount of time specified in samples.
…so i don't get what you mean by apples and oranges.