To calculate your glide, just use a plain lossy integrator:
Code: Select all
memory += (input - memory) * coefficient
Code: Select all
coefficient = 1.0 - pow(0.1, 1.0 / (seconds * sample_rate))
So, say we want to reach within 90% in 1000 steps.
Code: Select all
coefficient = 1.0 - pow(1.0 - 90.0/100.0, 1.0 / 1000.0)
coefficient = 0.0022999361774466828055780571462377
Code: Select all
state = pow(1.0 - coefficient, steps)
state = pow(1.0 - 0.0022999361774466828055780571462377, 1000.0)
state = 0.10