alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
From: Clemens Ladisch <clemens@ladisch.de>
To: Colin Guthrie <gmane@colin.guthr.ie>
Cc: alsa-devel@alsa-project.org
Subject: Re: alsactl adds volume controls?
Date: Thu, 30 Sep 2010 17:56:37 +0200	[thread overview]
Message-ID: <4CA4B335.9010404@ladisch.de> (raw)
In-Reply-To: <4CA4A844.7060403@colin.guthr.ie>

Colin Guthrie wrote:
> 'Twas brillig, and Clemens Ladisch at 30/09/10 12:03 did gyre and gimble:
>> Colin Guthrie wrote:

>> The hardware control is always used.  The user control created by
>> softvol is used when some application is using the softvol plugin.
>> (For an application using device names like "hw" or "plughw", there will
>> be not softvol plugin.)
> 
> OK. As pulse's mixer profiles *tries* to use "front" but will fall back
> to "hw", we can be pretty much certain that the softvol plugin will
> exist in all cases. The trick is knowing whether or not the control is
> active.

used by current stream

> (although the latency of updates is terrible for me when I adjust the
> alsamixer. I guess changing PCM directly in alsamixer it doesn't trigger
> an immediate rewind in PA so the buffer has to run out for the change to
> be heard.

Yes.  The softvol plugin could be changed to try to update the already-
written part of the buffer; so far, not many programs have used big
buffers.

>>> Potential solutions would include:
>>>  1. If the "correct" solution is to just use SND_PCM_NO_AUTO in PA, and
>>> then deliberately/actively ignore any softvol mixers, then nothing needs
>>> done at the alsa level I guess.
>> 
>> Yes.
>> 
>> Use snd_ctl_elem_info_is_user() to check for the softvol mixer element.
> 
> Hmm, judging by the previous response to this suggestion, I'm not sure
> this will work:
> 
> http://mailman.alsa-project.org/pipermail/alsa-devel/2007-December/004622.html

It would have worked if PA used the snd_ctl_* instead of the snd_mixer_*
functions.

In this special case, we know that the snd_ctl control "Playback PCM
Volume" maps to the snd_mixer "PCM" playback volume, but this would
still be a hack.

>> It was decided to store this control in the hardware device so that it
>> is saved/restored together with the 'real' controls.
> 
> That as a principle makes sense but I still don't understand why it has
> to be there when it's not active.

So that it behaves like a 'real' control, i.e., you can set (and restore)
it even when nothing is currently playing.

> Also I said I'd refer back to [1] later, so here it is. I'm a little
> confused as to why it's stored in asound.state, if, as you say, the
> control is only created when something opens "front:" or similar. When
> the asound.state is read and restored during boot (this is the only time
> for 99% of users I believe - other than running it manually), would it
> not be the case that nothing has yet opened "front:" and thus it will
> not be restored?

When alsactl restores a user control, it will automatically create it.
Thus, using the softvol plugin creates this control practically
permamently.

> setting Master (not PCM) to 0% aka -46.5dB causes some kind of auto-
> mute that cuts off all sound. It shouldn't do that.

Wasn't this a hardware error?
The driver should report correct dB information for this chip.


Regards,
Clemens

  reply	other threads:[~2010-09-30 15:55 UTC|newest]

Thread overview: 74+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-08-27 14:39 alsactl adds volume controls? David Henningsson
2010-08-27 15:43 ` Clemens Ladisch
2010-08-27 18:36   ` David Henningsson
2010-08-27 22:58     ` Raymond Yau
2010-08-30  8:01       ` Takashi Iwai
2010-08-30  9:30         ` Raymond Yau
2010-08-30 11:09           ` Takashi Iwai
2010-08-30 13:01         ` David Henningsson
2010-08-30 13:08           ` Takashi Iwai
2010-09-01 13:26             ` David Henningsson
2010-09-01 14:06               ` Raymond Yau
2010-09-02  8:06               ` Takashi Iwai
2010-09-02  9:24                 ` David Henningsson
2010-09-02  9:44                   ` Takashi Iwai
2010-09-03  7:03                     ` David Henningsson
2010-09-03  7:07                       ` Jaroslav Kysela
2010-10-02  0:51                         ` Raymond Yau
2010-09-03  7:23                       ` Raymond Yau
2010-09-02 14:10                   ` Jaroslav Kysela
2010-09-02 14:21                     ` Clemens Ladisch
2010-09-02 15:24                       ` Jaroslav Kysela
2010-09-02 15:52                         ` Clemens Ladisch
2010-09-02 17:28                           ` Jaroslav Kysela
2010-09-02 20:28                             ` Sebastian H.
2010-09-29 14:26                             ` Colin Guthrie
2010-09-29 18:09                               ` Mark Brown
2010-09-30  9:17                               ` Raymond Yau
2010-09-30 11:03                               ` Clemens Ladisch
2010-09-30 15:09                                 ` Colin Guthrie
2010-09-30 15:56                                   ` Clemens Ladisch [this message]
2010-09-30 16:47                                   ` Mark Brown
2010-09-30 18:09                                     ` Takashi Iwai
2010-09-30 18:20                                       ` Colin Guthrie
2010-09-30 20:36                                       ` Mark Brown
2010-10-01  6:44                                       ` Clemens Ladisch
2010-10-01  8:19                                         ` Colin Guthrie
2010-10-01  9:02                                           ` Clemens Ladisch
2010-10-04 11:35                                             ` Colin Guthrie
2010-10-04 12:26                                               ` Clemens Ladisch
2010-10-04 14:01                                                 ` Takashi Iwai
2010-10-07  8:05                                               ` Clemens Ladisch
2010-10-08 13:21                                                 ` Colin Guthrie
2010-10-08 13:41                                                   ` Clemens Ladisch
2010-10-08 14:05                                                     ` Colin Guthrie
2010-10-08 14:16                                                       ` Colin Guthrie
2010-10-08 14:42                                                         ` Clemens Ladisch
2010-10-08 15:25                                                           ` Colin Guthrie
2010-10-08 15:29                                                             ` Colin Guthrie
2010-10-08 15:49                                                               ` Colin Guthrie
2010-10-12  8:51                                                                 ` Colin Guthrie
2010-10-15  8:32                                                                   ` Clemens Ladisch
2010-10-15  8:32                                                                     ` [PATCH 1/2] ALSA: HDA: Sigmatel: work around incorrect master muting Clemens Ladisch
2010-10-15  8:33                                                                     ` [PATCH 2/2] tlv: fix returned dB information for min-is-mute controls Clemens Ladisch
2010-10-15  8:39                                                                     ` alsactl adds volume controls? Colin Guthrie
2010-10-16 15:49                                                                       ` Colin Guthrie
2010-10-17  8:50                                                                         ` Takashi Iwai
2010-10-17 11:22                                                                           ` Colin Guthrie
2010-10-08 15:49                                                             ` Clemens Ladisch
2010-10-11  1:34                                                               ` Raymond Yau
2010-10-11  8:25                                                                 ` Colin Guthrie
2010-10-12  8:37                                                                   ` Raymond Yau
2010-10-17  3:39                                                       ` Raymond Yau
2010-10-17 11:18                                                         ` Colin Guthrie
2010-10-04 14:18                                           ` Alexander E. Patrakov
2010-10-04 11:09                                         ` Raymond Yau
2010-10-04 11:38                                           ` Colin Guthrie
2010-10-06  0:05                                             ` Raymond Yau
2010-10-06 23:29                                               ` Colin Guthrie
2010-10-01  5:38                                     ` Raymond Yau
2010-10-03  7:37                               ` Raymond Yau
2010-10-23 11:51   ` Raymond Yau
2010-10-23 13:00     ` Colin Guthrie
2010-10-24 11:49       ` Raymond Yau
2010-08-29  1:35 ` Raymond Yau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4CA4B335.9010404@ladisch.de \
    --to=clemens@ladisch.de \
    --cc=alsa-devel@alsa-project.org \
    --cc=gmane@colin.guthr.ie \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).