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

DSP, Plugin and Host development discussion.
RELATED
PRODUCTS

Post

yeah i know right? :hihi:

no it really exists, i invented it. (as far as i'm aware...) i even posted about it in public a little while ago. i might do a plugin a little later.
Free plug-ins for Windows, MacOS and Linux. Xhip Synthesizer v8.0 and Xhip Effects Bundle v6.7.
The coder's credo: We believe our work is neither clever nor difficult; it is done because we thought it would be easy.
Work less; get more done.

Post

Robin from www.rs-met.com wrote:
mystran wrote: There's a bunch of paper on alternatives, but you should be warned that it gets "quite messy quite fast" as far as the math goes.
true. semi-recently, i dabbled with that stuff myself. i drafted a little papaer about how to prescribe the gain at 5 frequencies:

http://www.rs-met.com/documents/dsp/Dig ... ements.pdf
nice 'un :-)

Post

cheppner wrote:
Robin from www.rs-met.com wrote:
mystran wrote: There's a bunch of paper on alternatives, but you should be warned that it gets "quite messy quite fast" as far as the math goes.
true. semi-recently, i dabbled with that stuff myself. i drafted a little papaer about how to prescribe the gain at 5 frequencies:

http://www.rs-met.com/documents/dsp/Dig ... ements.pdf
nice 'un :-)
thanks. unfortunately, it does not always succeed. the function to drive to zero sometimes doesn't have any zero crossings in which case there is no solution. the same thing may happen for the other variant where i control derivatives of the magnitude response. however, if the requirements are reasonably non-pathological (which is often the case when they are derived from a magnitude-response of an analog filter), it works.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Robin from www.rs-met.com wrote:
cheppner wrote:
Robin from www.rs-met.com wrote:
mystran wrote: There's a bunch of paper on alternatives, but you should be warned that it gets "quite messy quite fast" as far as the math goes.
true. semi-recently, i dabbled with that stuff myself. i drafted a little papaer about how to prescribe the gain at 5 frequencies:

http://www.rs-met.com/documents/dsp/Dig ... ements.pdf
nice 'un :-)
thanks. unfortunately, it does not always succeed. the function to drive to zero sometimes doesn't have any zero crossings in which case there is no solution. the same thing may happen for the other variant where i control derivatives of the magnitude response. however, if the requirements are reasonably non-pathological (which is often the case when they are derived from a magnitude-response of an analog filter), it works.
This reminds me of how I tried to implement the Orlandis-trick at some point and ended up with a bell-filter that would work beautifully except when the gain was set to 0dB. Apparently flat response led to a divide by zero or something similar (never bothered to debug it; shortly after I came up with a far more simple method that gives me filters that I like a whole lot more).

Post

mystran wrote:This reminds me of how I tried to implement the Orlandis-trick at some point and ended up with a bell-filter that would work beautifully except when the gain was set to 0dB. Apparently flat response led to a divide by zero or something similar (never bothered to debug it;
yes, right. you just need to catch that as special case and use a "bypass" coefficient set in this case (b0 = 1, all others = 0). actually, the pole and zero coincide and cancel each other in this case, IIRC.
shortly after I came up with a far more simple method that gives me filters that I like a whole lot more).
now i'm curious.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Robin from www.rs-met.com wrote:
mystran wrote:This reminds me of how I tried to implement the Orlandis-trick at some point and ended up with a bell-filter that would work beautifully except when the gain was set to 0dB. Apparently flat response led to a divide by zero or something similar (never bothered to debug it;
yes, right. you just need to catch that as special case and use a "bypass" coefficient set in this case (b0 = 1, all others = 0). actually, the pole and zero coincide and cancel each other in this case, IIRC.
In theory yes. In practice, if you try to interpolate controls you get nasty cases where the gain is very close to 0dB but not quite enough to hit the special case. Then you need an epsilon threshold, and then you start ending up with clicks and so on. I could live with that, but whatever.
shortly after I came up with a far more simple method that gives me filters that I like a whole lot more).
now i'm curious.
Firstly, they aren't very scientifically accurate so if I told you what I do it would just make the engineer in you very uncomfortable. Secondly, I'm not going to describe the method until I manage to release at least one plugin that uses the resulting filters. ;)

Post

mystran wrote:In theory yes. In practice, if you try to interpolate controls you get nasty cases where the gain is very close to 0dB but not quite enough to hit the special case. Then you need an epsilon threshold, and then you start ending up with clicks and so on. I could live with that, but whatever.
fortunately, i don't have that problem in EasyQ, because i assume it to be used as set-and-forget equalizer (no time-variance and hence no parameter interpolation necessary in this case)
Firstly, they aren't very scientifically accurate so if I told you what I do it would just make the engineer in you very uncomfortable. Secondly, I'm not going to describe the method until I manage to release at least one plugin that uses the resulting filters. ;)
OK, fair enough. i was just curious because typically when you say that you like something, it's usually pretty cool stuff indeed.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Actually, Corona has plenty of unique algorithms and I recommend to check it out.

Here it is the list:

Add (the classic one).
Sub.
Mul.
And.
Or.
Xor.
Abs And.
Abs Or.
Abd Xor.
Pythag.
Mod Add.
Rotate.
Sync.
Ringmod.
PM/Broken PM.

Post

Speaking of filters, there's also http://goblin.elec.qmul.ac.uk/people/jo ... lisers.pdf
But the presented solution is not "nyquist prescribed" (the bandwidth remains constant but the bell shape becomes highly asymmetric when close to Fn).

Post

Max M. wrote:Speaking of filters, there's also http://goblin.elec.qmul.ac.uk/people/jo ... lisers.pdf
But the presented solution is not "nyquist prescribed" (the bandwidth remains constant but the bell shape becomes highly asymmetric when close to Fn).
Yeah, that paper basically ends up with the same old BLT filters, except this time without starting from analog prototypes and without using BLT.

While it might be interesting to study their approach in the derivation of the filters, the actual result is a bit pointless; if you want that sort of filter, it's less math to just use BLT. The problem is with the design constraints: they specify unity gain at Nyquist (for bells anyway) but that will always force you to the BLT design (well, assuming the other constraints are the usual), which is probably not what you want unless you're happy with the "nasty" shape. :)

ps: I personally think that Nyquist gain is really quite irrelevant; for HQ audio Nyquist is supposed to be above the upper limit of threshold anyway, so why would anyone care what's going on there (as long as it doesn't cause any obvious problems elsewhere). What's more interesting is the general shape.

Post

mystran wrote:What's more interesting is the general shape.
Exactly, I also believe the main point of interest is the "constant (and symmetric) shape" of the filter (regardless of Fc) and not the "analog matched" gain at Fn. But the symmetric shape of the bell/peaking filter would assume some non-unity gain at Fn as soon as Fc > 0.

Post

If you guys could figure out how to remove the distortion from the bottom side of the bell, that would be great.

Post

Max M. wrote:
mystran wrote:What's more interesting is the general shape.
Exactly, I also believe the main point of interest is the "constant (and symmetric) shape" of the filter (regardless of Fc) and not the "analog matched" gain at Fn. But the symmetric shape of the bell/peaking filter would assume some non-unity gain at Fn as soon as Fc > 0.
interestingly, orfanidis claims that: "The resulting digital filter matches the corresponding analog filter as much as possible, given that there are only five parameters to adjust." (at the bottom of the 1st page):

http://www.collinsaudio.com/Prosound_Wo ... amping.pdf

i wonder, if this is just some by-eye judgement or if he really means it in some mathematical sense (like least-squares error or something). i guess, the former but i'm not sure about that and the paper does not belabor this claim any further.
My website: rs-met.com, My presences on: YouTube, GitHub, Facebook

Post

Robin from www.rs-met.com wrote:Interestingly, orfanidis claims that: "The resulting digital filter matches the corresponding analog filter as much as possible, given that there are only five parameters to adjust."
I assume that since his design uses "exact matching of analog G at Fn" the resulting filter has to have certain "drift" outside Fc and Fn points. Theoretically, there's a design (or a family of designs) that would achieve more precise results (at certain points of interest) by giving up "exact G@Fn".
(Obviously, "the most ideal" design is not possible since we are somewhat restricted by the phase response where phase at Fn of the digital biquad has to be pi*m).

Post

Max M. wrote:
Robin from www.rs-met.com wrote:Interestingly, orfanidis claims that: "The resulting digital filter matches the corresponding analog filter as much as possible, given that there are only five parameters to adjust."
I assume that since his design uses "exact matching of analog G at Fn" the resulting filter has to have certain "drift" outside Fc and Fn points. Theoretically, there's a design (or a family of designs) that would achieve more precise results (at certain points of interest) by giving up "exact G@Fn".
(Obviously, "the most ideal" design is not possible since we are somewhat restricted by the phase response where phase at Fn of the digital biquad has to be pi*m).
Yes.

Post Reply

Return to “DSP and Plugin Development”