amp = 0.06;
freq = 2;
decay = 3;
time_max = 3;
n = 0;
if (numKeys > 0){
n = nearestKey(time).index;
if (key(n).time > time){
n--;
}
}

if (n == 0){
t = 0;
} else {
t = time - key(n).time;
}
if (n > 0 && t < time_max){
v = velocityAtTime(key(n).time -
thisComp.frameDuration/10);
// Ease-out factor from 1 to 0 over
time_max
easeFactor = easeOut(t, 0,
time_max, 1, 0);

value + v * amp * Math.sin(freq*t *
2 * Math.PI) / Math.exp(decay*t) *
easeFactor;
}else {
value;
}