Message: 3
Date: Mon, 4 Apr 2016 09:41:52 +0800
From: Raymond Yau <[email protected]>
To: General PulseAudio Discussion
<[email protected]>
Subject: Re: [pulseaudio-discuss] Splitting ALSA card ports into
Message-ID:
<CAN8ccibGe204PjNZ=fmv_0=e7sznubnno6fbtbp0a4dzzny...@mail.gmail.com>
Content-Type: text/plain; charset="utf-8"
> I am trying to get simultaneous output on the Line Out and
Headphones
> outputs of my Intel HD Audio (AsRock Z97 motherboard) chipset
and PC
> case. With the default pulseaudio configuration in pavucontrol
I can
> choose Analog Stereo Duplex and then select either the "Line
Out" or
> "Headphones" port under "Output Devices", but I would like to
have
> simultaneous output on both (by having a seperate sink for
each).
>
> Here is my alsa-info.sh output, please ignore the NVidia output
> provided by my GPU as I would like to not use it if possible:
>
http://www.alsa-project.org/db/?f=b7e5097f7a899aa5294b147b23cbb877db3b6f3c
> And this is what "pacmd list-sinks" says about the Built-In
audio
sink:
> http://hastebin.com/bonadehimu
It's not possible to have independent line out and headphone
output on
your hardware. There is only one analog device on your card.
--
The easy way to output same audio to both output is disable
drivers auto
mute mode and change pulseaudio conf files
Simple mixer control 'Auto-Mute Mode',0
Capabilities: enum
Items: 'Disabled' 'Enabled'
Item0: 'Enabled'
http://www.intel.com/content/www/us/en/support/boards-and-kits/desktop-boards/000007156.html
https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/tree/Documentation/sound/alsa/HD-Audio.txt
You have to ask Tiwai to enable independent hp for your realtek
codec on
desktop ( e.g. no internal mic and hda controller
support enough SDO)
You can specify hint indep_hp=1 by early patching, the driver
automatically disable automute when you switch on independent hp
switch
https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/tree/Documentation/sound/alsa/HD-Audio-Controls.txt
Independent HP When this enum control is enabled, the headphone
output
is
routed from an individual stream (the third PCM such as hw:0,2)
instead
of
the primary stream
Okay, so following your advice I set up modprobe.d to specify the
early-patching files:
$ cat /etc/modprobe.d/snd_hda_intel.conf
options snd_hda_intel patch=onboard-patch,hdmi-patch
and specified the hint in /lib/firmware/onboard-patch:
$ cat /lib/firmware/onboard-patch
[codec]
0x10ec0892 0x1849d892 0
[hint]
indep_hp = 1
this seems to work fine, I can query the card hints and indep_hp
shows
up:
$ cat /sys/class/sound/hwC0D0/hints
indep_hp = 1
but pulseaudio still only shows one sink. Do I need to manually
load
another sink module?
also, my alsa-info after now:
http://www.alsa-project.org/db/?f=f7de54b96d1cb50391d638e3bc687730daf17a2f
so there now is a new "Alt-Analog" playback device:
>
APLAY
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 1: ALC892 Digital [ALC892
Digital]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 2: ALC892 Alt Analog [ALC892 Alt
Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
ARECORD
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC892 Analog [ALC892 Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 2: ALC892 Alt Analog [ALC892 Alt
Analog]
Subdevices: 1/1
Subdevice #0: subdevice #0
So I tried adding a second module-alsa-card:
$ pacmd load-module module-alsa-sink
card_name=alsa_card.pci-0000_00_1b.2
Module load failed
(changed the .0 to .2 because thats the Alt Analog right?)
You also need hint
jack_detect=no
https://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/alsa/mixer/paths/analog-output-headphones.conf
Don't mute surround71 playback switches and don't turn off volume
https://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/alsa/mixer/paths/analog-output-lineout.conf
Don't mute headphone playback switch and don't turn off volume
You need to enable 'independent hp' and set 'input source',1 to front
mic
before starting pulseaudio server
Simple mixer control 'Independent HP',0
Capabilities: enum
Items: 'Disabled' 'Enabled'
Item0: 'Enabled'
Simple mixer control 'Input Source',1
Capabilities: cenum
Items: 'Front Mic' 'Rear Mic' 'Line'
Item0: 'Front Mic'
Use application (e.g. mplayer) which allow you to specify device
hw:0,2
https://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/alsa/mixer/profile-sets/default.conf
Just add a new mapping
[Mapping alt-analog-stereo]
device-strings = hw:%f,2
channel-map = left,right
paths-output = analog-output-headphones
paths-input = analog-input-front-mic
priority = 10
Sorry, I do not know a lot about ALSA or pulseaudio and I still have
troubles understanding what exactly you are telling me to do.
I added the jack_detect=no hint and I checked the mixer controls using
amixer; "Input Source,1" is set to "Front Mic" already but I can't
figure out how to set Independent HP to "Enabled".
I tried all variants of amixer -c0 sset "Independent HP" Enabled,
Item0=Enabled, True, 1, yes etc. (sget works fine) but it always either
says "Specify what you want to set" or "Invalid command!". I can't find
any information about setting enum mixer controls in amixer OR any other
way (apparently its not supported by the alsa python library). Also
where would I change this permanently?
I also added two new mappings (it wouldn't work if I reused the
existing analog-stereo) and copied the "example for a multi-sink
profile", and added this to the default profile-set:
[Mapping alt-analog-stereo-back]
device-strings = hw:%f
channel-map = left,right
paths-output = analog-output-lineout
paths-input = analog-input-front-mic
priority = 10
[Mapping alt-analog-stereo-front]
device-strings = hw:%f,2
channel-map = left,right
paths-output = analog-output-headphones
paths-input = analog-input-front-mic
priority = 10
[Profile alt-analog-stereo-back+alt-analog-stereo-front]
description = both
output-mappings = alt-analog-stereo-front alt-analog-stereo-back
input-mappings = alt-analog-stereo-back
skip-probe = yes
I can now select "both" in pavucontrol, but it doesn't add two sinks, I
can only select the "Line Out" port in the Output tab.
About the
Don't mute surround71 playback switches and don't turn off volume
lines; I'm not quite sure which lines of all the ones in the path files
you are referring to. Right now i commented a few in the two files:
in the headphones file:
;; [Element Surround]
;; switch = off
;; volume = off
and in the lineout file:
;;; [Element Headphone+LO]
;;; switch = mute
;;; volume = merge
;;; override-map.1 = all
;;; override-map.2 = all-left,all-right
;;; required-any = any
[Element Master Mono]
switch = off
volume = off
[Element Line HP Swap]
switch = off
required-any = any
; This profile path is intended to control line out, let's mute
headphones
; else there will be a spike when plugging in headphones
;;; [Element Headphone]
;;; Switch = off
;;; Volume = off
If I understood you correctly than all I need to do is flick the
Independent HP mixer control on and I should have two sinks when
restarting pulseaudio, but I have no idea how to.
_______________________________________________
pulseaudio-discuss mailing list
[email protected]
https://lists.freedesktop.org/mailman/listinfo/pulseaudio-discuss