Adding two floating point numbers with different magnitude involves scaling the smaller number to the range of the larger numbers (so their exponents are the same) which involves discarding bits. So adding small numbers to large numbers is not very accurate. Now, depending on the filter structure, this generally has the effect of changing the transfer function slightly or not so slightly and/or just leading to noise in general. The actual analys of what happens is rather arcane though._tweak_ wrote: ↑Fri Nov 05, 2021 5:39 pmI’m coming across numerical precision a lot the last few months, but what does it actually mean in regards to digital EQs?mystran wrote: ↑Thu Nov 04, 2021 8:13 am On top of that, numerical precision can actually come into play with naive implementations (ie. those "stock EQs" that tend to be otherwise pretty much the same), especially those using direct form filters, where the actual response isn't even quite what it says on the label.
The "curves" usually refer to the transfer function and every half-decent filter structure should be able to realize any transfer function. Direct form filters are numerically bad, but they can theoretically implement every (stable) transfer function. I'd generally recommend using the trapezoidal SVF instead for every single situation where you'd previously used a direct form, no exceptions whatsoever), because it costs just about exact the same as a DF-biquad, yet much better numerical and dynamic (ie. under modulation) behaviour.So you don’t think it’s possible to emulate/simulate analog curves with direct form filters? What would be the alternative to make them sweet analog curves possible in a plugin?
As for curves, the general idea is to map the poles and/or zeroes directly (using z=exp(s)) and then you fit another filter to "correct" the response. For best results, use a FIR with some optimization procedure (least squares is cheap, one-pass and works fine). For a cheaper, less accurate approximation (eg. typically disregards phase) use MZTi or MIM or similar.