From b8341c782db510d173b2185a1e8bc6badf3ad363 Mon Sep 17 00:00:00 2001 From: Jan Svabenik Date: Wed, 18 Mar 2026 10:31:27 +0100 Subject: [PATCH] Tune demod decimation for audio sample rates --- internal/recorder/demod.go | 5 ++++- internal/recorder/demod_live.go | 2 +- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/internal/recorder/demod.go b/internal/recorder/demod.go index 016a967..c3a53c8 100644 --- a/internal/recorder/demod.go +++ b/internal/recorder/demod.go @@ -32,7 +32,10 @@ func (m *Manager) demodAndWrite(dir string, ev detector.Event, iq []complex64, f } taps := dsp.LowpassFIR(cutoff, m.sampleRate, 101) filtered := dsp.ApplyFIR(shifted, taps) - decim := m.sampleRate / (d.OutputSampleRate() * 4) + decim := m.sampleRate / d.OutputSampleRate() + if decim < 1 { + decim = 1 + } if decim < 1 { decim = 1 } diff --git a/internal/recorder/demod_live.go b/internal/recorder/demod_live.go index 834bcfe..a3e8ad5 100644 --- a/internal/recorder/demod_live.go +++ b/internal/recorder/demod_live.go @@ -47,7 +47,7 @@ func (m *Manager) DemodLive(centerHz float64, bw float64, mode string, seconds i } taps := dsp.LowpassFIR(cutoff, m.sampleRate, 101) filtered := dsp.ApplyFIR(shifted, taps) - decim := m.sampleRate / (d.OutputSampleRate() * 4) + decim := m.sampleRate / d.OutputSampleRate() if decim < 1 { decim = 1 }