[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
compensate.
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