"Absolute volume" with bluetooth devices
Summary
My headphones have volume buttons with push the volume up/down.
When using them on Linux+Pulseaudio, it seems that these buttons operate independently of the pulseaudio's volume -- they're like an extra layer applied externally (think of it as an external mixer). If the volume on pulseaudio AND the headphones is 0%, I've to increase the volume in both places manually to get any sound.
On iOS (and I believe Windows and Android too), these buttons signal to the OS that the volume has changed. In practice, this means that the headphones and the device's volumes match. For example, when connected to my phone if volume is 50% on my phone, pressing "volume up" on my headphones shows me the volume is being pushed up on iOS too.
AFAIK, this has been the standard on mobile phones since I've had headphones with volume buttons. I believe this is called "absolute volume", though I've failed to find proper sources for this definition.
The opposite is also true; I'd expect that changing the volume on pulseaudio does not update the headphone's "internal" volume. However, using d-feet
I can alter their internal volume by finding the object org/bluez/hci0/dev_MAC
, and accesing it's interface org.bluez.MediaControl
, and then just picking VolumeUp
or VolumeDown
.
Following the above example, the same is true in iOS; if I increase the volume on my phone, the headphone's "internal" volume also goes up. It's as if they shared state (I believe that's what they actually do).
environment
Including output of pa-info
both before connecting the headphones and after (just in case anything relevant comes up there).
Steps to reproduce (scenario 1)
- Connect headphones to the computer.
- Set the volume for this device on pulseaudio to 50%.
- Press the volume up or down buttons on the headphones.
What is the current bug behavior? (scenario 1)
The audible volume changes, yet pulseaudio's volume indicator does not acknowledge this.
What is the expected correct behavior? (scenario 1)
The audible volume changes, and pulseaudio's volume indicator tracks the headphone's volume.
Steps to reproduce (scenario 2)
- Connect headphones to the computer.
- Set the headphone's volume to 0% by using the buttons on them
- Increase the volume on pulseaudio
What is the current bug behavior? (scenario 2)
The headphones' volume should increase.
What is the expected correct behavior? (scenario 2)
The headphones' volume remains at 0%.
Other notes
I've found this patch from two years ago which seems to implement this feature, but I'm not sure if I have to configure something for it to work.