I’m not sure I’ve got the details exactly right, but I’d approach it like this:
n = nearestKey(time).index;
if (time > key(n).time) n--;
seedRandom(index,true);
if (n > 0){
curPos = key(1).value;
for (i = 2; i <= n; i++){
prevPos = curPos
curPos = random([200,150],[1650,650]);
if (length(prevPos,curPos) < 100)
curPos += [200,200];
}
curPos
}else
value