Volume Sofware is non linear

The volume in mopidy is non linear at all with my sound-card (wolfson).
I have both mpd and mopidy on my Pi. When i turn in mdp.conf mixer_type “software” i get a linear volume control.
I tried some settings to get it to work in mopidy but nothing worked…
Even at volume 2 it’s like 30 of the linear mpd volume. At 40 i can say that it’s 100 of the mpd one…

Mopidy assumes a linear scale, but could be that mopidy-alsamixer isn’t normalizing to a linear scale. Could you confirm which mopidy mixer you are using, and if you haven’t tried our software mixer please compare against that as well.

I’m seeing this as well. Mopidy 0.19.5 on Arch, using pulsesink with the software mixer.

Mapping on mine is logarithmic. In percent, 2=27, 4=34, 6=39, 8=43 and so on, leveling off fairly quickly. Effectively, the lowest volume I can choose is 27%. And a single notch above that is drastically louder.

Worth noting that volume scaled correctly with mopidy-alsamixer as the mixer. But I prefer the application-independent volume offered by using pulse. It does not appear to be a pulse->hardware problem though, as pulse accurately displays the “true” volume. Issue is in mopidy talking to pulse and apparently renormalizing the volume.

Thanks for the extra info. Knowing that this is likely a pulse thing, or at least how we end up interacting with it when it is used for software mixing is good to know and should hopefully make it possible to fix things. It’s sadly always a bit confusing how the gst playbin ends up doing “true” gstreamer software mixing or just letting say pulse handle it when it comes to debugging these things.

Though at least on my system gst-inspect-0.10 pulsesink gives me:

volume: Linear volume of this stream, 1.0=100%

This is with version 0.10.31 of the plugin used with 0.10, and same seems to be the case for 1.2.4 used in gst 1.0 on my system.

https://bugzilla.gnome.org/show_bug.cgi?id=571610 might be relevant, so check if you have a GStreamer version older than 0.10.25.

I get the same

volume: Linear volume of this stream, 1.0=100%

Versions:

extra/gstreamer0.10    0.10.36-4
extra/gstreamer        1.4.5-1

Arch, so as far as I can see they are the latest.

Hmm, strange. I wonder if our best bet at this point is just to add a audio config option(s) mixer_scale which lets you override the linear scale to log etc and set the min/max values. Just as an escape hatch for when the underlying mixer can’t make sense of what the system below is really using.

Feel free to open a bug for this and thanks for trying to help debug.