[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