PipeWire 1.2.1
|
The PipeWire JACK client configuration file.
$XDG_CONFIG_HOME/pipewire/jack.conf
/etc/pipewire/jack.conf
/usr/share/pipewire/jack.conf
/usr/share/pipewire/jack.conf.d/
/etc/pipewire/jack.conf.d/
$XDG_CONFIG_HOME/pipewire/jack.conf.d/
Configuration for PipeWire JACK clients.
The configuration file format and lookup logic is the same as for pipewire.conf(5).
Drop-in configuration files jack.conf.d/*.conf
can be used, and are recommended. See pipewire.conf(5).
In addition, the PipeWire context configuration sections may also be specified, see pipewire.conf(5).
The configuration file can contain an extra JACK specific section called jack.properties
like this:
See stream.properties
in pipewire-client.conf(5) for an explanation of the generic node properties.
It is also possible to have per-client settings, see Match Rules below.
Exposes the capture ports and monitor ports on the same JACK device client. This is how JACK presents monitor ports to the clients. The default is however not to merge them together because this results in more user friendly user interfaces, usually. An extra client with a Monitor
suffix is created that contains the monitor ports.
For example, this is (part of) the output of jack_lsp
with the default setting (jack.merge-monitor = false
):
Compare:
jack.merge-monitor = true | jack.merge-monitor = false |
---|---|
Built-in Audio Analog Stereo:playback_FL | Built-in Audio Analog Stereo:playback_FL |
Built-in Audio Analog Stereo:monitor_FL | Built-in Audio Analog Stereo Monitor:monitor_FL |
Built-in Audio Analog Stereo:playback_FR | Built-in Audio Analog Stereo:playback_FR |
Built-in Audio Analog Stereo:monitor_FR | Built-in Audio Analog Stereo Monitor:monitor_FR |
To use shorter names for the device client names use jack.short-name = true
. Compare:
jack.short-name = true | jack.short-name = false |
---|---|
HDA Intel PCH:playback_FL | Built-in Audio Analog Stereo:playback_FL |
HDA Intel PCH Monitor:monitor_FL | Built-in Audio Analog Stereo Monitor:monitor_FL |
HDA Intel PCH:playback_FR | Built-in Audio Analog Stereo:playback_FR |
HDA Intel PCH Monitor:monitor_FR | Built-in Audio Analog Stereo Monitor:monitor_FR |
jack.filter-char
. For clients the special characters are ()[].:*$
and for ports they are ()[].*$
. Use this option when a client is not able to deal with the special characters. (and older version of PortAudio was known to use the client and port names as a regex, and thus failing when there are regex special characters in the name).Restrict a client from making connections to and from itself. Possible values and their meaning are summarized as:
Value | Behavior |
---|---|
allow | Don't restrict self connect requests. |
fail-external | Fail self connect requests to external ports only. |
ignore-external | Ignore self connect requests to external ports only. |
fail-all | Fail all self connect requests. |
ignore-all | Ignore all self connect requests. |
Name the default source and sink as system
and number the ports to maximize compatibility with JACK programs.
jack.default-as-system = false | jack.default-as-system = true |
---|---|
HDA Intel PCH:playback_FL | system:playback_1 |
HDA Intel PCH Monitor:monitor_FL | system:monitor_1 |
HDA Intel PCH:playback_FR | system:playback_2 |
HDA Intel PCH Monitor:monitor_FR | system:monitor_2 |
allow.link.passive
option.Makes the input buffers writable. This is the default because some JACK clients write to the input buffer. This however can cause corruption in other clients when they are also reading from the buffer.
Set this to true to avoid buffer corruption if you are only dealing with non-buggy clients.
jack.rules
provides an update-props
action that takes an object with properties that are updated on the client and node object of the jack client.
Add a jack.rules
section in the config file like this:
Will set the latency of jack_simple_client to 512/48000 and makes Catia see the monitor client merged with the playback client.
See pipewire(1) for common environment variables. Many of these also apply to JACK client applications.
Environment variables can be used to control the behavior of the PipeWire JACK client library.
PIPEWIRE_INTERNAL
variable is set by the PipeWire main daemon to avoid self connections.jack.conf
file. Check out the output of this: A quick way to configure the maximum buffer-size for a client. It will run this client with the specified buffer-size (or smaller).
PIPEWIRE_LATENCY=256/48000 jack_lsp
is equivalent to ‘PIPEWIRE_PROPS=’{ node.latency=256/48000 }' jack_lsp`
A better way to start a jack session in a specific buffer-size is to force it with:
This always works immediately and the buffer size will not change until the quantum is changed back to 0.
A quick way to configure the rate of the graph. It will try to switch the samplerate of the graph. This can usually only be done with the graph is idle and the rate is part of the allowed sample rates.
PIPEWIRE_RATE=1/48000 jack_lsp
is equivalent to ‘PIPEWIRE_PROPS=’{ node.rate=1/48000 }' jack_lsp`
A better way to start a jack session in a specific rate is to force the rate with:
This always works and the samplerate does not need to be in the allowed rates. The rate will also not change until it is set back to 0.
Is similar to using PIPEWIRE_LATENCY=<buffersize>/<rate>
and PIPEWIRE_RATE=1/<rate>
(see above), except that it is not just a suggestion but it actively forces the graph to change the rate and quantum. It can be used to set both a buffersize and samplerate at the same time.
When 2 applications force a quantum, the last one wins. When the winning app is stopped, the quantum of the previous app is restored.
Make this client create passive links only. All links created by the client will be marked passive and will not keep the sink/source busy.
You can use this to link filters to devices. When there is no client connected to the filter, only passive links remain between the filter and the device and the device will become idle and suspended.
The PipeWire Developers <https://gitlab.freedesktop.org/pipewire/pipewire/issues>; PipeWire is available from <https://pipewire.org>