Centralized PulseAudio setup
Solution 1
Partially – easy with Linux clients, tricky with Windows.
With Linux clients this is simple – just set $PULSE_SERVER
to the media server's address and copy the ~/.pulse_cookie
authentication file.
PULSE_SERVER=tcp:mediaserver.home tcp6:mediaserver.home
Of course, make sure PulseAudio on the media server has the required modules loaded; most of them can be enabled via paprefs
, or you could load them via ~/.pulse/default.pa
on the media server:
.include /etc/pulse/default.pa
# required:
load-module module-native-protocol-tcp
load-module module-simple-protocol-tcp
# needed if you use WinESD:
load-module module-esound-protocol-tcp
# optional, might be useful if you use Avahi:
load-module module-zeroconf-publish
There is no PulseAudio client for Windows yet, although one could use the very old WinESD driver and Pulse's ESounD compatibility module, or the linco
tool as described in this blog post; here is a simplified version with plink
from PuTTY in place of Cygwin:
linco -B 16 -C 2 -R 44100 | plink user@mediaserver "pacat --playback"
If you use iTunes, you could run Shairport on the media server, which will make it show up on iTunes as an AirPort.
(In fact, using Shairport with PulseAudio clients (via module-raop-discover
+ module-raop-sink
) might use less bandwidth than the uncompressed Pulse protocol, but unfortunately there are some incompatibilities preventing this from working.)
Solution 2
- Download the latest pulse audio release from http://www.freedesktop.org/wiki/Software/PulseAudio/Ports/Windows/Support/ (latest is v1.1 at time of writing).
- unpack to somewhere you want. example:
c:\pulse\
- open
c:\pulse\etc\default.pa
- make sure you have something similar to :
load-module module-native-protocol-tcp listen=0.0.0.0 auth-anonymous=1
set-default-sink output
- On your linux machine(s), open
/etc/pulse/client.conf
(you could possibly do the same with~/.pulse/client.conf
), make suredefault-server
is uncommented and set to the ip address of your windows machine (one you want to receive audio on) - restart pulseaudio on the linux machine(s), ubuntu:
pulseaudio -k
, for other distros I imagine you'd restart the server like you do any othersudo service pulseaudio restart
. - On your windows machine, launch
pulseaudio.exe
. This should open a simple terminal with a few warnings (nothing to worry about from my experience). - On your Linux machine(s), launch something that plays sound.
Related videos on Youtube
evgeniuz
Updated on September 18, 2022Comments
-
evgeniuz almost 2 years
I want to do a setup, so that all my computers and TV use one audio system. Like this:
Where media server is connected to acoustics and TV is connected through sound-card input and other systems use PulseAudio to access acoustics through network. Is this setup possible?
-
evgeniuz over 12 yearsI knew, that this is possible with Linux and my concern was chiefly about Windows. Thanks for suggestion, I'll try it.
-
user1686 over 12 years@Shark: I also found this article suggesting the use of
linco
. See my updated post. -
user1686 over 10 years@airtonix: A version more recent than 1.1?
-
airtonix over 10 years@grawity nope, that's the version I'm using. On my ubuntu 13.10 desktop, I just edit
/etc/pulse/client.conf
, uncommentdefault-server
, set it to the ip address of my windows laptop and launchpulseaudio.exe
on my windows laptop. With synergy this ends up being very nice. -
user1686 over 9 years@nass: No idea, but surely it won't be greater than the network-induced delay?
-
S0AndS0 over 7 yearsHey that
listen=127.0.0.1
worked perfect withload-module module-simple-protocol-tcp ...
shown at [Simple Protocol Player](kaytat.com/blog/?page_id=301) for getting sound out of a chroot into Android via Pulse magic... next up isSonicPi
on Android for mobile scripted musical composition. Thanks to @airtonix my tests'll be a bit more secure. -
Huckle over 5 yearsWinESD, linco, and gleamynode.net links are all dead.