<p></p>
<p>><br>
><a href="http://pastebin.com/NnDvQ2kU">http://pastebin.com/NnDvQ2kU</a><br>
></p>
<p>:~$ aplay --dump-hw-params -D surround40:CARD=Live /usr/share/sounds/alsa/Front_Left.wav</p>
<p>appropriate number of channels is not available WAVE '/usr/share/sounds/alsa/Front_Left.wav' : Signed 16 bit Little Endian, frequency 48000 Hz, Mono</p>
<p>HW Params of device "surround40:CARD=Live":</p>
<p>--------------------</p>
<p>ACCESS:  MMAP_COMPLEX RW_INTERLEAVED RW_NONINTERLEAVED<br>
FORMAT:  U8 S16_LE<br>
SUBFORMAT:  STD<br>
SAMPLE_BITS: [8 16]<br>
FRAME_BITS: [32 64]<br>
CHANNELS: 4<br>
RATE: [4000 96000]<br>
PERIOD_TIME: (166 8192000]<br>
PERIOD_SIZE: [16 32768]<br>
PERIOD_BYTES: [64 262144]<br>
PERIODS: [1 1024]<br>
BUFFER_TIME: (666 8192000]<br>
BUFFER_SIZE: [64 32768]<br>
BUFFER_BYTES: [256 262144]<br>
TICK_TIME: ALL<br>
--------------------</p>
<p>Both hw and front (mono and stereo profile) support MMAP_INTERLEAVED and RW_INTERLEAVED BUT surround40 and surround51  support MMAP_COMPLEX or RW_INTERLEAVED</p>
<p>44100Hz is supported but disabled when pulseaudio use no resample</p>
<p>Seem bug or limitaion of multi plugin when the slaves does not support RW_NONINTERLEAVED</p>
<p>Do pulseaudio expect all profiles of the sink or card  use same access type ?</p>
<p>Seem no way to force pulseaudio to try RW_INTERLEAVED first since udev-detect only has tsched flag</p>
<p><a href="http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/module-udev-detect.c">http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/module-udev-detect.c</a></p>
<p>What is the purpose of bool *use_mmap in pa_alsa_set_hw_params when user are not recommended to  use module-alsa-sink in<a href="http://default.pa">default.pa</a></p>
<p>int pa_alsa_set_hw_params(<br>
        snd_pcm_t *pcm_handle,<br>
        pa_sample_spec *ss,<br>
        snd_pcm_uframes_t *period_size,<br>
        snd_pcm_uframes_t *buffer_size,<br>
        snd_pcm_uframes_t tsched_size,<br>
        bool *use_mmap,<br>
        bool *use_tsched,<br>
        bool require_exact_channel_number) {</p>
<p><a href="http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/alsa/module-alsa-card.c">http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/alsa/module-alsa-card.c</a></p>
<p>"mmap=<enable memory mapping?> "</p>
<p><a href="http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/alsa/module-alsa-sink.c">http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/alsa/module-alsa-sink.c</a></p>
<p>"mmap=<enable memory mapping?> "</p>
<p><a href="http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/alsa/module-alsa-source.c">http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/alsa/module-alsa-source.c</a></p>
<p>"mmap=<enable memory mapping?> "<br>
><br>
> >Do pactl can select the capture source?<br>
><br>
> I don't know what specific command shold I use.<br>
></p>
<p>pactl --help</p>
<p>You have to post output of</p>
<p>pactl list</p>
<p>Capture source is not a mixer element but a hctl control</p>
<p>control.64 {<br>
iface MIXER name 'Capture Source'<br>
value.0 Mic<br>
value.1 Mic<br>
comment<br>
{ access 'read write'<br>
type ENUMERATED count 2<br>
item.0 Mic<br>
item.1 CD<br>
item.2 Video<br>
item.3 Aux<br>
item.4 Line<br>
item.5 Mix<br>
item.6 'Mix Mono'<br>
item.7 Phone } }</p>
<p>Those mixer elements with " Capture exclusive group: 0" are belong to "Capture Source" control</p>
<p>cswitch-exclusive mean only one of the source can be switch on within capture exclusive group</p>
<p>Simple mixer control 'Line',0<br>
  Capabilities: pvolume pswitch pswitch-joined cswitch cswitch-exclusive<br>
  Capture exclusive group: 0<br>
  Playback channels: Front Left - Front Right<br>
  Capture channels: Front Left - Front Right<br>
  Limits: Playback 0 - 31<br>
  Front Left: Playback 31 [100%] [12.00dB] [on] Capture [off]<br>
  Front Right: Playback 31 [100%] [12.00dB] [on] Capture [off]</p>
<p>To select line in as capture source, you need to set the line capture switch on</p>
<p>those mixer elements with "pswitch-joined" have input to ac97 analog mixer</p>
<p>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</p>
<p>Pcm playback volume/switch with  pswitch-joined is also an input to ac97 analog mixer</p>
<p>Simple mixer control 'PCM',0<br>
  Capabilities: pvolume pswitch pswitch-joined<br>
  Playback channels: Front Left - Front Right<br>
  Limits: Playback 0 - 31<br>
  Mono:<br>
  Front Left: Playback 23 [74%] [0.00dB] [on]<br>
  Front Right: Playback 23 [74%] [0.00dB] [on]</p>
<p>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</p>
<p><a href="http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/alsa/mixer/paths">http://cgit.freedesktop.org/pulseaudio/pulseaudio/tree/src/modules/alsa/mixer/paths</a></p>
<p>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<br></p>
<p><a href="http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/src/modules/alsa/alsa-mixer.c?id=300a5e3ed70064c296e09bc4e40531f3257154c5">http://cgit.freedesktop.org/pulseaudio/pulseaudio/commit/src/modules/alsa/alsa-mixer.c?id=300a5e3ed70064c296e09bc4e40531f3257154c5</a></p>
<p>> > Which devices do you want to use? Those Multichannel's I had when I disabled pulse. </p>
<p><a href="http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/conf/cards/EMU10K1.conf;hb=HEAD">http://git.alsa-project.org/?p=alsa-lib.git;a=blob;f=src/conf/cards/EMU10K1.conf;hb=HEAD</a></p>
<p>You have to ask the author of snd-emu10k1 as I only know how to use devices in the above conf</p>
<p><a href="https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/tree/Documentation/sound/alsa/emu10k1-jack.txt">https://git.kernel.org/cgit/linux/kernel/git/tiwai/sound.git/tree/Documentation/sound/alsa/emu10k1-jack.txt</a></p>
<p>>> card 0: Live [SB Live! Value [CT4832]], device 2: emu10k1 efx [Multichannel Capture/PT Playback]<br>
>>   Subdevices: 8/8<br>
>>   Subdevice #0: subdevice #0<br>
>>   Subdevice #1: subdevice #1<br>
>>   Subdevice #2: subdevice #2<br>
>>   Subdevice #3: subdevice #3<br>
>>   Subdevice #4: subdevice #4<br>
>>   Subdevice #5: subdevice #5<br>
>>   Subdevice #6: subdevice #6<br>
>>   Subdevice #7: subdevice #7<br>
>><br>
>> card 0: Live [SB Live! Value [CT4832]], device 3: emu10k1 [Multichannel Playback]<br>
>>   Subdevices: 1/1<br>
>>   Subdevice #0: subdevice #0<br>
>><br>
>> ARECORD<br>
>><br>
>> **** List of CAPTURE Hardware Devices ****<br>
>><br>
>> card 0: Live [SB Live! Value [CT4832]], device 1: emu10k1 mic [Mic Capture]<br>
>>   Subdevices: 1/1<br>
>>   Subdevice #0: subdevice #0<br>
>><br>
>> card 0: Live [SB Live! Value [CT4832]], device 2: emu10k1 efx [Multichannel Capture/PT Playback]<br>
>>   Subdevices: 1/1<br>
>>   Subdevice #0: subdevice #0<br>
>><br>
>></p>
<p>> Hmmm. Now I use surround 4.0<br>
><a href="http://i.imgur.com/UZsnWqs.png">http://i.imgur.com/UZsnWqs.png</a><br>
><br>
> but whatever is needed to accomplish it.</p>