16
preenfm2 and preenfm3 / Re: Non-linear waveshaping on the PreenFM2
« on: February 27, 2018, 03:17:17 AM »Enclosed is a quick example as a sysex file.
This uses ALG1, op1 set to 0Hz. The mod wheel is mapped to IM1, which will give an example of the timbral change. Also try changing both operators waveshape.
To get classic waveshaping, I would suggest making some user text wavetables of Chebyshev polynomials =>
https://en.wikipedia.org/wiki/Chebyshev_polynomials
https://courses.cs.washington.edu/courses/cse490s/11au/lectures/E-Non-linearSynthesis.pdf
from the pdf =>
Cheby0 = 1
Cheby1 = x
Cheby2 = 2x^2 - 1
Cheby3 = 4x^3 - 3x
Cheby4 = 8x^4 - 8x^2 + 1
Cheby5 = 16x^5 - 20x^3 + 5x
...
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 =>
https://www.jstor.org/stable/3680281?seq=1#page_scan_tab_contents
I found a Puredata patch that calculates Chebyshev Polynomials!
I first tried using the output of the array to quickly get 1024 plot points but it totally failed. The waveform represented in the GUI for the array isn't the same as the output. I did get a really awesome ramp waveform that I'm going to use.
Next, I recorded the each polynomial at 46.87hz to get exactly 1024 samples and the waveforms sound amazing! As you suspected the aliasing is greatly diminished. I'll post user waveform txt files tomorrow. In the meantime poke around the Pd file.
Credit for the Pd file goes to Simon2:
https://forum.pdpatchrepo.info/topic/4083/chebyshev-polynomials
Here's another great explanation of Chebyshev Polynomials just for reference:
http://sites.music.columbia.edu/cmc/MusicAndComputers/chapter4/04_06.php