# ____ _ _ _ _
# | _ \ _ _| |___ ___ / \ _ _ __| (_) ___
# | |_) | | | | / __|/ _ \ / _ \| | | |/ _` | |/ _ \
# | __/| |_| | \__ \ __/ / ___ \ |_| | (_| | | (_) |
# |_| \__,_|_|___/\___| /_/ \_\__,_|\__,_|_|\___/
#
PulseAudio is a general purpose sound server intended to run as a middleware between your applications and your hardware devices, either using Alsa or Oss (but probably alsa). Designed to easy audio configuration on computer systems, but due to the highly customizable nature of the server, allows advanced users to create a configuration that best suits their needs.
It is easy to confuse Alsa and PulseAudio, and the two appear intertangled in our minds as well. It is best to come to an understanding that pulse does what pulse does, and alsa does what alsa does. (Whatever than means..)
Pipewire Audio Server was specifically written to replace both PulseAudio and Jack (another audio server). It is stable, and quickly has become the new default. As a result, this unfinished disgrace for a wiki page will be merged at some point in the future, or deleted altogether. So, it is advised you visit the Pipewire page instead.
(It should be interesting what this horizontal line becomes below.)
This wiki page covers using PulseAudio as a network sound server to allow a remote and headless system to stream audio to a user’s computer.
First we begin by configuring the server on the remote host.
If you plan to run pulseaudio as a regular user, It is advised to not make changes to the system’s
configuration files at first, but to copy the configuration files from /etc/pulse/*
to the user’s configuration
directory ~/.config/pulse
, and make needed changes there first.
sudo cp -r /etc/pulse/* ~/.config/pulse/
For our purposes of running pulseaudio as a system service, we will ignore this advice.
All values of the configuration file are at their default settings and commented out.
File to edit: /etc/pulse/daemon.conf
The required values for configuarion are below.
daemonize = yes
resample-method = speex-float-2
If you plan on running pulse audio as a normal user, you edit: ~/.config/pulse/default.pa
If you plan on running pulse audio as a system service, you edit: /etc/pulse/system.pa
Which ever file you edit, add the following line to the bottom of the configuration.
load-module module-native-protocol-tcp auth-anonymous=1
If you plan on using avahi, then you will need to add:
# On the Server:
load-module module-zeroconf-publish
# On the Client:
load-module module-zeroconf-discover
To startup vnc, we use a simple script that establishes an ssh tunnel with the remote client, and then opens the vnc viewer. To establish the server to connect to, we will simply add it as an environmental variable to this file.
export PULSE_SERVER=$YOUR_SERVER_IP_OR_NAME