Skip to content

Cannot use listed audio device #251

Description

@mlowijs

I'm trying to use the Sendspin daemon with one of the ALSA audio devices on my system.
The audio device I want to use is default:CARD=S4.
It is listed by sendspin audio-devices list:

[michiel@sqz-badkamer ~]$ sendspin audio-devices list
Available audio output devices:

  [0] Sound Blaster Play! 4: USB Audio (hw:0,0)
       Channels: 2, Sample rate: 44100.0 Hz
  [1] sysdefault
       Channels: 128, Sample rate: 48000.0 Hz
  [2] front
       Channels: 2, Sample rate: 44100.0 Hz
  [3] surround40
       Channels: 2, Sample rate: 44100.0 Hz
  [4] iec958
       Channels: 2, Sample rate: 44100.0 Hz
  [5] spdif
       Channels: 2, Sample rate: 44100.0 Hz
  [6] default (default)
       Channels: 128, Sample rate: 48000.0 Hz
  [7] dmix
       Channels: 2, Sample rate: 48000.0 Hz

To select an audio device:
  sendspin --audio-device 0
  sendspin daemon --audio-device 0

ALSA devices (use by name with --audio-device):

  null
       Discard all samples (playback) or generate zero samples (capture)
  default
       Default Audio Device
  sysdefault
       Default Audio Device
  default:CARD=S4
       Sound Blaster Play! 4, USB Audio
  sysdefault:CARD=S4
       Sound Blaster Play! 4, USB Audio
  front:CARD=S4,DEV=0
       Sound Blaster Play! 4, USB Audio
  surround21:CARD=S4,DEV=0
       Sound Blaster Play! 4, USB Audio
  surround40:CARD=S4,DEV=0
       Sound Blaster Play! 4, USB Audio
  surround41:CARD=S4,DEV=0
       Sound Blaster Play! 4, USB Audio
  surround50:CARD=S4,DEV=0
       Sound Blaster Play! 4, USB Audio
  surround51:CARD=S4,DEV=0
       Sound Blaster Play! 4, USB Audio
  surround71:CARD=S4,DEV=0
       Sound Blaster Play! 4, USB Audio
  iec958:CARD=S4,DEV=0
       Sound Blaster Play! 4, USB Audio

Recommended for desktop usage:

  default      System default

However, when I start sendspin, it seems the device is not seen:

[michiel@sqz-badkamer ~]$ sendspin daemon --audio-device 'default:CARD=S4' --name Badkamer
INFO:sendspin.audio_devices:Using audio device default:CARD=S4: default:CARD=S4
WARNING:sendspin.cli:No volume control available for device 'default:CARD=S4' (no ALSA mixer controls and PulseAudio/PipeWire not reachable), falling back to software volume control
INFO:sendspin.audio:C volume extension unavailable; falling back to numpy (slower)
INFO:sendspin.daemon.daemon:Starting Sendspin daemon: sendspin-cli-sqz-badkamer
INFO:sendspin.daemon.daemon:Listening for server connections on port 8928 (mDNS: _sendspin._tcp.local.)
INFO:aiosendspin.client.listener:ClientListener started on port 8928, path /sendspin
INFO:aiosendspin.client.listener:mDNS advertising client 'sendspin-cli-sqz-badkamer' on port 8928 with path /sendspin
INFO:sendspin.daemon.daemon:Server connected
ERROR:aiosendspin.client.listener:Unhandled exception in on_connection callback for 192.168.11.11
Traceback (most recent call last):
  File "/usr/local/share/uv/tools/sendspin/lib/python3.14/site-packages/aiosendspin/client/listener.py", line 146, in _handle_websocket
    await self._on_connection(ws)
  File "/usr/local/share/uv/tools/sendspin/lib/python3.14/site-packages/sendspin/daemon/daemon.py", line 294, in _handle_server_connection
    client = self._create_client()
  File "/usr/local/share/uv/tools/sendspin/lib/python3.14/site-packages/sendspin/daemon/daemon.py", line 92, in _create_client
    supported_formats = detect_supported_audio_formats(self._args.audio_device)
  File "/usr/local/share/uv/tools/sendspin/lib/python3.14/site-packages/sendspin/audio_devices.py", line 121, in detect_supported_audio_formats
    supported_rates = [r for r in sample_rates if _check_format(device, r, 2, "int16")]
                                                  ~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/share/uv/tools/sendspin/lib/python3.14/site-packages/sendspin/audio_devices.py", line 86, in _check_format
    sounddevice.check_output_settings(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
        device=device.device_id,
        ^^^^^^^^^^^^^^^^^^^^^^^^
    ...<2 lines>...
        dtype=dtype,
        ^^^^^^^^^^^^
    )
    ^
  File "/usr/local/share/uv/tools/sendspin/lib/python3.14/site-packages/sounddevice.py", line 704, in check_output_settings
    parameters, dtype, samplesize, samplerate = _get_stream_parameters(
                                                ~~~~~~~~~~~~~~~~~~~~~~^
        'output', device=device, channels=channels, dtype=dtype, latency=None,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
        extra_settings=extra_settings, samplerate=samplerate)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/share/uv/tools/sendspin/lib/python3.14/site-packages/sounddevice.py", line 2734, in _get_stream_parameters
    device = _get_device_id(device, kind, raise_on_error=True)
  File "/usr/local/share/uv/tools/sendspin/lib/python3.14/site-packages/sounddevice.py", line 2900, in _get_device_id
    raise ValueError(
        'No ' + kind + ' device matching ' + repr(id_or_query_string))
ValueError: No output device matching 'default:CARD=S4'

Output from amixer:

[michiel@sqz-badkamer ~]$ amixer
Simple mixer control 'PCM',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 175
  Mono:
  Front Left: Playback 175 [100%] [0.00dB] [on]
  Front Right: Playback 175 [100%] [0.00dB] [on]
Simple mixer control 'Mic',0
  Capabilities: cvolume cswitch cswitch-joined
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 74
  Front Left: Capture 74 [100%] [10.00dB] [on]
  Front Right: Capture 74 [100%] [10.00dB] [on]
[michiel@sqz-badkamer ~]$ sendspin --version
sendspin 7.3.0

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions