Re: [LAD] A short technote on digital state-variable filters

From: Florian Paul Schmidt <mista.tapas@email-addr-hidden>
Date: Wed Jan 13 2021 - 13:16:18 EET

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
Received on Thu Jan 14 04:15:01 2021

This archive was generated by hypermail 2.1.8 : Thu Jan 14 2021 - 04:15:01 EET