Oh my, PulseAudio is
annoyingly bad. (Before you label me, just look at some example documentation, for example
stream.h:pa_stream_peek(), and try to find out if the buffer contains a full number of samples for all channels, or whether it is just a byte stream the reader must synchronize itself; i.e., whether each callback starts at a sample for the first channel or not. All the documentation says is "it can be less or more than a complete fragment", a fragment being the basic self-contained block of samples on the server side.)
You see, to make this "worthwhile", I want to add run-time source selection (by right-clicking on the bar) and some other goodies. To do that, I need to switch from the "simple" interface to the asynchronous interface. No problem; I'm very familiar and comfy with async interfaces. Except this one is 1) designed by a baboon using crayons, and 2) with even worse documentation. Sure, it is *easy* to get something to seemingly work, and that's fine for proof of concept and quick crappy stuff, but my OCD just don't let me keep doing that with this thing, knowing Ed.Kloonk has been using it for a year already. Besides, if I do it right, I could add Debian packaging in the sources, maybe visual plugin support (if one wants to write their own peak visualizer), and
be happy with the result. It might be useful for others, too.
Ed.Kloonk, do you mind if I use GPL-3.0+ for the rewritten version, and publish the sources somewhere, maybe GitHub? (I think it'd be the most appropriate license for this kind of application on Linux. But, if you or anyone else has a reasonable argument for some other license, I'm open.)