Pipewire is a true blessing for Linux
Linux
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
Official Release Page for those who don't want to read the Phoronix article: https://gitlab.freedesktop.org/pipewire/pipewire/-/releases/1.0.0
It's great to see that Pipewire has reached this milestone. Personally I've been using it since 0.3.35 for very basic audio needs and it's been a very smooth transition. After installation I never had to tinker with it anymore. "It just works"^TM^
I had to do some tinkering way back to make my bluetooth earplugs be recognized as an audio device.
Not sure if that is still needed today
No
Genuinely one of the best pieces of software that these heroes are giving away.
I've seen so many audio changes on Linux. But Pipewire is the first one without any negatives.
Yeah it's basically Pulseaudio, but better. The devs have done a great job on iterating upon the already pretty good pulseaudio!
It's more like JACK for desktop. PA was never good, just obvious bad design.
I'd have to disagree with that. It wasn't perfect and there were issues for many people at the beginning, but it united everything properly.
Before then (in xmms days), don't forget that audio in apps constantly didn't work, and the sound servers often conflicted. It was far from a seamless experience.
But, pipewire I agree doesn't seem to have any downsides and finally fixes from what I felt was the last major issue (low latency)
PA works on most case tho. Can't deny all the good it did.
Also, is JACK any good?
Pipewire replaces the need for jack, which was low latency audio routing between audio components. Pipewire even has jack compatible interfaces so you can use jack based apps with it.
Then there's the bit most people skip over. Pipewire does the same thing for video!
Didn't work on my last two sound cards, and always had latency problems for many people.
JACK is for profesionals. If you need to take an input from an instrument, run it through a software filter, and output it immediately. Or if you need to output from one program to another to another. Etc. Usually that means small buffers and a lot of cpu usage. Not really for normal desktop users. Grab a specialized distro like ubuntu studio and try it, if you want.
Pipewire makes me feel like I'm a bit stupid. I keep reading about it, I read the introduction and FAQ on their website, yet I still couldn't tell you what that thing even does. All I know is it's a slightly less buggy drop-in replacement for pulseaudio, and pulseaudio is something I use because Firefox forces me to. (I would still be on plain old ALSA if it weren't for Firefox.)
Also, it definitely did not "just work" for me out of the box, I had to do quite some digging and some very non-obvious stuff to get it to a) start up and b) let me use my microphone. I still don't even know what "starting up" really means for pipewire (is there a daemon or something?), the website likes to pretend that isn't a thing, but without doing some stuff to start it up, audio just won't work for pulseaudio and pipewire applications...
The Arch wiki made installing it very painless for me. Zero problems. Install it, remove PA, activate systemd service.
you can install pipewire directly from archinstall now
For a long time, people shat all over pipewire and said it wasn't viable as a replacement for the existing Linux audio stack, but clearly that hasn't ended up being the case
I've heard nothing but good, and replacing Pulseaudio was painless. It was Pulseaudio that people hated on in my experience
When it was brand new there were some edge case bugs that broke on certain workflows and hardware, but that's pretty much entirely fixed now and I'm guessing for a long time now it's been more universally stable than pulseaudio was.
Also, some people just pointlessly dislike anything that's new, or because it breaks their spacebar heating
Hol up, 1.0? I've been using it and thought it was around for few years already
In F/OSS, it is not unusual for software to stay below 1.0 version for a long time yet still get a lot of use. Just look at how long OpenSSL, for example, was at 0.9.something, while already being of crucial importance to a lot of internet infrastructure.
The reasons for this are varied, but the most important is probably simply that free software developers don't feel the pressure to call a product 1.0 when they don't believe it is ready to be called that.
Is there something like the banana voicemeeter for pipewire?
I am currently using Helvum, which is kinda lacking a lot of the functionality.
I was experimenting with the Cadence tools from KXStudio. These are mostly made for JACK, but PipeWire has a JACK interface so it should work. It's similar to helvum, but with more options.
Not sure right now which one (maybe Carla), but one of these programs also support adding sound effect nodes that have their own GUI! You probably want to use it in multi-client or patchbay mode
My audio set up is using jack on Ubuntu. If I were to start using pipewire, does it replace jack? Or do you use it alongside jack? I use mostly ardour, hydrogen, renoise and bitwig.
Pipewire exposes both a JACK and Pulseaudio client interface, so you don't need to run the JACK daemon anymore.
Nice! So it completely replaces jackd/qjackctl? Can it sync transports?
qjackctl will actually connect to pipewire, I use its graph window a lot to route audio when the default volume control isn't enough. But yeah it does (or can) replace jackd.
Can it sync transports?
I'm not sure, I'm not a pro audio user. Sorry!
Cool, thanks for the info!
big fan of qpwgraph
I believe a problem you may encounter asking this question is the fact pipewire does most of that itself?
This is the best summary I could come up with:
It has finally happened: PipeWire 1.0 has been released as this now very common software to the Linux desktop for managing audio and video streams.
With time it's proven to be a suitable replacement to the likes of PulseAudio and JACK while pushing forward the Linux desktop with its modern design and feature set.
PipeWire 1.0 delivers improved time reporting for less jitter in ALSA when using IRQ mode, various module fixes, Bluetooth LC3 codec and compatibility improvements, improved transport and time handling for JACK, optimized buffer re-use with JACK, and a variety of other improvements.
There isn't anything fundamentally different about PipeWire 1.0 but was part of their plan for releasing 1.0 later in the year and finally moving past all the 0.3.xx releases.
PipeWire has proven itself stable and plenty reliable for Linux desktop uses.
Downloads and more details on the big PipeWire 1.0 release via FreeDesktop.org GitLab.
The original article contains 161 words, the summary contains 150 words. Saved 7%. I'm a bot and I'm open source!
lets go
Brilliant piece of software
I've been using PipeWire this year on my Void Linux laptop & desktop. It's been mostly OK but has a few problems. For years I have been using plain ALSA (with no custom configuration) because pulseaudio causes me regular issues across multiple machines (mostly silently failing).
Pros:
- I don't have to use Chromium for my mic to work on online video conf (WTF Firefox)
- "EasyEffects" lets me quickly fix crappy youtube audio (bad gain normalisation, way too much sibilance) with a minimum of effort.
Cons:
- Sometimes breaks all audio until I manually restart it (hey, just like pulseaudio. This problem never happens when using ALSA straight)
- First time setup is complicated, involving environment variables, dbus user session buses and multiple daemons (running just pipewire isn't enough). Why can't it handle this all itself? Surely it should notice if these things are missing and just fix it itself? Compare this to straight ALSA where you (1) do nothing and then (2) everything works (except Firefox mic support)
- I can't have multiple audio outputs all unmuted at the same time. Eg my headphone output and my rear speaker output. If I override this (using alsamixer) then it gets forgotten next boot anyway, it seems to be out of scope of PipeWire's understanding.
[This comment has been deleted by an automated system]
Oh nice! I wonder if this will fix discord streaming audio?
Nope. This will only be fixed when Discord gets their head out of their ass, unlikely to happen soon.
Can you describe the issue? I don't use Discord (and I presume the problem might depend on what browser you use).
on discord on linux you can't screenshare with desktop audio, I think this might be already fixed in newer electron versions (but discord is closed source and has not updated their electron in a long time)
That absolutely sucks :| Thankyou for the detail.
As a workaround, you could use OBS and use OBS's virtual camera so Discord is streaming what it thinks is a camera, and set up whatever you want to share on your desktop through OBS.
I'm assuming this is a "dedicated app" (i.e. apt install discord). I was capable of streaming the video, but sound was a different beast. Audio streaming on discord was a no go. I was finally able to do it with pipewire and using discord-screenaudio
https://github.com/maltejur/discord-screenaudio
A custom discord client that supports streaming with audio on Linux
Jaysus, I wish this were a world where stuff like that wasn't necessary.
Uneducated question: what's the benefit of a dedicated client over running it in a normal browser?
Sorry for late reply. I just now noticed this.
The difference would be that a browser would likely have multiple web pages fighting for resources whereas the dedicated client would not have to fight over so many resources.
The OS has a dedicated task scheduler that alots cpu time to each process. Some processes get preferential treatment, but most processes started on user space ( i.e.double click UI icon) are just "normal" priority.
When a task scheduler hits on a process, that process can start executing whatever it needs to do. The problem with running discord in a browser is that the application is splitting its attention across multiple pages ( and probably other stuff ) instead of a single page.
Basically, it's faster to focus on painting a single canvas than it is to painting 3 at the same time.
I'm not going to discuss shared memory and separate processes or forking. You can goggle search if you want to know more about that.
I have discord installed from the flatpak. Screen sharing works but it doesn't share audio from the applications. Discord-screenaudio and web browser discord have been suggested to me but they don't work with unfocused push to talk. I've also tried xwaylandvideobridge but that didn't stream the audio either.