[pulseaudio-discuss] redirect sound to different out jack

Raymond Yau superquad.vortex2 at gmail.com
Sun Nov 23 22:05:47 PST 2014


>
>http://pastebin.com/NnDvQ2kU
>

:~$ aplay --dump-hw-params -D surround40:CARD=Live
/usr/share/sounds/alsa/Front_Left.wav

appropriate number of channels is not available WAVE
'/usr/share/sounds/alsa/Front_Left.wav' : Signed 16 bit Little Endian,
frequency 48000 Hz, Mono

HW Params of device "surround40:CARD=Live":

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

ACCESS:  MMAP_COMPLEX RW_INTERLEAVED RW_NONINTERLEAVED
FORMAT:  U8 S16_LE
SUBFORMAT:  STD
SAMPLE_BITS: [8 16]
FRAME_BITS: [32 64]
CHANNELS: 4
RATE: [4000 96000]
PERIOD_TIME: (166 8192000]
PERIOD_SIZE: [16 32768]
PERIOD_BYTES: [64 262144]
PERIODS: [1 1024]
BUFFER_TIME: (666 8192000]
BUFFER_SIZE: [64 32768]
BUFFER_BYTES: [256 262144]
TICK_TIME: ALL
--------------------

Both hw and front (mono and stereo profile) support MMAP_INTERLEAVED and
RW_INTERLEAVED BUT surround40 and surround51  support MMAP_COMPLEX or
RW_INTERLEAVED

44100Hz is supported but disabled when pulseaudio use no resample

Seem bug or limitaion of multi plugin when the slaves does not support
RW_NONINTERLEAVED

Do pulseaudio expect all profiles of the sink or card  use same access type
?

Seem no way to force pulseaudio to try RW_INTERLEAVED first since
udev-detect only has tsched flag

http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/module-udev-detect.c

What is the purpose of bool *use_mmap in pa_alsa_set_hw_params when user
are not recommended to  use module-alsa-sink indefault.pa

int pa_alsa_set_hw_params(
        snd_pcm_t *pcm_handle,
        pa_sample_spec *ss,
        snd_pcm_uframes_t *period_size,
        snd_pcm_uframes_t *buffer_size,
        snd_pcm_uframes_t tsched_size,
        bool *use_mmap,
        bool *use_tsched,
        bool require_exact_channel_number) {

http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/alsa/module-alsa-card.c

"mmap=<enable memory mapping?> "

http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/alsa/module-alsa-sink.c

"mmap=<enable memory mapping?> "

http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/alsa/module-alsa-source.c

"mmap=<enable memory mapping?> "
>
> >Do pactl can select the capture source?
>
> I don't know what specific command shold I use.
>

pactl --help

You have to post output of

pactl list

Capture source is not a mixer element but a hctl control

control.64 {
iface MIXER name 'Capture Source'
value.0 Mic
value.1 Mic
comment
{ access 'read write'
type ENUMERATED count 2
item.0 Mic
item.1 CD
item.2 Video
item.3 Aux
item.4 Line
item.5 Mix
item.6 'Mix Mono'
item.7 Phone } }

Those mixer elements with " Capture exclusive group: 0" are belong to
"Capture Source" control

cswitch-exclusive mean only one of the source can be switch on within
capture exclusive group

Simple mixer control 'Line',0
  Capabilities: pvolume pswitch pswitch-joined cswitch cswitch-exclusive
  Capture exclusive group: 0
  Playback channels: Front Left - Front Right
  Capture channels: Front Left - Front Right
  Limits: Playback 0 - 31
  Front Left: Playback 31 [100%] [12.00dB] [on] Capture [off]
  Front Right: Playback 31 [100%] [12.00dB] [on] Capture [off]

To select line in as capture source, you need to set the line capture
switch on

those mixer elements with "pswitch-joined" have input to ac97 analog mixer

you have to switch on line playback volume and switch if  you want  tv card
output sound  through line in of ac97 mixer to the front line out

Pcm playback volume/switch with  pswitch-joined is also an input to ac97
analog mixer

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]

You need to select stereo mix if you want to capture from mix of line in,
mic, pcm.... and change those source playback volume and switch

http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/alsa/mixer/paths

Is "pactl set-source-port" the correct command to set capture source
control if pulseaudio does not save and restore the selected source port of
the default sink for those sound cards with ac97 codec

http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/src/modules/alsa/alsa-mixer.c?id=300a5e3ed70064c296e09bc4e40531f3257154c5

> > Which devices do you want to use? Those Multichannel's I had when I
disabled pulse.

http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/conf/cards/EMU10K1.conf;hb=HEAD

You have to ask the author of snd-emu10k1 as I only know how to use devices
in the above conf

https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/tree/Documentation/sound/alsa/emu10k1-jack.txt

>> card 0: Live [SB Live! Value [CT4832]], device 2: emu10k1 efx
[Multichannel Capture/PT Playback]
>>   Subdevices: 8/8
>>   Subdevice #0: subdevice #0
>>   Subdevice #1: subdevice #1
>>   Subdevice #2: subdevice #2
>>   Subdevice #3: subdevice #3
>>   Subdevice #4: subdevice #4
>>   Subdevice #5: subdevice #5
>>   Subdevice #6: subdevice #6
>>   Subdevice #7: subdevice #7
>>
>> card 0: Live [SB Live! Value [CT4832]], device 3: emu10k1 [Multichannel
Playback]
>>   Subdevices: 1/1
>>   Subdevice #0: subdevice #0
>>
>> ARECORD
>>
>> **** List of CAPTURE Hardware Devices ****
>>
>> card 0: Live [SB Live! Value [CT4832]], device 1: emu10k1 mic [Mic
Capture]
>>   Subdevices: 1/1
>>   Subdevice #0: subdevice #0
>>
>> card 0: Live [SB Live! Value [CT4832]], device 2: emu10k1 efx
[Multichannel Capture/PT Playback]
>>   Subdevices: 1/1
>>   Subdevice #0: subdevice #0
>>
>>

> Hmmm. Now I use surround 4.0
>http://i.imgur.com/UZsnWqs.png
>
> but whatever is needed to accomplish it.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20141124/dfd0f14b/attachment.html>


More information about the pulseaudio-discuss mailing list