Bug 297959

Summary: pavucontrol shows more than 100% of volume, but kmixer goes only up to 100%
Product: [Applications] kmix Reporter: Michal Hlavac <miso>
Component: DocumentationAssignee: Christian Esken <esken>
Status: RESOLVED FIXED    
Severity: wishlist CC: ashl1future, esken, ororo, rdieter, ro.ggi, sergio
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: openSUSE   
OS: Linux   
URL: http://forums.opensuse.org/english/get-technical-help-here/hardware/473376-disable-conexant-smart-audio-headphone-limiter-lenovo-thinkpad.html
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: gnome-volume-control

Description Michal Hlavac 2012-04-12 11:26:12 UTC
User-Agent:       Mozilla/5.0 (X11; Linux x86_64; rv:11.0) Gecko/20100101 Firefox/11.0
Build Identifier: 

I have sound card with Conexant Smart Audio Headphone Limiter on Lenovo Thinkpad. I can control volume with pavucontrol, but kmix goes only up to limited volume.

Reproducible: Always
Comment 1 ro.ggi 2012-08-06 19:13:36 UTC
Created attachment 72991 [details]
gnome-volume-control
Comment 2 ro.ggi 2012-08-06 19:13:56 UTC
Miss this feature too. Actually Gnome (or Unity) mixer in Ubuntu has it (see attachment). In KDE we need to use pavucontrol.
Comment 3 Christian Esken 2012-10-16 21:05:49 UTC
I guess it would be easy to raise the limit in the Pulseaudio backend. But as long as there is no slider available in Qt/KDE that can "snap in" at 100%, changing the Pulseaudio backend probably makes not too much sense.
Comment 4 Christian Esken 2012-10-16 21:06:18 UTC
*** Bug 257552 has been marked as a duplicate of this bug. ***
Comment 5 Colin Guthrie 2012-10-16 21:51:28 UTC
Yeah I'm not sure it's something that can be contained to the backend as it would have to scale the values to fit the range which would then be misleading to users. The whole point is that volumes > 100% are software amplified and thus could cause saturation/clipping on some tracks. It's critical to show users that they are genuinely moving the volume above 100%. I never implemented this because it would have required changing kmix itself too much.

So yeah a "snap" at 100% and a clear indication of marked areas would be very useful here. I remember talking to some folk about this in Randa last year, but never got anywhere (I'm a pretty crap GUI coder!!).

There is another use for the markers too, and that is showing "Base Volume" This is typically more important on Mics where the Base volume represents the ALSA 0dB point but the the range of ALSA controls allow an overall +dB value if they are all maxed out (the maxed out point being 100% in PA). So showing the 0dB/Base Volume marker is, in itself, highly desirable too. So fingers crossed someone makes such a GUI component!
Comment 6 Christian Esken 2012-10-16 23:28:24 UTC
I can only fully agree. The 0dB marker (possibly with "snap") would also be beneficial to other Backends, e.g. ALSA supplies dB values and sometimes they are below the max. I would really like to indicate that, or even cap the volumes there by default.
Comment 7 Christian Esken 2012-11-12 19:57:31 UTC
*** Bug 309597 has been marked as a duplicate of this bug. ***
Comment 8 Christian Esken 2012-11-12 20:20:32 UTC
I have implemented an option to enable the boosted volumes for Pulseaudio. As there is currently no way to indicate that it is an volume overdrive, this is an expert option that I will not put in the GUI. To enable it, use:

  kwriteconfig -file kmixrc -group Global -key VolumeOverdrive -type bool true

The behavior will be active after the next KMix restart. I will move this wish report to "documentation", as it needs to be documented.
Comment 9 Christian Esken 2012-11-12 20:25:10 UTC
Git commit 3279cc8cc5abbe27e7cfe9baadb7111b8dd9c7c4 by Christian Esken.
Committed on 12/11/2012 at 21:23.
Pushed by esken into branch 'master'.

Implement optional Pulseaudio volume overdrive (PA_VOLUME_UI_MAX).

M  +6    -2    apps/kmix.cpp
M  +3    -1    backends/mixer_pulse.cpp
M  +3    -0    core/GlobalConfig.h

http://commits.kde.org/kmix/3279cc8cc5abbe27e7cfe9baadb7111b8dd9c7c4
Comment 10 Sérgio Basto 2012-11-12 20:32:49 UTC
Hi, 
First thanks for tip of pavucontrol which can control 150% of volume. 
Since introduction of pulseaudio , I have the problem of "low sound levels", I though that was pulseaudio fault, but no. 
My understanding ALSA split sound in 2 components, hardware sound and software sound. 
And kmix just control to 100% of hardware sound. 
Like I explain in bug 309597 if we put pulseaudio with debug logs , we can see that volume just go to 100% software volume in kmix 
(
D: alsa-sink.c: Requested volume: 0: 100% 1: 100% 
D: alsa-sink.c: Got hardware volume: 0: 100% 1: 100% 
D: alsa-sink.c: Calculated software volume: 0: 100% 1: 100% 
)
when we may go to 
D: alsa-sink.c: Calculated software volume: 0: 153% 1: 153% 
with others tools
Comment 11 Sérgio Basto 2012-11-12 20:38:33 UTC
(In reply to comment #9)
> Git commit 3279cc8cc5abbe27e7cfe9baadb7111b8dd9c7c4 by Christian Esken.
> Committed on 12/11/2012 at 21:23.
> Pushed by esken into branch 'master'.
> 
> Implement optional Pulseaudio volume overdrive (PA_VOLUME_UI_MAX).
> 
> M  +6    -2    apps/kmix.cpp
> M  +3    -1    backends/mixer_pulse.cpp
> M  +3    -0    core/GlobalConfig.h
> 
> http://commits.kde.org/kmix/3279cc8cc5abbe27e7cfe9baadb7111b8dd9c7c4

This patches are applicable into kmix kde 4.9.2 ? I mean if I apply this patches on my kde-4.9.2 may worked ? , or  kmix have changes enough to not though about it ? 

Thanks,
Comment 12 Christian Esken 2012-11-12 22:24:57 UTC
They will not work under KDE4.9. But if you are a developer, you can do your own trivial patch. Just look at the change in backends/mixer_pulse.cpp.
Comment 13 Sérgio Basto 2013-03-26 23:17:34 UTC
after install kde-4.10.1 , everything still the same 

pavucontrol shows 150% of volume, but kmixer goes only up to 100%

pavucontrol  could increase volume upper than kmixer.
Comment 14 Christian Esken 2013-07-17 19:54:51 UTC
Repeating comment 8:

I have implemented an option to enable the boosted volumes for Pulseaudio. As there is currently no way to indicate that it is an volume overdrive, this is an expert option that I will not put in the GUI. To enable it, use: kwriteconfig -file kmixrc -group Global -key VolumeOverdrive -type bool true The behavior will be active after the next KMix restart. I will move this wish report to "documentation", as it needs to be documented.
Comment 15 Christian Esken 2013-07-17 19:55:21 UTC
*** Bug 322359 has been marked as a duplicate of this bug. ***
Comment 16 Sérgio Basto 2013-07-17 20:12:15 UTC
    kwriteconfig -file kmixrc -group Global -key VolumeOverdrive -type bool true 
and restart kmix, kmix goes to 153% of volume 
This will resist to one reboot ? 
or I put this permanently ?

Thanks,
Comment 17 Sérgio Basto 2013-07-17 20:13:26 UTC
(*) or how I put this permanently ?
Comment 18 Sérgio Basto 2013-10-13 16:35:41 UTC
(In reply to comment #16)
> kwriteconfig -file kmixrc -group Global -key VolumeOverdrive -type bool  true 

is the same of edit $HOME/.kde/share/config/kmixrc  and add: 
[Global]
VolumeOverdrive=true

> and restart kmix, kmix goes to 153% of volume 
> This will resist to one reboot ? 
yes 
> or I put this permanently ?
we just did
Comment 21 Christian Esken 2013-12-18 13:05:59 UTC
I have added an option "Volume Overdrive" in KMix for KDE4.13. This is part of the configuration dialog overhaul, see http://kmix5.wordpress.com/2013/11/26/secret-view-in-the-new-configuration-dialog/