LMS-Community / slimserver

Server for Squeezebox and compatible players. This server is also called Lyrion Music Server.
https://lyrion.org
Other
1.2k stars 298 forks source link

volume control scale - ambiguous positions 47/44/41 #257

Open klslz opened 5 years ago

klslz commented 5 years ago

I discovered while tracing squeezelite volume control that the LMS supplied data do not provide changes on positions 47/44/41 of the VC-100 scale. The supplied values equal the value of each prior position (48=47, 45=44, 42=41). All other values on the VC-100 scale are unique though.

This can lead to a shift of up to 3dB in the lower range on e.g. a linear/dB scale.

Ambiguous values should be avoided.

michaelherger commented 5 years ago

Could this be related?

https://github.com/Logitech/slimserver/blob/aa9923985e54ee15dde96770249254da21c0e11b/Slim/Player/SqueezePlay.pm#L178

klslz commented 5 years ago

That 2-part slope is exactly the curve I see when looking at the 16.16fp data squeezelite receives from LMS.

My reported issues happen quite a bit above the outlined limits -74dB or 25%.

Your Squeezeplay.pm reference didn't show the actual algorithms. I did look up the Squeezebox2.pm player now. Because there's a reference in squeezelite slimproto.h in the volume section to it. And in Squeezebox2.pm I found quite some volume control related maps/formulas and the same curve format.

github-actions[bot] commented 6 days ago

:warning: This issue is stale because it has been open for 720 days with no activity. Please chime in if you want to keep it alive.