Hacker Newsnew | past | comments | ask | show | jobs | submitlogin
Gpwgraph – PipeWire Graph Qt GUI Interface (freedesktop.org)
116 points by jlpcsl on Oct 22, 2022 | hide | past | favorite | 36 comments


I've been using this program for a while (and it's GTK alternative Helvum), and it's quickly become one of my favorite tools. I picked up an inexpensive USB capture card, and the ability to simple pipe the audio stream into any sink I wish, such as headphones, speakers, OBS, etc. Is such a simple solution compared to struggling with audio settings trying to get the right combination. It's also probably the simplest solution to getting audio sharing in Discord, since they continue to not support it in Linux, even if the solution is still a bit of a hack.


Another alternative to check out: https://github.com/Ax9D/pw-viz


Yet another way would be using pipewire with jack and Catia



Interesting that it is based off of QjackCtl and looks nearly identical. I've been using QjackCtl with pipewire and haven't found any issues so I wonder what the differences with this version are.


It's the same main author, I think. He writes the Qtractor DAW, too.


Yes, the same author, Rui Nuno Capela AKA rncbc, creating a lot of cool audio software → https://www.rncbc.org/drupal/ also can be followed on Twitter https://twitter.com/rncbc


Good to know. Great to see established devs in linux audio bringing in new tools for pipewire.


I would imagine it having video stream support as well would be a major difference


The underlying API that the application talks to would be one thing.


qpwgraph would also handle video streams I guess


The title is wrong, it's a "Q" prefix not a "G" prefix.


True. I did use correct qpwgraph (with lowercase q), and don't even know who broke the title as I did not touch it at all.


Well that is odd...


Quick question, is there a single GUI app that actually let me control Pipewire pipeline? the command line approach is very user-unfriendly and there are tons of options that no normal user even understand what each of those parameters even mean for.


What does pavucontrol not do that you want? It seems like by far the most powerful option I've seen on any OS. Nicely usable by regular users, and still good caoabilities for power users. Works great via the built in pulseaudio api support in pipewire which nicely wraps pipewire capabilities.


Operating Pipewire is about connecting and manipulating a graph of soueces and sinks (some of which can be virtual).

For example you could route your mic through a denoiser plugin and then send this to a virtual source output in order to be able to use the denoised mic in literally any application. You could also have it running into a level meter at the same time to ensure you are delivering an adequate level of audio.

If you have a fancy mixer like the USB class compliant Soundcraft Signature 12 MTK where you can use any of the 12 channels for input or output, you could e.g. runn the adui from an HDMI channel directly onto one of the mixers strips and control its level comfortably from there.

If you want to send your system audio to the bluetooth receiver and to your headphone jack and to your HDMI output at the same time, potentially with a delay compensating plugin inbetween you can do that.

Depends on your use case if you need such an ability, but if your system is not dead simple and straightforward (microphone + either speakers/hdmi/headphone out) something like pipewire with a node based GUI can quickly become easier to use.


pavucontrol is way too restricted for something that can be visualized as a node just like qpwgraph. Anything that requires you to do a little advanced configuration would end up go fallback into command line approach.


Just stumbled across this a few days ago. Very pleased to have it in my pipewire audio stable. Linux audio is moving along very nicely!


I love this! It makes it trivial to route audio to/from any devices and programs. Does anyone know anything similar for Windows?


ASIO, you can use it with JACK https://www.asio4all.org/ Note however, unlike pipewire, this only works with ASIO (or JACK) compatible software.


Because of pipewire this works for the whole system, and I don't think there's a Windows equivalent for that. But for editing a graph for a single playback pipeline there's GraphEdit† for DirectShow which is kind of similar (but not as powerful)?

https://learn.microsoft.com/en-us/windows/win32/directshow/u...


This is just a GUI for the underlying Pipewire sound software, which is what the applications actually talks to. I don't think you get something like that on Windows.


Jack also works on Windows.


True, but applications have to support it explicitly. For pipewire, you see everything, so if you want to wire up Firefox to your daw, you can.


There used to be such tools for DirectAudio, but that is deprecated(but in Windows style, never abandoned). Not sure about the newer framework.


It would be great if you could actually set some default connections right in there.


You might be interested in this little tool of mine: https://github.com/majewsky/jack-autoplug - It's using the JACK API, so it works with PipeWire out of the box. I run instances of this tool as systemd services, grouped into targets. To switch pluggings on and off on demand, I have global keybinds connected to scripts like this:

  #!/bin/sh
  set -euo pipefail
  if systemctl --user is-active --quiet autoplug-group.target; then
    systemctl --user stop autoplug-group.target
  else
    systemctl --user start autoplug-group.target
  fi


I haven't tried it yet, but wouldn't a patchbay profile suffice?


Is it possible that if you need to visualise it on a graph that’s an indication that it’s too complex.


What's the alternative? Bunch of rows where you connect things by selecting in/out in a dropdown?

Some problems are just complicated and visualizations help make it easier to understand. More complex audio routing than "application > audio out" tend to be one of those problems.


People have simple problems don't need to visualize the graph, the automatic connections just work. However there are people doing a lot of complex things. When i'm watching YouTube I.don't open the graph, but when i'm recoding audio I do as then I need to control where each connection is going, and the whole setup is very complex


I think a directed graph is probably as intuitive and close to the truth regarding streaming audio/visuals that it is a very good mental model to have as an end user.

Also, it’s wide spread use in e.g. blender and other professional video editors do make me think that it is a great abstraction.


Things should be as simple as possible, and not simpler.


BeOS/Haiku was like that.


So what? It’s a dead OS that nobody uses.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: