selecting audio inputs with pulseaudio

stan stanl-fedorauser at vfemail.net
Tue Sep 1 17:16:09 UTC 2015


On Tue, 01 Sep 2015 23:45:46 +0930
Tim <ignored_mailbox at yahoo.com.au> wrote:

> Has selecting audio inputs with pulseaudio improved any since Fedora
> 20? On this machine, I can't find a way to use the line or mic input,
> by my own choosing.  e.g. For wanting to record something on the
> computer.
> 
> In the sound preferences, I have a sliding volume control next to a
> mic symbol, and some kind of volume indicator below it.  That, from
> time to time, I find seems to pay attention to a microphone, but not
> always.

The best way to do this is with the pavucontrol program (pavucontrol
is also the package name). It allows the user to set default devices,
and devices for pulse to ignore.  On Fedora, the default sound device is
always pulse, which pretends to be alsa for the sake of compatibility,
and uses alsa behind the scenes. By using desktop sound controls, you
are just adding another layer of control on top of pulse and alsa.

I don't use the capabilities enough to give you the rules.  When I do
use it in audacity, I usually have to do some trial and error with
pavucontrol and the audacity names, as each card seems to have multiple
listings in audacity.  But I do get it to work.

> Under that is a box with a radio selection button for "built-in audio
> analog stereo," which I presume just means the on-board sound card, or
> another card (if I had one) rather than supposedly being a way to
> select individual sound sources on a card.
> 
> I can play with the CLI alsamixer tool, but that seems rather hit and
> miss, too, as well as being awful and extremely primitive.  Not to
> mention being just a two volume control for pulseaudio (master &
> capture), or I can change to the "0 HDA Intel" sound card, and get a
> plethora of sliders (not all of them have a corresponding socket on
> the sound card, and another vague "capture" fader).

Under the covers, pulse still uses alsa.  Instead of using alsamixer,
which shows the simplified pulse interface, use  alsamixer
-c[soundcard number], e.g.  alsamixer -c0  to get the full suite of
alsa options.  F3, F4, and F5 switch screens, escape saves and exits.

> 
> If I try using a program like audacity, I get input choices in the
> program like pulse (next to useless), front mic 0, rear mic 0, line 0,
> front mic 1, rear mic 1, line 1, which is a course of experimentation
> to find which one might actually work, and it doesn't behave the same
> way each time I use the program.
> 
> If I try using a program like skype, sometimes I can get it to pay
> attention to the mike, but never to any other input source.
> 

You need to co-ordinate this with pulse, in pavucontrol.

Many of the symptoms you describe sound like you have more than one
sound card, and they are being assigned in a different order each time
you start your computer.  This has been a problem since the linux
kernel started assigning devices in parallel to speed up boot.  It can
be worked around by putting a file in /etc/modprobe.d/soundcard.conf
(the actual file name is up to you, I just use soundcard.conf).  Put
something like this in that file to assign sound devices to specific
channels.

options snd cards_limit=8
options slots=snd-hda-intel,snd-ice1724,snd-ca0106,snd-hda-intel
alias snd-card-0 snd-hda-intel id="SB"
options snd-hda-intel index=0
alias snd-card-1 snd-ca0106 id="CA0106"
options snd-ca0106 index=1
alias snd-card-2 snd-ice1724 id="Revolution51"
options snd-ice1724 index=2
#alias snd-card-3 snd-cmipci
#options snd_cmipci index=3
alias snd-card-3 snd-hda-intel id="HDMI"
options snd-hda-intel index=3
alias snd-card-7 snd-usb-audio
options snd-usb-audio index=7

Of course, you should change the cards to be your devices.  You can
find the names using lspci , or  aplay -lv  .
With old style devices, this works great, but with the new intel-hda
devices, the assignment is not exact.  For instance, it sometimes
assigns the video card hdmi as the on board hda-intel, and vice versa.
It seems that alsa doesn't have a way to distinguish hda-intel devices
when assigning slots, and gets confused by the video card.  But mostly
it works.

Once devices are always in the same channel, then settings work as
expected (for me).


More information about the users mailing list