[sdiy] BLIT/BLEP virtual analogue synthesis
Olivier Gillet
ol.gillet at gmail.com
Wed Aug 4 20:49:42 CEST 2010
> Low-pass-filtering might or might not be linear, but bandlimiting (aka
> brickwall filter) most certainly isn't. It is defined as an aperture
> function in the spectral domain which produces an infinite, non-causal
> impulse response in the time domain, so it isn't even realizable. That's
> what all the fuzz with window functions is about (and BLIT/BLEP also use
> them for their bandlimited waveforms).
Hmmm, how can this prevent it from being linear? It might be a
convolution by a non-causal, non-bounded support thing, but it's still
a convolution, isn't it?
> I've got a half-assed version of DPW implemented in an FPGA and I can
> certainly recommend it for the efficiency. It's half-assed because the
> amplitude scaling is currently done by shifting instead of division, leading
> to 6dB ripple. I probably won't implement it as a division (although a
> radix-4 divider or so in BRAM might possibly be fast enough), more likely a
> table-lookup followed by an iteration. If the amplitude update is close
> enough after the lookup and then converges to the true value over a few
> samples, I don't think anybody is going to hear that at 192kHz...
I'm curious about the FPGA bit, and can't help asking a very naive
question. If a FPGA was to be used for waveform generation, wouldn't
it make more sense to use it to render at a 10 MHz or 20 Mhz clock
rate the very naive things (phase_ < 0x800000 ? -32768 : 32767 for
square, etc...) like older sound chips did?
More information about the Synth-diy
mailing list