Infinite Linear Oversampling

Description and examples

(13 Votes)
1.0 (Updated 8 years ago)
159.3kB
September 12, 2016
Reaktor 6

DESCRIPTION

This presents a way to anti-alias waveshapers which I found during summer 2015 and drafted using Reaktor.
It is linear oversampling but with an infinite factor so to say.
- Reduces aliasing dramatically,
- cpu is low, close to linear oversampling x2
- latency is half a sample delay.

There is a PDF attached which describes how I came to do this.
A more academic explanation has also been published during daFX 2016 in Brno and can be found here :
https://www.researchgate.net/publication/308020367_Reducing_The_Aliasing_Of_Nonlinear_Waveshaping_Using_Continuous-Time_Convolution

The zip file contains a PDF explanation, an atan core macro, a clipper core macro and a clipper again with another 4x oversampling round added on top (latency becomes 1 sample then).

I think it is rather simple to use and expand.
I use Wolfram Alpha quite intensively to get the integrals of the shapers I need.

COMMENTS  (12)

gabriel mulzer
6 years ago
great invention - still have to text this out, but I like the approach very much
Chris Howes
7 years ago
Actually 64-bit does a lot of good to a sine shaper, but not nearly as good for the atan
Chris Howes
7 years ago
In case anyone's interested, if you switch the core macro containing your code to be 64-bit it seems to get rid of the crackling. Not sure if it completely remove the problem, but certainly can't hear crackling anymore
Kostas Karamitas
8 years ago
The atan() staturator produces some glitches. Same thing happens with my own implemenation of tanh() and other sigmoids I tried to implement. I ported the exact same algorithms (taken from the paper) to Matlab code and they seem to work fine. I think the culprit here is the division in the differentiator combined with the approximations of Reaktor for functions such as sqrt(), log(), sinh() etc.. Anybody noticed the same or found a workaround for this issue?
joe king
8 years ago
I've been testing the clipperx4 core cell. Hopefully I've plugged this together correctly. Seems like some neg values cause glitches and in reaper they blow the gain limit. Mainly the min knob causes artifacts. My intuition seems to think that the clipping doesn't affect the sound that much. A triangle wave clipped seems to sound still like a triangle. Some odd spikes with the min value knob. Here is the ens I have created - https://www.dropbox.com/s/usc8e3843hla393/clipperx4-test3.ens?dl=0 .
joe king
8 years ago
My mistake, indeed. The .rcm files are dragged onto new core cells.
Efflam Le Bivic
8 years ago
hmm seems to work fine for me and others. You are importing them in a corecell not in primary right ?
joe king
8 years ago
I seem to have problems importing the macros. The .rcm files seem to fail to import. I got reaktor 6.03.
joe king
8 years ago
What is the sum of an infinite number of slices? Isn't it infinity?
joe king
8 years ago
What is 'infinite' in this context supposed to mean, if anything? You mean big? Quite big? Incredibly big?
Efflam Le Bivic
8 years ago
the atan input if too hot can make the exp math module in the integral of atan crack. Would need a fix. But what is important is the idea. You can rather easily con vert your favorite shapers to use this technique.
salamanderanagram
8 years ago
excited to see this, quite similar to something i've been trying to get working for a while now. glad you were able to crack it!
now