This immediately makes sense. Now my problem is not knowing how to place the poles and zeroes (the mathematics of designing a filter are beyond my education level, give me 2 years).
So, solving problem X in exchange for not as bad problem Y, but we found another way to solve problem X without the downsides.mystran wrote: ↑Sat Jan 06, 2024 11:11 am Now.. historically this filter is very influential and arguably quite nice if your alternatives are things like biquads... but with modern understanding that actually doing proper trapezoidal integration of an SVF is essentially just as cheap, there's very few good reasons to bother with Chamberlin anymore.
Under contrasting approaches on page 8:mystran wrote: ↑Sat Jan 06, 2024 11:11 am Not so quick. The details matter a ton. I still haven't properly read the paper, but it looks like it might be fine and essentially just a reordering of computations(?) when compared to the usual trapezoidal SVF.. and really the order of computations is NOT meaningful except as far as different methods of solving Ax=b take different number of clock-cycles.
"While it is true that we placed the three outputs in phase alignment, and as such any delays between them have been removed, it is impossible to completely remove feedback delays, and have instantaneous signals everywhere in the filter. Instead, what we can do is move the 1-sample delays around, which gives the equations better resilience to errors."
Sounds pretty close to reordering the computations. The filter itself involves additional feed-forward paths and so forth, but that affects the transfer function and moves the poles and zeroes around…in ways I don't understand. It might just reorder the computations by moving the delays around.
So avoid direct form.mystran wrote: ↑Sat Jan 06, 2024 11:11 am With direct forms you essentially ALWAYS want to use series or parallel biquad decomposition, because the numerical behaviour gets truly horrid as the order grows. In fact, even in the 2nd order case the performance at low frequencies (where poles are generally pretty close to unit circle) tends to be wonky, to the point where if makes sense to use double precision in a digital EQ if you insist on direct forms.. so good luck trying to keep your bitwidths reasonable with these.
The Chamberlin SVF and the LT SVF are supposed to be good with modifying the frequency, and one of my designs I wanted to attach the cutoff to a low-frequency oscillator. This resulted in me spending a lot of effort trying to find a good way to approximate cos(); I eventually settled on a 6th order polynomial approximation, meaning 3 multiplies, 3 adds. (My original approach was CORDIC, which used only addition and bit shifting to calculate an exact value, plus a final multiplication, but was slower because it calculates one bit at a time) The LT SVF requires calculating tangent, which is hard (division); Chamberlin didn't. I didn't know you could use trapezoidal integration though…I should consider that next time.
For non-modulated filters with a fixed frequency cutoff I'll look into the ladder-lattice topology. Best I've seen so far.