
FORMULA SHAPER
--------------

Waveshaper based on a custom parametric formula y = f(x,a,b).

For the supported functions and synthax, please see GUI / Function Plotter inline doc.

The module adopts a look-up table (LUT) of 2048 points, which gets initialized with the provided parametric formula, where the X axis corresponds to the input signal level and the Y axis to the output level.

Parameters A and B can be specified freely with the apposite pins, and their value can be referenced in the formula as 'a' or 'b'.

This module offers two convenient operation modes, depending on the (hidden) Symmetric pin setting:

-Symmetric (default): the formula is computed for x ranging from 0 to 1, corresponding to an ABSOLUTE input level ranging from 0 to +10 volts (endpoints INCLUDED). Negative input values will be symmetrically mapped using the same function, but NEGATED.

-Signed (non Symmetric): the formula is computed for x ranging from -1 to 1, corresponding to a SIGNED input level ranging from -10 to +10 volts (endpoints INCLUDED).

Output (Y) ranges from -1 (-10V) to +1 (+10V), and any higher value will be clipped.
Input values (X) exceeding +/- 10V will be clipped aswell.


HINT:
-----
You may connect a properly configured Function Plotter thru a Patch Memory String for visually displaying the formula used.


NOTE: ALIASING
--------------
Waveshaping as well as clipping and distortion are processes prone to generate aliasing. At present there is not any easy way to prevent that other than oversampling.


WARNING: DO NOT MODULATE PINS !
-------------------------------
This module adopts a special ED feature, for which, even when used polyphonically, a unique shared LUT memory will be used, and the formula will be parsed just once for all clones: this prevents unnecessary CPU and RAM wastage. Any attempt to drive the module with polyphonic parameters (i.e Formula, A or B) will be rejected, and the values received by the first voice will be used for every voice.
Despite that, formula parsing is still a CPU demanding process. Therefore, A, B and Formula pins MUST NOT BE MODULATED by any creative means. If you really need a shaper / clipper / distorcer with modulatable parameters, either use ED Soft Clip, ED Sine Shaper or wire up your custom shaping function explicitely using audio math modules.



