This is probably one of those requests that sounds simpler to implement than they are, but it would be nice to have the option to use a scale of 0 to 1 to move through these. 0 = linear, 1 = exponential. 0 = easing in, 1 = easing out.

This would mean that the in + out option would not be available in this scenario, but that would be possible to math around in implementations. It would also bring about the option to animate the easings which would be fun!

The main purpose of this would be to neat up some nodes with separate curve modes and easings for 2d/3d/4d points which can look a bit excessive at the moment.

Comments

Magneson, do I understand

jstrecker's picture
Submitted by
Feature status:
Waiting for review by Team Vuo
»
Waiting for more information from reporter

Magneson, do I understand correctly that, as the input moves from 0 to 1, you'd like the curve type to change smoothly and gradually from Linear to Exponential / Easing In to Easing Out?

For Linear to Exponential — The formulas being used now include Linear = x, Quadratic = x^2, and Cubic = x^3. So my first thought is to make the new formula x^n, where n is a function of the input value. At 0, it would be x^1 (Linear). At 1, it would be x^10 or something like that. Would that work for you?

For Easing In to Easing Out — Easing In makes your outputs bunched up near the start time, while Easing Out makes them bunched up near the end time. Would halfway between Easing In and Easing Out be no easing (outputs are evenly spaced and not bunched up anywhere)?

Oh yes! That would be ideal!

MartinusMagneson's picture
Submitted by

Oh yes! That would be ideal!

Linear -> exponential sounds great (although the nerd in me would love exp f(x) = x^x however useless it would be (disregard this)).

I think I initially assumed the easing would bunch up at where the time was in not set to linear. For instance that it would bunch up at .3 if easing were sat to .3 (VuoCurveEasing_Middle = 0.5), but both makes sense though.

This is where it gets out of hand, but perhaps a 3x2 matrix of options for the in and out easing could work?

in linear out
in linear out

This way, if both are set to in, the whole duration is calculated with an in-easing. In-linear gives in-easing until the center duration then linear the rest of the way. In-out gives in-out, and out-in gives middle easing and so on. In theory this could be hidden from stuff like the curve node while providing the same function as it currently has through the Vuo_curve function while giving a few extra options for other nodes. I assume that is on a different level of nodes to re-code if implemented though (unless it gets its own call at the bottom of the if-nest in VuoCurve.c; VuoCurveEasing_damnUnappeasableUsers(...)).

Feature status

When we (Team Vuo) plan each release, we try to implement as many of the community's top-voted feature requests as we have time for. Vote your favorite features to the top! (How do Vuo feature requests work?)

  • Submitted to vuo.org
  • Waiting for review by Team Vuo
  • Open for community voting
  • Chosen to be implemented
  • Released