<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><span class=""><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">About the waveshaping approach suggested by John: doesn't it introduce aliasing at high frequencies?<br>
</blockquote>
<br></span>
No.  This is an instance of wave-shaping removing harmonics from a waveform rather than adding them.<span class=""><br>
<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
What happens to the shape of the output if the input sawtooth is band-limited?<br>
</blockquote>
<br></span>
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.<br></blockquote><div><br></div><div>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.</div><div><br></div><div>Or if you apply the waveshapers to the naive sawtooth, you get good results, but your naive sawtooth is useless as such...</div><div><br></div><div>> 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.</div><div><br></div><div>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...</div></div><br></div></div>