PipeWire

Pipewire is a Article description::low-latency and graph-based processing engine and a server for interfacing with audio and video devices that can be used to support use cases currently handled by ALSA, OSS, PulseAudio and/or JACK.

Some key features include:
 * Minimal latency capture/playback of audio and video;
 * Real-time multimedia processing;
 * Multi-process architecture allowing multimedia content sharing between applications;
 * Seamless support for PulseAudio, JACK, ALSA, and GStreamer; and
 * "Sandboxed" applications support with Flatpak.

Configuration
Pipewire configuration is managed via system-wide settings or user launch options. The following command edits the system-wide configuration file:

Session Manager (pipewire-media-session)
TBD

Systemd
Pipewire provides a socket and a service file when built with the  USE flag. The following systemctl commands activate systemd's management of the Pipewire connections:

OpenRC or other
The user must ensure there is a viable D-Bus session active:

The user must ensure that XDG_RUNTIME_DIR is set. This is usually managed by a systemd-specific Pluggable Authentication Module and the  service. Likewise elogind should manage the creation.

If not, the user must create the require directory and set the environmental variable

The Pipewire executable must also be called:

Replacing PulseAudio
To have Pipewire to act as a PulseAudio service, un-comment the pipewire-pulse line in the main configuration file:

For systemd, enable the service instead:

A reboot/logout is required for the change to take effect.

Testing
To check whether Pipewire is now acting as the PulseAudio service, use the pactl command:

CSGO (other source-based games)
The default sound buffer length is 0.025. This can sometimes be too low causing cracking audio. Pulseaudio automatically increases the buffersize. It is undecided whether Pipewire will in future automatically increase the buffer length

for now, the workaround is to increase the size of the buffer from within CSGO "snd_mixahead is the length of the sound buffer in seconds, so 0.05 is 50ms (0.10, edited: 25ms is the default). This is essentially the audio delay, so reducing it gives better synchronization. Not all hardware can handle this low of a buffer setting though, so if you hear any crackling or pops at 0.05, increase this setting by 0.01 until the crackling/pops disappear."

Increasing RLIMIT_MEMLOCK
To increase, consider add user to   group.

bluetooth
by default, bluez5 module is disabled in the configuration file, uncomment it to have bluetooth as sinks: {{FileBox|filename=/etc/pipewire/media-session.d/media-session.conf|1= ... modules = { ...   default = [ ...       bluez5          # bluetooth support ...   ]    ... }} then run: