Low volume on Bluetooth headphones? Try this

So Bluetooth volume control is a bit of a compound matter, and the device volume control doesn’t always (ever?) seem to want to talk to the peripheral. So this means you’re stuck with whatever the headphones shipped with or that the last other device set.

After i a bit of experimentation, i figured out how to change headphone-internal volume from my device.
(This should really be automated/appified, but i’m too lazy now)

Step 0
Be connected (obviously)

Step 1 find the mac address of the thing you want to configure

bluetoothctl devices

Step 2 call the VolumeUp method (repeatedly), after having substituted in the mac address to the command

dbus-send --print-reply --system --dest=org.bluez /org/bluez/hci0/dev_AA_BB_CC_DD_EE_FF org.bluez.MediaControl1.VolumeUp 

I made some kind of a working Draft for a control App for this. It is called harbour-btvol (Show sailfishos:chum / harbour-btvol - SailfishOS Open Build Service) and can be installed from CHUM. It has it little Bugs and Issues (does not list current volume level, list of devices is not filtered nicely, no Icon, i wanted to get the BT battery level as well but does not work yet, etc.) and moste of the code is “stolen” from @piggz amazfish connection dialog - so credits to him. :stuck_out_tongue_winking_eye:
Nevertheless, if you accidentally or while connected to another device reduced your BT devices “internal” volume you can now check out this GUI to increase it again.

Also @attah’s dbus command up there I use (credits to him!) is listed as deprecated. So I don’t know if it will work forever :stuck_out_tongue_winking_eye:

Btw: This is not more then a Workaround, the feature needs to be in SFOS. And probably it is all controllable by pulseaudio or something like that…


Neither of them work for me on WE small speaker and Jabra headphones.
Error msg is something like this: Method “VolumeUp” with signature “” on interface “org.bluez.MediaControl” doesn’t exist

Any ideas?

EDIT: Xperia 10 with

For me

pactl set-sink-volume 3 200%

(or 150% or whatever or 100% to go back to the original volume) works just fine as Bluetooth appears to be always using sink 3 in my case.

One can check which sink no. to use (while the audio is playing) with

pactl list sinks short

If I find the time and a API interface for pactl probably I could check to build that option in the GUI as well. Let’s see!

For some time I’ve been thinking about making such simple app for my own needs to boost various volumes as not only Bluetooth but also the loudspeaker volume is that sh**ty, and I’ll probably simply use QProcess to execute the command. In the GUI there will be just a dropdown to select the sink/device and a slider for the desired volume.

1 Like

Good Idea, we could also extend that in https://github.com/fridlmue/harbour-btvol.
I’ll not be able to do and check much until next week, but if you want to have a look and add something, feel free! :wink:

Thanks! That worked. In my test case it was sink 12.

But wouldn’t that reduce the resolution, and even clip the waveform?
Or where do you get the dynamic range to get away with doing that? (And why don’t we already have it?)
If you indeed have this version problem and not a different one, it sounds like the wrong solution.

What happened to bluetoothctl in

It probably does. But acceptably small with low boosts.

[quote=“attah, post:9, topic:11488”]
And why don’t we already have it?

Because I didn’t make it yet :slight_smile:

Oh, forget it, I didn’t have bluez5-tools installed on that unit.

Let’s see if I manage to pair it with my car from the command line, as all attempts to do it via the UI have failed.