I am currently using curve~ to populate a buffer~ in order to distort waveforms using lookup~. It works well enough, but is somewhat of a kluge.
What I'd really like is a transfer function that would operate directly on the waveform instead through a look-up table in a buffer~. Ideally I'd like a formula with variables (like the "curve" parameter in curve~) that I could change in real time to alter the resultant waveform in real time.
Ultimately I'd like to be able to produce sine type and s curve ("logarithmic" and "exponential") transfer functions. My math skills are not up to this, and also I'm not sure what would be the best way to implement it in MAX/MSP