On Wed, 19 Jan 2022 at 14:04, Fons Adriaensen <fons(a)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