[GH-ISSUE #29] Use pulseaudio native volume management #18

Closed
opened 2026-02-27 19:28:20 +03:00 by kerem · 4 comments
Owner

Originally created by @sashahilton00 on GitHub (Jan 29, 2018).
Original GitHub issue: https://github.com/librespot-org/librespot/issues/29

Issue by paradis
Tuesday Apr 19, 2016 at 18:44 GMT
Originally opened as https://github.com/plietar/librespot/issues/75


Hello,

When using pulseaudio backend it would be nice to delegate volume management to pulse audio sink. Besides having a logarithmic scale natively, it would also allow to manage librespot volume in one place and avoid several volume alteration (librespot, pulseaudio sink, pulseaudio output).

However, it would be necessary to move volume management from the player to the audio_backend.

What do you think?

Originally created by @sashahilton00 on GitHub (Jan 29, 2018). Original GitHub issue: https://github.com/librespot-org/librespot/issues/29 <a href="https://github.com/paradis"><img src="https://avatars1.githubusercontent.com/u/4386641?v=4" align="left" width="96" height="96" hspace="10"></img></a> **Issue by [paradis](https://github.com/paradis)** _Tuesday Apr 19, 2016 at 18:44 GMT_ _Originally opened as https://github.com/plietar/librespot/issues/75_ ---- Hello, When using pulseaudio backend it would be nice to delegate volume management to pulse audio sink. Besides having a logarithmic scale natively, it would also allow to manage librespot volume in one place and avoid several volume alteration (librespot, pulseaudio sink, pulseaudio output). However, it would be necessary to move volume management from the player to the audio_backend. What do you think?
kerem 2026-02-27 19:28:20 +03:00
Author
Owner

@sashahilton00 commented on GitHub (Jan 29, 2018):

Comment by joerg-krause
Saturday Aug 27, 2016 at 23:58 GMT


I'd like to see this for the ALSA backend, too!

<!-- gh-comment-id:361258241 --> @sashahilton00 commented on GitHub (Jan 29, 2018): <a href="https://github.com/joerg-krause"><img src="https://avatars2.githubusercontent.com/u/6870896?v=4" align="left" width="48" height="48" hspace="10"></img></a> **Comment by [joerg-krause](https://github.com/joerg-krause)** _Saturday Aug 27, 2016 at 23:58 GMT_ ---- I'd like to see this for the ALSA backend, too!
Author
Owner

@brain0 commented on GitHub (Mar 3, 2018):

Using pulseaudio's volume control requires using the asynchronous pulseaudio API instead of the "simple" API. This is very complex, since nobody has done this in Rust yet. I have started a prototype for a pulseaudio API binding for tokio, but haven't worked on it for a while now.

<!-- gh-comment-id:370135281 --> @brain0 commented on GitHub (Mar 3, 2018): Using pulseaudio's volume control requires using the asynchronous pulseaudio API instead of the "simple" API. This is very complex, since nobody has done this in Rust yet. I have started a prototype for a pulseaudio API binding for tokio, but haven't worked on it for a while now.
Author
Owner

@mirko commented on GitHub (Mar 14, 2018):

I'd really like to see the native volume management being used as well. I'm aware of the API change using PulseAudio and its necessary effort, though..

<!-- gh-comment-id:372904736 --> @mirko commented on GitHub (Mar 14, 2018): I'd really like to see the native volume management being used as well. I'm aware of the API change using PulseAudio and its necessary effort, though..
Author
Owner

@roderickvd commented on GitHub (May 25, 2021):

#685 implements what you ask for (logarithmic and cubic mappings, transparently for all backends), without the need to implement the asynchronous PulseAudio API.

If you feel like you don't want bits touched by volume controls in several places, then either set librespot or PulseAudio volume fixed to 100% and it will bypass touching any samples.

<!-- gh-comment-id:848232030 --> @roderickvd commented on GitHub (May 25, 2021): #685 implements what you ask for (logarithmic and cubic mappings, transparently for all backends), without the need to implement the asynchronous PulseAudio API. If you feel like you don't want bits touched by volume controls in several places, then either set `librespot` or PulseAudio volume fixed to 100% and it will bypass touching any samples.
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#18
No description provided.