filter-chain: biquad fequency is half the samplerate

See #1699
This commit is contained in:
Wim Taymans 2021-10-11 16:07:13 +02:00
parent 85d5c8cd6c
commit 38981a4c8c
2 changed files with 4 additions and 3 deletions

View file

@ -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, void biquad_set(struct biquad *bq, enum biquad_type type, double freq, double Q,
double gain) double gain)
{ {
/* Default is an identity filter. Also clear history values. */ /* Clear history values. */
set_coefficient(bq, 1, 0, 0, 1, 0, 0);
bq->x1 = 0; bq->x1 = 0;
bq->x2 = 0; bq->x2 = 0;
bq->y1 = 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); biquad_allpass(bq, freq, Q);
break; break;
case BQ_NONE: case BQ_NONE:
/* Default is an identity filter. */
set_coefficient(bq, 1, 0, 0, 1, 0, 0);
break; break;
} }
} }

View file

@ -281,7 +281,7 @@ static void bq_run(struct builtin *impl, unsigned long samples, int type)
impl->freq = freq; impl->freq = freq;
impl->Q = Q; impl->Q = Q;
impl->gain = gain; 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; x1 = bq->x1;
x2 = bq->x2; x2 = bq->x2;