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

Reply via email to