nicklan / pnmixer

Volume mixer for the system tray
GNU General Public License v3.0
152 stars 32 forks source link

Mute doesn't work #138

Closed foresto closed 8 years ago

foresto commented 8 years ago

I'm running PNMixer 0.6.1. The volume control works fine, but mute/unmute does nothing, regardless of whether I check the box in the pop-up or middle-click the status icon.

This is a pure ALSA Xubuntu Xenial system. PulseAudio is not running.

hasufell commented 8 years ago

Two things:

  1. did you check with debug mode? (pnmixer --debug)
  2. did you try the latest 0.7.1 release candidate?
hasufell commented 8 years ago

ping, will close in the next few days if there is no feedback

foresto commented 8 years ago

The problem does not trigger any --debug output on 0.6.1.

The bug still exists on 0.7.1. --debug output on startup:

debug: ui-popup-menu.c: Building from ui file '/usr/share/pnmixer/ui/popup-menu-gtk3.glade'
debug: ui-popup-menu.c: Gtk3 workaround: resizing images from 16px to 14px
debug: ui-popup-window.c: Building from ui file '/usr/share/pnmixer/ui/popup-window-vertical-gtk3.glade'
debug: ui-tray-icon.c: Creating tray icon
debug: ui-tray-icon.c: Building pixbuf array for size 16
debug: hotkeys.c: Creating hotkeys control
debug: audio.c: Hooking soundcard 'SB Audigy 2 ZS [SB0350] ((null))' to the audio system
debug: alsa.c: 'hw:0': Opening mixer
debug: alsa.c: 'hw:0': Looking for the first playable mixer element...
debug: alsa.c: 'hw:0': 1 poll descriptors are now watched
debug: alsa.c: 'hw:0': Card 'SB Audigy 2 ZS [SB0350]' with channel 'Master' initialized !
debug: audio.c: Soundcard successfully hooked (scroll step: 5, normalize: false)
debug: audio.c: ** Dispatching signal 'card initialized' from 'unknown', vol=5, muted=no
debug: main.c: ---- Running main loop ----
debug: ui-tray-icon.c: Tray icon size is now 22
debug: ui-tray-icon.c: Building pixbuf array for size 22

--debug output when attempting to mute via middle click:

debug: audio.c: ** Dispatching signal 'values changed' from 'tray icon', vol=5, muted=no

--debug output when attempting to mute via check box:

debug: audio.c: ** Dispatching signal 'values changed' from 'popup', vol=5, muted=no
foresto commented 8 years ago

Also: After checking the Mute check box and closing the pop-up dialog, opening the dialog again reveals the the Mute check box is no longer checked.

hasufell commented 8 years ago

The bug still exists on 0.7.1

There is no such version. What do you mean?

Seems I mislinked earlier. Do you mean 0.7? Can you run pnmixer --version beforehand?

foresto commented 8 years ago

I meant "the latest 0.7.1 release candidate", which you linked in your comment above.

hasufell commented 8 years ago

I meant "the latest 0.7.1 release candidate", which you linked in your comment above.

Please use the latest release: https://github.com/nicklan/pnmixer/releases

foresto commented 8 years ago

I just tried it with 0.7. Same results as with 0.7 rc1.

hasufell commented 8 years ago

Do you have 0.7 installed or do you run the binary from the repository directory?

foresto commented 8 years ago

Installed as /usr/bin/pnmixer

elboulangero commented 8 years ago

Hi @foresto, I see that you use a USB soundcard. Some USB soundcard don't have a hardware mute switch, therefore you can't mute it.

I don't have a USB soundcard anymore, therefore I'm not sure about the right procedure to test that. But I think you should open Alsamixer and see if you have a mute switch, and if you can actually mute from Alsamixer.

I will add some useful debug messages in PNMixer for this case. I think I just need to add a printf somewhere...

foresto commented 8 years ago

@elboulangero, I am not using a USB sound card.

elboulangero commented 8 years ago

Oh, sorry, my bad...

debug: audio.c: Hooking soundcard 'SB Audigy 2 ZS [SB0350] ((null))' to the audio system

I read USB instead of SB :)

elboulangero commented 8 years ago

But still, the question holds. Can you mute with Alsamixer ?

foresto commented 8 years ago

Can you mute with Alsamixer ?

Nope. Looks like alsamixer doesn't have a mute for my master volume setting.

My old volume widget (xfce4-mixer) handled mute just fine, though. I guess it might have implemented mute by setting the volume to zero and then restoring it to the previous setting. Perhaps this approach would be worth considering in pnmixer?

hasufell commented 8 years ago

I guess it might have implemented mute by setting the volume to zero and then restoring it to the previous setting.

That's a huge side-effect and relies on pnmixer-specific state. I don't like it. Note that the middle-click mouse button can be configured as a custom command.

foresto commented 8 years ago

I don't like it.

To each his own. I like having mute work. ;-)

elboulangero commented 8 years ago

Hey @foresto,

I thought about emulating mute/unmute in PNMixer some time ago, when I had a USB soundcard. It wouldn't be too hard, I would be OK with that. It's not the most elegant solution from a dev point of view (this problem should be solved at a lower level I'd say, not in a GUI application), but at least it would make users happy without too much hassle on PNMixer side.

However I'm a bit out of time at the moment for PNMixer... I'll create a ticket about that for reference, but I don't think I'll work on that before a while.

As a workaround, I cooked a little script that you can find here: https://gitlab.com/elboulangero/asoftmute

Just install it in /usr/local/bin, then run it like that:

asoftmute Master

It does exactly what you described: emulate mute by setting volume to zero. If you assign this action to the middle-click, you should be quite ok.

elboulangero commented 8 years ago

Created #146