[sdiy] DCO Question
Gordonjcp
gordonjcp at gjcp.net
Thu Nov 2 17:40:24 CET 2017
On Thu, Nov 02, 2017 at 09:15:46AM -0700, Tim Ressel wrote:
> Ah, so if I am understanding polyBlep, one sacrifices waveform
> linearity i.e. spectral purity for jitter reduction. The last few
> samples get morphed so that the accumulator maxes out every cycle.
> In this case the saw wave will nose over a bit at the top. Another
> way of saying it is the fraction left at the top is amortized over a
> few samples. Since I am not trying to hit exact frequencies this
> should work nice and easy.
>
Actually no. You get a far better spectral purity using that because
you've removed all the aliased partials from above Nyquist (well, damn
near all of them).
Compare a naive saw sweep with a simple polyblep-antialiased equivalent
(warning: loud!):
http://gjcp.net/media/sweeps.ogg
> I don't want to calculate polynomials in floating point on the fly
> so I think I'll pre-calculate a table. Flash memory is cheaper than
> cycles.
You need to do one division, which you can precalculate when you set the
frequency, then the rest comes down to about four multiplies and three
additions. You can implement it on an Arduino if you've got your wits
about you.
--
Gordonjcp MM0YEQ
More information about the Synth-diy
mailing list