[HN Gopher] An Introduction to PipeWire ___________________________________________________________________ An Introduction to PipeWire Author : bpierre Score : 132 points Date : 2022-08-28 16:26 UTC (6 hours ago) (HTM) web link (bootlin.com) (TXT) w3m dump (bootlin.com) | codethief wrote: | My Bluetooth devices regularly disconnect & reconnect, sometimes | no longer output anything (until I disconnect/reconnect | manually), or won't allow me to switch to certain codecs anymore | (until I disconnect/reconnect). | | Has anyone had the same issues? | | (Using PipeWire + pipewire-media-session) | d_tr wrote: | Not sure at all this will help, but wireplumber is supposed to | be the replacement for pipewire-media-session. So this is | something easy you could try if your distribution has a package | for wireplumber. | yewenjie wrote: | Whenever my laptop stays on for more than like a day, audio | quality reduces for my pipewire setup. I have not bbeen able to | debug it so far - but restarting the machine makes it go away. | viraptor wrote: | Report it upstream. They were pretty good with walking me | through debugging an issue. | nyanpasu64 wrote: | Odd, are you using speakers or headphones or Bluetooth, what | does pw-top say before and after quality drops, and is there | anything in journalctl --user? | Laaas wrote: | Shitty workaround: `systemctl --user restart pipewire` | jancsika wrote: | > this API has been in use by the pro-audio audience and targets | low-latency for audio and MIDI connections _between | applications_. | | My emphasis there because I love that the author got this right. | | It's always been frustrating to help users tangled up in Jack | only to find out they're just trying to get a _single | application_ to output audio with low-latency. (Their assumption | being that Jack is _the_ tool to attain low latency audio input | /output in Linux.) | | Good vibes around Pipewire and good vibes in an article | describing Pipewire are a good sign for an audio server. :) | | Edit: clarification, typo | mikewhy wrote: | I was playing Spider-Man with a dual sense and got wondering. | That game puts out audio to your speakers, a separate audio | stream to the speaker in the controller, and _another_ stream of | audio for the haptics. Is this any bit possible with any Linux | audio solution? | jeroenhd wrote: | I don't see why that wouldn't be possible with Pipewire. The | system will provision your application with the default audio | output but through the Pipewire API you can send any audio | stream(s) you want to any device(s) you want. | | I've played around with patchbay software to manage existing | audio streams. I've sent audio to both my headset and streaming | software, adding a block of effects inbetween through JACK | audio software, and used a similar JACK audio interface to put | audio from a voice chat app to the front left and then piped it | into my headphones. | | I don't know the API for creating audio streams directly but as | long as you can introduce enough sources and expose every audio | output as a separate sink (i.e. one for your controller) it's | all relatively easy. | | I doubt game developers will make use of this any time soon, | though. Maybe if the success of the Steam Deck brings a new | life to Steam Machines? | mikewhy wrote: | Hmm, I suppose that could work, didn't think about targeting | the Pipewire api. | | I didn't play around with it much, but the controller did | appear as a 5.1 (or was it 7.1?) in Linux. | | Oh, and I forgot, the controller itself also has a headphone | jack. The controller itself can take 3 audio streams, two of | which can be used for sound. | raffraffraff wrote: | Still find it odd that I will need to use pipewire-pulseaudio and | parec if I want to create a loopback device and null sink so I | can select a sound device that doesn't play audio locally, and | record audio to send over the network. Unless someone else has | done all of this with native PipeWire? | jcelerier wrote: | I use pw-loopback -m '[FL FR]' --playback- | props='media.class=Audio/Source node.name=my-source | | for loopback, is it missing something for your use case? | raffraffraff wrote: | I'll try that. Last time I checked (not that long ago!) the | instructions were to use pactl to create null + loopback, and | parec to record and pipe to [whatever]. I'll check out pw- | loopback! | Venn1 wrote: | I'm waiting on something that will replace PulseAudio module- | jack-sink + netjack2. | jakobdabo wrote: | I hope somebody has a solution for a problem that I have and | can't find anything online. | | I have a simple Pipewire setup. When plugging a regular 3.5mm | headphone (/w a mic) it always ends up in maximum capture | settings, so if I forget to open `alsamixer` and decrease the mic | capture and boost levels to a reasonable level, people behind the | other end of Zoom calls suffer. | | If I unplug it and plug again, it resets to 100% again. How to | fix this? | heavyset_go wrote: | Are you using WirePlumber or pipewire-media-session? | WirePlumber seems to remember my volume settings, but that also | might be a DE thing possibly. | jakobdabo wrote: | I use WirePlumber (the systemd user service is started), and | no DE (only a WM). | d_tr wrote: | Wireplumber stores volume settings in | ~/.local/state/wireplumber/. It is not a DE thing. I use | i3. I have a separate mic and it remembers the volume. | stjohnswarts wrote: | https://old.reddit.com/r/pipewire/ is fairly active for such | questions. I think sometimes even pipewire devs people are on | there. | gerdesj wrote: | "One first design choice was to avoid tackling any management | logic directly inside PipeWire" | | That single statement indicates to me that PW has got it right. | Also I've been using it for 18 months now on Arch after a brief | to and fro with PA where stuff failed badly for a short while. | Now it is nigh on flawless and just works. | | This: https://github.com/werman/noise-suppression-for- | voice#pipewi... works really well and I can have my window next | to a very busy road open and no one can hear it on Teams. Sorry | ... Teams! I use Teams actually 8) | resoluteteeth wrote: | I just switched to PipeWire and it's working great. It's | fantastic that it can replace both pulseaudio and jack; it seems | like a massive improvement in the linux audio situation. | im_down_w_otp wrote: | My only problem so far is that I can't figure out how to | correctly define a custom profile for my Tascam Model 12. I | created one for ALSA/PulseAudio that used to work perfectly, | but it appears that PipeWire has a new config format and | mechanism for this kind of thing, and I've been unable to | wrangle it into a working result. | | My current workaround is to use one of the PipeWire patchbay | GUIs to do ad hoc what I'd normally have as baseline configured | system setup. | brunoqc wrote: | Also check https://github.com/wwmm/easyeffects and | https://github.com/jaakkopasanen/AutoEq. | | I wish https://github.com/wwmm/easyeffects/wiki/Community-Presets | had more presets. | [deleted] | nousermane wrote: | Another happy user of PipeWire+Helvum here. Finally, a proper | "Virtual Audio Cable" for Linux! | freeqaz wrote: | Link: https://gitlab.freedesktop.org/pipewire/helvum | | It's a visual patch bay for Pipewire. I had no idea and I had | to look it up. | MobiusHorizons wrote: | It is also featured in the article | cowtools wrote: | I had no idea about this helvum thing- this is great! | resoluteteeth wrote: | This kind of thing was so hard to do with with pulseaudio, | lol. I'm so happy that it's easy now with pipewire. | escalt wrote: | People still using PulseAudio can use pagraphcontrol | (https://github.com/futpib/pagraphcontrol) | codethief wrote: | I like that UI better than Helvum! Does it also work with | PipeWire? | jcelerier wrote: | There's also qpwgraph when you're used to qjackctl ___________________________________________________________________ (page generated 2022-08-28 23:00 UTC)