Bug 54096

Summary: Problems with volume control in VIA VT1708B 8-Ch
Product: PulseAudio Reporter: Agustín Dall'Alba <agustin>
Component: alsaAssignee: pulseaudio-bugs
Status: RESOLVED FIXED QA Contact: pulseaudio-bugs
Severity: normal    
Priority: medium CC: lennart
Version: unspecified   
Hardware: x86-64 (AMD64)   
OS: Linux (All)   
Whiteboard:
i915 platform: i915 features:
Attachments: x = alsamixer pecentage for the PCM control. y = corresponding volume in dB.

Description Agustín Dall'Alba 2012-08-26 20:00:30 UTC
Created attachment 66151 [details]
x = alsamixer pecentage for the PCM control. y = corresponding volume in dB.

I have an ASUS P5KPL-1600 motherboard with a VIA VT1708B 8-Ch chip managed by snd-hda-intel. The volume control in pavucontrol, Gnome's sound preferences and all apps with flat-volume enabled is too non-lineal and just plain wrong.

alsamixer has two useful controls for output volume:
PCM: goes from -40.25dB in 0% through 0dB in 53% to 14dB (*with clipping*) in 100%. (This is not linear at all, see graph.png, attached.)
Master: goes from 0dB in 0% (very quiet output) to 6.75dB (without any clipping, loud and clear) in 100% with 0.25dB = 3.75% increments.

When, in PulseAudio 2.1, I set the volume in 100% it maxes out both PCM and Master, so I get a quite distorted sound. This is expected, but the scale is wrong: 100% is 0dB but it should be 14dB.

The base should be at -14dB, or 58%, when PCM is at 0dB (53%) and Master at 6.75dB (100%), but it is at -20.75dB (45%), with Master and PCM at 0dB, with very quiet output. The difference in sound pressure between 45% and 53% is very large.

Between -20.75dB (45%) and -68dB (7%) the volume does not change at all. All controls in alsamixer remain the same.

Between -68dB (7%) and -108.24dB (2%) the PCM control goes down to zero, and any less than that results in muted output.

This behaviour is quite strange and I don't know how much of it is pulseaudio's fault, how much is the alsa driver's and how much is mine.

Thanks.
Comment 1 Raymond 2013-08-27 01:15:36 UTC
you have to provide pulseaudio verbose log to show how pulseaidiot caluclate dB when request volume from 100% to 0%


Aug  2 19:08:44 encke pulseaudio[2207]: (   9.204|   9.204) [pulseaudio] protocol-native.c: Client indicator-sound-service changes volume of sink alsa_output.pci-0000_00_1b.0.analog-stereo.
Aug  2 19:08:44 encke pulseaudio[2207]: (   9.205|   0.000) [alsa-sink] alsa-sink.c: Requested volume: 0:  99% 1:  99%
Aug  2 19:08:44 encke pulseaudio[2207]: (   9.205|   0.000) [alsa-sink] alsa-sink.c:            in dB: 0: -0.18 dB 1: -0.18 dB
Aug  2 19:08:44 encke pulseaudio[2207]: (   9.205|   0.000) [alsa-sink] alsa-sink.c: Got hardware volume: 0: 100% 1: 100%
Aug  2 19:08:44 encke pulseaudio[2207]: (   9.205|   0.000) [alsa-sink] alsa-sink.c:               in dB: 0: 0.00 dB 1: 0.00 dB
Aug  2 19:08:44 encke pulseaudio[2207]: (   9.205|   0.000) [alsa-sink] alsa-sink.c: Calculated software volume: 0:  99% 1:  99% (accurate-enough=yes)
Aug  2 19:08:44 encke pulseaudio[2207]: (   9.205|   0.000) [alsa-sink] alsa-sink.c:                      in dB: 0: -0.18 dB 1: -0.18 dB
Comment 2 Agustín Dall'Alba 2013-08-27 03:22:30 UTC
Thanks for taking a look at this, it has been fixed (perhaps inadvertently) since I reported it. 

Have a good day.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.