... | ... | @@ -13,7 +13,7 @@ Since 0.3.45 you can also copy sections of the config file to a file in the dire |
|
|
|
|
|
Pulseaudio clients that go through pipewire-pulse can also be configured using the pipewire-pulse.conf file, see [PulseAudio stream Configuration](Config-PulseAudio#stream-configuration)
|
|
|
|
|
|
## Generic config
|
|
|
## Generic Configuration
|
|
|
|
|
|
The client config file follows the generic PipeWire [config](Config-PipeWire#configuration-file-pipewireconf) file.
|
|
|
|
... | ... | @@ -44,14 +44,14 @@ stream.properties = { |
|
|
```
|
|
|
Some of the properties refer to different aspects of the stream:
|
|
|
|
|
|
* General stream properties to identify the stream
|
|
|
* General stream properties to classify the stream
|
|
|
* How it is going to be scheduled by the graph
|
|
|
* How it is going to be linked by the session manager
|
|
|
* General stream properties to identify the stream.
|
|
|
* General stream properties to classify the stream.
|
|
|
* How it is going to be scheduled by the graph.
|
|
|
* How it is going to be linked by the session manager.
|
|
|
* How the internal processing will be done.
|
|
|
* Properties to configure the media format
|
|
|
* Properties to configure the media format.
|
|
|
|
|
|
### Identifying properties
|
|
|
### Identifying Properties
|
|
|
|
|
|
These contain properties to identify the node or to display the node in a GUI application.
|
|
|
|
... | ... | @@ -83,9 +83,9 @@ object.linger = false |
|
|
If the object should outlive its creator.
|
|
|
|
|
|
|
|
|
### Classifying properties
|
|
|
### Classifying Properties
|
|
|
|
|
|
The clasifying properties of a node are use for routing the signal to its destination and
|
|
|
The classifying properties of a node are use for routing the signal to its destination and
|
|
|
for configuring the settings.
|
|
|
|
|
|
```
|
... | ... | @@ -99,9 +99,9 @@ media.category |
|
|
```
|
|
|
What kind of processing is done with the media. Possible values include:
|
|
|
|
|
|
* Playback: media playback
|
|
|
* Capture: media capture
|
|
|
* Duplex: media capture and playback or media processing in general
|
|
|
* Playback: media playback.
|
|
|
* Capture: media capture.
|
|
|
* Duplex: media capture and playback or media processing in general.
|
|
|
* Monitor: a media monitor application. Does not actively change media data but monitors
|
|
|
activity.
|
|
|
* Manager: Will manage the media graph.
|
... | ... | @@ -112,36 +112,36 @@ media.role |
|
|
```
|
|
|
The Use case of the media. Possible values include:
|
|
|
|
|
|
* Movie: Movie playback with audio and video
|
|
|
* Music: Music listening
|
|
|
* Camera: Recording video from a camera
|
|
|
* Screen: Recording or sharing the desktop screen
|
|
|
* Communication: VOIP or other video chat application
|
|
|
* Game: Game
|
|
|
* Notification: System notification sounds
|
|
|
* DSP: Audio or Video filters and effect processing
|
|
|
* Production: Professional audio processing and production
|
|
|
* Accessibility: Audio and Visual aid for accessibility
|
|
|
* Test: Test program
|
|
|
* Movie: Movie playback with audio and video.
|
|
|
* Music: Music listening.
|
|
|
* Camera: Recording video from a camera.
|
|
|
* Screen: Recording or sharing the desktop screen.
|
|
|
* Communication: VOIP or other video chat application.
|
|
|
* Game: Game.
|
|
|
* Notification: System notification sounds.
|
|
|
* DSP: Audio or Video filters and effect processing.
|
|
|
* Production: Professional audio processing and production.
|
|
|
* Accessibility: Audio and Visual aid for accessibility.
|
|
|
* Test: Test program.
|
|
|
|
|
|
```
|
|
|
media.class
|
|
|
```
|
|
|
The media class is to clasify the stream function. Possible values include:
|
|
|
The media class is to classify the stream function. Possible values include:
|
|
|
|
|
|
* Video/Source: a producer of video, like a webcam
|
|
|
* Video/Sink: a consumer of video, like a display window
|
|
|
* Audio/Source: a source of audio samples like a microphone
|
|
|
* Audio/Sink: a sink for audio samples, like an audio card
|
|
|
* Audio/Duplex: a node that is both a sink and a source
|
|
|
* Stream/Output/Audio: a playback stream
|
|
|
* Stream/Input/Audio: a capture stream
|
|
|
* Video/Source: a producer of video, like a webcam.
|
|
|
* Video/Sink: a consumer of video, like a display window.
|
|
|
* Audio/Source: a source of audio samples like a microphone.
|
|
|
* Audio/Sink: a sink for audio samples, like an audio card.
|
|
|
* Audio/Duplex: a node that is both a sink and a source.
|
|
|
* Stream/Output/Audio: a playback stream.
|
|
|
* Stream/Input/Audio: a capture stream.
|
|
|
|
|
|
The session manage assigns special meaning to the nodes based on the media.class. Sink or Source
|
|
|
The session manager assigns special meaning to the nodes based on the media.class. Sink or Source
|
|
|
classes are used as targets for Stream classes, etc..
|
|
|
|
|
|
|
|
|
### Scheduling properties
|
|
|
### Scheduling Properties
|
|
|
|
|
|
```
|
|
|
node.latency = 1024/48000
|
... | ... | @@ -166,7 +166,7 @@ While the node is active, force a quantum in the graph. The last node to be acti |
|
|
node.rate = <rate>
|
|
|
```
|
|
|
Suggest a rate (samplerate) for the graph. The suggested rate will only be applied when doing so would not cause
|
|
|
interuptions (devices are idle) and when the rate is in the list of allowed rates in the server.
|
|
|
interruptions (devices are idle) and when the rate is in the list of allowed rates in the server.
|
|
|
|
|
|
```
|
|
|
node.lock-rate = false
|
... | ... | @@ -201,7 +201,7 @@ When the node is not linked anymore, it becomes idle. Normally idle nodes keep p |
|
|
|
|
|
When the session manager does not suspend nodes (or when there is no session manager), the node.suspend-on-idle property can be used instead.
|
|
|
|
|
|
### Session manager properties
|
|
|
### Session Manager Properties
|
|
|
|
|
|
```
|
|
|
node.autoconnect = true
|
... | ... | @@ -242,7 +242,7 @@ This is used for filter nodes that sit in front of sinks/sources and need to sus |
|
|
```
|
|
|
node.link-group = <id>
|
|
|
```
|
|
|
Add the node to a certain link group. Nodes from the same link group are not automatically linked to eachother by the session manager. And example is a coupled stream where you don't want the ouput to link to the input streams, making a useless loop.
|
|
|
Add the node to a certain link group. Nodes from the same link group are not automatically linked to each other by the session manager. And example is a coupled stream where you don't want the output to link to the input streams, making a useless loop.
|
|
|
|
|
|
```
|
|
|
stream.dont-remix = false
|
... | ... | @@ -251,12 +251,12 @@ Instruct the session manager to not remix the channels of a stream. Normally the |
|
|
|
|
|
|
|
|
|
|
|
### Adapter properties
|
|
|
### Adapter Properties
|
|
|
|
|
|
An audio stream (and also audio device nodes) contain an audio adapter that can perform,
|
|
|
sample format, sample rate and channelmixing operations.
|
|
|
sample format, sample rate and channel mixing operations.
|
|
|
|
|
|
#### Merger properties
|
|
|
#### Merger Properties
|
|
|
|
|
|
The merger is used as the input for a sink device node or a capture stream. It takes the various channels and merges them into a single stream for further processing.
|
|
|
|
... | ... | @@ -271,11 +271,11 @@ The volume of the input channels is applied to the volume of the monitor ports. |
|
|
the monitor ports expose the raw unmodified signal on the input ports.
|
|
|
|
|
|
|
|
|
#### Resampler properties
|
|
|
#### Resampler Properties
|
|
|
|
|
|
Source, sinks, capture and playback streams contain a high quality adaptive resampler.
|
|
|
It uses sinc based resampling with linear interpolation of filter banks to perform arbitrary
|
|
|
resample factors. The resampler is activated in the following cases:
|
|
|
It uses sink based resampling with linear interpolation of filter banks to perform arbitrary
|
|
|
resample factors. The resampler is activated in the following cases:
|
|
|
|
|
|
* The hardware of a device node does not support the graph samplerate. Resampling will occur
|
|
|
from the graph samplerate to the hardware samplerate.
|
... | ... | @@ -310,24 +310,24 @@ Disable the resampler entirely. The node will only be able to negotiate with the |
|
|
when the samplerates are compatible.
|
|
|
|
|
|
|
|
|
#### channelmixer properties
|
|
|
#### Channel Mixer Properties
|
|
|
|
|
|
Source, sinks, capture and playback streams can apply channelmixing on the incoming signal.
|
|
|
Source, sinks, capture and playback streams can apply channel mixing on the incoming signal.
|
|
|
|
|
|
Normally the channelmixer is not used for devices, the device channels are usually exposed as they are. This policy is usually enforced by the session manager, so we refer to its documentation there.
|
|
|
Normally the channel mixer is not used for devices, the device channels are usually exposed as they are. This policy is usually enforced by the session manager, so we refer to its documentation there.
|
|
|
|
|
|
Playback and capture streams are usually configured to the channel layout of the sink/source
|
|
|
they connect to and will thus perform channelmixing.
|
|
|
they connect to and will thus perform channel mixing.
|
|
|
|
|
|
The channelmixer also implements a software volume. This volume adjustment is performed on the original
|
|
|
channel layout. ex: A stereo playback stream that is upmixed to 5.1 has 2 a left an right volume control.
|
|
|
The channel mixer also implements a software volume. This volume adjustment is performed on the original
|
|
|
channel layout. ex: A stereo playback stream that is up-mixed to 5.1 has 2 a left an right volume control.
|
|
|
|
|
|
|
|
|
````
|
|
|
channelmix.disable = false
|
|
|
````
|
|
|
|
|
|
Disables the channelmixer completely. The stream will only be able to link to compatible
|
|
|
Disables the channel mixer completely. The stream will only be able to link to compatible
|
|
|
sources/sinks with the exact same channel layout.
|
|
|
|
|
|
|
... | ... | @@ -348,21 +348,21 @@ Mixes the low frequency effect channel into the front center or stereo pair. Thi |
|
|
channelmix.upmix = true
|
|
|
````
|
|
|
|
|
|
Enables upmixing of the front center (FC) when the target has a FC channel.
|
|
|
Enables up-mixing of the front center (FC) when the target has a FC channel.
|
|
|
The sum of the stereo channels is used and an optional lowpass filter can be used
|
|
|
(see `channelmix.fc-cutoff`).
|
|
|
|
|
|
Also enabled upmixing of LFE when `channelmix.lfe-cutoff` is set to something else than 0 and
|
|
|
Also enabled up-mixing of LFE when `channelmix.lfe-cutoff` is set to something else than 0 and
|
|
|
the target has an LFE channel. The LFE channel is produced by adding the stereo channels.
|
|
|
|
|
|
If `channelmix.upmix` is true, the upmixing of the rear channels is also enabled and controlled
|
|
|
If `channelmix.upmix` is true, the up-mixing of the rear channels is also enabled and controlled
|
|
|
with the `channelmix-upmix-method` property.
|
|
|
|
|
|
````
|
|
|
channelmix.upmix-method = psd
|
|
|
````
|
|
|
|
|
|
3 method are provided to procude the rear channels in a surround sound:
|
|
|
3 methods are provided to produce the rear channels in a surround sound:
|
|
|
|
|
|
1. none. No rear channels are produced.
|
|
|
|
... | ... | @@ -384,16 +384,16 @@ Apply a lowpass filter to the front center frequency. The value is expressed in |
|
|
|
|
|
Since the front center contains the dialogs, a typical cutoff frequency is 12000 Hz.
|
|
|
|
|
|
This option is only active when the upmix is enabled.
|
|
|
This option is only active when the up-mix is enabled.
|
|
|
|
|
|
```
|
|
|
channelmix.rear-delay = 12.0
|
|
|
```
|
|
|
|
|
|
Apply a delay in milliseconds when upmixing the rear channels. This improves
|
|
|
Apply a delay in milliseconds when up-mixing the rear channels. This improves
|
|
|
spacialization of the sound. A typical delay of 12 milliseconds is the default.
|
|
|
|
|
|
This is only active when the psd upmix-method is used.
|
|
|
This is only active when the `psd` up-mix method is used.
|
|
|
|
|
|
```
|
|
|
channelmix.stereo-widen = 0.0
|
... | ... | @@ -402,7 +402,7 @@ channelmix.stereo-widen = 0.0 |
|
|
Subtracts some of the front center signal from the stereo channels. This moves the dialogs
|
|
|
more to the center speaker and leaves the ambient sound in the stereo channels.
|
|
|
|
|
|
This is only active when upmix is enabled and a Front Center channel is mixed.
|
|
|
This is only active when up-mix is enabled and a Front Center channel is mixed.
|
|
|
|
|
|
```
|
|
|
channelmix.hilbert-taps = 0
|
... | ... | @@ -411,9 +411,9 @@ This option will apply a 90 degree phase shift to the rear channels to improve s |
|
|
Taps needs to be between 15 and 255 with more accurate results (and more CPU consumption)
|
|
|
for higher values.
|
|
|
|
|
|
This is only active when the psd upmix-method is used.
|
|
|
This is only active when the `psd` up-mix method is used.
|
|
|
|
|
|
### Format properties
|
|
|
### Format Properties
|
|
|
|
|
|
Streams and also most device nodes can be configured in a certain format with properties.
|
|
|
|
... | ... | @@ -465,5 +465,5 @@ stream.rules = [ |
|
|
}
|
|
|
]
|
|
|
```
|
|
|
Will set the node.name of firefox to "My Name".
|
|
|
Will set the node.name of Firefox to "My Name".
|
|
|
|