AuburnSounds / AuburnSounds/Dplug
Better version of IIR filter
- Dominant language
- D
- Stars
- 564
- Forks
- 34
- PR merge metrics
- No merged PRs in 30d
Description
Create a new IIR filter facility in a `dplug:iir` module, splitted in two.
- [ ] Pole-Zero realization should be separated from computation of those Pole and Zero placement.
- [ ] Smoothing should be configurable too. The PoleZero computation should be push-style, and no pole-zero pair inversion occur without its control (because that would be detrimental to smoothing)
- [ ] DC auto-initialization (inversion of the realization) should be supported because it's very useful for control signals at startup
- [ ] multi-channel should be supported, since it's probably more efficient
- [ ] should allow multiple Pole-Zero realizations (templated ?)
- [x] ~~correct one-poles... https://dsp.stackexchange.com/a/54088~~ => it's tricky, see one pole varaitions in dplug/dsp/iir.d
- [ ] Operates on `AudioBuffer`
- [ ] not sure how to allow modulation, in Panagement this is _per-sample_...
- [ ] serial section possibly parallelized with the trick of delaying them to run them in parallel: https://github.com/EleonoreMizo/pedalevite/blob/master/src/mfx/dsp/iir/SvfCore4Simd.h
**Summing Up**
The role of the pole-zero **realization** is to filter, hold state, hold smoothing state. It has a maximum number of pole-zero (8 ? 6 ?)
The role of the pole-zero **computation** is to compute pole and zeros when needed.
Computation feeds realization with pole and zero, and choose their relative order.
**Advantages:** the last filter structure you need.
**Downsides:** conflating realization and design was a bit more friendly.
Contributor guide
Research direction
Start by reading dplug/dsp/iir.d and the issue's AudioBuffer and SVFCore4Simd.h references to understand the existing one-pole variations and possible realization structure. Define the computation and realization boundaries, then verify that the proposed facility covers configurable smoothing, DC auto-initialization, multichannel AudioBuffer operation, modulation, and multiple pole-zero realizations.
Written by the indexing model from the issue text.
Assessment
- Domain
- audio-video-rtc
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100