Keyframes Won't Move Up And Down After Zooming In On Keyframe Values

Shotcut version 21.05.01

After applying a filter with keyframes with curves and pressing the Zoom Keyframe Values button, keyframes will only move horizontally not vertically.

Demo.

In the demo, I first apply the Brightness filter without pressing the Zoom Keyframe Values button to show keyframes move fine then I reapply the filter but this time pressing the Zoom button first. I try to move the keyframe up and down and it won’t. I then move the value manually in the parameter itself on each keyframe I have set to show that even though the value is being changed the keyframe isn’t moving up or down. I then move the keyframes left and right to show that they only move in that direction. Finally, I end it by once again moving the value in the parameter itself on each keyframe to show that it still doesn’t make them move up and down.

This is expected behavior. The zoom button zooms to the range of the largest and smallest values in your keyframes. When you zoom with only a single keyframe, then the largest and smallest values are the same - so the maximum == the minimum and there is no range to drag across. The scale on the left side of the graph changes to remove the max and min values. I did that hoping to show that there is no range. Can you suggest a different way to illustrate that you are zoomed in on a single value?

Or maybe the zoom button should be disabled when there is only one keyframe. But that would still not help if the largest and smallest values are the same (all keyframes set to the same value).

It is OK if you also suggest alternative zoom ranges or configurable zoom ranges, but I do not volunteer to make those changes at this time.

Maybe I misunderstood the use of the Zoom Keyframe Values button. Is it meant to be used after setting more than one keyframe then changing their values? In my demo I set two keyframes each time before doing anything. There isn’t just one keyframe I’m working with. I set two then I try to move them around.

You set two, but they have the same value. Both keyframes have a value of 1.0. So what is the “range” to zoom to?

The zoom is designed to zoom to the range between the lowest and highest keyframe value. So if there are two keyframes, but they have the same value, there is no range.

My expectation was that as you are updating the values the range would open up in a way. So I just misunderstood how it was used.

The only thing is wouldn’t it make sense to also lock the values in the parameters to match whatever range is locked in after zooming in? That way you don’t go past the value it is locked in just like how it limits the movement in the actual keyframe graphic? That way the parameters match with the up and down keyframe range? Or maybe that’s just to complicated to code?

Okay, so I did a little test and I see that in another situation it has a behavior that is what I am expecting in the above scenario where there is no range set.

Demo.

After changing the value before zooming in and creating a range, I zoom in then use the parameter to change the values to go beyond the range that is zoomed into and the keyframe follows by going beyond the zoomed in range. That’s in a way the behavior that is expected. In the above if you change the value the keyframe doesn’t move. Even if it’s no range it would still make sense to have the keyframe go beyond it’s zoom range to show something is happening rather than nothing at all and give the impression that something is broken.

1 Like

:+1:

I have bookmarked this thread to see if I can improve this some day.

1 Like

This behavior is fixed for the next release. Now, the zoomed range updates dynamically as the parameter is modified in the filter panel.

1 Like

Nice. This behavior makes sense. I found one issue that maybe could be modified. If you introduce a new keyframe in the parameter that expands the range then delete that keyframe, the range doesn’t update to reflect that deleted keyframe. Demo.

This is fixed for the next release.