A stereo audio distortion plugin written in EEL2 for JSFX in the Reaper Digital Audio Workstation.
This project makes things sound bad, but in a good way. It relies on a handful of waveshaping algorithms to produce differing kinds of overdrive and distortion. The harmonic ratios and the balance between even and odd harmonics varies by algorithm, with some sounding better on certain musical sources than others. There's no hard-and-fast rules here, so just use your ears.
The Input Rectification
control can lend itself to some neat octave-doubling effects too!
There are controls for Input
and Output
levels, along with a few other sliders:
There is also a drop-down selector box for selecting which waveshaper is active:
Each option in the drop-down has an associated slider to control it:
leaky-integrator
->Integrator Tc
soft-knee
->Soft-Clip Knee
cubic
->Cubic Harmonic Balance
warp
->Warp K Level
The Input Rectification
is always active and can be used in addition to the active waveshaper. It controls the amount by which the input signal is recified and can be set to 0.0
to disable it.
- Add a
Wet/Dry
control (Reaper has a per-effect global one already so this may be redundant) - Add oversampling + filtering to reduce aliasing artifacts
Status: This project is maintained but considered complete. Additional features are unlikely to be added.
To use this project, install it locally into your systems's /Reaper/Effects
folder. On Windows 10, JSFX effects are usually located in %appdata%\Reaper\Effects
. You may want to install it into another folder within that folder, such as %appdata%\Reaper\Effects\vulcu
.
This project uses the following algorithms for waveshaping and signal limiting:
1) soft clip alg: y[n] = (1.5*x[n]) - (0.5*x[n]^3);
2) leaky integrator alg: y[n] = ((1 - A) * x[n]) + (A * y[n - 1]);
3) soft knee clip alg: y[n] = x[n] / (K * abs(x[n]) + 1);
4) cubic soft clip alg: y[n] = (1.5 * threshold * HardClip(x[n])) -
((0.5 * HardClip(x[n])^3) / threshold);
5) warp alg: y[n] = (((x[n] * 1.5) - (0.5 * x[n]^3)) * (((2 * K) / (1 - K))
+ 1)) / ((abs((x[n] * 1.5) - (0.5 * x[n]^3))
* ((2 * K) / (1 - K))) + 1);
6) rectify alg: y[n] = ((1 - R) * softclip(x[n])) + (|softclip(x[n])| * R);
- Aarts, R.M., Larsen, E., and Schobben, D., 2002, 'Improving Perceived Bass and Reconstruction of High Frequencies for Band Limited Signals' Proc. 1st IEEE Benelux Workshop MPCA-2002, pp. 59-71
- Arora et al., 2006, 'Low Complexity Virtual Bass Enhancement Algorithm for Portable Multimedia Device' AES 29th International Conferance, Seoul, Korea, 2006 September 2-4
- Gerstle, B., 2009, 'Tunable Virtual Bass Enhancement', [ONLINE] http:rabbit.eng.miami.edu/students/ddickey/pics/Gerstle_Final_Project.pdf
- Yates, R. and Lyons, R., 2008, 'DC Blocker Algorithms' IEEE Signal Processing Magazine, March 2008, pp. 132-134
(C) 2017-2021, Winry R. Litwa-Vulcu