From 7956b7d989188bc018c754a77202a2302d8b7e11 Mon Sep 17 00:00:00 2001 From: KubaPro010 Date: Thu, 10 Jul 2025 19:32:21 +0200 Subject: [PATCH] will thjis commit break everything? --- dsp/oscillator.c | 8 ++------ filter/bs412.c | 15 +++++---------- filter/gain_control.c | 2 +- src/fm95.c | 8 ++++---- 4 files changed, 12 insertions(+), 21 deletions(-) diff --git a/dsp/oscillator.c b/dsp/oscillator.c index 0e4dcc9..674b1d2 100644 --- a/dsp/oscillator.c +++ b/dsp/oscillator.c @@ -23,15 +23,11 @@ float get_oscillator_cos_sample(Oscillator *osc) { } float get_oscillator_sin_multiplier_ni(Oscillator *osc, float multiplier) { - float new_phase = osc->phase * multiplier; - new_phase -= (new_phase >= M_2PI) ? M_2PI : 0.0f; - return sinf(new_phase); + return sinf(osc->phase * multiplier); } float get_oscillator_cos_multiplier_ni(Oscillator *osc, float multiplier) { - float new_phase = osc->phase * multiplier; - new_phase -= (new_phase >= M_2PI) ? M_2PI : 0.0f; - return cosf(new_phase); + return cosf(osc->phase * multiplier); } inline void advance_oscillator(Oscillator *osc) { diff --git a/filter/bs412.c b/filter/bs412.c index 9abb73a..5e44faf 100644 --- a/filter/bs412.c +++ b/filter/bs412.c @@ -49,17 +49,12 @@ float bs412_compress(BS412Compressor* mpx, float sample) { } if (modulation_power > mpx->target) { - float excess_power = modulation_power - mpx->target; + float target_gain = mpx->target / modulation_power; - if (excess_power > 0.0f && excess_power < 10.0f) { - float target_gain = dbr_to_deviation(-excess_power) / mpx->mpx_deviation; - - target_gain = fmaxf(target_gain, 0.1f); - target_gain = fminf(target_gain, 1.0f); - - mpx->gain = mpx->attack * mpx->gain + (1 - mpx->attack) * target_gain; - } - } else mpx->gain = fminf(1.0f, mpx->release * mpx->gain + (1 - mpx->release) * 1.0f); + mpx->gain = mpx->attack * mpx->gain + (1.0f - mpx->attack) * target_gain; + } else { + mpx->gain = mpx->release * mpx->gain + (1.0f - mpx->release) * 1.0f; + } mpx->gain = fminf(mpx->max, mpx->gain); mpx->gain = fmaxf(0.0f, mpx->gain); diff --git a/filter/gain_control.c b/filter/gain_control.c index ca16777..40d7e16 100644 --- a/filter/gain_control.c +++ b/filter/gain_control.c @@ -15,7 +15,7 @@ void initAGC(AGC* agc, int sampleRate, float targetLevel, float minGain, float m agc->currentLevel = 0.0f; agc->rms_buffer = 0.0f; - agc->rmsAlpha = expf(-1.0f / (sampleRate * 0.02f)); + agc->rmsAlpha = expf(-1.0f / (sampleRate * 0.025f)); } float process_agc(AGC* agc, float sidechain) { diff --git a/src/fm95.c b/src/fm95.c index a206114..3ef998e 100644 --- a/src/fm95.c +++ b/src/fm95.c @@ -131,8 +131,8 @@ void cleanup_runtime(FM95_Runtime *rt, bool mpx_on, bool rds_on) { } int run_fm95(const FM95_Config config, FM95_Runtime* runtime) { - int mpx_on = (runtime->mpx_device.initialized == 1); - int rds_on = (runtime->rds_device.initialized == 1); + bool mpx_on = (runtime->mpx_device.initialized == 1); + bool rds_on = (runtime->rds_device.initialized == 1); if(config.calibration != 0) { Oscillator osc; @@ -502,8 +502,8 @@ int main(int argc, char **argv) { FM95_Runtime runtime; memset(&runtime, 0, sizeof(runtime)); - int mpx_on = (strlen(dv_names.mpx) != 0); - int rds_on = (strlen(dv_names.rds) != 0 && config.rds_streams != 0); + bool mpx_on = (strlen(dv_names.mpx) != 0); + bool rds_on = (strlen(dv_names.rds) != 0 && config.rds_streams != 0); err = setup_audio(&runtime, dv_names, config, mpx_on, rds_on); if(err != 0) return err;