Why is it that, using lookup~ for waveshaping, that it is the sinewave shape that produces the least distorted version of the source signal? One would expect that mapping values of -1 to 1 onto a waveshaping function of -1 to 1 would do this (straight diagonal line bottom left to top right). But no, this produces a distorted signal. Can anyone explain why?
We fixed a bug for the next update where lookup~ was improperly mapping negative values. It sounds like this could be the source of your problem. You could use positive values and translate them with offset and scaling if you want to work around the bug for now.