savonet/liquidsoap

input.alsa Overruns on 2.3.0

Closed this issue · 6 comments

Description

The bug is that the instance is complaining about Overruns from an input.alsa in console
this behaviour is not happening on 2.2.4 but is present on 2.3.0.

here is the log lines

soap  | 1733411862.775711 [alsa_in(default:CARD=SoloCast):2] Overrun! You may minimize them by increasing the buffer size.
soap  | 1733411862.775737 [alsa_in(default:CARD=SoloCast):2] Trying to recover..
soap  | 1733411862.839710 [alsa_in(default:CARD=SoloCast):2] Overrun! You may minimize them by increasing the buffer size.
soap  | 1733411862.839729 [alsa_in(default:CARD=SoloCast):2] Trying to recover..
soap  | 1733411868.346888 [alsa_in(default:CARD=SoloCast):2] Overrun! You may minimize them by increasing the buffer size.
soap  | 1733411868.346908 [alsa_in(default:CARD=SoloCast):2] Trying to recover..
soap  | 1733411869.333122 [alsa_in(default:CARD=SoloCast):2] Overrun! You may minimize them by increasing the buffer size.
soap  | 1733411869.333143 [alsa_in(default:CARD=SoloCast):2] Trying to recover..
soap  | 1733411875.994136 [alsa_in(default:CARD=SoloCast):2] Overrun! You may minimize them by increasing the buffer size.
soap  | 1733411875.994174 [alsa_in(default:CARD=SoloCast):2] Trying to recover..
soap  | 1733411881.820200 [alsa_in(default:CARD=SoloCast):2] Overrun! You may minimize them by increasing the buffer size.
soap  | 1733411881.820221 [alsa_in(default:CARD=SoloCast):2] Trying to recover..
soap  | 1733411888.583772 [alsa_in(default:CARD=SoloCast):2] Overrun! You may minimize them by increasing the buffer size.
soap  | 1733411888.583794 [alsa_in(default:CARD=SoloCast):2] Trying to recover..
soap  | 1733411895.411610 [alsa_in(default:CARD=SoloCast):2] Overrun! You may minimize them by increasing the buffer size.
soap  | 1733411895.411631 [alsa_in(default:CARD=SoloCast):2] Trying to recover..

Steps to reproduce

steps to re-produce

you will need a mic or an alsa input equivalent for this

  • run the following docker compose with the following /opt/soap/main.liq
services:
  soap:
    container_name: soap
    image: savonet/liquidsoap:v2.3.0
    #image: savonet/liquidsoap-ci-build:alsa-frame_arm64
    devices:
      - /dev/snd
    volumes:
      - /opt/soap:/soap
    ports:
      - 8000:8000
    environment:
      UID: 1000
      PID: 1000
    command:
      - /soap/main.liq
settings.server.log.level := 4
settings.log.file := false
settings.log.stdout := true
settings.log.unix_timestamps := true

#performance
#settings.output.threaded = true
#frame.size := 2048

#telnet
settings.server.telnet.set(true)
settings.server.telnet.port.set(18000)
settings.server.telnet.bind_addr.set("0.0.0.0")

#settings.alsa.alsa_buffer := 8192
mic = input.alsa(device="default:CARD=SoloCast")
mic = buffer(buffer=3.0, mic)
mic = mksafe(mic)

cleanmic = mic_filter(mic)

#codec = %mp3(bitrate=128, samplerate=48000)
codec = %ffmpeg(format="mp3", %audio(codec="libmp3lame", b="128k"))
output.harbor.hls(id="harbor_recorder", path="recorder", port=8000, [("128", codec)], cleanmic)

Expected behavior

the script works exactly the same as 2.4.4 however the console is spammed with Orderrun messages.

Liquidsoap version

Liquidsoap 2.3.1+git@440e0adb0
Copyright (c) 2003-2024 Savonet team
Liquidsoap is open-source software, released under GNU General Public License.
See <http://liquidsoap.info> for more information.

Liquidsoap build config

liquidsoap@9747b08e267f:/$ liquidsoap --build-config

 * Liquidsoap version  : 2.3.1+git@440e0adb0

 * Compilation options
   - Release build       : false
   - Git SHA             : 440e0adb0
   - OCaml version       : 4.14.2
   - OS type             : Unix
   - Libs versions       : alsa=0.3.0 angstrom=0.16.1 ao=0.2.4 asetmap=0.8.1 asn1-combinators=0.3.2 astring=0.8.5 base=v0.16.3 base.base_internalhash_types=v0.16.3 base.caml=v0.16.3 base.shadow_stdlib=v0.16.3 base64=3.5.1 bigarray=[distributed with Ocaml] bigarray-compat=1.1.0 bigstringaf=0.10.0 bjack=0.1.6 bos=0.2.1 bytes=[distributed with OCaml 4.02 or above] ca-certs=v1.0.0 camlp-streams camomile.lib=2.0 cohttp=5.3.1 cohttp-lwt=5.3.0 cohttp-lwt-unix=5.3.0 conduit=7.1.0 conduit-lwt=7.1.0 conduit-lwt-unix=7.1.0 cry=1.0.3 cstruct=6.2.0 ctypes=0.23.0 ctypes-foreign=0.23.0 ctypes.stubs=0.23.0 curl=0.9.2 digestif.c=1.2.0 domain-name=0.4.0 domain_shims dssi=0.1.5 dtools=0.4.5 dune-build-info=3.16.1 dune-private-libs.dune-section=3.16.1 dune-site=3.16.1 dune-site.private=3.16.1 duppy=0.9.4 eqaf=0.10 faad=0.5.2 fdkaac=0.3.3 ffmpeg-av=1.2.1 ffmpeg-avcodec=1.2.1 ffmpeg-avdevice=1.2.1 ffmpeg-avfilter=1.2.1 ffmpeg-avutil=1.2.1 ffmpeg-swresample=1.2.1 ffmpeg-swscale=1.2.1 fileutils=0.6.4 flac=0.5.1 flac.decoder=0.5.1 flac.ogg=0.5.1 fmt=0.9.0 fpath=0.7.3 frei0r=0.1.2 gd=1.1 gen=1.1 gmap=0.3.0 inotify=v2.6 integers ipaddr=5.6.0 ipaddr-sexp=5.6.0 ipaddr.unix=5.6.0 irc-client irc-client-unix kdf.hkdf=1.0.0 kdf.pbkdf=1.0.0 ladspa=0.2.2 lame=0.3.7 lastfm=0.3.4 lilv=0.2.0 liquidsoap-lang=2.3.1 liquidsoap-lang.console=2.3.1 liquidsoap_alsa=rolling-release-v2.3.x-32-g440e0ad liquidsoap_ao=rolling-release-v2.3.x-32-g440e0ad liquidsoap_bjack=rolling-release-v2.3.x-32-g440e0ad liquidsoap_builtins=rolling-release-v2.3.x-32-g440e0ad liquidsoap_core=rolling-release-v2.3.x-32-g440e0ad liquidsoap_dssi=rolling-release-v2.3.x-32-g440e0ad liquidsoap_faad=rolling-release-v2.3.x-32-g440e0ad liquidsoap_fdkaac=rolling-release-v2.3.x-32-g440e0ad liquidsoap_ffmpeg=rolling-release-v2.3.x-32-g440e0ad liquidsoap_flac=rolling-release-v2.3.x-32-g440e0ad liquidsoap_frei0r=rolling-release-v2.3.x-32-g440e0ad liquidsoap_gd=rolling-release-v2.3.x-32-g440e0ad liquidsoap_irc=rolling-release-v2.3.x-32-g440e0ad liquidsoap_ladspa=rolling-release-v2.3.x-32-g440e0ad liquidsoap_lame=rolling-release-v2.3.x-32-g440e0ad liquidsoap_lastfm=rolling-release-v2.3.x-32-g440e0ad liquidsoap_lilv=rolling-release-v2.3.x-32-g440e0ad liquidsoap_lo=rolling-release-v2.3.x-32-g440e0ad liquidsoap_mad=rolling-release-v2.3.x-32-g440e0ad liquidsoap_ndi=rolling-release-v2.3.x-32-g440e0ad liquidsoap_ogg=rolling-release-v2.3.x-32-g440e0ad liquidsoap_ogg_flac=rolling-release-v2.3.x-32-g440e0ad liquidsoap_optionals=rolling-release-v2.3.x-32-g440e0ad liquidsoap_opus=rolling-release-v2.3.x-32-g440e0ad liquidsoap_osc=rolling-release-v2.3.x-32-g440e0ad liquidsoap_oss=rolling-release-v2.3.x-32-g440e0ad liquidsoap_portaudio=rolling-release-v2.3.x-32-g440e0ad liquidsoap_posix_time=rolling-release-v2.3.x-32-g440e0ad liquidsoap_prometheus=rolling-release-v2.3.x-32-g440e0ad liquidsoap_pulseaudio=rolling-release-v2.3.x-32-g440e0ad liquidsoap_runtime=rolling-release-v2.3.x-32-g440e0ad liquidsoap_samplerate=rolling-release-v2.3.x-32-g440e0ad liquidsoap_sdl=rolling-release-v2.3.x-32-g440e0ad liquidsoap_sdl_log_level=rolling-release-v2.3.x-32-g440e0ad liquidsoap_shine=rolling-release-v2.3.x-32-g440e0ad liquidsoap_soundtouch=rolling-release-v2.3.x-32-g440e0ad liquidsoap_speex=rolling-release-v2.3.x-32-g440e0ad liquidsoap_sqlite=rolling-release-v2.3.x-32-g440e0ad liquidsoap_srt=rolling-release-v2.3.x-32-g440e0ad liquidsoap_ssl=rolling-release-v2.3.x-32-g440e0ad liquidsoap_stereotool=rolling-release-v2.3.x-32-g440e0ad liquidsoap_theora=rolling-release-v2.3.x-32-g440e0ad liquidsoap_tls=rolling-release-v2.3.x-32-g440e0ad liquidsoap_vorbis=rolling-release-v2.3.x-32-g440e0ad liquidsoap_xmlplaylist=rolling-release-v2.3.x-32-g440e0ad liquidsoap_yaml=rolling-release-v2.3.x-32-g440e0ad lo=0.2.0 logs=0.7.0 logs.fmt=0.7.0 logs.lwt=0.7.0 lwt lwt.unix macaddr=5.6.0 mad=0.5.3 magic-mime=1.3.1 mem_usage=0.1.1 memtrace=0.2.3 menhirLib=20240715 metadata=0.3.0 mirage-crypto=1.1.0 mirage-crypto-ec=1.1.0 mirage-crypto-pk=1.1.0 mirage-crypto-rng=1.1.0 mirage-crypto-rng.unix=1.1.0 mm=0.8.6 mm.audio=0.8.6 mm.base=0.8.6 mm.image=0.8.6 mm.midi=0.8.6 mm.video=0.8.6 ndi=rolling-release-v2.3.x-32-g440e0ad ocplib-endian ocplib-endian.bigstring ogg=0.7.4 ogg.decoder=0.7.4 ohex opus=0.2.3 opus.decoder=0.2.3 osc osc-unix portaudio=0.2.3 posix-base=5a7f328 posix-socket=5a7f328 posix-socket.constants=5a7f328 posix-socket.stubs=5a7f328 posix-socket.types=5a7f328 posix-time2=5a7f328 posix-time2.constants=5a7f328 posix-time2.stubs=5a7f328 posix-time2.types=5a7f328 posix-types=5a7f328 posix-types.constants=5a7f328 ppx_compare.runtime-lib=v0.16.0 ppx_hash.runtime-lib=v0.16.0 ppx_sexp_conv.runtime-lib=v0.16.0 prometheus=1.2 prometheus-app=1.2 ptime=1.2.0 ptime.clock=1.2.0 ptime.clock.os=1.2.0 pulseaudio=0.1.6 re=1.12.0 result=1.5 rresult=0.7.0 samplerate=0.1.7 saturn_lockfree=0.4.1 sedlex=3.3 seq=[distributed with OCaml 4.07 or above] sexplib0=v0.16.0 shine=0.2.3 soundtouch=0.1.9 speex=0.4.2 speex.decoder=0.4.2 sqlite3=5.2.0 srt=0.3.1 srt.constants=0.3.1 srt.stubs=0.3.1 srt.stubs.locked=0.3.1 srt.types=0.3.1 ssl=0.7.0 stdlib-shims=0.3.0 stereotool=rolling-release-v2.3.x-32-g440e0ad str=[distributed with Ocaml] stringext=1.6.0 theora=0.4.1 theora.decoder=0.4.1 threads=[distributed with Ocaml] threads.posix=[internal] tls=1.0.2 tsdl=v1.1.0 tsdl-image=0.5 tsdl-ttf=0.6 unix=[distributed with Ocaml] unix-errno=52c6ecb unix-errno.errno_bindings=52c6ecb unix-errno.errno_types=52c6ecb unix-errno.errno_types_detected=52c6ecb unix-errno.unix=52c6ecb uri=4.4.0 uri-sexp=4.4.0 uri.services=4.4.0 vorbis=0.8.1 vorbis.decoder=0.8.1 x509=1.0.5 xmlm=1.4.0 xmlplaylist=0.1.5 yaml=3.2.0 yaml.bindings=3.2.0 yaml.bindings.types=3.2.0 yaml.c=3.2.0 yaml.ffi=3.2.0 yaml.types=3.2.0 zarith=1.14
   - architecture        : arm64
   - host                : aarch64-unknown-linux-gnu
   - target              : aarch64-unknown-linux-gnu
   - system              : linux
   - ocamlopt_cflags     : -O2 -fno-strict-aliasing -fwrapv -pthread -fPIC
   - native_c_compiler   : gcc -O2 -fno-strict-aliasing -fwrapv -pthread -fPIC -D_FILE_OFFSET_BITS=64
   - native_c_libraries  : -lm

 * Configured paths
   - mode              : posix
   - standard library  : /usr/share/liquidsoap/libs
   - scripted binaries : /usr/share/liquidsoap/bin
   - rundir            : /var/run/liquidsoap
   - logdir            : /var/log/liquidsoap
   - user cache        : $HOME/.cache/liquidsoap (override with $LIQ_CACHE_USER_DIR)
   - system cache      : /var/cache/liquidsoap (override with $LIQ_CACHE_SYSTEM_DIR)
   - camomile files    : /usr/share/liquidsoap/camomile

 * Supported input formats
   - MP3               : yes
   - AAC               : yes
   - Ffmpeg            : yes
   - Flac (native)     : yes
   - Flac (ogg)        : yes
   - Opus              : yes
   - Speex             : yes
   - Theora            : yes
   - Vorbis            : yes
   - WAV/AIFF          : yes (native)

 * Supported output formats
   - FDK-AAC           : yes
   - FFmpeg            : yes
   - MP3               : yes
   - MP3 (fixed-point) : yes
   - Flac (native)     : yes
   - Flac (ogg)        : yes
   - Opus              : yes
   - Speex             : yes
   - Theora            : yes
   - Vorbis            : yes
   - WAV/AIFF          : yes (native)

 * Tags
   - AAC               : yes
   - FFmpeg            : yes
   - FLAC (native)     : yes
   - Flac (ogg)        : yes
   - Native decoder    : yes
   - Vorbis            : yes

 * Input / output
   - ALSA              : yes
   - AO                : yes
   - FFmpeg            : yes
   - JACK              : yes
   - NDI               : yes
   - OSS               : yes
   - Portaudio         : yes
   - Pulseaudio        : yes
   - SRT               : yes

 * Audio manipulation
   - FFmpeg            : yes
   - LADSPA            : yes
   - Lilv              : yes
   - Samplerate        : yes
   - SoundTouch        : yes
   - StereoTool        : yes

 * Video manipulation
   - camlimages        : no (requires camlimages)
   - FFmpeg            : yes
   - frei0r            : yes
   - ImageLib          : no (requires imagelib)
   - SDL               : yes

 * MIDI manipulation
   - DSSI              : yes

 * Visualization
   - GD                : yes
   - Graphics          : no (requires graphics)
   - SDL               : yes

 * Additional libraries
   - FFmpeg filters    : yes
   - FFmpeg devices    : yes
   - inotify           : yes
   - irc               : yes
   - jemalloc          : no (requires jemalloc)
   - lastfm            : yes
   - lo                : yes
   - memtrace          : yes
   - osc               : yes
   - ssl               : yes
   - sqlite3           : yes
   - tls               : yes
   - posix-time2       : yes
   - windows service   : no (requires winsvc)
   - YAML support      : yes
   - XML playlists     : yes

 * Monitoring
   - Prometheus        : yes

Installation method

From official container image

Additional Info

I am running this on a very lightweight machine (OrangePi2Zero) - (max cpu usage is 25% when running, and 16% of 2GB of ram)

Hi @mooseh ,
Thank you for reporting this in such great detail.
I have the same buffer overrun issue.

toots commented

Hi there!

I forgot to mark this as closed. The issue was fixed in 96b2de73e8f5c45880bc6afa46961ce1b7dd66e1. It is in the current main branch.

I've just pushed an update to the rolling-release-v2.3.x branch with the fix as well.

The fix consists in adding a buffer_size parameter that you can increase, as suggested by the error log. I have been able to successfully test it on my local linux dev box.

Hi again,

Thanks @toots and @vitoyucepi for your code updates and support in relation to this issue so far.
Unfortunately, the buffer issues under Liquidsoap 2.3.1 (rolling release) and ALSA persist. (Config under Liquidsoap 2.2.5 ran fine.)
I have implemented buffer_size for input.alsa() but I am yet to see results.

I must be getting something very wrong here. Any kind of help is so much welcome.

My current ALSA configuration per asound.conf:

pcm.!default {
    type plug
    slave.pcm "liquidsoap"
}

pcm.liquidsoap {
    type dsnoop
    ipc_key 5978293 # Unique IPC key
    ipc_key_add_uid yes
    slave {
        pcm "hw:1,0"
        channels 2
        rate 44100        # Set sample rate to 44.1 kHz
        period_size 1024  # Frames per period (low latency: 23.2 ms)
        buffer_size 4096  # Total buffer size (92.9 ms total latency)
    }
    bindings {
        0 0
        1 1
    }
}

Here is my .liq file

# set the path and permissions for the logfile
settings.log.file.path := "/var/log/liquidsoap/VinylfromWax.log"
settings.log.file.perms := 777
settings.log.unix_timestamps := false
#==============ALSA Settings==========
#settings.alsa.alsa_buffer := 0
#settings.alsa.periods := 0

#==============Input from soundcard
s = (input.alsa(device = "pcm.default", self_sync=true, buffer_size=0.05):source(audio=pcm(stereo)))
s = amplify(2.2 ,s)
s = bass_boost(frequency=140.0 ,gain=1.2 ,s)
#======================FORMATS======================================================
#-----------------MP3 Stream with floating point encoder
f = %mp3.cbr(samplerate=44100,bitrate=320)

#=================OUTPUT==================
output.icecast(f,
host = "127.0.0.1",
port = 8000,
password = "WaxVinyl",
mount = "vinyl",
name = "Vinyl from Wax",
id="Vinyl Station",
on_start=handleblank,
send_icy_metadata=true,
s)

And here's the log:

2024/12/08 19:37:28 >>> LOG START
2024/12/08 19:37:25 [main:3] Liquidsoap rolling-release-v2.3.x-1-g83173fa+dev
2024/12/08 19:37:25 [main:3] Using: alsa=0.3.0 angstrom=0.16.1 base=v0.16.3 base.base_internalhash_types=v0.16.3 base.caml=v0.16.3 base.shadow_stdlib=v0.16.3 bigarray=[distributed with Ocaml] bigstringaf=0.10.0 bytes=[distributed with OCaml 4.02 or above] camlp-streams camomile.lib=2.0 cry=1.0.3 curl=0.9.2 domain_shims dtools=0.4.5 dune-build-info=3.17.0 dune-private-libs.dune-section=3.17.0 dune-site=3.17.0 dune-site.private=3.17.0 duppy=0.9.4 fileutils=0.6.4 flac=0.5.0 flac.decoder=0.5.0 flac.ogg=0.5.0 gen=1.1 lame=0.3.7 liquidsoap-lang=rolling-release-v2.3.x-1-g83173fa liquidsoap-lang.console=rolling-release-v2.3.x-1-g83173fa liquidsoap_alsa=rolling-release-v2.3.x-1-g83173fa-dirty liquidsoap_builtins=rolling-release-v2.3.x-1-g83173fa-dirty liquidsoap_core=rolling-release-v2.3.x-1-g83173fa-dirty liquidsoap_flac=rolling-release-v2.3.x-1-g83173fa-dirty liquidsoap_lame=rolling-release-v2.3.x-1-g83173fa-dirty liquidsoap_mad=rolling-release-v2.3.x-1-g83173fa-dirty liquidsoap_ogg=rolling-release-v2.3.x-1-g83173fa-dirty liquidsoap_ogg_flac=rolling-release-v2.3.x-1-g83173fa-dirty liquidsoap_optionals=rolling-release-v2.3.x-1-g83173fa-dirty liquidsoap_runtime=rolling-release-v2.3.x-1-g83173fa-dirty liquidsoap_shine=rolling-release-v2.3.x-1-g83173fa-dirty liquidsoap_vorbis=rolling-release-v2.3.x-1-g83173fa-dirty mad=0.5.3 magic-mime=1.3.1 mem_usage=0.1.1 menhirLib=20240715 metadata=0.3.0 mm=0.8.6 mm.audio=0.8.6 mm.base=0.8.6 mm.image=0.8.6 mm.midi=0.8.6 mm.video=0.8.6 ogg=0.7.4 ogg.decoder=0.7.4 ppx_compare.runtime-lib=v0.16.0 ppx_hash.runtime-lib=v0.16.0 ppx_sexp_conv.runtime-lib=v0.16.0 re=1.12.0 saturn_lockfree=0.4.1 sedlex=3.3 seq=[distributed with OCaml 4.07 or above] sexplib0=v0.16.0 shine=0.2.3 stdlib-shims=0.3.0 str=[distributed with Ocaml] stringext=1.6.0 threads=[distributed with Ocaml] threads.posix=[internal] unix=[distributed with Ocaml] uri=4.4.0 vorbis=0.8.0 vorbis.decoder=0.8.0
2024/12/08 19:37:25 [clock:3] Using builtin (low-precision) implementation for latency control
2024/12/08 19:37:28 [main:3] User script loaded in 2.84 seconds.
2024/12/08 19:37:28 [frame:3] Using 44100Hz audio, 25Hz video, 44100Hz main.
2024/12/08 19:37:28 [frame:3] Video frame size set to: 1280x720
2024/12/08 19:37:28 [frame:3] Targeting 'frame.duration': 0.02s = 882 ticks.
2024/12/08 19:37:28 [sandbox:3] Sandboxing disabled
2024/12/08 19:37:28 [startup:3] main script hash computation: 0.23s
2024/12/08 19:37:28 [startup:3] Loading main script from cache!
2024/12/08 19:37:28 [startup:3] main script cache retrieval: 0.36s
2024/12/08 19:37:28 [startup:3] Evaluating main script: 0.19s
2024/12/08 19:37:28 [clock:3] Starting clock generic with 11 source(s) and sync: auto
2024/12/08 19:37:28 [harbor:3] Adding handler for 'GET ^/getmeta$' on port 7000
2024/12/08 19:37:28 [video.converter:3] Couldn't find preferred video converter: ffmpeg.
2024/12/08 19:37:28 [audio.converter:3] Using samplerate converter: native.
2024/12/08 19:37:28 [alsa_in(pcm.default):3] Content type is {audio=pcm(stereo)}.
2024/12/08 19:37:28 [alsa_in(pcm.default):3] Using ALSA 1.2.4.
2024/12/08 19:37:28 [alsa_in(pcm.default):3] Could not set buffer size to: 0.05s (2205 samples), got: 0.05 (2048 samples).
2024/12/08 19:37:28 [alsa_in(pcm.default):3] Samplefreq=44100Hz, Bufsize=2048B, Frame=4B, Periods=2
2024/12/08 19:37:28 [track_amplify:3] Content type is {audio=pcm(stereo)}.
2024/12/08 19:37:28 [amplify:3] Content type is {audio=pcm(stereo)}.
2024/12/08 19:37:28 [biquad_filter:3] Content type is {audio=pcm(stereo)}.
2024/12/08 19:37:28 [compress:3] Content type is {audio=pcm(stereo)}.
2024/12/08 19:37:28 [source.2:3] Content type is {audio=pcm(stereo)}.
2024/12/08 19:37:28 [audio.add:3] Content type is {audio=pcm(stereo)}.
2024/12/08 19:37:28 [source.3:3] Content type is {audio=pcm(stereo)}.
2024/12/08 19:37:28 [insert_metadata:3] Content type is {audio=pcm(stereo)}.
2024/12/08 19:37:28 [blank.detect:3] Content type is {audio=pcm(stereo)}.
2024/12/08 19:37:28 [Vinyl_Station:3] Content type is {audio=pcm(stereo)}.
2024/12/08 19:37:28 [Vinyl_Station:3] Content type is {audio=pcm(stereo)}.
2024/12/08 19:37:28 [video.text:3] Using native implementation
2024/12/08 19:37:28 [Vinyl_Station:3] Connecting mount vinyl for source@127.0.0.1...
2024/12/08 19:37:28 [Vinyl_Station:3] Connection setup was successful.
2024/12/08 19:37:28 [alsa_in(pcm.default):2] Overrun! You may minimize them by increasing the buffer size.
2024/12/08 19:37:28 [alsa_in(pcm.default):2] Trying to recover..
2024/12/08 19:37:28 [alsa_in(pcm.default):2] Overrun! You may minimize them by increasing the buffer size.
2024/12/08 19:37:28 [alsa_in(pcm.default):2] Trying to recover..
2024/12/08 19:37:28 [alsa_in(pcm.default):2] Overrun! You may minimize them by increasing the buffer size.
2024/12/08 19:37:28 [alsa_in(pcm.default):2] Trying to recover..
2024/12/08 19:37:28 [alsa_in(pcm.default):2] Overrun! You may minimize them by increasing the buffer size.
2024/12/08 19:37:28 [alsa_in(pcm.default):2] Trying to recover..
2024/12/08 19:37:29 [alsa_in(pcm.default):2] Overrun! You may minimize them by increasing the buffer size.
2024/12/08 19:37:29 [alsa_in(pcm.default):2] Trying to recover..
2024/12/08 19:37:29 [alsa_in(pcm.default):2] Overrun! You may minimize them by increasing the buffer size.
2024/12/08 19:37:29 [alsa_in(pcm.default):2] Trying to recover..
2024/12/08 19:37:29 [alsa_in(pcm.default):2] Overrun! You may minimize them by increasing the buffer size.
2024/12/08 19:37:29 [alsa_in(pcm.default):2] Trying to recover..
2024/12/08 19:37:29 [alsa_in(pcm.default):2] Overrun! You may minimize them by increasing the buffer size.
2024/12/08 19:37:29 [alsa_in(pcm.default):2] Trying to recover..
2024/12/08 19:37:29 [alsa_in(pcm.default):2] Overrun! You may minimize them by increasing the buffer size.
2024/12/08 19:37:29 [alsa_in(pcm.default):2] Trying to recover..
2024/12/08 19:37:29 [alsa_in(pcm.default):2] Overrun! You may minimize them by increasing the buffer size.
2024/12/08 19:37:29 [alsa_in(pcm.default):2] Trying to recover..
2024/12/08 19:37:29 [alsa_in(pcm.default):2] Overrun! You may minimize them by increasing the buffer size.
2024/12/08 19:37:29 [alsa_in(pcm.default):2] Trying to recover..

and so it continues...

toots commented

As recommended in the discussion, I suggest increasing the buffer more and/or using jack or another input API such as pulseaudio.

@toots ,
Thanks for your input.
Is there a method you suggest for calculating an appropriate buffer size, or is it trial and error?

toots commented

Trial and error!