/ HowTos

PulseAudio over Network

I've been banging my head against this one since I started using a second workstation here at work (Fedora 17). File sharing, mouse and keyboard sharing, and syncing my wallpapers over the network was pretty simple, but there was one nagging issue. Sound.

I found myself missing chats due to the lack of an audible notification. I use headphones to block out the outside world, plus I like having my chat window on my second workstation so I can work on the first. Ok...enough background. Lets get down to business.

Needed package(s): paprefs, pulseaudio-module-zeroconf, and avahi

Conf file to tweak: /etc/pulse/default.pa
Lines to add or uncomment*

(Server)
Uncomment - load-module module-native-protocol-tcp
Uncomment - load-module module-zeroconf-publish

### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
#load-module module-esound-protocol-tcp
load-module module-native-protocol-tcp
load-module module-zeroconf-publish

(Client)
Uncomment - load-module module-native-protocol-tcp
Add - load-module module-zeroconf-discover

### Network access (may be configured with paprefs, so leave this commented
### here if you plan to use paprefs)
#load-module module-esound-protocol-tcp
load-module module-native-protocol-tcp
#load-module module-zeroconf-publish
load-module module-zeroconf-discover

Now, run paprefs

Network Access Tab (Server and Client)

Check - Make discoverable PulseAudio network...

Network Server Tab

Check - Enable network access to local sound devices
Check - Allow other machines on the LAN to discover...

screenshot1
screenshot2

Big hammer approach (both can be server or client)
Authentication and Firewall

For authentication, just copy ~/.pulse-cookie from your Server machine to the Client.

Edit your servers firewall rules to allow upd port 5353 for avahi and tcp port 4713 for pulseaudio

Finally, restart X on both Server and Client.
On the client, Run gnome-control-center --overview and select 'Sound'
There should now be an entry for your server in the output tab. After selecting that, all sound generated on the client, should be passed to the server!