.TH "pipewire-pulse-modules" 7 "1.0.6" "PipeWire" \" -*- nroff -*- .ad l .nh .SH NAME pipewire-pulse-modules \- PipeWire Pulseaudio modules .PP .SH "DESCRIPTION" .PP .PP PipeWire's Pulseaudio emulation implements several Pulseaudio modules\&. It only supports its own built-in modules, and cannot load external modules written for Pulseaudio\&. .PP .SH "LOADING MODULES" .PP .PP The built-in modules can be loaded using Pulseaudio client programs, for example \fRpactl load-module \fP\&. They can also added to \fRpipewire-pulse\&.conf\fP, typically by a drop-in file in \fR~/\&.config/pipewire/pipewire-pulse\&.conf\&.d/\fP containing the module name and its arguments .PP .nf pulse\&.cmd = [ { cmd = "load\-module" args = "module\-null\-sink sink_name=foo" flags = [ ] } ] .fi .PP .PP To list all modules currently loaded, with their arguments: .PP .nf pactl list modules .fi .PP .PP For a short list of loaded modules: .PP .nf pactl list modules short .fi .PP .PP Modules may be unloaded using either the module-name or index number: .PP .PP .nf pactl load\-module pactl unload\-module .fi .PP .PP .SH "COMMON MODULE OPTIONS" .PP .PP Most modules that create streams/devices support the following properties: .PP .SS "sink_name, source_name" .PP Name for the sink (resp\&. source)\&. Allowed characters in the name are a-z, A-Z, numbers, period (\&.) and underscore (_)\&. The length must be 1-128 characters\&. .PP .SS "format" .PP The sample format\&. The supported audio formats are: .PP .SS "PCM" .PP .IP "\(bu" 2 u8: unsigned 8-bit integer .IP "\(bu" 2 aLaw: A-law encoded 8-bit integer .IP "\(bu" 2 uLaw: μ-law encoded 8-bit integer .IP "\(bu" 2 s16le: signed 16-bit little-endian integer .IP "\(bu" 2 s16be: signed 16-bit big-endian integer .IP "\(bu" 2 s16, s16ne: native-endian aliases for s16le or s16be .IP "\(bu" 2 s16re: reverse-endian alias for s16le or s16be .IP "\(bu" 2 float32le: 32-bit little-endian float .IP "\(bu" 2 float32be: 32-bit big-endian float .IP "\(bu" 2 float32, float32ne: native-endian aliases for float32le or float32be .IP "\(bu" 2 float32re: reverse-endian alias for float32le or float32be .IP "\(bu" 2 s32le: signed 32-bit little-endian integer .IP "\(bu" 2 s32be: signed 32-bit big-endian integer .IP "\(bu" 2 s32, s32ne: native-endian aliases for s32le or s32be .IP "\(bu" 2 s32re: reverse-endian alias for s32le or s32be .IP "\(bu" 2 s24le: signed 24-bit little-endian integer (note: ALSA calls this 'S24_3LE') .IP "\(bu" 2 s24be: signed 24-bit big-endian integer (note: ALSA calls this 'S24_3BE') .IP "\(bu" 2 s24, s24ne: native-endian aliases for s24le or s24be .IP "\(bu" 2 s24re: reverse-endian alias for s24le or s24be .IP "\(bu" 2 s24-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') .IP "\(bu" 2 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') .IP "\(bu" 2 s24-32, s24-32ne: native-endian aliases for s24-32le or s24-32be .IP "\(bu" 2 s24-32re: reverse-endian alias for s24-32le or s24-32be .PP .PP .SS "Compressed audio formats" .PP Below is a list of all supported compressed formats\&. The code at the beginning of each line is used whenever a textual identifier for a format is needed (for example in configuration files or on the command line)\&. 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\&. .PP .IP "\(bu" 2 ac3-iec61937: Dolby Digital (DD / AC-3 / A/52) .IP "\(bu" 2 eac3-iec61937: Dolby Digital Plus (DD+ / E-AC-3) .IP "\(bu" 2 mpeg-iec61937: MPEG-1 or MPEG-2 Part 3 (not MPEG-2 AAC) .IP "\(bu" 2 dts-iec61937: DTS .IP "\(bu" 2 mpeg2-aac-iec61937: MPEG-2 AAC (supported since PulseAudio 4\&.0) .IP "\(bu" 2 truehd-iec61937: Dolby TrueHD (added in PulseAudio 13\&.0, but doesn't work yet in practice) .IP "\(bu" 2 dtshd-iec61937: DTS-HD Master Audio (added in PulseAudio 13\&.0, but doesn't work yet in practice) .IP "\(bu" 2 pcm: PCM (not a compressed format, but listed here, because pcm is one of the recognized encoding identifiers) .IP "\(bu" 2 any: (special identifier for indicating that any encoding can be used) .PP .PP .SS "rate" .PP The sample rate\&. .PP .SS "channels" .PP Number of audio channels\&. .PP .SS "channel_map" .PP A channel map\&. A list of comma-separated channel names\&. The currently defined channel names are: \fRleft\fP, \fRright\fP, \fRmono\fP, \fRcenter\fP, \fRfront-left\fP, \fRfront-right\fP, \fRfront-center\fP, \fRrear-center\fP, \fRrear-left\fP, \fRrear-right\fP, \fRlfe\fP, \fRsubwoofer\fP, \fRfront-left-of-center\fP, \fRfront-right-of-center\fP, \fRside-left\fP, \fRside-right\fP, \fRaux0\fP, \fRaux1\fP to \fRaux15\fP, \fRtop-center\fP, \fRtop-front-left\fP, \fRtop-front-right\fP, \fRtop-front-center\fP, \fRtop-rear-left\fP, \fRtop-rear-right\fP, \fRtop-rear-center\fP .PP .SS "sink_properties, source_properties" .PP Set additional properties of the sink/source\&. For example, you can set the description directly when the module is loaded by setting this parameter\&. .PP .PP .nf load\-module module\-alsa\-sink sink_name=headphones sink_properties=device\&.description=Headphones .fi .PP .PP .SH "BUILT-IN MODULES" .PP .PP .PD 0 .IP "\(bu" 2 \fBpipewire-pulse-module-alsa-sink(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-alsa-source(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-always-sink(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-combine-sink(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-echo-cancel(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-jackdbus-detect(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-ladspa-sink(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-ladspa-source(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-loopback(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-native-protocol-tcp(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-null-sink(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-pipe-source(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-pipe-sink(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-raop-discover(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-remap-sink(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-remap-source(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-roc-sink(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-roc-sink-input(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-roc-source(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-rtp-recv(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-rtp-send(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-simple-protocol-tcp(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-switch-on-connect(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-tunnel-sink(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-tunnel-source(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-virtual-sink(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-virtual-source(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-x11-bell(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-zeroconf-discover(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-zeroconf-publish(7)\fP .IP "\(bu" 2 \fBpipewire-pulse-module-gsettings(7)\fP .PP .PP .SH "AUTHORS" .PP .PP The PipeWire Developers ; PipeWire is available from .PP .SH "SEE ALSO" .PP .PP \fBpipewire-pulse(1)\fP