1.First I split the 0 to 1 domain (which is based on the 0 to 1 slider that controls everything) into the amount of curves (3 here) so that you end up with a domain for each curve. 0 to 0,333 for the first curve, 0,333 to 0,666 for the second and 0,666 to 1 for the last. These are the start domains to remap the 0 to 1 slider.

So if you remap 0 with a start domain of 0 to 0,333 onto 0 to1, you get 0 as a result. But if you remap 0 from 0,333 to 0,666 onto 0 to 1 you end up with -1. Think of it in this way: The number 0 which we input has a difference of -0,333 from our start domain. And the length of the start domain is 0,333 (0,666-0,333 = 0,333). So that means if we remap this onto the end domain with a length of 1 (1-0 = 1) we would end up with -1. For the 0,666 to 1 domain this becomes -2, since the number 0 has a difference of 2 times the length of the domain, this becomes two times the length of the end domain in difference as well.

The opposite happens when changing the slider towards 1. 0,666 on the slider becomes 2 when you remap from 0 to 0,333 onto 0 to 1. And so on.

2.The TweenCrv command needs an input between 0 and 1. So if you input -1 for one curve, it ends up skipping that curve (that’s what happens in the first definition I posted, you only see the curve when the output of the remap component is between 0 and 1. That’s why i use dispatch to replace all numbers that are smaller than 0 with a 0 and replace all numbers that are bigger than 1 with 1.