Standard(s) for accessing pipewire configuration for audio software?

I learned that different software (seems to) use different pipewire configuration files via
Upgrade to 35: Sound is working, but issue with surround 5 & 5.1 - #23 by oprizal. This makes me wonder: is this really necessary? does a standard exist re which configuration file to use/expect? Might it be good to suggest to developers (the developing communities) to use only one of these files in ~/.config/pipewire ( client.conf , client-rt , pipewire-pulse.conf)? I compared the three files and they seem to be largely overlapping, but the files are not completely identical.

Maybe you have a simple explanation for why these distinct files are necessary and different programmes need to access these under these different names.

Maybe this question does not have a clear answer/solution - sorry if this is the wrong place for posting.

Please have a look to the directory you copy from,
make a cd /usr/share/pipewire and do a cat "config-filename"

On the top you see:

# Client config file for PipeWire version "0.3.40" #
#
# Copy and edit this file in /etc/pipewire for system-wide changes
# or in ~/.config/pipewire for local changes.

It is the info @oprizal was mentioning.

Standard is:
The package’s config files are in /usr/share/pipewire. If there is a new version you always will find the default config in this folder. Do not change them on this location. always copy them including the header with version nr. to see for which version the config is.

to:

  • /etc/pipewire if you want to make changes for all users on an Fedora system.
  • ~/.config if you want to make changes for your personal user.

Not every Audio system looks same, and also not every user has the same needs. According of every users needs and configuration there are installed plugins and or program’s who do different jobs with different config files.

Pipewire is quite new and thins will still change in future.

So, to keep some backwards compatibility there are different config files for different applications/plugins.

I also hope that we will get it easier in future when everything is possible to config in less files.

To see the changes made about the audio system you best check the change-logs of F34 & 35 and follow the wiki links in the documents:
https://fedoraproject.org/wiki/Releases/35/ChangeSet
https://fedoraproject.org/wiki/Releases/34/ChangeSet

2 Likes

You may also want to look at PipeWire · GitLab

1 Like

Hi. The file client.conf and client-rt.conf comes when we install pipewire-libs package. Then pipewire-pulse.conf comes when we install pipewire-pulseaudio package.

If we run dnf info pipewire-libs and dnf info pipewire-pulseaudio, from the description it give different purposes.

https://discussion.fedoraproject.org/t/upgrade-to-35-sound-is-working-but-issue-with-surround-5-5-1/72032/19?u=oprizal

Maybe with the combination of pipewire + pulseaudio, when running elementary-music will give different result than pipewire + wireplumber and play elementary-music.

If this true, maybe the elementary-music developer expecting this app to run with pipewire + pulseaudio rather than pipewire + wireplumber.

Maybe this also that make some user here get different behavior with their audio on F35 that by default using pipewire + wireplumber when there still lot of apps (maybe) expecting to run with pipewire + pulseaudio.

I check also that current gnome-shell have dependencies with pulseaudio-libs (dnf repoquery gnome-shell --deplist).

But I’m not sure all above I mentions is related or not.

1 Like

What is the presumed division of labour in this respect: Do we expect all app developers to adapt their apps to pipewire + wireplumber, or should pipewire be improved so that developers of audio generating apps do not need to bother?