Func Shaper - User Manual
Func Shaper - User Manual
Func Shaper - User Manual
1
The Input Section
Pre-Filter: This is a pair of first order highpass and lowpass filters which can be applied to the input
signal. The left handle controls the highpass cutoff, the right handle controls the lowpass cutoff and the
’On’ button switches the filter on (or off).
Drive: This controls the gain of the signal at the input of the waveshaping transfer function. The scaling
unit is decibels.
DC offset: Adds a DC offset to the signal. This makes the input signal drive different regions of the
transfer function. The DC is applied after the amplitude has been scaled via ’Drive’.
Oversampling: Nonlinear distortion creates harmonics, and when a harmonic so created is above half
the sample-rate, we will face the problem of aliasing (see
http://www.rs-met.com/documents/tutorials/DigitalSignals.pdf for some details on this subject). A means
of reducing the problems of aliasing is to run the signal processing algorithm on a higher sample-rate than
the target sample-rate. This is oversampling - the slider chooses, by which factor the plugin oversamples
the input before applying the actual waveshaper. Experiments indicate that a factor of 4 is a reasonable
value in most cases.
Dry/Wet: Adjusts the mix between the distorted (wet) and original input (dry) signal. Distortion is
most often used as an insert effect with 100 percent wet, but in some situations, it may be desirable to be
able to mix with the original signal.
2
Appendix: Function Reference
Arithmetic Operators
• +, -, *, /, ˆ: addition, subtraction, multiplication, division and raise-to-power operation (works only
for integer powers)
3
Comparison Functions:
• min(x,y,z,...), max(x,y,z,...): returns the value of the smallest or largest of the input arguments
• if(c,t,f): returns the value/result of ’t’ if ’c’ is nonzero, the value/result of ’f’ if ’c’ is zero
• below(x,y), above(x,y): below returns 1 for x < y, 0 otherwise, vice versa for above
Logical Functions:
Miscellaneous Functions:
• rescale(x, o1, o2, n1, n2): rescales a number x from the range o1...o2 to the range n1...n2
• poly(x, ...): evaluates the polynomial of x with polynomial coefficients given by the subsequent
parameters which are assumed to be in decreasing order (the leftmost coefficient is the multiplier for
the highest power of x, the rightmost coefficient is the constant term).
References
For deeper information on waveshaping, you might want to have a look at the article:
http://www.rs-met.com/documents/tutorials/Waveshaping.pdf
Credits
• Thanks to Brian A. Vanderburg II for the ExprEval C++ library which empowers the expression
evaluator engine used in this plugin. The project can be found on:
http://sourceforge.net/projects/expreval
• Thanks to Julian Storer for the JUCE framework, on which the graphical user interface (GUI) and
a lot of other things in this plugin are based. It can be found here:
http://www.rawmaterialsoftware.com/juce