From a557e101b2c05b51cfac8c4c8e16e0036c35584d Mon Sep 17 00:00:00 2001 From: KubaPro010 Date: Tue, 15 Jul 2025 21:00:12 +0200 Subject: [PATCH] it does break it but idk why --- filter/bs412.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/filter/bs412.c b/filter/bs412.c index 856e21a..9414ad1 100644 --- a/filter/bs412.c +++ b/filter/bs412.c @@ -29,7 +29,11 @@ void init_bs412(BS412Compressor* mpx, float mpx_deviation, float target_power, f } float bs412_compress(BS412Compressor* mpx, float sample) { - mpx->average += sample * sample * mpx->mpx_deviation * mpx->mpx_deviation; + if(mpx->lookahead_counter >= BS412_LOOKAHEAD) mpx->lookahead_counter = 0; + float process_sample = mpx->lookahead_samples[BS412_LOOKAHEAD - 1 - mpx->lookahead_counter]; // get sample from the other end + mpx->lookahead_samples[mpx->lookahead_counter++] = sample; // write to the first end + + mpx->average += process_sample * process_sample * mpx->mpx_deviation * mpx->mpx_deviation; mpx->average_counter++; float avg_power = mpx->average / mpx->average_counter;