If you send a new message to the [line] or [line~] object while it is active, it will use its current position x as a starting point for a new line with the newly given time n. This means that the total elapsed time will be x + n. Now I'm trying to make a patch where the total elapsed is just n, the newly selected time value. This would be useful ie. for changing tempo live, rather than waiting until [line] has finished before starting a new cycle.

Here is a prototype that works by sending a new value of n - x to [line].

However, this only works for one iteration. If you select a second or third new time value, the total elapsed time will be off.

I'm afraid that this problem stretches my maths brain further than it will go. Can anyone work out how to get it to work for n iterations, so that if you drag the new time value, [line] will always update? Or has this been solved already in a different way?