... | ... | @@ -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 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,10 +271,10 @@ 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
|
|
|
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
|
... | ... | @@ -310,7 +310,7 @@ 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 channel mixing on the incoming signal.
|
|
|
|
... | ... | @@ -320,7 +320,7 @@ Playback and capture streams are usually configured to the channel layout of the |
|
|
they connect to and will thus perform channel mixing.
|
|
|
|
|
|
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 upmixed to 5.1 has 2 a left an right volume control.
|
|
|
channel layout. ex: A stereo playback stream that is up-mixed to 5.1 has 2 a left an right volume control.
|
|
|
|
|
|
|
|
|
````
|
... | ... | @@ -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".
|
|
|
|