Package: pavucontrol
Version: 5.0-2
Severity: normal
X-Debbugs-Cc: fuzzye...@gmail.com

Dear Maintainer,

I have a 5.1 speaker system.  The speakers are not and cannot be equally 
distant, so I set different volumes for each speaker in the sink USB Audio 
Speakers.  Since I find no way to set a virtual sink on the input of this sink 
that enforces the loudness ratios on the 6 channels, I use
    pactl -- set-sink-volume @DEFAULT_SINK@ 55% 55% 70% 100% 89% 100% 100% 100% 
to set these ratios.  Note that the front left and front right channels are set 
to the lowest volume and the rear left to the next lowest volume and that these 
are -15.58 dB, -15.58 dB, and -9.29 dB, respectively.

I have a USB volume control that sends mute, volUp, and volDown keyboard 
events.  Since I want to retain the relative volumes, I have set these keyboard 
events to, respectively,
    pactl -- set-sink-mute @DEFAULT_SINK@ toggle
    pactl -- set-sink-volume @DEFAULT_SINK@ +1dB
    pactl -- set-sink-volume @DEFAULT_SINK@ -1dB
(Offsetting by % or "magic pulseaudio" cubic values does not retain relative 
loudness.)  I'd like to change the volume by more that only +/- 1 dB, but using 
a larger increment with rapid volume changes is likely to exhibit the following 
defect.

When I turn the volume down far enough by this method (or equivalently using 
the above pactl commands repeatedly), so that the lowest three volumes are 
-222.15 dB (although the same number of dB should have been subtracted from all 
three) and the remainder are greater than -211 dB, turning the volume back up 
does not restore the relative loudness of the three channels that all clamped 
at -222.15 dB.  In fact, if it is reduced until all volumes clamp at -222.15 
dB, all volumes raise together.  In short, arithmetic does not work: 
subtracting and then adding the same numbers of 1 dBs does not return the 
speakers to the same relative loudness.
A similar behaviour happens when hitting the upper clamp at 3276800%(270.93 
db), destroying speaker balance.

I have not perfomed this test on a 2-channel output, but I suspect one could 
recreate the behaviour in that simpler setting with the two channels set to 
wildly different relative volumes, then pushing the volume up or down far 
enough to cause clamping, eliminating the difference.

Interestingly, until recently, the bahaviour in pavucontrol was to display 
"0%(-\infty dB)" when volumes got below about -120 dB, with the behaviour that 
once a finite number of negative increments had somehow sent the volume to 
-\infty, it was permanently trapped there and no amount of pactl ... +1dB would 
ever change that channel's volume again.  Additionally, this older version 
would upper-clamp at 150%, distorting balance when quickly raising volume 
overshot this bound.

PulseAudio does not document a virtual sink that could permanently store the 
attenuations to balance speakers.  pavucontrol displays the failure of 
PulseAudio to retain speaker balance and provides no mechanism to lock-in or 
enforce this balance.  pavucontrol is the only UI suitable for acquiring these 
ratios from users, but has no method to do so.

-- System Information:
Debian Release: 12.1
  APT prefers stable
  APT policy: (900, 'stable'), (500, 'stable-updates'), (500, 
'stable-security'), (400, 'testing')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 6.1.0-10-amd64 (SMP w/48 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages pavucontrol depends on:
ii  libatkmm-1.6-1v5         2.28.3-1
ii  libc6                    2.36-9+deb12u1
ii  libcanberra-gtk3-0       0.30-10
ii  libcanberra0             0.30-10
ii  libgcc-s1                12.2.0-14
ii  libglib2.0-0             2.74.6-2
ii  libglibmm-2.4-1v5        2.66.5-2
ii  libgtk-3-0               3.24.37-2
ii  libgtkmm-3.0-1v5         3.24.7-1
ii  libjson-glib-1.0-0       1.6.6-1
ii  libpulse-mainloop-glib0  16.1+dfsg1-2+b1
ii  libpulse0                16.1+dfsg1-2+b1
ii  libsigc++-2.0-0v5        2.12.0-1
ii  libstdc++6               12.2.0-14

Versions of packages pavucontrol recommends:
ii  pulseaudio  16.1+dfsg1-2+b1

pavucontrol suggests no packages.

-- no debconf information

_______________________________________________
pkg-pulseaudio-devel mailing list
pkg-pulseaudio-devel@alioth-lists.debian.net
https://alioth-lists.debian.net/cgi-bin/mailman/listinfo/pkg-pulseaudio-devel

Reply via email to