[pulseaudio-discuss] RFC: Change the device-restore database to allow per-port volumes

David Henningsson david.henningsson at canonical.com
Mon Aug 29 00:04:30 PDT 2011


On 08/26/2011 03:05 PM, Colin Guthrie wrote:
> 'Twas brillig, and Colin Guthrie at 25/08/11 17:17 did gyre and gimble:
>> 'Twas brillig, and Arun Raghavan at 25/08/11 17:08 did gyre and gimble:
>>> On Wed, 2011-08-24 at 22:58 +0100, Colin Guthrie wrote:
>>>> Hi,
>>>>
>>>> This is a patch set that will likely mostly interest David, but also
>>>> solves one of the remaining niggles I have for 1.0 - the fact that
>>>> volumes are not set properly on port changes.
>>>>
>>>> Now this only "solves" that niggle when the module-device-restore is used,
>>>> but I'm happy enough to rely on that for now seeing as it's the default
>>>> on 99.999% of desktop installs.
>>>>
>>>> The overall benefit of this patch is that it allows different volumes
>>>> to be saved and restored for different ports. Combine this with David's
>>>> work on making jack-detection work (which triggers port changes) and you
>>>> automatically get different volumes on headphones vs. speakers.
>>>
>>> My main concern is the following scenario:
>>>
>>> 0. Say we start with built-in speaker and headphone port and equal
>>> (maybe 70%) volume
>>> 1. With headphones plugged in, I've got the volume turned up while
>>> playing something that's naturally not very loud
>>> 2. I pull out headphones, start playing something that's quite loud, I
>>> turn down the volume
>>> 3. I put the headphones back, find the output too loud (since the port
>>> volume was turned up for the previous stream)
>>>
>>> While the current scenario isn't ideal, it's easy for users to wrap
>>> their head around (different devices have different loudness levels). If
>>> we don't handle this sort of case in the per-port-volume case, IMO the
>>> behaviour is potentially confusing/frustrating to users.
>>>
>>> Maybe there's a simple way to handle this that I'm missing ...
>>
>> I'm not sure there is a way to handle this really. Either we want
>> volumes per-port or we don't. IMO we do (this is how it works on my
>> iPhone for example) and I think from the various mumblings I've heard
>> over the years most people want this type of functionality.
>>
>> But perhaps there is indeed some magic solution that we are both missing :p
>
> Anyone else got any comments on this? I'd like to push it out if all is
> well otherwise.
>
>
> FWIW, to address Arun's concern somewhat, we could relatively easily
> make a change here that kept the same volume for every port simply by
> changing the key name used and then expose this as a module argument
> should people really hate this behaviour.
>
> Any comments on the code would be appreciated too :)

Well, I'm not that much into the database format, so can't really look 
for bugs there...I have a question though: What about loudness bumps? It 
looks like that could be the effect if you set the volume in such a 
reactive fashion?

However - it might be that there is no true way around that anyway, as 
in the case of jack detection as we're only reactive to what the kernel 
does.

-- 
David Henningsson, Canonical Ltd.
http://launchpad.net/~diwic


More information about the pulseaudio-discuss mailing list