Hi everyone,
I've been doing some experiments on my Debian desktop and Ubuntu netbook
and I'm seeing an astonishing range of behaviour. I'm interested to know
what's supposed to be happening.
This does not look like *the* fix â ui_curses.c contains code that updates the
volume after waiting on mixer fds or after a timeout, if no fds exist.
My "ALSA on top of PA" setup shows, that mixer_get_fds() in ui_curses.c
returns 1, but select() does not trigger after "-" or "=". Is it the same for
you? If yes, looks like yet another PA bug.
Yes, this is the case. There is more sinister stuff going on too though.
The general behaviour I'm seeing is that cmus' volume is directly
changing ALSA's mixer settings. This seems a little odd to me compared
with other applications which have a per-application volume.
I have some fairly sensible results on Debian and some absolutely insane
stuff on Ubuntu:
allanon - Debian Sid w/ ALSA
----------------------------
soft_vol = 0
Mixer has 1 fd and it is activated both when cmus volume is changed with
-/= and when external mixer volume is changed. External mixer has
channels "Master" and "PCM".
cmus volume corresponds directly to the PCM channel 0-100 and this is
reflected in the status line
athabasca - Ubuntu Netbook Remix w/ ALSA (+ PA?)
------------------------------------------------
soft_vol = 0
Mixer has 1 fd and it is activated only when mixer volume is changed
externally, not with -/=.
Changing cmus volume changes external mixer volume (Master, PCM, Front
channels) but this does not activate the fd, causing the lag-by-one bug.
Starting at cmus volume = 100, having accounted for the lag-by-one bug
the following results occur when stepping down:
(L/R) channels where applicable:
CMUS Master PCM Front
100 100 100/100 100/100
90 98 99/99 98/98
80 94 98/98 98/98
70 80 100/100 98/98
60 81 100/100 98/98
50 73 100/100 98/98
40 66 98/98 98/98
30 53 100/100 98/98
20 38 98/98 98/98
10 8 100/100 98/98
0 0 0/0 0/98
If, having gone down, you push up Front, PCM and Master in that order
cmus volume only reaches 9
If, having gone down, you push up Master, PCM and Front in that order,
it gets to about 9, and as soon as you start increasing Front the right
channel stays at 98 and the left channel rises in cmus up towards 100
but on a different linear scale from the mixer.
------------------------------------------------
From this I can conclude:
- Yes there is a bug in the Ubuntu setup such that the fd is not hit
when cmus itself updates the mixer
- cmus does not interact well in Ubuntu if somebody (or something)
starts playing with the ALSA mixer settings directly
Is any of this our fault? I'd like to know if the Debian behaviour is
right, and whether or not the three-channel mess on Ubuntu is actually sane.
Cheers,
Tom