If the time interval given amounts to let's say 64 samples, the target value is reached at sample index 63, that is, before the block boundary. To me that seems conceptually wrong.
i think you mean it should start with 0 and I agree
That is a consequence of a given time interval > 0.
If the given time interval is zero, it should start with 0. For a time interval equivalent to 1 sample, the output should look like 0 1 1 1 1 1 1 1 .....
Another way to see it is what happens if vline~ is used to drive tabread*~ . Of course it should start playing at sample index 0 of the table, not at index 1.
In fact, I found it so hard to work with vline~ (and line~) in a predictable and sample-accurate way that i resorted to biquad~ generated ramps in most of my patches.
how about rpole~ ?
true, it's the same, maybe slightly more efficient.
best, Thomas