Re: Bug in alsa-lib or alsamixer and amixer

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2010/6/16 Colin Guthrie <gmane@xxxxxxxxxxxxxx>

> The fact that any key changes it back to 100% is kinda expected. It's
> not designed to handle values >100% so it makes sense that it clamps it.
> Annoying, but it makes sense.
>
> > The volume range is only from 0 to  65536
> >
> > why did alsa-lib allow alsa-pulse plugin to set it outside the range ,
> > alsamixer and amixer also display 150% ?
> >
> > amixer -D pulse
> > Simple mixer control 'Master',0
> >   Capabilities: pvolume pswitch pswitch-joined
> >   Playback channels: Front Left - Front Right
> >   Limits: Playback 0 - 65536
> >   Mono:
> >   Front Left: Playback 98304 [150%] [on]
> >   Front Right: Playback 98304 [150%] [on]
>
>
> While I agree this could be thought of as a bug, it's actually the
> nicest possible display for a system that has no concept of volumes > 100%.
>
> That said, the correct fix would be a nice mechanism for marking the
> 100% mark. e.g. specifying the limits as a triplet, lower, normal (aka
> 100%) and max.
>
> AFAIK, no such system is currently in place.
>
> An alternative would be to scale the alsa volume control to the full
> range, e.g. make 0 - 98304[1] the range it accepts. But this sucks as
> the percentage shown in alsa is not the same as the percentage shown in
> other GUIs.
>
> In a practical sense, the current setup is probably less problematic
> than the latter suggestion.
>
> Col
>
> [1] FWIW, this precice value will likely change. I've not yet actioned
> it but it's likely to be fixed at +11dB which IIRC is slightly above
> 150%. 11dB is just a figure that we felt was "sensible" with regards to
> GUI consistency and I'll try and push this out ot all the UIs I can.
>
>
>
You have made a big mistake , please study the source code of alsamixer and
amixer

Simple mixer control 'PCM',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Mono:
  Front Left: Playback 31 [100%] [12.00dB] [on]
  Front Right: Playback 31 [100%] [12.00dB] [on]


    control.39 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 31'
        comment.dbmin -3450
        comment.dbmax 1200
        iface MIXER
        name 'PCM Playback Volume'
        value.0 31
        value.1 31
    }

---------------------------------------------------------------------

Simple mixer control 'PCM',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Mono:
  Front Left: Playback 23 [74%] [0.00dB] [on]
  Front Right: Playback 23 [74%] [0.00dB] [on]


    control.39 {
        comment.access 'read write'
        comment.type INTEGER
        comment.count 2
        comment.range '0 - 31'
        comment.dbmin -3450
        comment.dbmax 1200
        iface MIXER
        name 'PCM Playback Volume'
        value.0 23
        value.1 23
    }

The percentage displayed below the vertical slider in alsamixer and the
percentage after the dB values are the percentage of the current step / the
total number of step

so you cannot get any percentage > 100% in alsamixer and amixer

snd_mixer_selem_get_playback_volume_range()  of PCM return min =0 and max=
31
at 0dB the percentage is 23/32  about 74%  since 0dB is step 23 in  step 0
-34.5dB , step31 is 12dB (the difference between step is 1.5dB

This percentage in alsamixer and amixer is not those volume scale which you
described  BASE_VOLUME  or PA_NORM
_______________________________________________
Alsa-devel mailing list
Alsa-devel@xxxxxxxxxxxxxxxx
http://mailman.alsa-project.org/mailman/listinfo/alsa-devel


[Index of Archives]     [ALSA User]     [Linux Audio Users]     [Kernel Archive]     [Asterisk PBX]     [Photo Sharing]     [Linux Sound]     [Video 4 Linux]     [Gimp]     [Yosemite News]

  Powered by Linux