So i have setup two different audio levels for my sort of broken earbuds. I have set the audio to go 130% for left and 60% to the right. Whenever i connect my earbuds it’s just blasting 130% for both channels. It gets “fixed” if i move the slider for the audio channel levels. But after reconnect it just blasts 130% on both channels.
So basically it doesn’t memorize the separate audio channel volumes and instead just blasts 130% on both channels.
Managed to fix the low volume on the left earbud by blasting the bt earbuds at max audio on my Android phone. I guess the hardware audio level was very low for the left earbud. Still the audio levels thing not memorized stands.
Those are reported as 130% and 60%, but the headphones volume plays back it wrong. I think i will need to make a script to do that pactl set-sink-volume NAME 130% 60% when bt earbuds are connected to workaround the bug.
#!/bin/bash
# Bluetooth-device MAC-address
DEVICE_MAC="XX:XX:XX:XX:XX:XX"
# Sink name
SINK_NAME="bluez_output.XX_XX_XX_XX_XX_XX.1"
was_connected=false
# Waiting for bluetooth to start
until bluetoothctl show > /dev/null 2>&1; do
sleep 2
done
# Waiting for pactl to start
until pactl info > /dev/null 2>&1; do
sleep 2
done
while true; do
info_output=$(bluetoothctl info "$DEVICE_MAC")
if echo "$info_output" | grep -q "Connected: yes"; then
if [ "$was_connected" = false ]; then
was_connected=true
if pactl list short sinks | grep -q "$SINK_NAME"; then
pactl set-sink-volume "$SINK_NAME" 100% 60%
fi
fi
else
if [ "$was_connected" = true ]; then
was_connected=false
fi
fi
sleep 5
done