[GH-ISSUE #274] Feature Request: add native sndio backend #186

Closed
opened 2026-02-27 19:29:17 +03:00 by kerem · 5 comments
Owner

Originally created by @archfan on GitHub (Dec 2, 2018).
Original GitHub issue: https://github.com/librespot-org/librespot/issues/274

Excerpt:
" Sndio is a small audio and MIDI framework part of the OpenBSD project and ported to FreeBSD, Linux and NetBSD. It provides a lightweight audio & MIDI server and a fully documented user-space API to access either the server or directly the hardware in a uniform way. Sndio is designed to work for desktop applications, but pays special attention to synchronization mechanisms and reliability required by music applications. Reliability through simplicity are part of the project goals. "

API: https://man.openbsd.org/sio_open

Originally created by @archfan on GitHub (Dec 2, 2018). Original GitHub issue: https://github.com/librespot-org/librespot/issues/274 Excerpt: " Sndio is a small audio and MIDI framework part of the OpenBSD project and ported to FreeBSD, Linux and NetBSD. It provides a lightweight audio & MIDI server and a fully documented user-space API to access either the server or directly the hardware in a uniform way. Sndio is designed to work for desktop applications, but pays special attention to synchronization mechanisms and reliability required by music applications. **Reliability through simplicity are part of the project goals.** " API: https://man.openbsd.org/sio_open
kerem 2026-02-27 19:29:17 +03:00
Author
Owner

@sashahilton00 commented on GitHub (Jan 4, 2019):

We will eventually move to cpal/rodio for audio playback, or alternatively some sort of audio sink plugin system, though this will be in the daemon. For now, we don't want any other backends to maintain, as it's not really the aim of this project, and audio sinks have had too much dev time spent on them already. Thus I'm marking this as wontfix, though it may be addressed in librespotd once that is implemented.

<!-- gh-comment-id:451572925 --> @sashahilton00 commented on GitHub (Jan 4, 2019): We will eventually move to cpal/rodio for audio playback, or alternatively some sort of audio sink plugin system, though this will be in the daemon. For now, we don't want any other backends to maintain, as it's not really the aim of this project, and audio sinks have had too much dev time spent on them already. Thus I'm marking this as wontfix, though it may be addressed in librespotd once that is implemented.
Author
Owner

@sashahilton00 commented on GitHub (Jan 4, 2019):

Actually, will leave this open, as that's what we've done w/ other feature requests.

<!-- gh-comment-id:451573257 --> @sashahilton00 commented on GitHub (Jan 4, 2019): Actually, will leave this open, as that's what we've done w/ other feature requests.
Author
Owner

@willstott101 commented on GitHub (Mar 25, 2019):

It looks like portaudio supports sndio

Perhaps anyone who's interested could try using sndio via Librespot's portaudio backend and report back.

I can't immediately see any sndio bindings for Rust which would be a pre-requisite for support here, or cpal (if they're open to adding more backends).

<!-- gh-comment-id:476318400 --> @willstott101 commented on GitHub (Mar 25, 2019): It looks like portaudio supports sndio Perhaps anyone who's interested could try using sndio via Librespot's portaudio backend and report back. I can't immediately see any sndio bindings for Rust which would be a pre-requisite for support here, or cpal (if they're open to adding more backends).
Author
Owner

@hrkfdn commented on GitHub (Mar 29, 2019):

The PortAudio backend worked on OpenBSD when I tried it awhile ago. Someone would probably need to add sndio support to CPAL if the PortAudio backend gets dropped.

<!-- gh-comment-id:478058670 --> @hrkfdn commented on GitHub (Mar 29, 2019): The PortAudio backend worked on OpenBSD when I tried it awhile ago. Someone would probably need to add sndio support to CPAL if the PortAudio backend gets dropped.
Author
Owner

@allquixotic commented on GitHub (Jan 1, 2020):

I recently implemented GStreamer support here: https://github.com/allquixotic/librespot/tree/gst1.0-2020

There's a GStreamer sndio sink here: https://github.com/t6/gstreamer-plugins-sndio

You could play back to sndio using a command like librespot --backend gstreamer --device '! audioconvert ! sndiosink.

<!-- gh-comment-id:570016039 --> @allquixotic commented on GitHub (Jan 1, 2020): I recently implemented GStreamer support here: https://github.com/allquixotic/librespot/tree/gst1.0-2020 There's a GStreamer sndio sink here: https://github.com/t6/gstreamer-plugins-sndio You could play back to sndio using a command like `librespot --backend gstreamer --device '! audioconvert ! sndiosink`.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/librespot#186
No description provided.