Volume with increment 1

Volume control doesn’t work well when increment is set to 1.
Increment works between 1-31 but not outside of this range.

This is very old bug (at least a year). Would be nice if fixed soon…

Having the same.

Verstuurd vanaf mijn SM-G960F met Tapatalk

Ok I figured out what is going on there.
It is more or less Amixer problem with mapped volume scale (the -M option) and rounding.

When incrementing by one the volume is incremented but the percentage is rounded back to original volume level.
Volumio UI volume shows 31 but “currentvolume” variable is still 30 (which was the response from amixer). Therefore decremented from 31 it goes to 29.
To resolve this bug Volumio should use raw volume rather than a percentage one for volume control. The volume percentage should be used only for displaying current volume. Maybe Volumio should implement its own volume mapping function rather than using the Amixer’s -M switch?

$ amixer -M -c 0 set Digital,0 30%
Simple mixer control ‘Digital’,0
Capabilities: pvolume pswitch
Playback channels: Front Left - Front Right
Limits: Playback 0 - 207
Mono:
Front Left: Playback 144 [30%] [-31.50dB] [on]
Front Right: Playback 144 [30%] [-31.50dB] [on]

$ amixer -M -c 0 set Digital,0 31%
Simple mixer control ‘Digital’,0
Capabilities: pvolume pswitch
Playback channels: Front Left - Front Right
Limits: Playback 0 - 207
Mono:
Front Left: Playback 145 [30%] [-31.00dB] [on]
Front Right: Playback 145 [30%] [-31.00dB] [on]

But to throw some spanners in the proverbial works.

This only happens for me when using a usb dac. if set to hdmi it will count from 1 to 100 and back down perfectlty.
But set to usb dac, it’ll only count from 1 to 14 and back down again

Now set the audio curve to linear it will count all the way up to 100 in 1s and 2s but not back down again.

it would be nice if this worked properly in 1’s using a usb dac. especially now ive added a rotary encoder to my volumio box.
I curently have it set to muliples of 2 and it will count up and down correctly to 58 which is a reasonable compromise