When setting the volume to 0%, the alsa output plugin in hw mode doens't completely mute the device. Reproducible: Always Steps to Reproduce: 1) In BMP: select ALSA plugin under Preferences - Plugins - Output 2) Click the Preferences button for ALSA Driver configuration and uncheck the "Use software volume control" checkbox under the Device settings tab and select Mixer device PCM 3) Click OK on the ALSA Driver configuration window and close the BMP Preferences window 4) use an external mixer to set the Master and PCM channels to 0% (but don't mute them!) 5) play a song in BMP 6) scroll the volume in BMP up a little and then back to 0% 7) in an external mixer now increase the master volume to about 60% 8) listen to the music playing softly, even though the volume is 0% according to BMP media-sound/alsa-headers 1.0.9_rc2 media-libs/alsa-lib 1.0.9_rc2-r1 kernel 2.6.12-rc4 (manually)
Created attachment 59073 [details, diff] Mute fix in bmp 0.9.7 applied to native souce
Have you submitted your bug upstream? If so, what is the bug number there?
(In reply to comment #2) > Have you submitted your bug upstream? > If so, what is the bug number there? No, is it a feature of alsa not to completely mute with a zero value, or rather a bug in beep-media-player? In gklellm Volume Plugin 2.1.13 they expl. mute with a 0, but alsa-mixer doesn't just like bmp.
But then again in I found in alsa-lib-1.0.9rc3/src/mixer/simple.c th following code: <code> void snd_mixer_selem_set_playback_volume_range(snd_mixer_elem_t *elem, long min, long max) { selem_t *s; assert(elem); assert(elem->type == SND_MIXER_ELEM_SIMPLE); assert(min < max); s = elem->private_data; s->str[PLAY].range = 1; s->str[PLAY].min = min; s->str[PLAY].max = max; selem_read(elem); } </code> On line 7 assert(min < max) with a 0 will not compute so i'll go for alsa ;)
nvm wrong piece of code
This needs to be reported upstream to have them decide. You are changing the behaviour of the mixer, while the current behaviour is exactly what ALSA itself does. This may have been a conscious design decision.