At Sat, 22 Nov 2014 14:38:13 -0500,
Martin Cracauer wrote:
>
> Takashi Iwai wrote on Sat, Nov 22, 2014 at 07:00:53PM +0100:
> > At Sat, 22 Nov 2014 12:53:53 -0500,
> > Martin Cracauer wrote:
> > >
> > > Takashi Iwai wrote on Sat, Nov 22, 2014 at 06:49:11PM +0100:
> > > > At Sat, 22 Nov 2014 11:56:28 -0500,
> > > > Martin Cracauer wrote:
> > > > >
> > > > > Takashi Iwai wrote on Sat, Nov 22, 2014 at 05:32:52PM +0100:
> > > > > > At Fri, 21 Nov 2014 16:42:02 -0500,
> > > > > > Martin Cracauer wrote:
> > > > > > >
> > > > > > > I have one Debian system with 1.0.25 and a Ubuntu system with
> > > > > > > 1.0.27
> > > > > > > showing the same regression.
> > > > > > >
> > > > > > > Using
> > > > > > > amixer -D hw:0 set Speaker [something]
> > > > > > >
> > > > > > > I used to be able to say 3db+ which would approximately do just
> > > > > > > that.
> > > > > > >
> > > > > > > As of recent updates the actual adjustment happening on 3db+ is
> > > > > > > kind
> > > > > > > of random, way too small, sometimes even negative. It also does
> > > > > > > not
> > > > > > > correspond in any way to amixer's own idea of what the absolute
> > > > > > > dbs
> > > > > > > are:
> > > > > > >
> > > > > > > % amixer -D hw:0 set Speaker 14
> > > > > > > Simple mixer control 'Speaker',0
> > > > > > > Capabilities: pvolume pvolume-joined pswitch pswitch-joined
> > > > > > > Playback channels: Mono
> > > > > > > Limits: Playback 0 - 31
> > > > > > > Mono: Playback 14 [45%] [-25.50dB] [on]
> > > > > > > % amixer -D hw:0 set Speaker 3db+
> > > > > > > Simple mixer control 'Speaker',0
> > > > > > > Capabilities: pvolume pvolume-joined pswitch pswitch-joined
> > > > > > > Playback channels: Mono
> > > > > > > Limits: Playback 0 - 31
> > > > > > > Mono: Playback 3 [10%] [-42.00dB] [on]
> > > > > > >
> > > > > > > I see that on 2 machines and on different kinda of soundcards.
> > > > > > >
> > > > > > > Things are so bad that "3db+" is actually lowering the volume now
> > > > > > > depending on where you start.
> > > > > >
> > > > > > Use "3dB+" instead. It's case-sensitive.
> > > > >
> > > > > No, it's more broken (and it used to work with db all lowercase).
> > > >
> > > > Elaborate how "more broken".
> > > >
> > > > > I think the "db" in either casing makes it stop parsing and hence drop
> > > > > the +, too, setting it to 3 absolute no matter whether you have +, -
> > > > > or db or dB.
> > > >
> > > > No, read the source code:
> > > >
> > > > static int set_volume_simple(snd_mixer_elem_t *elem,
> > > > snd_mixer_selem_channel_id_t chn,
> > > > char **ptr, int dir)
> > > > ....
> > > > if (*p == '%') {
> > > > percent = 1;
> > > > p++;
> > > > } else if (p[0] == 'd' && p[1] == 'B') {
> > > > vol_type = VOL_DB;
> > > > p += 2;
> > > > scale = 100;
> > > > } else
> > > > vol_type = VOL_RAW;
> > > >
> > > > So it really needs to be "dB".
> > >
> > > Checking my CVS history I think you are right, I used dB.
> > >
> > > However, as of the updates that started this thread, it doesn't do
> > > anything either way now, that's why I say it is more broken. At this
> > > time "dB" in any case variant terminates parsing and "3dB+" is
> > > interpreted as "3" (absolute), the + and - are lost.
> >
> > Are you sure that this behavior is seen with both 1.0.22 and 1.0.28?
> > Please double-check with the right format "3dB+".
>
> It is 1.0.25 and 1.0.28. I don't know about 1.0.22.
>
> % amixer -D hw:0 set Master 100%
> Simple mixer control 'Master',0
> Capabilities: pvolume pvolume-joined pswitch pswitch-joined
> Playback channels: Mono
> Limits: Playback 0 - 31
> Mono: Playback 31 [100%] [on]
> % amixer -D hw:0 set Master 3dB-
> Simple mixer control 'Master',0
> Capabilities: pvolume pvolume-joined pswitch pswitch-joined
> Playback channels: Mono
> Limits: Playback 0 - 31
> Mono: Playback 3 [10%] [on]
> % amixer -D hw:0 set Master 3dB-
> Simple mixer control 'Master',0
> Capabilities: pvolume pvolume-joined pswitch pswitch-joined
> Playback channels: Mono
> Limits: Playback 0 - 31
> Mono: Playback 3 [10%] [on]
>
>
> I am not convinced that we are looking at a problem with alsa-utils as
> such here.
>
> I found another machine, alsa utils 1.0.28, and there the above
> sequence works as advertised. There might be something going on in
> the libraries or even the drivers that makes the dB thing fail now.
>
> I am sure it did work on the machine now running 1.0.25 before it
> upgraded to it. It's in my CVS-controlled script that did work, on
> that machine.
Check whether amixer shows any dB value for any elements *at all*.
For example, on my system, it shows like:
% amixer get Master
Simple mixer control 'Master',0
Capabilities: pvolume pvolume-joined pswitch pswitch-joined
Playback channels: Mono
Limits: Playback 0 - 127
Mono: Playback 89 [70%] [-28.50dB] [off]
while yours doesn't show it.
Which driver and which kernel version it is? If other mixer elements
have dB information but only Master misses it, it's a driver bug, but
such a bug should have been fixed quite ago (at least 3.10 or later).
In that case, try later kernels.
If amixer doesn't show any dB information, it's more likely a problem
in amixer or alsa-lib: yours must be a quite old one.
Takashi
------------------------------------------------------------------------------
Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server
from Actuate! Instantly Supercharge Your Business Reports and Dashboards
with Interactivity, Sharing, Native Excel Exports, App Integration & more
Get technology previously reserved for billion-dollar corporations, FREE
http://pubads.g.doubleclick.net/gampad/clk?id=157005751&iu=/4140/ostg.clktrk
_______________________________________________
Alsa-user mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/alsa-user