You are not logged in.

#1 2020-09-02 14:40:47

postfinem
Member
Registered: 2019-08-27
Posts: 7

Audio too quiet via bluetooth

I always use bluetooth headphones on my laptop, using bluetoothctl to connect.  I also dual boot with Windows for development, and after connecting to my headphones on Windows I have to remove and re-pair them in Arch (I do the same when going from Arch to Windows). After one of the times I did this (not the first time), the audio to my headphones got significantly quieter in Arch (sounds fine in Windows).  It's still loud enough to be usable, but I need to raise my volume above 100% in pavucontrol to get to the volume I usually listen at, which causes some distortion.

I've rebooted and removed/re-paired the headphones several times, and the problem persisted.  My solution has been to connect a bluetooth transmitter to my headphone jack and connect the headphones to that, which works perfectly fine, but it does lead to some background fuzz and is unnecessarily complicated.

I'm using Pulseaudio with amixer (via a script) for most of my volume control, as well as pasystray and pavucontrol for things like changing sinks/sources and changing volume/sink for specific programs, as well as raising volume above 100.  Let me know if any other info would be helpful, I'm not sure what all comes into play here.

Offline

#2 2020-09-02 14:58:43

V1del
Forum Moderator
Registered: 2012-10-16
Posts: 21,668

Re: Audio too quiet via bluetooth

Don't change pulseaudio volumes by fumbling with the ALSA compatibility mixer exposed via amixer, that just leads to issues. Set that one to 100% and then do all volume adjustments via pulseaudio, e.g.  there's stuff like

pactl set-sink-volume @DEFAULT_SINK@ +5%

that will properly automatically adjust with what you (... or module-switch-on-connect) defines as the default sink and it isn't attempted to haphazardly synchronize a single global mixer control with every sink pulseaudio gives you.

That rant out of the way, bluetooth headsets often have an internal volume that isn't necessarily synchronized with what your operating system reports, do you have seperate volume buttons on the headset? Have you tried upping it there? How do the actual volumes look like from the OS point of view?

amixer
pacmd list-cards
#During playback
pacmd list-sinks
pacmd list-sink-inputs

Offline

#3 2020-09-02 16:22:26

postfinem
Member
Registered: 2019-08-27
Posts: 7

Re: Audio too quiet via bluetooth

I replaced alsa with pactl in my main volume script; I'll fix it everywhere else later.  My headphones (earbuds, actually) don't have any builtin volume button.  They only have a play/pause button on each ear, which I've never tried to get working on Arch.  Outputs are as follows:

amixer

Simple mixer control 'Master',0
  Capabilities: pvolume pswitch pswitch-joined
  Playback channels: Front Left - Front Right
  Limits: Playback 0 - 65536
  Mono:
  Front Left: Playback 65448 [100%] [on]
  Front Right: Playback 65448 [100%] [on]
Simple mixer control 'Capture',0
  Capabilities: cvolume cswitch cswitch-joined
  Capture channels: Front Left - Front Right
  Limits: Capture 0 - 65536
  Front Left: Capture 100 [0%] [on]
  Front Right: Capture 100 [0%] [on]

pacmd list-cards (relevant output)

    index: 3
	name: <bluez_card.00_00_00_00_0B_22>
	driver: <module-bluez5-device.c>
	owner module: 27
	properties:
		device.description = "TOZO-T10-R"
		device.string = "00:00:00:00:0B:22"
		device.api = "bluez"
		device.class = "sound"
		device.bus = "bluetooth"
		device.form_factor = "headset"
		bluez.path = "/org/bluez/hci0/dev_00_00_00_00_0B_22"
		bluez.class = "0x240404"
		bluez.alias = "TOZO-T10-R"
		device.icon_name = "audio-headset-bluetooth"
		device.intended_roles = "phone"
	profiles:
		headset_head_unit: Headset Head Unit (HSP/HFP) (priority 30, available: unknown)
		a2dp_sink: High Fidelity Playback (A2DP Sink) (priority 40, available: unknown)
		off: Off (priority 0, available: yes)
	active profile: <a2dp_sink>
	sinks:
		bluez_sink.00_00_00_00_0B_22.a2dp_sink/#3: TOZO-T10-R
	sources:
		bluez_sink.00_00_00_00_0B_22.a2dp_sink.monitor/#4: Monitor of TOZO-T10-R
	ports:
		headset-output: Headset (priority 0, latency offset 0 usec, available: unknown)
			properties:
				
		headset-input: Headset (priority 0, latency offset 0 usec, available: unknown)
			properties:
				

pacmd list-sinks (relevant output)

  * index: 3
	name: <bluez_sink.00_00_00_00_0B_22.a2dp_sink>
	driver: <module-bluez5-device.c>
	flags: HARDWARE DECIBEL_VOLUME LATENCY 
	state: RUNNING
	suspend cause: (none)
	priority: 9050
	volume: front-left: 65448 / 100% / -0.04 dB,   front-right: 65448 / 100% / -0.04 dB
	        balance 0.00
	base volume: 65536 / 100% / 0.00 dB
	volume steps: 65537
	muted: no
	current latency: 50.18 ms
	max request: 3 KiB
	max rewind: 0 KiB
	monitor source: 4
	sample spec: s16le 2ch 44100Hz
	channel map: front-left,front-right
	             Stereo
	used by: 1
	linked by: 1
	fixed latency: 45.32 ms
	card: 3 <bluez_card.00_00_00_00_0B_22>
	module: 27
	properties:
		bluetooth.protocol = "a2dp_sink"
		device.description = "TOZO-T10-R"
		device.string = "00:00:00:00:0B:22"
		device.api = "bluez"
		device.class = "sound"
		device.bus = "bluetooth"
		device.form_factor = "headset"
		bluez.path = "/org/bluez/hci0/dev_00_00_00_00_0B_22"
		bluez.class = "0x240404"
		bluez.alias = "TOZO-T10-R"
		device.icon_name = "audio-headset-bluetooth"
		device.intended_roles = "phone"
	ports:
		headset-output: Headset (priority 0, latency offset 0 usec, available: yes)
			properties:
				
	active port: <headset-output>

Full outputs here

pacmd list-sink-inputs

1 sink input(s) available.
    index: 78
	driver: <protocol-native.c>
	flags: START_CORKED 
	state: RUNNING
	sink: 3 <bluez_sink.00_00_00_00_0B_22.a2dp_sink>
	volume: front-left: 65535 / 100% / -0.00 dB,   front-right: 65535 / 100% / -0.00 dB
	        balance 0.00
	muted: no
	current latency: 988.77 ms
	requested latency: 45.32 ms
	sample spec: s16le 2ch 44100Hz
	channel map: front-left,front-right
	             Stereo
	resample method: (null)
	module: 12
	client: 58122 <Spotify>
	properties:
		media.role = "music"
		media.name = "Spotify"
		application.name = "Spotify"
		native-protocol.peer = "UNIX socket client"
		native-protocol.version = "33"
		application.process.id = "1069565"
		application.process.user = "devyn"
		application.process.host = "purple"
		application.process.binary = "spotify"
		window.x11.display = ":0"
		application.language = "en_US.UTF-8"
		application.process.machine_id = "a2d23c27773945bf9f433a353ce04d60"
		application.process.session_id = "1"
		application.icon_name = "spotify-client"
		module-stream-restore.id = "sink-input-by-media-role:music"

All of these were run with music playing on Spotify ("spotify" package in aur), but the audio source doesn't seem to effect the problem, as it also occurs in Zoom meetings and when watching Youtube videos.

Offline

Board footer

Powered by FluxBB