[pulseaudio-discuss] Balance (was: Re: [PATCH 0/7] LFE filter patches)

Alexander E. Patrakov patrakov at gmail.com
Tue Feb 17 11:06:26 PST 2015

17.02.2015 17:29, David Henningsson wrote:
> Changes since v1:
>   - Fix according to Alexander's comments
>   - A new patch has been added that removes dead code imported from Chrome OS.
> For easier reviewing, I will also send a total of the first three patches.
> Also note that the current routing logic are not optimal, e g,
> when on 2.1 speakers, plug headphones in, then unplug headphones again, the
> result might be that the stereo profile is selected instead of the expected 2.1
> profile. This is not an error with this patch set but might limit its usefulness.

I think that it is convenient to write general thoughts inspired by but 
not directly related to this patch set by replying to PATCH 0/7, so here 
they are.

There is one more usability limitation that comes to mind, and it is 
also not new. Namely, there can exist a volume balance issue.

For a smooth crossover, there must exist a region on the frequency 
response curves of both satellites and the subwoofer where these curves 
both are flat and match each other. In other words, overlap, overprint 
each other, have exactly the same sensitivity not only at one frequency 
but in a finite range. In the middle of this region, one places the 
cross-over frequency. Unless it is specifically built to match, the 
subwoofer will have a different sensitivity than a satellite. That's 
also why hi-fi subwoofers (which can be used with different models of 
satellite hi-fi speakers) have a hardware knob or a switch that changes 
their sensitivity. And I cannot be sure either that a typical laptop 
subwoofer matches its satellites perfectly out of the box (in other 
words, in laptops, I intuitively expect "imbalance between subwoofer and 
satellites" to happen more frequently than "imbalance between left and 
right speakers") - and laptop subwoofers don't have such switch to 

It would be interesting to see the actual frequency response of a laptop 
with a subwoofer measured under both Linux and Windows. I will send the 
scripts to David when they are ready - hopefully on weekends.

In PulseAudio, a user can work around this hardware mismatch, if it 
exists, by adjusting the LFE channel volume separately in pavucontrol 
after unlocking the sliders.

But what happens when the user then adjusts the volume using the systray 
applet? In MATE, the applet does preserve the balance unless turned 
completely down or completely up. In KDE, the mixer tray applet behaves 
the same, but, if one clicks the tray icon, then the "Mixer" button in 
the plasma popup, and adjusts the volume in that window, this will reset 
all channels to the same level. If one uses pavucontrol, then again, 
there is no easy way to adjust the overall volume while preserving the 
deliberately-created difference between the channels.

In other words, because balance is kept together with volume (as a 
multi-channel volume), it is prone to being reset by dumb tools.

More of such dumb tools will surely be created in the future, as 
well-balanced headphones or desktop speakers represent the primary use 
case. So - given this kind of fiasco, maybe it was a bad idea to export 
multi-channel volume on sinks and sources, after all? Maybe it is a good 
idea to think again how to configure and store various settings that 
primarily compensate for hardware deficiency, are set once and must be 
preserved? And I mean not only balance, but, in multichannel setups, 
per-channel delays (of the order of a few milliseconds) which are also 
important but currently missing. And ideally, when someone implements 
this properly, per-device equalizer settings and/or an impulse response 
for digital room correction.

Alexander E. Patrakov

More information about the pulseaudio-discuss mailing list