@orange Sorry I just saw this post.
This is a KSP function I used to smoothly go between 2 values. If I remember correctly the /1000 was because Kontakt can't handle floating point numbers so you might not need that. This doesn't have an S-shape though, I think you'll need to employ some trigonometry for that.
function ul.morph_2(value, x, y) -> return
return := (((1000 - value) * x) + (value * y)) / 1000
end function