Forum index > Questions & tips

non-linear waveshaping

hi folks,

heres a great way to unleash some hidden power from the EssenceFM and this method also applies to some other FM synths [but not all]. the method is pretty straightforward, and i've enclosed an example voice as a starting point for programming/tutorial purposes. all thats required is to set an operator/oscillator to fixed mode at 0hz, which effectively turns it into a non-linear waveshaper [classic component of buchla/serge], and its waveform becomes the transfer function. i mentioned this on the PreenFM2 forum here

my original source for this is in section 5.6 in this great little SY Programming book by Herbert Janssen

also see this paper for all the classic refs
A Tutorial on Non-Linear Distortion or Waveshaping Synthesis
C. Roads
Computer Music Journal
Vol. 3, No. 2 (Jun., 1979), pp. 29-34

can be read online free

the example voice i've included has op1 set as a fixed 0hz shaper and op2 as the source waveform to be processed. theres also an LFO adjusting op2 amplitude so you can hear the effect straightaway. this voice could of course be an fm stack/alg into a shaper[s], or the shaper[s] could be positioned somewhere within an algorithm. other useful points of departure are adjusting op1 phase [rotating the transfer function], feedback amount and feedback source.

the EssenceFM also has the bonus of user waveforms, so you can make your own non-linear waveshaper transfer functions!

Thanks Dave !
thanks for bringing that up, dave, and collecting the ressources here!
the janssen paper is a classic, which i used on the sy99 (for which it was written, i think)

reminds me, that i wanted to recreate some chebyshev polynomials to use as waveshapers,
similar as applied in this recreation of the buchla 700:

btw, here is a utility for creating waveforms (or doubling as waveshapers)

hwk thanks for the waveform util link, not seen tht b4.

yes written for sy99, really helped me with my sy99 & tg77 programming, and beyond of course.

the buchla 700 looks great, just hope they make it available on osx / pc.
Colin Muir Dorward
Hi, this waveshaping ability is a little unintuitive for me. Maybe this thread can help folks like me to better grasp its potential.

To start, I'm trying to set up a "transparent" waveshaper. I think this should look like a saw wave, right? It seems I can get closest using the ESS saw wave, so I set that up with frequency zero. The modulator must then be set for very low output, but still, it's definitely adding harmonics.

Part of the problem may be that the ESS saw is not a pure saw, but I can't find a way to create perfect functions, am i missing something?

Any other suggestions on how I can achieve this?

Thanks for the links and hints above!