Saturation Models (Neve, Tweaker, Oxford Inflator) in FAUST
-
Here's my attempt at different saturation models in faust. Have fun!
I'm hoping WAVES, KUSH and UAD won't have me whacked for sharing these.
Feel free to add gain correctionimport("stdfaust.lib"); drive_twk = hslider("TWK",0,0,1,0.001); drive_neve = hslider("Neve",0,0,1,0.001); inflate = hslider("Inflate",0,0,1,0.001); gain = hslider("Gain",1,0,2,0.001); // Neve neve(x) =x + 0.04 * ma.tanh(x*40); // Tweaker twk(x) = x*2/(1+abs(x*2)); // Oxford Inflator oxford(x) = sin(ma.PI/2*sin(ma.PI * 2 * x)) * inflate + sin(ma.PI * 2 * x) * (1 - inflate); saturator = ef.dryWetMixerConstantPower(drive_twk,twk) : ef.dryWetMixerConstantPower(drive_neve,neve) : ef.dryWetMixerConstantPower(inflate,oxford) * gain; process = saturator,saturator;
-
@Morphoice how did you arrive at these values/algorithms?
-
The Inflator yes, is a completely a linear transfer function, split into 3 bands.
You can create programs to measure and derive the transfer functions.