<html><head></head><body><div>Hi all, </div><div><br></div><div>(This is an edited version sent to Tanu before I knew about this mailing list)</div><div><br></div><div>I hope someone here can help.</div><div><br></div><div>I understand that previous versions of Pulseaudio < 11 had the ability to connect to older Airport Expresses in order to use the Airplay function.</div><div><br></div><div>I read that due to newer devices using UDP rather than TCP the Airplay  functionality wouldn't work with these new devices.</div><div><br></div><div>I know that someone did their own patched version for RAOP 2  - <a href="https://hfujita.github.io/pulseaudio-raop2/">https://hfujita.github.io/pulseaudio-raop2/</a> -  I never tried this patch. However, when I read that the new Pulseaudio 11 includes these changes and that it should now work, I got really excited. </div><div><br></div><div>However, I'm having the exact same problem that I did before. I enable Airplay discovery in PA-prefs, and GNOME Sound Settings detects my Airport Express (it's listed twice for some reason). However, when I select one of them and use the Test Speakers function, no audio can be heard. All volume sliders are on full.</div><div><br></div><div>Playing a track using Audacious for example,  whilst Airport Express is selected for output, results in no activity at all, the track doesn't even begin to play, with the track time stuck at 0:00:00. Switching back to Built-in Audio works fine.</div><div><br></div><div>I'm using a fully updated Arch Linux and Pulseaudio 11.1. I have no password set on my Airport Express and it works fine using iTunes on my </div><div>Mac (which I make sure is disconnected before trying it on my Linux PC). </div><div><br></div><div>With Tanu's help, I managed to get some log output from PulseAudio to see what was going on.</div><div><br></div><div>In  terminal 1: </div><div><br></div><pre>        pulseaudio -vv </pre><div><br></div><div>- seems to start normally.</div><div><br></div><div>In terminal 2 :</div><div><br></div><pre>   pactl load-module module-raop-discover"</pre><div><br></div><div>I won't post the full log here, but the meaningful messages seem to be: </div><div><br></div><div><br></div><div><br></div><pre>I: [pulseaudio] client.c: Created 4 "Native client (UNIX socket client)"</pre><pre>D: [pulseaudio] protocol-native.c: Protocol version: remote 32, local 32</pre><pre>I: [pulseaudio] protocol-native.c: Got credentials: uid=1000 gid=100 success=1</pre><pre>D: [pulseaudio] protocol-native.c: SHM possible: yes</pre><pre>D: [pulseaudio] protocol-native.c: Negotiated SHM: yes</pre><pre>D: [pulseaudio] protocol-native.c: Memfd possible: yes</pre><pre>D: [pulseaudio] protocol-native.c: Negotiated SHM type: shared memfd</pre><pre>D: [pulseaudio] memblock.c: Using shared memfd memory pool with 1024 slots of size 64.0 KiB each, total size is 64.0 MiB, maximum usable slot size is 65472</pre><pre>D: [pulseaudio] srbchannel.c: SHM block is 65472 bytes, ringbuffer capacity is 2 * 32712 bytes</pre><pre>D: [pulseaudio] protocol-native.c: Enabling srbchannel...</pre><pre>D: [pulseaudio] module-augment-properties.c: Looking for .desktop file for pactl</pre><pre>D: [pulseaudio] protocol-native.c: Client enabled srbchannel.</pre><pre>I: [pulseaudio] module.c: Loaded "module-raop-discover" (index: #24; argument: "").</pre><pre>I: [pulseaudio] client.c: Freed 4 "pactl"</pre><pre>I: [pulseaudio] protocol-native.c: Connection died.</pre><pre>D: [pulseaudio] module-raop-discover.c: Found RAOP: John's AirPort Express</pre><pre>D: [pulseaudio] module-raop-discover.c: Found key: 'txtvers' with value: '1'</pre><pre>D: [pulseaudio] module-raop-discover.c: Found key: 'ch' with value: '2'</pre><pre>D: [pulseaudio] module-raop-discover.c: Found key: 'cn' with value: '0,1'</pre><pre>D: [pulseaudio] module-raop-discover.c: Found key: 'et' with value: '0,4'</pre><pre>D: [pulseaudio] module-raop-discover.c: Found key: 'sv' with value: 'false'</pre><pre>D: [pulseaudio] module-raop-discover.c: Found key: 'da' with value: 'true'</pre><pre>D: [pulseaudio] module-raop-discover.c: Found key: 'sr' with value: '44100'</pre><pre>D: [pulseaudio] module-raop-discover.c: Found key: 'ss' with value: '16'</pre><pre>D: [pulseaudio] module-raop-discover.c: Found key: 'pw' with value: 'false'</pre><pre>D: [pulseaudio] module-raop-discover.c: Found key: 'vn' with value: '65537'</pre><pre>D: [pulseaudio] module-raop-discover.c: Found key: 'tp' with value: 'TCP,UDP'</pre><pre>D: [pulseaudio] module-raop-discover.c: Found key: 'vs' with value: '105.1'</pre><pre>D: [pulseaudio] module-raop-discover.c: Found key: 'am' with value: 'AirPort10,115'</pre><pre>D: [pulseaudio] module-raop-discover.c: Found key: 'fv' with value: '76800.1'</pre><pre>D: [pulseaudio] module-raop-discover.c: Found key: 'sf' with value: '0x4'</pre><pre>D: [pulseaudio] module-raop-discover.c: Loading module-raop-sink with arguments 'server=[169.254.13.13]:5000 sink_name=raop_output.Johns-AirPort-Express.local sink_properties='device.description="John\'s AirPort Express (169.254.13.13:5000)"' protocol=UDP encryption=none codec=ALAC channels=2 format=16 rate=44100'</pre><pre>I: [pulseaudio] module-device-restore.c: Restoring volume for sink raop_output.Johns-AirPort-Express.local: front-left: 47452 /  72%,   front-right: 47452 /  72%</pre><pre>I: [pulseaudio] sink.c: Created sink 1 "raop_output.Johns-AirPort-Express.local" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right</pre><pre>I: [pulseaudio] sink.c:     device.string = "[169.254.13.13]:5000"</pre><pre>I: [pulseaudio] sink.c:     device.intended_roles = "music"</pre><pre>I: [pulseaudio] sink.c:     device.description = "John's AirPort Express (169.254.13.13:5000)"</pre><pre>I: [pulseaudio] sink.c:     device.icon_name = "audio-card"</pre><pre>I: [pulseaudio] source.c: Created source 2 "raop_output.Johns-AirPort-Express.local.monitor" with sample spec s16le 2ch 44100Hz and channel map front-left,front-right</pre><pre>I: [pulseaudio] source.c:     device.description = "Monitor of John's AirPort Express (169.254.13.13:5000)"</pre><pre>I: [pulseaudio] source.c:     device.class = "monitor"</pre><pre>I: [pulseaudio] source.c:     device.icon_name = "audio-input-microphone"</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-sink.c: Thread starting up</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-sink.c: RAOP: IDLE</pre><pre>D: [pulseaudio] module-device-restore.c: Could not set format on sink raop_output.Johns-AirPort-Express.local</pre><pre>D: [pulseaudio] module-suspend-on-idle.c: Sink raop_output.Johns-AirPort-Express.local becomes idle, timeout in 5 seconds.</pre><pre>D: [pulseaudio] rtsp_client.c: Attempting to connect to server '169.254.13.13:5000'</pre><pre>I: [pulseaudio] module.c: Loaded "module-raop-sink" (index: #25; argument: "server=[169.254.13.13]:5000 sink_name=raop_output.Johns-AirPort-Express.local sink_properties='device.description="John\'s AirPort Express (169.254.13.13:5000)"' protocol=UDP encryption=none codec=ALAC channels=2 format=16 rate=44100")</pre><div><br></div><div><br></div><div>Then, further down:</div><div><br></div><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre><br></pre><pre>E: [pulseaudio] rtsp_client.c: Connection failed: Connection timed out</pre><pre></pre><pre><br></pre><pre>I: [pulseaudio] module-suspend-on-idle.c: Sink raop_output.Johns-AirPort-Express.local idle for too long, suspending ...</pre><pre>D: [pulseaudio] sink.c: Suspend cause of sink raop_output.Johns-AirPort-Express.local is 0x0004, suspending</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-sink.c: RAOP: SUSPENDED</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Not alive, connection not established yet...</pre><pre>D: [pulseaudio] core.c: Hmm, no streams around, trying to vacuum.</pre><pre>I: [pulseaudio] module-suspend-on-idle.c: Sink raop_output.Johns-AirPort-Express.local.2 idle for too long, suspending ...</pre><pre>D: [pulseaudio] sink.c: Suspend cause of sink raop_output.Johns-AirPort-Express.local.2 is 0x0004, suspending</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-sink.c: RAOP: SUSPENDED</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Not alive, connection not established yet...</pre><pre>D: [pulseaudio] core.c: Hmm, no streams around, trying to vacuum.</pre><div><br></div><div><br></div><div>When I try to play a file from Terminal 2:</div><div><br></div><pre>  paplay --device=raop_output.Johns-AirPort-Express.local /usr/share/sounds/alsa/Front_Center.wav</pre><pre><br></pre><div><br></div><div><br></div><div>I get the following output from Pulseaduio in Terminal 1:</div><div><br></div><div><br></div><pre>I: [pulseaudio] client.c: Created 5 "Native client (UNIX socket client)"</pre><pre>D: [pulseaudio] protocol-native.c: Protocol version: remote 32, local 32</pre><pre>I: [pulseaudio] protocol-native.c: Got credentials: uid=1000 gid=100 success=1</pre><pre>D: [pulseaudio] protocol-native.c: SHM possible: yes</pre><pre>D: [pulseaudio] protocol-native.c: Negotiated SHM: yes</pre><pre>D: [pulseaudio] protocol-native.c: Memfd possible: yes</pre><pre>D: [pulseaudio] protocol-native.c: Negotiated SHM type: shared memfd</pre><pre>D: [pulseaudio] memblock.c: Using shared memfd memory pool with 1024 slots of size 64.0 KiB each, total size is 64.0 MiB, maximum usable slot size is 65472</pre><pre>D: [pulseaudio] srbchannel.c: SHM block is 65472 bytes, ringbuffer capacity is 2 * 32712 bytes</pre><pre>D: [pulseaudio] protocol-native.c: Enabling srbchannel...</pre><pre>D: [pulseaudio] module-augment-properties.c: Looking for .desktop file for pacat</pre><pre>D: [pulseaudio] protocol-native.c: Client enabled srbchannel.</pre><pre>D: [pulseaudio] module-stream-restore.c: Not restoring device for stream sink-input-by-application-name:paplay, because already set to 'raop_output.Johns-AirPort-Express.local'.</pre><pre>D: [pulseaudio] module-intended-roles.c: Not setting device for stream /usr/share/sounds/alsa/Front_Center.wav, because already set.</pre><pre>D: [pulseaudio] sink-input.c: Negotiated format: pcm, format.sample_format = "\"s16le\""  format.rate = "48000"  format.channels = "1"  format.channel_map = "\"mono\""</pre><pre>I: [pulseaudio] sink-input.c: Trying to change sample rate</pre><pre>I: [pulseaudio] module-stream-restore.c: Restoring mute state for sink input sink-input-by-application-name:paplay.</pre><pre>D: [pulseaudio] module-suspend-on-idle.c: Sink raop_output.Johns-AirPort-Express.local becomes busy, resuming.</pre><pre>D: [pulseaudio] sink.c: Suspend cause of sink raop_output.Johns-AirPort-Express.local is 0x0000, resuming</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-sink.c: RAOP: IDLE</pre><pre>D: [pulseaudio] module-suspend-on-idle.c: Sink raop_output.Johns-AirPort-Express.local becomes idle, timeout in 5 seconds.</pre><pre>D: [pulseaudio] module-suspend-on-idle.c: Sink raop_output.Johns-AirPort-Express.local becomes idle, timeout in 5 seconds.</pre><pre>D: [pulseaudio] resampler.c: Resampler:</pre><pre>D: [pulseaudio] resampler.c:   rate 48000 -> 44100 (method speex-float-1)</pre><pre>D: [pulseaudio] resampler.c:   format s16le -> s16le (intermediate float32le)</pre><pre>D: [pulseaudio] resampler.c:   channels 1 -> 2 (resampling 1)</pre><pre>D: [pulseaudio] resampler.c: Channel matrix:</pre><pre>D: [pulseaudio] resampler.c:        I00 </pre><pre>D: [pulseaudio] resampler.c:     +------</pre><pre>D: [pulseaudio] resampler.c: O00 | 1.000</pre><pre>D: [pulseaudio] resampler.c: O01 | 1.000</pre><pre>I: [pulseaudio] remap_sse.c: Using SSE2 mono to stereo remapping</pre><pre>I: [pulseaudio] speex.c: Choosing speex quality setting 1.</pre><pre>D: [pulseaudio] memblockq.c: memblockq requested: maxlength=33554432, tlength=0, base=4, prebuf=0, minreq=1 maxrewind=0</pre><pre>D: [pulseaudio] memblockq.c: memblockq sanitized: maxlength=33554432, tlength=33554432, base=4, prebuf=0, minreq=4 maxrewind=0</pre><pre>I: [pulseaudio] sink-input.c: Created input 0 "/usr/share/sounds/alsa/Front_Center.wav" on raop_output.Johns-AirPort-Express.local with sample spec s16le 1ch 48000Hz and channel map mono</pre><pre>I: [pulseaudio] sink-input.c:     media.format = "WAV (Microsoft)"</pre><pre>I: [pulseaudio] sink-input.c:     application.name = "paplay"</pre><pre>I: [pulseaudio] sink-input.c:     media.name = "/usr/share/sounds/alsa/Front_Center.wav"</pre><pre>I: [pulseaudio] sink-input.c:     native-protocol.peer = "UNIX socket client"</pre><pre>I: [pulseaudio] sink-input.c:     native-protocol.version = "32"</pre><pre>I: [pulseaudio] sink-input.c:     application.process.id = "6825"</pre><pre>I: [pulseaudio] sink-input.c:     application.process.user = "john"</pre><pre>I: [pulseaudio] sink-input.c:     application.process.host = "george"</pre><pre>I: [pulseaudio] sink-input.c:     application.process.binary = "pacat"</pre><pre>I: [pulseaudio] sink-input.c:     application.language = "en_GB.utf8"</pre><pre>I: [pulseaudio] sink-input.c:     window.x11.display = ":0"</pre><pre>I: [pulseaudio] sink-input.c:     application.process.machine_id = "1ff72ad3eaf0457bb61067f85cbbda37"</pre><pre>I: [pulseaudio] sink-input.c:     application.process.session_id = "2"</pre><pre>I: [pulseaudio] sink-input.c:     module-stream-restore.id = "sink-input-by-application-name:paplay"</pre><pre>I: [pulseaudio] protocol-native.c: Requested tlength=2000.00 ms, minreq=20.00 ms</pre><pre>D: [pulseaudio] protocol-native.c: Traditional mode enabled, modifying sink usec only for compat with minreq.</pre><pre>D: [pulseaudio] protocol-native.c: Requested latency=1960.00 ms, Received latency=250.00 ms</pre><pre>D: [pulseaudio] memblockq.c: memblockq requested: maxlength=4194304, tlength=192000, base=2, prebuf=190082, minreq=1920 maxrewind=0</pre><pre>D: [pulseaudio] memblockq.c: memblockq sanitized: maxlength=4194304, tlength=192000, base=2, prebuf=190082, minreq=1920 maxrewind=0</pre><pre>I: [pulseaudio] protocol-native.c: Final latency 2250.00 ms = 1960.00 ms + 2*20.00 ms + 250.00 ms</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-sink.c: RAOP: RUNNING</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Not alive, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Connection already in progress...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [pulseaudio] core-subscribe.c: Dropped redundant event due to change event.</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] protocol-native.c: Requesting rewind due to end of underrun.</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [pulseaudio] module-suspend-on-idle.c: Sink raop_output.Johns-AirPort-Express.local becomes idle, timeout in 5 seconds.</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-sink.c: RAOP: IDLE</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Cannot FLUSH, connection not established yet...)</pre><pre>D: [pulseaudio] module-suspend-on-idle.c: Sink raop_output.Johns-AirPort-Express.local becomes idle, timeout in 5 seconds.</pre><pre>D: [pulseaudio] core.c: Hmm, no streams around, trying to vacuum.</pre><pre>I: [pulseaudio] sink-input.c: Freeing input 0 "/usr/share/sounds/alsa/Front_Center.wav"</pre><pre>I: [pulseaudio] client.c: Freed 5 "paplay"</pre><pre>I: [pulseaudio] protocol-native.c: Connection died.</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Can't stream, connection not established yet...</pre><pre>I: [pulseaudio] module-suspend-on-idle.c: Sink raop_output.Johns-AirPort-Express.local idle for too long, suspending ...</pre><pre>D: [pulseaudio] sink.c: Suspend cause of sink raop_output.Johns-AirPort-Express.local is 0x0004, suspending</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-sink.c: RAOP: SUSPENDED</pre><pre>D: [raop-sink-[169.254.13.13]:5000] raop-client.c: Not alive, connection not established yet...</pre><pre>D: [pulseaudio] core.c: Hmm, no streams around, trying to vacuum.</pre><div><br></div><div><br></div><div>And then, in Terminal 2 (paplay):</div><div><br></div><pre>Failed to drain stream: Timeout</pre><pre><br></pre><pre><br></pre><div>This has been driving me mad for a number of years now, and this is one of the main things that keeps me from switching to Linux full time. </div><div><br></div><div>If anyone can shed some light on this, I'd be eternally grateful! <img src="cid:1507289872.5771.0.camel@me.com" alt=":-)"></div><div><br></div><div>Thanks for reading,</div><div><br></div><div>John</div><pre><br></pre><div style="margin-left: 3ch;"></div></body></html>