
PulseAudio Under the Hood (2017) - kbumsik
https://gavv.github.io/articles/pulseaudio-under-the-hood/
======
Fr0styMatt88
Is there a GUI tool that lets you really get at the guts of PulseAudio
configuration? This has come up fairly recently for me as I was looking to get
7.1 surround virtualization on headphones working on Ubuntu (I did succeed at
this).

The two tools I found - 'pavucontrol' seems like just a mixer, 'paprefs'
doesn't show you anything about modules. I want something that shows me what
PulseAudio modules are available to build a signal chain with, possibly also
handling configuring LADSPA plugins in the chain. I was really surprised that
there seemed to be no way to 'list all modules available for loading on the
system' (there seems to be only 'list all modules already loaded' which means
I needed to Google to find out what the possible modules are).

Is there something like this already? If not, I would actually be tempted to
build something like this myself - I need a good excuse to learn Qt :)

~~~
bscphil
> 'pavucontrol' seems like just a mixer

It's not a pro-level tool and probably doesn't have the flexibility you are
looking for, but pavucontrol is much more than just a mixer. For example I can
use it to control which input devices individual recording applications are
reading from, and which output devices individual applications are playing to.
You can also manage (but not create?) virtual devices that can be used as both
inputs and outputs, and use a monitor of any output device as an input, etc
etc.

If you do build something that gives complete access to pulseaudio devices and
their mappings, I'd love to see the results. I would definitely use such an
application.

> I was really surprised that there seemed to be no way to 'list all modules
> available for loading on the system'

Does `pactl list` give you what you're looking for?

~~~
Fr0styMatt88
Not quite; 'pactl list modules' will give me a list of all currently loaded
modules, but it doesn't tell you what modules are available on the system to
be loaded. So you can't use it as a way to discover PulseAudio functionality.

For example, in the 7.1 surround example I mentioned, you load the module
'module-virtual-surround-sink' (I followed this guide:
[https://www.reddit.com/r/linux_gaming/comments/2ot5ov/enable...](https://www.reddit.com/r/linux_gaming/comments/2ot5ov/enable_system_wide_hrtf_with_pulseaudio/)).
I didn't know this functionality existed and none of the tools gave me a way
to discover it. It was only through that linked guide and then later the
'PulseAudio Under the Hood' page discussed here that I found out about it.

(as an aside - module-virtual-surround-sink is extremely cool; you can load
your own custom spatialization HRIR into it)

------
fs2
A few years back I ditched Pulseaudio for regular Alsa and it's been a
godsend. No more crackling audio on bluetooth devices, alsamixer which can set
all the volume levels and every program just works out of the box.

The problem I have with Pulseaudio is that it's fixing a problem that doesn't
exist. It's great you can mix and match any channel you want with Pulseaudio
but that's mostly a theoretical advantage. For desktop users Alsa with dmix
offers everything you need, I can play audio, record and mix all at the same
time. The few programs which absolutely require Pulse (I'm looking at you
Firefox) can be fixed with apulse, which emulates Pulseaudio through Alsa.

~~~
brokenmachine
Me too. I was trying to get kodi working on an ubuntu machine with surround
sound going over hdmi to my AVR. Basically I just wanted to create a working
HTPC.

Pulseaudio could not achieve this.

------
dang
Discussed at the time:
[https://news.ycombinator.com/item?id=15310465](https://news.ycombinator.com/item?id=15310465)

------
anewguy9000
garbage?

..sorry just my gut reaction after all that pulseaudio has done to me. i know
this stuff is hard :P

~~~
miloshadzic
I think reactions like this one, and the tons of crap gnome and systemd devs
get are very damaging to the linux desktop community. Criticism is fine, but
people are trying to make modern systems with little support. This is hard
even for a Microsoft or an Apple, let alone a few paid developers and a a
bunch of enthusiast volunteers.

~~~
stallmanite
Constantly breaking things that already work is helping the community? Trying
to use Linux audio in the 2000s was a shitshow because of this. Were you a
user during the time period? PulseAudio was rolled out way before it was
ready.

~~~
miloshadzic
Yes I was a user in the 2000s, I don't remember it being that bad although
there certainly were issues.

