Can someone be so kind to share how to properly replace pulseaudio with pipewire? I’ve come across some results while searching for this, but they appear to be old posts, and I am concerned with breaking my system if I use those instructions. I figure it’s smarter to ask just to be sure.
Maybe I should’ve elaborated a bit more. The reason why I am trying to switch from PulseAudio to Pipewire is because I am having issues with PulseAudio selecting my XLR mic as it’s input device. Someone on the Arch linux subreddit told me to switch to pipewire instead and that it would likely fix my issue.
So because of that, I am trying to switch from Pulseaudio to Pipewire.
EndeavourOS successfully detects my audio interface, but it will not let me use ‘analog stereo output + mono input’ as my config. In order to use the mic, I must select only ‘mono input’. This is problematic because this device is used for both input and output.
Must init pipewire’s and wireplumber’s services at a new installation or an upgrading of pipewire’s new version.
$ systemctl --user daemon-reload && systemctl --user --now enable pipewire pipewire-pulse wireplumber
To run carla:
$ pw-jack carla
Must configure pipewire and wireplumber::
copy the following file to ~/.config/pipewire/ (The pipewire’s way of configuration)
/usr/share/pipewire/client.conf (can change one’s own parameters)
/usr/share/pipewire/jack.conf (can change one’s own parameters)
/usr/share/pipewire/pipewire.conf (can do one’s own sinks)
/usr/share/pipewire/pipewire-pulse.conf (can change one’s own parameters)
copy the directory /usr/share/wireplumber to ~/.config/wireplumber (The wireplumber’s way of configuration)
Usually, the user’s personal configuration is done in ~/.config/wireplumber/main.lua.d/50-alsa-config.lua
Running order at each os new boot: (if one creates more than ten sinks in ~/.config/pipewire/pipewire.conf)
$ systemctl --user daemon-reload && systemctl --user restart wireplumber.service
$ systemctl --user restart pipewire-pulse.service
$ systemctl --user restart pipewire.service
Repeating cycle:
$ systemctl --user restart pipewire-pulse.service
$ systemctl --user restart pipewire.service
$ systemctl --user restart pipewire-pulse.service
$ systemctl --user restart pipewire.service
------------------------------ configure microphone in pipewire
plugin microphone to input port of USB Audio Device or any other Audio device
I am tempted to try this, but I have to admit that this looks intimidating for a newbie like myself. Are you saying this should solve the issue I have with my ‘Elgato Wave XLR’ audio interface device? I’m not sure if you read the last message I posted here, but I was stating that this audio interface has my XLR mic and my headphones plugged into it. EndeavourOS detects it, but it will only let me use either for output or input, I cannot use it for both. The problem is I need to use it for both because that’s how it’s intended to be used. Before attempting your solution, are you suggesting it should fix my issue?
You should create a new thread stating you’re trying to get this particular thing working. The question of how to replace pulse-audio with pipewire is very straight forward and solved in this thread in post 2. You will likely have a much better chance of figuring out how to use said thing.
I will only guess my suggestion will fix your issue, since if you intend to use pipewire, you have to do configuration both for the pipewire and for the microphone.
The headphone part appears in output device and the microphone part appears in the input device of the pavucontrol.
If you do not make configuration for microphone, the microphone will not be usable in pipewire because it needs to use loopback module.
There is no conflict in simultaneous use of headphone output and microphone input.
As a pipewire beginner, you can just do the basic configuration of copying configure files from /usr/share/pipewire/*.conf.
If some day you have many self-designed sinks to plugin to pavucontrol (as i have said), you must do many parameters changes in pipewire.conf, client.conf, jack.conf and pipewire-pulse and restart the wireplumber, pipewire and pipewire-pulse in the order suggested, otherwise you maybe never succeed.
For an excellent use of piprewire, the following things are necessary:
move pipewire socket from /run/user/1000 to /opt/pulse
making all sinks passive and virtual (appear in hardware device of pavucontrol) by both parameters of node.passive=true and device.api=virtual.
making a simultaneous sink like this:
$ pactl load-module module-null-sink media.class=Audio/Sink sink_name=Simultaneous node.passive=true device.api=virtual channel_map=surround-71
configuring all sinks in 50-alsa-config.lua with the parameter [“session.suspend-timeout-seconds”] = 0.
Finally, anything begins from zero, you can begin from basic and gradually to complicated.