Page 8 of 13

Re: PipeWire integration discussion?

Posted: Thu Oct 20, 2022 8:12 pm
by AVLinux
Stevo wrote: Thu Oct 20, 2022 8:01 pm They appear to have made it into the test repo yesterday: :confused:

http://mxrepo.com/mx/testrepo/pool/test/p/pipewire/
Hmmm, weird, I ran sudo apt clean and refreshed the MX Test Repo a couple of times... :confused: I'm still only seeing 0.3.51 and no wireplumber...
shot-2022-10-20_20-10-35.jpg
I'm in Eastern time zone Canada..

Re: PipeWire integration discussion?

Posted: Thu Oct 20, 2022 8:14 pm
by dolphin_oracle
sure enough its not showing up...0.3.58 is what we are looking for.

Re: PipeWire integration discussion?

Posted: Thu Oct 20, 2022 8:15 pm
by dolphin_oracle
@timkb4cq @Stevo the debs are up, but the Package lists still point to 0.3.51

Re: PipeWire integration discussion?

Posted: Thu Oct 20, 2022 9:15 pm
by timkb4cq
Somehow the indexes didn't get updated on mxrepo.com. That's now fixed. The mirrors will take a bit to catch up.

Re: PipeWire integration discussion?

Posted: Thu Oct 20, 2022 11:23 pm
by AVLinux
timkb4cq wrote: Thu Oct 20, 2022 9:15 pm Somehow the indexes didn't get updated on mxrepo.com. That's now fixed. The mirrors will take a bit to catch up.
Thanks for the quick fix! :number1:

Re: PipeWire integration discussion?

Posted: Fri Oct 21, 2022 2:46 am
by markol

Re: PipeWire integration discussion?

Posted: Fri Oct 21, 2022 8:40 am
by AVLinux
@dolphin_oracle

First thanks so much for the mx-pipewire setup package, it is a great idea and even on a non-spec MX system with systemd things seem to 'just work' I have more testing to do with sysvinit. I'm wondering and hoping that when the mx-pipewire-setup is complete it can simply be one setup that works for those who want to replace PulseAudio but also include the stuff for those wanting to use JACK Audio since Pipewire potentially replaces both PulseAudio and JACK. If it is possible for MX and AV Linux to work from the same setup that would be a huge streamlining feature. AV Linux now differs greatly from MX in the default Audio setup and if we both end up adopting PipeWire it would be a shame to still be separated by 2 different PipeWire configs or require separate setup meta-packages. If your pipewire setup package was to also install the relatively tiny pipewire-jack and libspa-jack packages and include moving their configs then it would be one setup ready for all potential use cases, from general Desktop to Pro Audio and adding the pipewire-jack stuff shouldn't hinder those doing regular Desktop Audio things so I'm just asking if you would consider this. Haha I can already see the potential for an 'mx-pipewire' graphical config settings tool to appear in MX-Tools... :cool:

I'm copying a pretty concise post of a complete PipeWire Audio setup for both Pulseaudio and JACK from a User over at the Linuxmusicians forum I frequent, it seems pretty simple (relatively speaking)... And I don't think the pipewire-jack-specific configs will hurt anything for people not using pipewire-jack. If we test this stuff now when it's all optional then there should be no surprises once we are dealing with Pipewire-only in Debian 12/MX-23:
I configure my buffer settings through the pipewire configuration files. Just about everything that you can imagine can be configured in pipewire. The key locations for making the changes are in the following paths:

/usr/share/pipewire/pipewire.conf for the PipeWire daemon settings

/usr/share/pipewire/pipewire-pulse.conf for the PipeWire pulseaudio server

/usr/share/pipewire/client-rt.conf for the PipeWire native client settings

/usr/share/pipewire/jack.conf for the PipeWire JACK clients

In my particular case, I only use apps that support JACK for my audio work, so I keep everything default except for the jack.conf file. I copy the /usr/share/pipewire/jack.conf over to /etc/pipewire/

I then edit jack.conf in the new location and uncomment the following lines:

#default.clock.rate = 48000
#default.clock.allowed-rates = [ 48000 ]
#default.clock.quantum = 1024

I then set my settings to the desired amounts. "Quantum" = buffer size -- test and find the ideal setting for your personal system.

That's really all there is to it for me as far as pipewire configuration. Since there is currently no easy tool for changing the quantum, I go into this file and change the quantum when I want to change the buffer size. I can totally see this becoming simple once someone develops a GUI based tool to easily make these changes. At the moment, I don't know of such a tool yet, but editing this single file is very easy when I need to make a change.

---------------------

My ultimate goal is to document the easiest process possible for the majority of users to very easily start using Linux. Because of this, I've tried to keep things as simple as possible with my configuration. I don't use RT kernels. I use the standard generic vanilla kernel, but I use it with the threadirqs and preempt=full kernel parameters to make my system run as a real time machine.

Note that it is entirely possible to go much further with configurations to get even better performance at ultra low latencies. For example, the rtirq script can be used to prioritize the threads, but I'm purposely trying to avoid needing any settings other than what already comes in the default distro.

Aside from that, I just adjust the realtime priorities and the memlock limits:

Real-time priority limits are usually stored in /etc/security/limits.conf and /etc/security/limits.d/. The best option is to add a new file 95-pipewire.conf in /etc/security/limits.d/ with this content:

# Default limits for users of pipewire
@pipewire - rtprio 95
@pipewire - nice -19
@pipewire - memlock 4194304

Then add your user to the PipeWire group so that you can use these priorities.

That's really it. That's really all someone needs to get really usable low latencies. :)

EDIT: For more information and additional options, see the pipewire wiki's performance tuning page:

https://gitlab.freedesktop.org/pipewire ... nce-tuning

EDIT#2: I guess I should had that I run my CPU governor set at "Performance".

Re: PipeWire integration discussion?

Posted: Fri Oct 21, 2022 8:59 am
by dolphin_oracle
while I have no intention of shipping with jack tools installed, but if the configs do not interfere with other packages or with the default audio server setup for our users, I'm not opposed to adding them to the setup package.

Re: PipeWire integration discussion?

Posted: Fri Oct 21, 2022 9:05 am
by AVLinux
dolphin_oracle wrote: Fri Oct 21, 2022 8:59 am while I have no intention of shipping with jack tools installed, but if the configs do not interfere with other packages or with the default audio server setup for our users, I'm not opposed to adding them to the setup package.
Of course! JACK applications would just come from the Repos as always, I'm only talking audio backends and conf files.. Please don't misunderstand, I'm trying to make suggestions to help me to get with YOUR program, not the other way around.. I'm hoping to diminish the need for so much specialization and eventually not even need a special Respin.

Re: PipeWire integration discussion?

Posted: Fri Oct 21, 2022 4:57 pm
by alextone
AVLinux wrote: Fri Oct 21, 2022 9:05 am
dolphin_oracle wrote: Fri Oct 21, 2022 8:59 am while I have no intention of shipping with jack tools installed, but if the configs do not interfere with other packages or with the default audio server setup for our users, I'm not opposed to adding them to the setup package.
Of course! JACK applications would just come from the Repos as always, I'm only talking audio backends and conf files.. Please don't misunderstand, I'm trying to make suggestions to help me to get with YOUR program, not the other way around.. I'm hoping to diminish the need for so much specialization and eventually not even need a special Respin.
Can I assume that those apps that ask for jackd2 as a dependency will not "see" the pipewire alternative, if the dependency specifies jackd2, and not libjack (or libspa2-jack?)

I've been experimenting today, reading a lot, and discovered that if i remove jackd2 with the intention of replacing it with the pipewire alternative, a lot of jack based apps get uninstalled. (I'm keeping notes)

Also, when i try to compile apps against the pipewire supplied jack lib, they get.....irritated, and won't compile.

Still experimenting here, but i will add i removed pulseaudio, and pipewire worked fine without it. (woohoo) So halfway there.

Alex.