From 14827288e7a8c3248df7e679bda01845f112f499 Mon Sep 17 00:00:00 2001 From: pober Date: Mon, 27 Apr 2026 10:27:54 +0200 Subject: [PATCH] relaxes asrc to not flip flop bang bang; use pyalsaaudio for dante. --- src/auracast/multicast.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/auracast/multicast.py b/src/auracast/multicast.py index c4ae081..7ddc852 100644 --- a/src/auracast/multicast.py +++ b/src/auracast/multicast.py @@ -206,7 +206,7 @@ class PyAlsaAudioInput(audio_io.ThreadedAudioInput): length, data = self._pcm.read_sw(frame_size + self._bang_bang) avail = self._pcm.avail() SETPOINT = 120 - TOLERANCE = 40 + TOLERANCE = 80 if avail < SETPOINT - TOLERANCE: self._bang_bang = -1 elif avail > SETPOINT + TOLERANCE: @@ -811,7 +811,11 @@ class Streamer(): if input_format == 'auto': raise ValueError('input format details required for alsa input') pcm = audio_io.PcmFormat.from_str(input_format) - audio_input = AlsaArecordAudioInput(audio_source[5:], pcm) + device_name = audio_source[5:] + if device_name.startswith('dante_'): + audio_input = PyAlsaAudioInput(device_name, pcm) + else: + audio_input = AlsaArecordAudioInput(device_name, pcm) else: audio_input = await audio_io.create_audio_input(audio_source, input_format) # Store early so stop_streaming can close even if open() fails