BiQuad Multimode Filter module
– Types: LP, HP, BPF1 (new!), BPF2, Notch, Peak, Loshelf, Hishelf
– BPF1: peak gain = Q, BPF2: peak gain = zero.
– Cascade: up to 8x (new!)
– Freq: 20 – 20.000Hz
– Q: 0 – 10v
– PeakGain: -30dB – 30dB
– 64bit internal processing
– CPU usage (32bit): for LP 12dB about 0.17% (streaming)(Core i5-2450m).
– CPU usage (64bit): for LP 12dB about 0.70% (streaming)(Core i5-2450m).
– Gain compensation: use the properties screen to subtract a value from the Q, per stage.
This way it allows the Q range on the slider to stay 0 – 10v, and stop/contain the peak overload.
Example values to subtract from Q ( closer to 0 means more overload ):
– Gaincomp2: 6.5
– GainComp3: 7.7
– GainComp4: 8.2
– Code optimising.
– Maybe split the Coefficients from the Engine ( like CK his BiQuad system ).
– Andrew aka Ichad.c (blog)
– Nigel Redmon @ Earlevel.com (used his implementation).
– Chris Townsend @ MusicDSP.org.
– Peter (Scoofy) Schoffhauser, used his musicDSP post for the coefficient calc of the BPF1 type.
– Cascade up to 8x
– Added additionkal BPF type ( BPF1 ).
– Added manual “gain compensation”.
– Added Adaptive processing.
Credits for this enhancement go out to Andrew @ SESDK usergroup.
He offered his help to implement this, fixed my Many2one problem in the process.
This lowers CPU usage a lot while an input parameter is not streaming.
– Downscaled Q a bit.
– Added Cascading: 12,24,36,48dB
– Changed some compiler settings, speeds up the module slightly.
– Low value limit set on the Q parameter, to prevent the filter crashing.
– Made some code improvements, and small fixes ( thanks Andrew @ Yahoo Usergroup ).
– Removed the fake blockmode, it didn’t work as planned while using a Manytoone.
When I come up with a fix i’ll reintroduce it..as it does save quite a lot on CPU usage.
– Sleepmode corrected.