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.
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.
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.
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)?
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.
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
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.