FYI - Naive LV2 implementation:
https://github.com/fps/state-variable-filter.lv2
Regards,
FPS
P.S.: PRs welcome ;)
On 1/13/2021 12:16 PM, Florian Paul Schmidt wrote:
> Hi Fons,
>
> I have a question (sanity checking my understanding) regarding the
> implementation: You note in your introduction that the SV-Filter
> provides lowpass, highpass and bandpass outputs. If I wanted to provide
> all three to the user then this could be done with the following C-Code,
> right (adapted from your individual examples)?
>
> d0_high = 1 - c1 / 2 + c1 * c2 / 4;
>
> d1_band = 1 - c2;
> d0_band = d1 * c1 / 2;
>
> d0_low = c1 * c2 / 4;
> d1_low = c2;
>
> for (i = 0; i < n; ++i)
> {
> x = inp[i] - z1 - z2;
> out_high = d0_high * x;
> out_band = d0_band * x + d1_band * z1;
> z2 = c2 * z1;
> out_low = d0_low * x + z2;
> z1 = c1 * x;
> }
>
> Regards,
> FPS
>
> Oh, looking at it again, and if I'm not completely confused, this should
> also be equivalent:
>
> for (i = 0; i < n; ++i)
> {
> x = inp[i] - z1 - z2;
> z2 = c2 * z1;
> out_high = d0_high * x;
> out_band = d0_band * x + d1_band * z1;
> out_low = d0_low * x + z2;
> z1 = c1 * x;
> }
>
>
> On 11/19/2020 10:05 PM, Fons Adriaensen wrote:
>> Hello all,
>>
>> Some people have asked me to provide a bit more documentation
>> on the state-variable filters I used in zita-eq1 and zita-jacktools.
>>
>> So I've written a short technical note on this. You can find it at
>>
>> <http://kokkinizita.linuxaudio.org/papers/digsvfilt.pdf>
>>
>> Ciao,
>>
>
> --
> https://fps.io
> _______________________________________________
> Linux-audio-dev mailing list
> Linux-audio-dev@lists.linuxaudio.org
> https://lists.linuxaudio.org/listinfo/linux-audio-dev
-- https://fps.io _______________________________________________ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org https://lists.linuxaudio.org/listinfo/linux-audio-devReceived on Fri Jan 15 04:15:01 2021
This archive was generated by hypermail 2.1.8 : Fri Jan 15 2021 - 04:15:01 EET