[pulseaudio-discuss] Intercom with module-tunnel*new

Michael Renner michael.renner at gmx.de
Sun Feb 5 12:12:59 UTC 2017


On 23.01.2017 10:58, Tanu Kaskinen wrote:

Moin Tanu, thanks for your answer.


> On Tue, 2017-01-17 at 11:18 +0100, Michael Renner wrote:
>> Moin,
>>
>> my new project seems to be easy, but the setup still does not work. On a
>> Raspberry Pi (raspbian jessie with backports) runs pulseaudio 7.1.2 on a
>> USB sound card. On a notebook I installed ubuntu xenial with Pulseaudio 8.
[...]


>> At least one piece of the puzzle that you didn't find is module-
>> loopback. That module can be used to take audio from a source and feed
>> it into a sink. Pavucontrol can't be used to set up loopbacks, so use
>> the command line:
>>
>> pactl load-module module-loopback source=name-of-the-source sink=name-of-the-sink

I tried, but the pulseaudioprocess crashed.


>>
>> You can use "pactl list sinks" and "pactl list sources" to figure out
>> the sink and source names (the name is a different thing than the
>> description that you see in pavucontrol).


OK, to make thinks easy let us look just to one channel: bringing the
microphone on the RasPi to the loudspeaker on the notebook.


[...]


>> Arrangement 4 (everything at the notebook end):
>>
>> tunnel sink for the Pi speakers at the notebook end
>> tunnel source for the Pi mic at the notebook end
>> loopback from the tunnel source to the notebook speakers at the notebook end
>> loopback from the notebook mic to the tunnel sink at the notebook end
>>

This sound good, because the setup is controled from the notebook end.
So first, determine the device name on the RasPi:
renner at lyra:~$ ssh 192.168.22.84 "pacmd list-sources | grep name:"
        name:
<alsa_output.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00-CODEC.analog-stereo.monitor>
        name:
<alsa_input.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00-CODEC.analog-stereo>
        name: <alsa_output.0.analog-stereo.monitor>

The 1st entry is the monitor channel of the SignaLink card, the 3rd is
the monitor of the build in card and the 2nd entry is the microphone
channel that I want to redirect. So I start the tunnel. This work, but
only for 2 or 3 seconds. For these few seconds I see an
additional input device in the notebook pavcontrol application: Tunnel
to 192.168.22.84/alsa_input...... and the blue level meter show the
audio level from the microphone. It goes up and down, just like it
should. But only for some seconds, then it freeze.

As soon as the loopback module is loaded pulseaudio crash. I choosed the
"main" soundcard "analog-stereo"
renner at lyra:~$ pacmd list-sinks | grep name:

        name: <alsa_output.pci-0000_00_03.0.hdmi-stereo>
        name: <alsa_output.pci-0000_00_1b.0.analog-stereo>


$ pactl load-module module-tunnel-source-new server=192.168.22.84
source_name=ts480rx
source=alsa_input.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00-CODEC.analog-stereo
$ pactl load-module module-loopback source=ts480rx
sink=alsa_output.pci-0000_00_1b.0.analog-stereo


It sound like an easy setup, but I'm going nuts :-( For the moment I use
pacat together with sox to redirect microphone and loudspeaker, but
because there is the more elegant solution with the tunnel modules I
want to use this.

I attached the debug output from both sides to this mail, can you see
what cause the problem?

Thanks

-- 
|Michael Renner      E-mail: michael.renner at gmx.de  |
|81541 Munich        Twitter: @dd0ul                |
|Germany             Don't drink as root!      ESC:wq

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/pulseaudio-discuss/attachments/20170205/f011206b/attachment.html>
-------------- next part --------------
I: [pulseaudio] module-suspend-on-idle.c: Source tunnel-source-new.192.168.22.92 idle for too long, suspending ...
D: [pulseaudio] source.c: Suspend cause of source tunnel-source-new.192.168.22.92 is 0x0004, suspending
I: [pulseaudio] socket-server.c: TCP connection accepted by tcpwrap.
I: [pulseaudio] client.c: Created 6 "Native client (TCP/IP client from 192.168.22.92:42954)"
I: [pulseaudio] protocol-native.c: Client authenticated anonymously.
D: [pulseaudio] protocol-native.c: Protocol version: remote 30, local 30
D: [pulseaudio] protocol-native.c: SHM possible: no
D: [pulseaudio] protocol-native.c: Negotiated SHM: no
D: [pulseaudio] protocol-native.c: Disabling srbchannel, reason: No SHM support
I: [pulseaudio] client.c: Freed 6 "Native client (TCP/IP client from 192.168.22.92:42954)"
I: [pulseaudio] protocol-native.c: Connection died.

-------------- next part --------------
I: [pulseaudio] client.c: Created 5 "Native client (UNIX socket client)"
D: [pulseaudio] protocol-native.c: Protocol version: remote 30, local 30
I: [pulseaudio] protocol-native.c: Got credentials: uid=1234 gid=100 success=1
D: [pulseaudio] protocol-native.c: SHM possible: yes
D: [pulseaudio] protocol-native.c: Negotiated SHM: yes
D: [pulseaudio] srbchannel.c: SHM block is 65472 bytes, ringbuffer capacity is 2 * 32712 bytes
D: [pulseaudio] protocol-native.c: Enabling srbchannel...
D: [pulseaudio] module-augment-properties.c: Looking for .desktop file for pactl
D: [pulseaudio] protocol-native.c: Client enabled srbchannel.
I: [pulseaudio] module-device-restore.c: Restoring mute state for source ts480rx: unmuted
I: [pulseaudio] source.c: Created source 4 "ts480rx" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
I: [pulseaudio] source.c:     device.class = "sound"
I: [pulseaudio] source.c:     device.description = "Tunnel to 192.168.22.84/alsa_input.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00-CODEC.analog-stereo"
I: [pulseaudio] source.c:     device.icon_name = "audio-input-microphone"
D: [tunnel-source] module-tunnel-source-new.c: Thread starting up
D: [tunnel-source] conf-parser.c: Parsing configuration file '/etc/pulse/client.conf'
D: [tunnel-source] conf-parser.c: /etc/pulse/client.conf.d does not exist, ignoring.
D: [tunnel-source] memblock.c: Using shared memory pool with 1024 slots of size 64.0 KiB each, total size is 64.0 MiB, maximum usable slot size is 65472
D: [tunnel-source] context.c: Trying to connect to 192.168.22.84...
D: [pulseaudio] module-suspend-on-idle.c: Source ts480rx becomes idle, timeout in 5 seconds.
I: [pulseaudio] module.c: Loaded "module-tunnel-source-new" (index: #24; argument: "server=192.168.22.84 source_name=ts480rx source=alsa_input.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00-CODEC.analog-stereo").
I: [pulseaudio] client.c: Freed 5 "pactl"
I: [pulseaudio] protocol-native.c: Connection died.
I: [pulseaudio] client.c: Created 6 "Native client (UNIX socket client)"
D: [pulseaudio] protocol-native.c: Protocol version: remote 30, local 30
I: [pulseaudio] protocol-native.c: Got credentials: uid=1234 gid=100 success=1
D: [pulseaudio] protocol-native.c: SHM possible: yes
D: [pulseaudio] protocol-native.c: Negotiated SHM: yes
D: [pulseaudio] srbchannel.c: SHM block is 65472 bytes, ringbuffer capacity is 2 * 32712 bytes
D: [pulseaudio] protocol-native.c: Enabling srbchannel...
D: [pulseaudio] module-augment-properties.c: Looking for .desktop file for pactl
D: [pulseaudio] protocol-native.c: Client enabled srbchannel.
D: [pulseaudio] module-stream-restore.c: Not restoring device for stream sink-input-by-media-role:abstract, because already set to 'alsa_output.pci-0000_00_1b.0.analog-stereo'.
D: [pulseaudio] module-intended-roles.c: Not setting device for stream (null), because already set.
D: [pulseaudio] sink-input.c: Negotiated format: pcm, format.sample_format = "\"s16le\""  format.rate = "44100"  format.channels = "2"  format.channel_map = "\"front-left,front-right\""
D: [pulseaudio] module-suspend-on-idle.c: Sink alsa_output.pci-0000_00_1b.0.analog-stereo becomes busy, resuming.
D: [pulseaudio] resampler.c: Resampler:
D: [pulseaudio] resampler.c:   rate 44100 -> 44100 (method speex-float-1)
D: [pulseaudio] resampler.c:   format s16le -> s16le (intermediate float32le)
D: [pulseaudio] resampler.c:   channels 2 -> 2 (resampling 2)
I: [pulseaudio] speex.c: Choosing speex quality setting 1.
D: [pulseaudio] memblockq.c: memblockq requested: maxlength=33554432, tlength=0, base=4, prebuf=0, minreq=1 maxrewind=0
D: [pulseaudio] memblockq.c: memblockq sanitized: maxlength=33554432, tlength=33554432, base=4, prebuf=0, minreq=4 maxrewind=0
I: [pulseaudio] sink-input.c: Created input 0 "(null)" on alsa_output.pci-0000_00_1b.0.analog-stereo with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
I: [pulseaudio] sink-input.c:     media.role = "abstract"
I: [pulseaudio] sink-input.c:     module-stream-restore.id = "sink-input-by-media-role:abstract"
D: [pulseaudio] module-stream-restore.c: Not restoring device for stream source-output-by-media-role:abstract, because already set
D: [pulseaudio] module-intended-roles.c: Not setting device for stream (null), because already set.
D: [pulseaudio] source-output.c: Negotiated format: pcm, format.sample_format = "\"s16le\""  format.rate = "44100"  format.channels = "2"  format.channel_map = "\"front-left,front-right\""
D: [pulseaudio] module-suspend-on-idle.c: Source ts480rx becomes busy, resuming.
D: [pulseaudio] module-suspend-on-idle.c: Source ts480rx becomes idle, timeout in 5 seconds.
D: [pulseaudio] memblockq.c: memblockq requested: maxlength=33554432, tlength=0, base=4, prebuf=0, minreq=1 maxrewind=0
D: [pulseaudio] memblockq.c: memblockq sanitized: maxlength=33554432, tlength=33554432, base=4, prebuf=0, minreq=4 maxrewind=0
I: [pulseaudio] source-output.c: Created output 4 "(null)" on ts480rx with sample spec s16le 2ch 44100Hz and channel map front-left,front-right
I: [pulseaudio] source-output.c:     media.role = "abstract"
I: [pulseaudio] source-output.c:     module-stream-restore.id = "source-output-by-media-role:abstract"
D: [pulseaudio] memblockq.c: memblockq requested: maxlength=16777216, tlength=16777216, base=4, prebuf=0, minreq=0 maxrewind=0
D: [pulseaudio] memblockq.c: memblockq sanitized: maxlength=16777216, tlength=16777216, base=4, prebuf=0, minreq=4 maxrewind=0
D: [alsa-sink-ALC3232 Analog] alsa-sink.c: Latency set to 40.00ms
D: [alsa-sink-ALC3232 Analog] alsa-sink.c: hwbuf_unused=58480
D: [alsa-sink-ALC3232 Analog] alsa-sink.c: setting avail_min=15503
I: [alsa-sink-ALC3232 Analog] module-loopback.c: Max request changed
D: [alsa-sink-ALC3232 Analog] alsa-sink.c: Requested volume: front-left: 42598 /  65% / -11.23 dB,   front-right: 42598 /  65% / -11.23 dB
D: [alsa-sink-ALC3232 Analog] alsa-sink.c: Got hardware volume: front-left: 42804 /  65% / -11.10 dB,   front-right: 42804 /  65% / -11.10 dB
D: [alsa-sink-ALC3232 Analog] alsa-sink.c: Calculated software volume: front-left: 65221 / 100% / -0.13 dB,   front-right: 65221 / 100% / -0.13 dB (accurate-enough=yes)
D: [alsa-sink-ALC3232 Analog] sink.c: Volume not changing
E: [tunnel-source] rtpoll.c: Assertion 'p' failed at pulsecore/rtpoll.c:613, function pa_rtpoll_item_new_asyncmsgq_write(). Aborting.
Aborted (core dumped)
renner at lyra:~$ 



More information about the pulseaudio-discuss mailing list