From 38981a4c8c3d29047d14f9611e2e9ee4f828a8b9 Mon Sep 17 00:00:00 2001 From: Wim Taymans Date: Mon, 11 Oct 2021 16:07:13 +0200 Subject: [PATCH] filter-chain: biquad fequency is half the samplerate See #1699 --- src/modules/module-filter-chain/biquad.c | 5 +++-- src/modules/module-filter-chain/builtin_plugin.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/modules/module-filter-chain/biquad.c b/src/modules/module-filter-chain/biquad.c index 337a43938..296cdd8e4 100644 --- a/src/modules/module-filter-chain/biquad.c +++ b/src/modules/module-filter-chain/biquad.c @@ -343,8 +343,7 @@ static void biquad_allpass(struct biquad *bq, double frequency, double Q) void biquad_set(struct biquad *bq, enum biquad_type type, double freq, double Q, double gain) { - /* Default is an identity filter. Also clear history values. */ - set_coefficient(bq, 1, 0, 0, 1, 0, 0); + /* Clear history values. */ bq->x1 = 0; bq->x2 = 0; bq->y1 = 0; @@ -376,6 +375,8 @@ void biquad_set(struct biquad *bq, enum biquad_type type, double freq, double Q, biquad_allpass(bq, freq, Q); break; case BQ_NONE: + /* Default is an identity filter. */ + set_coefficient(bq, 1, 0, 0, 1, 0, 0); break; } } diff --git a/src/modules/module-filter-chain/builtin_plugin.c b/src/modules/module-filter-chain/builtin_plugin.c index 6ada8e4ec..0952068c2 100644 --- a/src/modules/module-filter-chain/builtin_plugin.c +++ b/src/modules/module-filter-chain/builtin_plugin.c @@ -281,7 +281,7 @@ static void bq_run(struct builtin *impl, unsigned long samples, int type) impl->freq = freq; impl->Q = Q; impl->gain = gain; - biquad_set(bq, type, freq / impl->rate, Q, gain); + biquad_set(bq, type, freq * 2 / impl->rate, Q, gain); } x1 = bq->x1; x2 = bq->x2;