[LAD] pipewire

Wim Taymans wim.taymans at gmail.com
Wed Jan 19 15:18:05 CET 2022


On Wed, 19 Jan 2022 at 14:04, Fons Adriaensen <fons at linuxaudio.org> wrote:
>
> On Tue, Jan 18, 2022 at 07:16:39PM +0100, Wim Taymans wrote:
>
> > As a bare minimum you would need pipewire (the daemon) and
> > pipewire-jack (the libjack.so client implementation). With a custom
> > config file you can make this work exactly like jack (see below).
>
> Thanks, will try this, but mnay questions remain (see below).
>
> > All the system integration (dbus, systemd and the automatic stuff)
> > happens in the session manager. You don't need to run this.
>
> Aha, that is good news.
>
> > You'll need the pipewire git version
>
> Will things work with the current Arch packages and do I
> need git just becuase it has the minimal.conf file ?
> If yes I'd prefer to use the Arch packages for now.

Sorry, git for now. I just started to implement the last bits to make a
session manager optional.

>
> Questions:
>
> * A lot of lines in the minimal.conf are commented. Can one
>   assume that these correspond to the defaults ? If not, what
>   are the defaults for all these parameters ?
>
They are defaults, yes.

>   What concerns me here is things like
>
>             #channelmix.normalize  = true

All alsa devices are wrapped in an adapter. This contains:

   -> channelmix -> resample -> convert -> alsa-device

channelmix and resample are disabled when the graph sample rate
and  device channels all match the adapter ports, you would configure
the same number of channels on the output as the alsa-device channels
and set the graph rate to something the hw supports.

The channelmix is mostly to support making a 5.1 sink that can downmix
to dolby or some other tricks.

The resampler is used when slaving devices or when the graph rate
doesn't match the device rate (some webcams only do 16KHz). The
minimal config disables it as well.

>
>   I certainly do not want any normalisation, so do I need
>   to set this to false explicitly ?
>
If you set the channels in node.param.PortConfig and audio.channels
to the same value, there will be no channelmixing and so no
normalization.

>
> * The sample rate (48000) is in many places, most of them
>   commented out. What is the relation between all of these ?
>   Why, for example, is 'default.clock.rate' commented ?

default.clock.rate  = 48000 is the default, If you change the graph
clock rate, the devices will follow the rate so you can just leave
them blank (the rate in node.param.PortConfig is ignored.. need
to fix that..)

>
> * 'quantum', 'period-size' and 'period-num' are commented
>   out everywhere (except in 'vm.override'). So where is
>   the period size defined ?
>
The commented out values are the defaults

> * If things like sample rate, period size, etc. are set
>   to some fixed values in the config, can they still be
>   modified by e.g. pw-metadata ? I hope not...
>
Yes, pw-metadata (but not accessible from jack apps)  overrides the
config settings and limits. I'll add a switch to disable this.

Wim

>
> Ciao,
>
> --
> FA
>


More information about the Linux-audio-dev mailing list