[alsa-devel] alsactl adds volume controls?

Colin Guthrie gmane at colin.guthr.ie
Fri Oct 8 16:05:39 CEST 2010


'Twas brillig, and Clemens Ladisch at 08/10/10 14:41 did gyre and gimble:
> Colin Guthrie wrote:
>> 'Twas brillig, and Clemens Ladisch at 07/10/10 09:05 did gyre and gimble:
>>> Please try this patch.
>>>
>>> +++ b/sound/pci/hda/patch_sigmatel.c
>>> ...
>>
>> Seemed to do something. Now, rather than printing -46.5dB then the
>> Master slider is down at 0, it prints "mute".
>>
>> Is this the extent of the fix? i.e. to correctly report that the bottom
>> value is muted?
> 
> Yes.

Cool.

>> If so, then is there a way to tell this via an API so that I can tell PA
>> to not control the slider down to it's 0 value in order to avoid the
>> auto mute?
> 
> Alsamixer uses the standard dB information that should also be used by PA.

I think something in there is busted, but it's likely at the PA end.

This is the debug from a volume that is ultimately less than the min dB
(i.e. ~50dB or there about - certainly more attenuation than -46.5dB) (I
should really make it so it prints the dB volume here too)

D: alsa-sink.c: Requested volume: 0:  13% 1:  13%
D: alsa-sink.c: Got hardware volume: 0:   0% 1:   0%
D: alsa-sink.c: Calculated software volume: 0:   0% 1:   0%
(accurate-enough=no)

And here is something for ~40dB:

D: alsa-sink.c: Requested volume: 0:  19% 1:  19%
D: alsa-sink.c: Got hardware volume: 0:  19% 1:  19%
D: alsa-sink.c: Calculated software volume: 0:  99% 1:  99%
(accurate-enough=yes)

In this case the accurate-enough checks succeed vs before when they fail.


D: alsa-mixer.c: Activating path analog-output
D: alsa-mixer.c: Path analog-output (Analog Output), direction=1,
priority=99, probed=yes, supported=yes, has_mute=yes, has_volume=yes,
has_dB=yes, min_volume=0, max_volume=31, min_dB=-97.5, max_dB=0
D: alsa-mixer.c: Element Master, direction=1, switch=1, volume=1,
enumeration=0, required=0, required_absent=0, mask=0x3600000000f66,
n_channels=2, override_map=yes
D: alsa-mixer.c: Element PCM, direction=1, switch=0, volume=1,
enumeration=0, required=0, required_absent=0, mask=0x3600000000f66,
n_channels=2, override_map=yes
I: alsa-sink.c: Hardware volume ranges from -97.50 dB to 0.00 dB.
I: alsa-sink.c: No particular base volume set, fixing to 0 dB
I: alsa-sink.c: Using hardware volume control. Hardware dB scale supported.
I: alsa-sink.c: Using hardware mute control.
D: alsa-util.c: snd_pcm_dump():
D: alsa-util.c: Soft volume PCM
D: alsa-util.c: Control: PCM Playback Volume
D: alsa-util.c: min_dB: -51
D: alsa-util.c: max_dB: 0
D: alsa-util.c: resolution: 256
D: alsa-util.c: Its setup is:
D: alsa-util.c:   stream       : PLAYBACK
D: alsa-util.c:   access       : MMAP_INTERLEAVED
D: alsa-util.c:   format       : S16_LE
D: alsa-util.c:   subformat    : STD
D: alsa-util.c:   channels     : 2
D: alsa-util.c:   rate         : 44100
D: alsa-util.c:   exact rate   : 44100 (44100/1)
D: alsa-util.c:   msbits       : 16
D: alsa-util.c:   buffer_size  : 16384
D: alsa-util.c:   period_size  : 8192
D: alsa-util.c:   period_time  : 185759
D: alsa-util.c:   tstamp_mode  : ENABLE
D: alsa-util.c:   period_step  : 1
D: alsa-util.c:   avail_min    : 15502
D: alsa-util.c:   period_event : 0
D: alsa-util.c:   start_threshold  : -1
D: alsa-util.c:   stop_threshold   : 4611686018427387904
D: alsa-util.c:   silence_threshold: 0
D: alsa-util.c:   silence_size : 0
D: alsa-util.c:   boundary     : 4611686018427387904
D: alsa-util.c: Slave: Hardware PCM card 1 'HDA Intel' device 0 subdevice 0
D: alsa-util.c: Its setup is:
D: alsa-util.c:   stream       : PLAYBACK
D: alsa-util.c:   access       : MMAP_INTERLEAVED
D: alsa-util.c:   format       : S16_LE
D: alsa-util.c:   subformat    : STD
D: alsa-util.c:   channels     : 2
D: alsa-util.c:   rate         : 44100
D: alsa-util.c:   exact rate   : 44100 (44100/1)
D: alsa-util.c:   msbits       : 16
D: alsa-util.c:   buffer_size  : 16384
D: alsa-util.c:   period_size  : 8192
D: alsa-util.c:   period_time  : 185759
D: alsa-util.c:   tstamp_mode  : ENABLE
D: alsa-util.c:   period_step  : 1
D: alsa-util.c:   avail_min    : 15502
D: alsa-util.c:   period_event : 0
D: alsa-util.c:   start_threshold  : -1
D: alsa-util.c:   stop_threshold   : 4611686018427387904
D: alsa-util.c:   silence_threshold: 0
D: alsa-util.c:   silence_size : 0
D: alsa-util.c:   boundary     : 4611686018427387904
D: alsa-util.c:   appl_ptr     : 0
D: alsa-util.c:   hw_ptr       : 0




I'll try and work out why PA still insists on setting Master to 0 aka
-99999.99dB :D

Many thanks for the patch.

Col

-- 

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
  Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
  Mageia Contributor [http://www.mageia.org/]
  PulseAudio Hacker [http://www.pulseaudio.org/]
  Trac Hacker [http://trac.edgewall.org/]



More information about the Alsa-devel mailing list