3 ms·
Thank you for your feedback. You’re absolutely right that TDF-2 can exhibit artifacts in the presence of modulation or automation. In this implementation, I’ve
by ashafq 2y ago
Thank you for your feedback. You’re absolutely right that TDF-2 can exhibit artifacts in the presence of modulation or automation. In this implementation, I’ve addressed this by crossfading between the old and new coefficient sets. I’m aware of the SVF topology and its advantages, especially in low-precision applications. However, I wanted to experiment with biquads due to their computational efficiency when filters remain steady.
I hadn’t fully realized the extent to which EQ cramping is a concern in the audio community, so I’ll definitely dive deeper into mitigation techniques to address it effectively.
Regarding your point about limiting to five bands, I completely agree: there’s no technical reason to impose this restriction, especially given the abundant memory available on modern desktop systems. I’ll explore a more dynamic architecture to allow for arbitrary numbers of bands.
Thanks again for sharing your insights. They’ve given me a lot to think about as I work on improving this project!
- duped 2y agoThe SVF has the same computational complexity as a TDF2 biquad (as it is after all, a TDF2 biquad). There are more efficient structures than either (eg: state space canonical forms which play nice with common matrix/vector arithmetic). The direct forms are pretty terrible for all but trivial SIMD optimization like interleaving. Depending on a few factors just packing the SIMD lanes for optimized biquads is more expensive than not using SIMD at all on deinterleaved channels. Direct form 2nd order filters are a dead end in terms of performance and quality for pro audio. I just wanted to point that out, since this space is very well studied and direct forms have pretty notable disadvantages (stability under modulation, overhead of coefficient computation, poor SIMD optimizations, etc).
- ashafq 2y agoIf I recall correctly, SVFs typically compute lowpass, highpass, and bandpass outputs simultaneously, which are then combined to create peaking or shelving filters. In contrast, a traditional biquad filter requires only five multiply-accumulate instructions. Computationally, SVFs are generally 3 to 5 times more expensive than biquad filters. When designing this plugin, my primary focus was optimizing steady-state operation. While there are many plugins tailored for handling modulation, this plugin is designed to reject high-frequency modulation, prioritizing efficiency for gradual state changes. This tradeoff allows it to excel in its intended use case without the added complexity or overhead of robust modulation handling. Feel free to add a feature request in the Github project page. Thanks again for your feedback.