How to smoothly 'Ease-out' and 'Ease-in' between values?

I’d like to do a really slow zoom in, but not sure how to do this without there being a visible step when the zoom begins and ends. (In CSS terms this would be a cubic bezier.) I was hoping that smoothing would take care of this this but no joy so far. Thanks for any advice.

If you inspect the slider, you can add smoothing, this a time delay. Or you can create a num FX - and create a bezier look up curve. Or you use both :-)

1 Like

Thanks - I’ll give that a try. What I’d really like is a generic ‘strong damping’ option for parameter changes as that would work on any starting and stopping values. As I understand it a look-up curve would successfully ease-out of 0% and into 100% but I’d still see a visible beginning and ending to the zoom if I went from 40% to 60%.

Any thoughts on how to damp value changes? Math-wise this would probably be a moving average of the value over the last n milliseconds.

Sounds like it’s the smoothing that you are after.

Smoothing does a good job of interpolating values and adding intermediate steps that delay the end result, but even with lots of smoothing default transforms like zoom and x, y position begin with a jolt. Maybe I can adjust the scale of the slider so I begin the zoom by seeking to a position that’s barely different from the initial.

I’ve done a big post over on the facebook group all about easing. Check it out!


Wow, thanks. I’ll give it a try ASAP.

could you share it with us in this forum? I avoid Facebook as much as I can. Thanks :slight_smile:

Thanks. I’m going to try and get a little time and put it together as a blog post soon

Hi Colin,

Hi Colin, I’ve had a chance to experiment with your quartz composer plugin and it’ll be very useful but as far as I can tell it won’t actually help with my particular application. I’m trying to replicate the effect of a fluid-head video camera tripod and smoothly pan around and zoom into an image by adjusting X, Y, and Z sliders. ( The output should have no sudden steps at all. So what I’m after is essentially continual ‘damping’ of parameter changes i.e. all sudden (high frequency) changes are lost. I’d call it smoothing but VDMX already uses that term for interpolation.

As far as implementation goes, I picture the following: a function that receives slider values and uses their arrival time to calculate and output a ‘trailing average’ of recent values over some time period n. i.e: when the slider changes, it outputs the average value the slider has had over the last n milliseconds. (If there have been no updated values in that period, then it assumes it had the last known value for that entire period.) The function would need to keep outputting values until the period n is over (every 0.2 second?), i.e. we’ve reached the target value.

I think this would naturally output the Ease-In/Out Bezier effects I’m after. And importantly it would work as expected if the user is continually moving the slider, trying to place the camera precisely.

The value n would come from a second slider. If n is 0, then the value is not damped, and if it’s 4000, then values over the last 4 seconds would be averaged, which would be heavily damped.

I’m new to VDMX but I suspect this could be done just with num FX, or would this be best done in Quartz Composer too?