Live data from Hacker News

PipeWire: A year in review and a look ahead

collabora.com

121–125 of 125 posts

Re: PipeWire: A year in review and a look ahead

#121

Earlier quoted context omitted.

Debian Sid (aka Unstable) is just as bleeding edge as any other "rolling" distro.

Sid is a rolling unstable development build, that doesn't compare to a rolling stable release - particularly in regards to conversations on what users should expect.

"rolling stable" is an oxymoron. There cannot be such thing as rolling and stable at the same time.

Re: PipeWire: A year in review and a look ahead

#122

Earlier quoted context omitted.

You can also munge the pw-dump output with jq, instead of needing something to be compiled. pw-dump | jq ' ( .[] | select(.type == "PipeWire:Interface:Metadata") | (.metadata // [])[] | select(.key == "default.audio.sink") | .value.name ) as $default_sink_node_name | .[] | select(.info.props["node.name"] == $default_sink_node_name) as $default_sink_node | . '

Yes. This is how I did it initially, before rewriting it using serde. However, as I mention here ( https://www.reddit.com/r/swaywm/comments/sks343/comment/hvn3... ), shell with jq was too slow -- particularly if you're holding down the volume key.

jq is surprisingly slow. I've had success calling python to parse some json from a shell script instead of jq.

Re: PipeWire: A year in review and a look ahead

#123
post #2

I recently made the switch in NixOS and found it pretty painless. Can't get my mic to work in Firefox though, and the other day I was looking through the manual trying to figure out how to use my HDMI screen's speakers rather than the built-in one and couldn't find the right incantation. Sounds like such rough corner cases will be a thing of the past soon. Congrats to the dev team!

Assuming you're talking about Bluetooth mics: If you're using pipewire-media-session (for example, if you're on NixOS 21.11 instead of NixOS unstable), then profile autoswitching [0] is disabled by default, so you have to use pavucontrol to switch from A2DP to HSP. Profile autoswitching is enabled by default in WirePlumber, which is the default session manager in NixOS unstable as of a few days ago. [0] https://wiki.…

Wait what. I've desperately been waiting for this feature and now I learn it's already been there for a while (albeit disabled by default). ._.

(Kinda goes to show that enabling this feature by default is a good idea.)

Thanks, you just made my day!

Re: PipeWire: A year in review and a look ahead

#124
post #92
post #8

I have been impressed how I've been able to make arbitrarily complex audio graphs in QJackCtl and it just works. I can even activate patch bays and it forces the audio configuration and applications (even browsers) stay happy. It's impressive how it manages to support connections that require reclocking and do the needed large ratio resampling needed behind the scenes, something that PulseAudio was never really able…

Dumb question: what did the Pipewire developers do that makes it so much better than everything else on Linux? Sound has been an absolute disaster area on Linux for decades and it seems like the Pipewire guys just flat out solved it. (I would say "suddenly", but Wim Taymans has been working on this directly for almost 7 years and worked on Gstreamer before it) What did they do so much better and differently?

Some of the pipewire devs are old pulseaudio and jack devs. They are fixing their mistakes now. With a common goal, at last.

Re: PipeWire: A year in review and a look ahead

#125

Earlier quoted context omitted.

This is an aside , but I've been watching all the audio graph editor projects pop up and it's made me realize I want something like this for package management. A package maintainer should be able to specify something is a dev dependency, runtime dependency. I should be able to form a "user dependency" where I say Xwayland depends on sway - even though it doesn't. So when I remove sway it pulls out Xwayland with it.…

You can visualize dependencies as a graph with Guix out of the box [1]. While you can't easily setup "user dependencies" (except by editing the package definition) you can create profiles that install packages from a manifest file so you could have a profile with a manifest with xwayland and sway and then simply remove the profile if not needed. Guix already specifies runtime/dev dependencies. [1]: https://guix.gnu.o…

That is definitely close to what I'm thinking of. What I was trying to say is our 1st reach should be for a graph editor. Behind the scenes it may break down to a command line program, but what you'd deal with all the time is the graph editor that you can mouse around and zoom in/out on, and add/remove edges between nodes/packages. That would be a neat experience.
Post reply on HN