Why are almost all digital synthesis techniques based on analog approximations?

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

camsr wrote:If you guys could figure out how to remove the distortion from the bottom side of the bell, that would be great.
Basically, if you want to preserve the order, you probably want to move your zeroes down in frequency ie morph the filter into a shelf (ie change the Nyquist gain). You can do this using various constraints or heuristics and they all lead to slightly different trade-offs, but that's the general idea anyway. There's also at least one paper about just fitting a filter into the desired response but I can't seem to remember suitable search terms right now (and don't seem to have a local copy for the exact name of the paper; edit: I think I was thinking about "A Generalization of the Biquadratic Parametric Equalizer" by Knud Bank Christensen, edit2: not, actually that wasn't the one I think.. relevant anyway).

Alternatively if you don't care about preserving order (or well, don't mind some additional FIR work), then http://www.lce.hut.fi/~ssarkka/pub/eq-article.pdf basically works by band-limiting the analog filter in continuous time, such that you can then use impulse-invariant (or whatever) on it (without the aliasing you'd normally get).

Post

Ok, so yesterday I had a spark of enlightenment and realized that trying to fix BLT filters is pointless when you could start with something that's easier to fix. Then I did a bunch of Google searches and turns out someone else thought of it a few years back (saves the trouble of doing the math yourself):

http://www.aes.org/e-lib/browse.cfm?elib=14198

I have no idea why I wasn't aware of this previously, but you can't get much more simple and it beats pretty much everything I've tried so far (including whatever I hinted about earlier).

For those without AES access, the quick summary is to take Matched Z-transform of the poles (of a low-pass filter; see below), then figure out the difference between the original and the transformed all-pole at a bunch of fixed frequencies (namely DC, Nyquist/3, Nyquist*2/3). The MZT tends to have fairly large but smooth error (unlike BLT which is a mess) so we simply set (using closed form formulas) the zeroes to fix the magnitude response. The Nyquist response will still be off (although less than pure MZT), but rest of the response tends to match wonderfully.

If the analog filter has zeroes as well (eg bells, shelves), just take them into account when fitting the digital zeroes. If the analog zeroes have higher Q than the analog poles (eg parametric bell cut) it makes sense to design a reciprocal filter and invert (it's always minimum-phase anyway). Sounds like it couldn't possibly work, but that couldn't be further from the truth.

Post

This paper is available online (it seems to be provided by one of the paper authors so I think it's legal online copy).
Also there're interesting (imho) techniques (probably somewhat similar to MZTi) involving "Al-Alaoui Operator" and "α-Approximation" (there're several papers for these keywords).

Post

Max M. wrote:
This paper is available online (it seems to be provided by one of the paper authors so I think it's legal online copy).
Also there're interesting (imho) techniques (probably somewhat similar to MZTi) involving "Al-Alaoui Operator" and "α-Approximation" (there're several papers for these keywords).
Yeah, I knew about the alpha-approximation stuff. For what it's worth, I never managed to get anything very useable out of that stuff. There's also a 2011 AES paper with modified Al-Alaoui that is compared to MZTi (though apparently they get MZTi slightly wrong), but haven't actually investigated it much yet.

Anyway regarding MZTi: it took me about an hour (of actual work) from reading the paper to working implementation of lowpass and generic bell/shelf filters and considering how it performs (vs the effort required) I really wish I'd noticed it back when it was written. :P

Post

Somehow back to the OP's original question:

The scrooo implements Spectral Formant Synthesis and does not contain any filter at all (well, except for a DC blocker at the output, but this was designed without BLT or the likes :D). It rather "generates" up to three bell-shaped spectra (formants) at a fixed frequency or at a (not necessarily integer) multiple of the fundamental frequency.

However, as folks already have stated, this technique, too, is not "purely digital" but "purely maths", and one could also implement that with analog circuitry... :P

Cheers Björn

Post Reply

Return to “DSP and Plugin Development”