Bug 77499

Summary: One should be able to modify the volume when audio is mute
Product: PulseAudio Reporter: Léo Cavaillé <leo+debian>
Component: pavucontrolAssignee: pulseaudio-bugs
Status: RESOLVED MOVED QA Contact: pulseaudio-bugs
Severity: enhancement    
Priority: medium CC: lennart, leo+debian, vincent-fdt
Version: unspecifiedKeywords: love
Hardware: All   
OS: Linux (All)   
See Also: https://bugs.freedesktop.org/show_bug.cgi?id=91781
Whiteboard:
i915 platform: i915 features:

Description Léo Cavaillé 2014-04-15 20:18:03 UTC
Forwarded from : https://bugs.debian.org/732809
Affects latest version 2.0 of pulseaudio, packaged for Debian sid

When "Mute" is selected, the volume sliders (Front Left & Front Right)
are greyed out, and it is not possible to modify the volume.

One should be able to modify the volume (in particular lower it)
just before unmuting. Otherwise it can be too high, which could
be annoying for the neighbors, even during a short period.
Comment 1 Raymond 2014-04-16 04:59:16 UTC
http://freedesktop.org/software/pulseaudio/doxygen/volume.html


The basic volume type in PulseAudio is the pa_volume_t type. Most of the time, applications will use the aggregated pa_cvolume structure that can store the volume of all channels at once.

Volumes commonly span between muted (0%), and normal (100%)

http://freedesktop.org/software/pulseaudio/doxygen/structpa__cvolume.html


seem pulseaudio treat min volume as mute and cannot use the mute switch which is independent of volume control
Comment 2 Vincent Lefevre 2014-04-16 08:22:05 UTC
(In reply to comment #1)
> seem pulseaudio treat min volume as mute

No, it doesn't: pavucontrol has separate button for mute and sliders for the volume itself. When the mute is active, pavucontrol is still able to read the volume. So, it should technically be able to modify it.
Comment 3 Raymond 2014-04-17 08:09:25 UTC
typedef uint32_t pa_volume_t


Volume specification: PA_VOLUME_MUTED: silence; < PA_VOLUME_NORM: decreased volume; PA_VOLUME_NORM: normal volume; 

PA_VOLUME_NORM: increased volume


Sinks, sources, sink inputs and samples can all have their own volumes

the pulseaudio internal only have volumes but does not have any independent mute switch

especially the internal working format is float 

0.0 mean mute 1.0 mean 0dB

While most sound cards volume control's  min volume are not -inf dB but mute switch is equivalent to -inf dB


for 16bit audio sound card

the  range of volume from -inf dB to -96dB is not controlled by hardware
Comment 4 Tanu Kaskinen 2014-04-17 08:56:38 UTC
Come on Raymond, this has nothing to do with hardware or internal volume representations. PulseAudio has separate mute and volume controls, both work regardless of what the hardware supports, and the volume can be changed regardless of the mute state, so it's purely a pavucontrol bug or feature that it prevents the user from modifying the volume while the device or stream is muted.
Comment 5 trondsg+bugzilla+freedesktop 2014-06-04 12:20:18 UTC
This has absolutely zero to do with hardware. It is a software thing. The indicator applet that ships with Linux Mint XCE 14.04 manages to adjust the volume while it is muted just fine.

One of the main purposes of the mute button is to lower an extremely high volume. For all other use cases, the functionality can always be replicated with the volume sliders only. It makes no sense that the mute button would be insufficient for the only thing it is really needed for.
Comment 6 Raymond 2014-06-04 22:57:32 UTC
if requested volume is -inf dB,  it can achieved by using hardware mute switch or software volume mute but change in software need to rewind and may be deferred when the sink is not playing any stream 


https://bugs.freedesktop.org/show_bug.cgi?id=46236#c5


(  20.557|   0.094) D: [pulseaudio] protocol-native.c: Client pavucontrol changes volume of sink alsa_output.usb-045e_Microsoft_LifeChat_LX-3000-00-LX3000.analog-stereo.
(  20.557|   0.000) D: [alsa-sink] alsa-sink.c: Requested volume: 0:   0% 1:   0%
(  20.557|   0.000) D: [alsa-sink] alsa-sink.c:            in dB: 0: -inf dB 1: -inf dB
(  20.557|   0.000) D: [alsa-sink] alsa-sink.c: Got hardware volume: 0:  34% 1:  34%
(  20.557|   0.000) D: [alsa-sink] alsa-sink.c:               in dB: 0: -28.31 dB 1: -28.31 dB
(  20.557|   0.000) D: [alsa-sink] alsa-sink.c: Calculated software volume: 0:   0% 1:   0% (accurate-enough=no)
(  20.557|   0.000) D: [alsa-sink] alsa-sink.c:                      in dB: 0: -inf dB 1: -inf dB
(  20.557|   0.000) D: [alsa-sink] sink.c: Volume going down to 0 at 519702599072
(  20.557|   0.000) D: [alsa-sink] alsa-sink.c: Requested to rewind 352800 bytes.
(  20.557|   0.000) D: [alsa-sink] alsa-sink.c: Limited to 3272 bytes.
Comment 7 Raymond 2014-06-05 07:34:08 UTC
to balance the equation not using hardware mute

request volune -inf dB = hardware volume  0dB + calculated software volume -inf dB
Comment 8 Raymond 2014-06-06 00:00:21 UTC
when hardware mute is used instead of software mute

request volune -inf dB = hardware mute -inf dB + calculated software volume 0 dB
Comment 9 Raymond 2014-06-17 06:34:16 UTC
it can be easily reproduced using virtual box (emulated ac97) and ubuntu 13.10

open a terminal with alsamixer -c0

in sound preference by pressing mute icon(volume slider change to zero)

Master playback volume and PCM playback volume change to minimum but Master playback switch and PCM playback switch are still unmuted
Comment 10 GitLab Migration User 2018-07-30 09:29:01 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/pulseaudio/pavucontrol/issues/24.

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.