pipewire: added different loopback devices

master
tiyn 2 months ago
parent 54c479957c
commit 295c33ddb4

@ -15,11 +15,12 @@ Make sure to restart to be sure everything is running correctly.
## Usage ## Usage
For simple sound processing in the form of volume adjustment as well as setting This section will focus on the usage of Pipewire.
the default input and output devices
### Volume Control ### Mixing
For simple sound processing in the form of volume adjustment as well as setting
the default input and output devices
[`pavucontrol`](https://freedesktop.org/software/pulseaudio/pavucontrol/) can be [`pavucontrol`](https://freedesktop.org/software/pulseaudio/pavucontrol/) can be
used as a simple mixer. used as a simple mixer.
@ -72,14 +73,25 @@ pw-loopback -C <id>
### Virtual Devices ### Virtual Devices
The source for this section of the entry is derived by This section focusses on the temporary and permanent creation and removal of virtual devices like
[Pipewire Gitlab site](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Virtual-Devices#behringer-umc404hd-speakersheadphones-virtual-sinks). virtual sinks and sources aswell as coupled nodes like loopbacks.
#### Creating a Null Device #### Creating a Null Device
This section will focus on the creation of a dummy device.
That is a virtual device that can be selected as output but is not used by default.
This can be useful to record applications as their sound can cleanly be passed to the dummy device
which will eliminate other applications sounds.
If the goal is to record and listen to an application at the same time navigate to
[the application loopback section](#creating-an-application-loopback)
The source for this section of the entry is derived by
[Pipewire Gitlab site](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Virtual-Devices#single-nodes).
A dummy device, or null sink, can be created permanently by creating a `.conf` file inside the A dummy device, or null sink, can be created permanently by creating a `.conf` file inside the
`~/.config/pipewire/pipewire.conf.d` directory with the following lines. `~/.config/pipewire/pipewire.conf.d` directory with the following lines.
```txt ```txt
context.objects = [ context.objects = [
{ factory = adapter { factory = adapter
@ -116,3 +128,94 @@ This will return an id that can be used to remove the sink with the following co
```sh ```sh
pactl unload-module <id> pactl unload-module <id>
``` ```
#### Creating a Device Loopback
In this section a device loopback is defined as a loopback that takes a device as input.
This can be useful to listen to input devices, such as audio interfaces with connected microphones,
instruments, etc.
The source for this section of the entry is derived by
[Pipewire Gitlab site](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Virtual-Devices#single-nodes)
and [the official website](https://docs.pipewire.org/page_module_loopback.html).
A device loopback can be created permanently by creating a `.conf` file inside the
`~/.config/pipewire/pipewire.conf.d` directory with the following lines.
```txt
context.modules = [
{
name = libpipewire-module-loopback
args = {
audio.position = [ FL FR ]
capture.props = {
media.class = "Stream/Input/Audio"
node.name = "device-loopback-1-recording"
node.description = "Device-Loopback 1 Recording"
}
playback.props = {
media.class = "Stream/Output/Audio"
node.name = "device-loopback-1-playback"
node.description = "Device-Loopback 1 Playback"
}
audio.volume = 0.5
audio.mute = true
}
}
]
```
The created device loopback is made up by two parts that can be found in different places inside a
mixer like [pavucontrol](#volume-control).
The part called `Device-Loopback 1 Recording` in the example config can be found in the `Recording`
tab.
There the device to loopback can be selected.
The second part called `Device-Loopback 1 Playback` is available under the `Playback` tab and
allows to switch the selection of the output device.
#### Creating an Application Loopback
This section will focus on the creation of an application loopback.
In this section an application loopback is defined as a loopback that takes an application as input.
This can be useful to record applications as their sound can cleanly be passed to the sink sink of
the applicatino loopback which will eliminate other applications sounds.
If the goal is to record and not listen to the application at the same time navigate to
[the null device section](#creating-a-null-device).
Alternatively the null device can also be selected as a output device for the playback part of the
application loopback which makes it easily and seemlessly possible to switch between listening in
and not listening without changing the device that is recorded by the capturing program.
The source for this section of the entry is derived by
[Pipewire Gitlab site](https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Virtual-Devices#single-nodes)
and [the official website](https://docs.pipewire.org/page_module_loopback.html).
An application loopback can be created permanently by creating a `.conf` file inside the
`~/.config/pipewire/pipewire.conf.d` directory with the following lines.
```txt
context.modules = [{
name = libpipewire-module-loopback
args = {
audio.position = [ FL FR ]
capture.props = {
media.class = "Audio/Sink"
node.name = "application-loopback-1-sink"
node.description = "Application-Loopback 1 Sink"
}
playback.props = {
media.class = "Stream/Output/Audio"
node.name = "application-loopback-1-playback"
node.description = "Application-Loopback 1 Playback"
}
}
}]
```
The created device loopback is made up by two parts that can be found in different places inside a
mixer like [pavucontrol](#volume-control).
The part called `Application-Loopback 1 Sink` in the example config can be found in the `Output
Devices` tab.
The second part called `Application-Loopback 1 Playback` is available under the `Playback` tab and
allows to switch the selection of the output device.
Also in the `Playback` tab `Application-Loopback 1 Sink` can be selected as an output for currently
running applications which will loopback the sound to the selected output device.

@ -6,8 +6,10 @@
## Usage ## Usage
This section will discuss the usage of PulseAudio.
### Mixing ### Mixing
For simple sound processing in the form of volume adjustment as well as setting For simple sound processing in the form of volume adjustment as well as setting
the default input and output devices `pavucontrol` can be used as a simple the default input and output devices [`pavucontrol`](/wiki/linux/pipewire.md#mixing) can be
mixer. used as a simple mixer.

Loading…
Cancel
Save