[sdiy] Approximating sine with plain integer math

Olivier Gillet ol.gillet at gmail.com
Thu Apr 7 22:02:01 CEST 2016


>
> About the waveshaping approach suggested by John: doesn't it introduce
>> aliasing at high frequencies?
>>
>
> No.  This is an instance of wave-shaping removing harmonics from a
> waveform rather than adding them.
>
> What happens to the shape of the output if the input sawtooth is
>> band-limited?
>>
>
> You get a messed up sinewave with ripples in it!  You have to start with
> the naive ramp straight out of the phase accumulator and then manipulate it
> to approximate your sinewave.
>

That was my point actually. If you try to emulate the architecture of an
analog saw-core VCO in which the sawtooth signal is further processed by
memory-less non-linearities to get the triangle and sine... You want all
your waveforms, including the sawtooth, to be good. So your sawtooth will
have to be band-limited, and the waveshaping will not work as planned.

Or if you apply the waveshapers to the naive sawtooth, you get good
results, but your naive sawtooth is useless as such...

> Olivier, have you read about the DPW differentiated-parabolic-wave method
of synthesising analogue waveforms with reduced aliasing?  The sine-like
waveform that the OP is generating has a 18dB spectral tilt so can play
quite high in pitch before you get much energy aliasing.  You can then
differentiate this to get a "reduced-aliasing" triangle wave, and
differentiate again to get a nice reduced-aliasing square wave.

Yes, though I found it less flexible than bleps and have yet to find a
context in which it is a good fit. The same idea applied to wavetables
("Higher Order Integrated Wavetable Synthesis") - I found this much more
useful...
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://synth-diy.org/pipermail/synth-diy/attachments/20160407/21116a30/attachment.htm>


More information about the Synth-diy mailing list