pipewire...-modules(7)
π pipewire...-modules β bestie, let's talk PulseAudio modules
okay so this is the pipewire...-modules(7) page, straight outta the Miscellaneous Information Manual π
it's the whole scoop on PipeWire's PulseAudio modules and honestly? it's iconic. sit down, grab a snack, we're going through all of it π
β¨ NAME β¨
pipewire-pulse-modules β the PipeWire PulseAudio modules. short, sweet, slay.
πΈ DESCRIPTION πΈ
PipeWire's PulseAudio emulation implements several PulseAudio modules. and here's the boundary, bestie, respect it: it only supports its own built-in modules, and it cannot load external modules written for PulseAudio. no outside guests at this sleepover π
π¦ LOADING MODULES π¦
You can load the built-in modules with PulseAudio client programs, like so:
pactl load-module <module-name> <module-options>
You can also just add them to pipewire-pulse.conf β typically by dropping a drop-in file into ~/.config/pipewire/pipewire-pulse.conf.d/ that holds the module name and its arguments:
# ~/.config/pipewire/pipewire-pulse.conf.d/custom.conf
pulse.cmd = [
{ cmd = "load-module" args = "module-null-sink sink_name=foo" flags = [ ] }
]
Wanna see every module that's currently loaded, with all their arguments? easy:
pactl list modules
Want the short version instead (short king behavior):
pactl list modules short
And when you're done with a module, you can unload it using either the module-name or the index number:
pactl load-module <module-name> <parameters>
pactl unload-module <module-name|index#>
okay so fair warning, that first line up there is the load command and the second is the unload one. eyes on the prize, bestie π
π COMMON MODULE OPTIONS π
Most modules that create streams/devices support these properties. they're like the shared accessories everyone borrows:
π sink_name, source_name
Name for the sink (resp. source β like, respectively, if you're fancy). Allowed characters in the name are a-z, A-Z, numbers, period (.) and underscore (_). The length must be 1-128 characters. no spaces, no chaos, we're being classy π
π format
The sample format. The supported audio formats are:
β PCM
u8: unsigned 8-bit integeraLaw: A-law encoded 8-bit integeruLaw: ΞΌ-law encoded 8-bit integers16le: signed 16-bit little-endian integers16be: signed 16-bit big-endian integers16,s16ne: native-endian aliases fors16leors16bes16re: reverse-endian alias fors16leors16befloat32le: 32-bit little-endian floatfloat32be: 32-bit big-endian floatfloat32,float32ne: native-endian aliases forfloat32leorfloat32befloat32re: reverse-endian alias forfloat32leorfloat32bes32le: signed 32-bit little-endian integers32be: signed 32-bit big-endian integers32,s32ne: native-endian aliases fors32leors32bes32re: reverse-endian alias fors32leors32bes24le: signed 24-bit little-endian integer (note: ALSA calls this "S24_3LE")s24be: signed 24-bit big-endian integer (note: ALSA calls this "S24_3BE")s24,s24ne: native-endian aliases fors24leors24bes24re: reverse-endian alias fors24leors24bes24-32le: signed 24-bit little-endian integer, packed into a 32-bit integer so that the 8 most significant bits are ignored (note: ALSA calls this "S24_LE")s24-32be: signed 24-bit big-endian integer, packed into a 32-bit integer so that the 8 most significant bits are ignored (note: ALSA calls this "S24_BE")s24-32,s24-32ne: native-endian aliases fors24-32leors24-32bes24-32re: reverse-endian alias fors24-32leors24-32be
β Compressed audio formats
Below is a list of all supported compressed formats. The code at the beginning of each line is what you use whenever a textual identifier for a format is needed (like in configuration files or on the command line, iykyk). And listen β the formats whose identifier ends with -iec61937 have to be wrapped in IEC 61937 frames, which makes the compressed audio behave more like normal PCM audio. that's not optional, that's the vibe check β
ac3-iec61937: Dolby Digital (DD / AC-3 / A/52)eac3-iec61937: Dolby Digital Plus (DD+ / E-AC-3)mpeg-iec61937: MPEG-1 or MPEG-2 Part 3 (not MPEG-2 AAC)dts-iec61937: DTSmpeg2-aac-iec61937: MPEG-2 AAC (supported since PulseAudio 4.0)truehd-iec61937: Dolby TrueHD (added in PulseAudio 13.0, but doesn't work yet in practice)dtshd-iec61937: DTS-HD Master Audio (added in PulseAudio 13.0, but doesn't work yet in practice)pcm: PCM (not a compressed format, but listed here, because pcm is one of the recognized encoding identifiers)any: (special identifier for indicating that any encoding can be used)
not me pointing out thattruehd-iec61937anddtshd-iec61937literally say "doesn't work yet in practice" π they showed up in PulseAudio 13.0 and are still out here doing nothing. icons of potential.
π rate
The sample rate. that's the whole thing, bestie.
π channels
Number of audio channels.
π channel_map
A channel map β a list of comma-separated channel names. The currently defined channel names are: left, right, mono, center, front-left, front-right, front-center, rear-center, rear-left, rear-right, lfe, subwoofer, front-left-of-center, front-right-of-center, side-left, side-right, aux0, aux1 to aux15, top-center, top-front-left, top-front-right, top-front-center, top-rear-left, top-rear-right, top-rear-center. yeah, aux1 to aux15 all fit in there too, we didn't forget them π«Ά
π sink_properties, source_properties
Set additional properties of the sink/source. Like, for example β you can set the description directly when the module is loaded by setting this parameter:
load-module module-alsa-sink sink_name=headphones sink_properties=device.description=Headphones
look at her go π
π BUILT-IN MODULES π
here's the full roster, every single one, no skips:
pipewire-pulse-module-alsa-sink(7)pipewire-pulse-module-alsa-source(7)pipewire-pulse-module-always-sink(7)pipewire-pulse-module-combine-sink(7)pipewire-pulse-module-device-manager(7)pipewire-pulse-module-device-restore(7)pipewire-pulse-module-echo-cancel(7)pipewire-pulse-module-jackdbus-detect(7)pipewire-pulse-module-ladspa-sink(7)pipewire-pulse-module-ladspa-source(7)pipewire-pulse-module-loopback(7)pipewire-pulse-module-native-protocol-tcp(7)pipewire-pulse-module-null-sink(7)pipewire-pulse-module-pipe-source(7)pipewire-pulse-module-pipe-sink(7)pipewire-pulse-module-raop-discover(7)pipewire-pulse-module-remap-sink(7)pipewire-pulse-module-remap-source(7)pipewire-pulse-module-roc-sink(7)pipewire-pulse-module-roc-sink-input(7)pipewire-pulse-module-roc-source(7)pipewire-pulse-module-rtp-recv(7)pipewire-pulse-module-rtp-send(7)pipewire-pulse-module-simple-protocol-tcp(7)pipewire-pulse-module-stream-restore(7)pipewire-pulse-module-switch-on-connect(7)pipewire-pulse-module-tunnel-sink(7)pipewire-pulse-module-tunnel-source(7)pipewire-pulse-module-virtual-sink(7)pipewire-pulse-module-virtual-source(7)pipewire-pulse-module-x11-bell(7)pipewire-pulse-module-zeroconf-discover(7)pipewire-pulse-module-zeroconf-publish(7)pipewire-pulse-module-gsettings(7)
all thirty-five of them, lined up and ready. ate and left no crumbs, fr fr π₯
π AUTHORS π
The PipeWire Developers <https://gitlab.freedesktop.org/pipewire/pipewire/issues>; PipeWire is available from <https://pipewire.org>
(they really said "come find us if something's broken", and honestly, respectful.)
π SEE ALSO π
and that's the page, bestie β the whole thing, nothing skipped, no cap π«Ά this was PipeWire 1.6.11, documented by the PipeWire crew, and you just read all of it like the main character you are. periodt. πβ¨
π¦ where this page comes from
- fedora 44: pipewire-pulseaudio 1.6.11-1.fc44 Β· MIT
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms