The (InBe)Tweener is thea heart of the TauCeti preset engine. With the Tweener you can create smooth transitions between different parameter states on the fly without the need of the preset system.
Absolute tween
The Absolute tween interpolates in a fixed ammount of time, ignoring the difference in values. This can be used to for one time events like fading in a movie or transition. Use the following syntax:
op('tweener').AbsoluteTween(parameter, endvalue, time)
The standart interpolationmethod is an S-Curve. But you can choose between different modes by setting the curve parameter.
op('tweener').AbsoluteTween(parameter, endvalue, time, curve = 'lin')
To check possible curves, edit or create new ones check the curves component inside the tweener. Possible examples are:
s, lin, sqr, root, custom1, custom2 and square
Relative tween
The relative tween takes a speed parameter instead of a fixed time. The transition between the values now depends on the difference of current and target value. This is usefull when using the Tweener to animate UI elements as canceling the animation and returning to the base value has the same speed.
The syntax is:
op('tweener').RelativeTween(parameter, endvalue, speed)
The standart interpolationmethod is an S-Curve. But you can choose between different modes by setting the curve parameter.
op('tweener').RelativeTween(parameter, endvalue, speed, curve = 'lin')
Advanced methods
The tweener functions are just a wrapper for a more complex function call. Instead of using the TweenFunctions you can also create a fade directly.
op('tweener').CreateFade(parameter, endvalue, time)
This is basicly the same as the absolute tween but offers aditional arguments:
id : The id will be returned when the fade finished. Use the Callbacks to handle the end of a fade.
mode: The target mode ofthe parameter. The standart is 'CONSTANT'. Alternative is 'EXPRESSION'. When the expression mode is used the given endvalue will be ignored and you have to give an expression value.
expression: When the mode is set to 'EXPRESSION' you also have to deliever a python expression as a target.
To fade to the value of chop you can use:
op('tweener').CreateFade(parameter, endvalue, time, mode = 'EXPRESSION', expression = "op('lfo1')[0]")
When you want to set the value of a parameter after a given time you can use the endsnap method.
op('tweener').CreateEndSnap(parameter, endvalue, time)
To stop a specific transition use the StopFade method
op('tweener').StopFade(parameter)
Or stop all fades with the StopAllFades method
op('tweener').StopAllFades()
You only need one tweener in your project. Just add a global op shortcut to acces the tweener from anywhere
can't is just use chops?
Yes you can. But building transitions with different values over different times in many places at the same time can get very cimplicated with a big footbrint.
Also, the moment you start to use easing CHOPs like Lag or Filter, you start to get everycooking chops, bringing down the performance in large scale.
The tweener only forces recooks of components when the value actually changes.
Last but not least, you can define the target values on the fly, thous making repsonsive system no problem at all.