This episode covers Void's audio and multimedia stack: PipeWire with WirePlumber as runit services, PulseAudio as an alternative, Bluetooth with bluez, and media processing codecs and tools like ffmpeg and gstreamer.

With the desktop ready in episode 8, it's time to bring audio, Bluetooth, and multimedia playback to life. Episode 9 covers the modern audio stack in Void: PipeWire as the audio and video server, WirePlumber as the session manager, then bluez for Bluetooth, ending with codecs and multimedia tools.
As always, Void hides nothing. All audio services are enabled manually through runit, and you'll see exactly which components are running. That's healthy for learning, even if it differs slightly from distros that automate everything.
Let's build the audio stack step by step.
PipeWire is a multimedia server that handles audio and video, including screen sharing and low-latency use. WirePlumber is the session manager that manages devices and routes. This duo replaces the role of PulseAudio in modern distros.
Install the components:
sudo xbps-install -S pipewire wireplumberThe wireplumber package provides the default session manager for PipeWire. For volume control tools, also install pamixer or pavucontrol.
Enable PipeWire and WirePlumber via symlinks in /var/service/:
sudo ln -s /etc/sv/pipewire /var/service/
sudo ln -s /etc/sv/pipewire-pulse /var/service/
sudo ln -s /etc/sv/wireplumber /var/service/The ln -s /etc/sv/wireplumber /var/service/ command makes WirePlumber start together with PipeWire. Verify everything is running:
sv status pipewire pipewire-pulse wireplumberFor professional audio needs, adjust the sample rate in the PipeWire configuration:
context.properties = {
default.clock.rate = 48000
}After changing the configuration, restart the PipeWire services so the changes take effect.
Even though PipeWire replaces it, PulseAudio still exists and is used by some applications that request it directly. Void provides the pulseaudio package with a runit service:
sudo xbps-install -S pulseaudio
sudo ln -s /etc/sv/pulseaudio /var/service/If you're using PipeWire, don't enable PulseAudio at the same time, because the two compete for control of the audio device.
For Bluetooth, Void provides BlueZ — the official Bluetooth stack for Linux:
sudo xbps-install -S bluez bluez-firmware
sudo ln -s /etc/sv/bluetoothd /var/service/
sudo sv start bluetoothdThe bluetoothd service created by ln -s /etc/sv/bluetoothd /var/service/ provides the daemon that manages the Bluetooth adapter. Additional firmware is required for some adapters.
Use bluetoothctl to scan, pair, and connect devices:
bluetoothctl power on
bluetoothctl scan on
bluetoothctl pair 00:11:22:33:44:55
bluetoothctl connect 00:11:22:33:44:55Replace 00:11:22:33:44:55 with the MAC address of the device you want to pair. Once connected, check the Bluetooth audio status with the PipeWire or PulseAudio tools.
For media playback and processing, two must-haves are ffmpeg and the gstreamer framework:
sudo xbps-install -S ffmpeg gstreamer gst-plugins-goodThe gst-plugins-good package provides the standard plugins. Add gst-plugins-bad and gst-plugins-ugly if you need more exotic codecs.
Test the multimedia tools with a simple conversion:
ffmpeg -i input.flac -b:a 192k output.mp3The ffmpeg -i input.flac -b:a 192k output.mp3 command converts FLAC to MP3 at a 192 kbps bitrate. If the MP3 codec isn't available, install ffmpeg with libmp3lame support.
Finally, make sure the kernel recognizes your sound card:
aplay -l
pactl list short sinksThe output of aplay -l shows the detected sound cards. pactl shows the audio sinks — useful for confirming the audio route is correct after configuration.
Episode 9 equipped you with Void's audio and multimedia stack: PipeWire with WirePlumber running as runit services, PulseAudio as an alternative, Bluetooth through BlueZ and bluetoothctl, and multimedia codecs and tools like ffmpeg and gstreamer.
Key takeaways:
bluetoothctl.aplay -l and pactl help you check the audio routes.In the next episode, episode 10, we will cover storage: filesystems and encryption — comparing ext4, XFS, and Btrfs with snapshots, managing LVM, and encrypting disks with LUKS and dm-crypt on Void.