Users are complaining the the The `Speed Effect` panel is confusing,. so here's an attempt to simplify it, by adding an enum.There are many toggles and hidden values to control the speed effect.
So this patch proposes to simplify it, Andby adding an `enum` and making it more intuitive by drawing f-curves on the strips.
Before:
{F7843850}
After:
{F9775464,size=full}
**Enum Changes:**
- Convert bools to emun. It includes the four- The new enums correspond to 4 modes: `Stretch`, `Multiply`, `Frame Number` and `Length`.
- Added value controller for Multiply, Frame Number and Length. Stretch doesn't need one.- Except `Stretch` the other modes now has its respective control values.
**Drawing Changes:**
- F-curve drawing for Stretch, Multiply, Length and Frame Number.
- Value drawing when no keyframes for Stretch, Length and Frame Numbers.
General view of the new drawing for each speed effect mode:
{F9796642, size=full}
Multiply: drawDetail of the horizontal zero (blue) line at zero.in the new `Multiply` mode:
{F9798520, size=full}
To do:
- Versioning. Currently commented out and f-curve copying is also needed from the original one f-curve into the new f-curve holders. **Help needed. **Nice to have (but I don't know how):
- A function in sequencer_draw is copied from effects.c, it should be referenced instead, but how? **Help needed. **- Auto adjusting of endframe when using Multiply or Boost.
Nice to have(but I don't know how):---
- Auto adjusting of endframe when using Multiply or Boost.
**OLD STUFF FOR REFERENCE:**
Users are complaining the the Speed Effect panel is confusing, so here's an attempt to simplify it, by adding an enum.
Before(gif):
{F7843850}
The current functions are that confusing that I feel it is necessary to "spell" each one of them out:
Use Default Fade On - Was renamed to "Stretch to input strip length" in 2.8+ because the adjusts the speed so the first and last frame is the same no matter what the duration of the strip is. Default Fade makes no sense, imo. In the enum I would call it "Fit Duration" or "Stretch to Duration", but maybe it'll be too long? As the speed is relative to the duration of the clip the Multiplier has no meaning and should be disabled, imo. The tooltip could be changed to something along the lines of: "Stretch to input strip duration" or "Fit speed to input strip duration"(gif):
{F8488797}
The Use as Speed does exactly the same as the Multiply Speed setting, making the latter redundant, imo. It could be called "Speed" in the enum, and the value "Factor". In the tooltip "or remapping the frame number" should be removed. How the Use Speed is working(gif):
{F8488800}
When "Scale to Length" is selected the strip duration goes from 0%(first frame) to 100%(last frame), therefore doesn't it make sense to call the value "Frame Number" but should be called "Percentage" and the Value should be set to go from 0 to 100. "Scale to Length" is not very informative, and since it only works when animated, I would suggest something like "Animated Frame Percentage". "Multiply" has no function here either. How it is working(gif):
{F8488801}
The fourth setting, yes, there are four, is when "Scale to Length" is unselected, and behaves like the previous setting, but in frame numbers, so I would suggest calling this, in the enum, "Animated Frame Number" and "Frame Number" in the value.
The last two options could be one option in the enum, and then two radio buttons could be used to switch between Percentage and Frame Number.
I would suggest that the default setting is the Speed setting and a value of 1.
The values in the value widget, needs to be clamped like thisHow it is working(gif):
- When in Frame Number, then limit to number of frames of the current strip.
- When in Speed, limit to positive values.
- When in Scale limit to values between 0 and 1(or use a % scale of 1->100).
---------{F8488801}
Maybe this panel should be boiled down to an enum with:
- Stretch to Input Strip Duration(Length).
- Animated Speed Value(Use as Speed) - with auto adjusting of the strip endpoint. The speed value f-curve could be drawn as a 2 px wide line on the strip, with a relative max-point which is always drawn as the strip max point(if possible).
{F8403789}
- Animated Frame Number(Scale to Length) - which is assigning each frame a percentage(0 ->1 ), and that value can be animated.The fourth setting, The Frame Number(Percentage)yes, should be clamped to values between 0 and 1(or 0 and 100 and have a percentage label(better))there are four, and be drawn as a 2 px wide line on the strip.is when "Scale to Length" is unselected, Values below or equal to zero or above or equal to one should be drawn on strip as hold frames.
- Animated Frame Number(Scale to Length off) - will allow animating what frames to be drawn.
{F8403793}
The Speed Multiplier should be removedand behaves like the previous setting, because it doesn't add functionality or range already covered in the other functionsbut in frame numbers.