jamoma / JamomaCore

Jamoma Frameworks for Audio and Control Structure
Other
36 stars 14 forks source link

TTCrossFadeOutFunction.test.cpp is not correct #205

Closed Nilson closed 10 years ago

Nilson commented 10 years ago

I don't understand the difference between TTCrossFadeOutFunction.test.cpp and TTCrossFadeInFunction.test.cpp right now, both functions are expected: input 0.0 -> output 0.0 input 1.0 -> output 1.0

I would have expected that the CrossFadeOut function would output the opposite of CrossFadeIn function, no?

lossius commented 10 years ago

Hi,

Functions in FunctionLib always ramp from 0 to 1. So the 0 to 1 is to be understood as a normalised range with 0 being point of departure and 1 being the target. In any object making use of the FunctionLib, input values are scaled to the 0-1 range before being passed to the function, and returned values are scaled to the desired range upon return.

I could add an explanation of this in doxygen documentation, but I'm not sure where would be the better place for it?

Best, Trond

Nilson commented 10 years ago

is the TTCrossFadeOutFunction in some external used (besides j.function~) ? I am still not convinced that the implementation is fully correct.

lossius commented 10 years ago

Sure, the most important use of FunctionLib is with j.parameter. Here's an example of crossfading in Jamoma 0.5.7:

https://gist.github.com/lossius/9088296

As DataspaceLib + RampLib + FunctionLib integration is not yet fully implemented for Jamoma 0.6 it doesn't work there yet.

This demoes that it works and how it can be used. I implemented this (and used it extensively) for stage productions in 2011-2012