You are not logged in.

#1 2019-11-19 17:33:54

mrjnox
Member
Registered: 2019-01-22
Posts: 8

Bluetooth audio breaking up

Bluetooth audio is working for me, but it's been breaking up more lately.
Is there a way to force an increase in the A2DP buffer size? I care about a stable connection more than latency.

mrj@zr:~_$ pacman -Q bluez bluez-libs linux pulseaudio-bluetooth pulseaudio 
bluez 5.52-1
bluez-libs 5.52-1
linux 5.3.11.1-1
pulseaudio-bluetooth 13.0-2
pulseaudio 13.0-2i
mrj@zr:~_$ bluetoothctl 
Agent registered
[CHG] Controller 7C:76:35:F4:9A:60 Pairable: yes
[WH-1000XM3]# info
Device CC:98:8B:35:74:8C (public)
	Name: WH-1000XM3
	Alias: WH-1000XM3
	Class: 0x00240404
	Icon: audio-card
	Paired: yes
	Trusted: no
	Blocked: no
	Connected: yes
	LegacyPairing: no
	UUID: Vendor specific           (00000000-deca-fade-deca-deafdecacaff)
	UUID: Headset                   (00001108-0000-1000-8000-00805f9b34fb)
	UUID: Audio Sink                (0000110b-0000-1000-8000-00805f9b34fb)
	UUID: A/V Remote Control Target (0000110c-0000-1000-8000-00805f9b34fb)
	UUID: A/V Remote Control        (0000110e-0000-1000-8000-00805f9b34fb)
	UUID: Handsfree                 (0000111e-0000-1000-8000-00805f9b34fb)
	UUID: PnP Information           (00001200-0000-1000-8000-00805f9b34fb)
	UUID: Generic Access Profile    (00001800-0000-1000-8000-00805f9b34fb)
	UUID: Generic Attribute Profile (00001801-0000-1000-8000-00805f9b34fb)
	UUID: Unknown                   (0000fe03-0000-1000-8000-00805f9b34fb)
	UUID: Vendor specific           (5b833e05-6bc7-4802-8e9a-723ceca4bd8f)
	UUID: Vendor specific           (5b833e06-6bc7-4802-8e9a-723ceca4bd8f)
	UUID: Vendor specific           (69a7f243-e52f-4443-a7f9-cb4d053c74d6)
	UUID: Vendor specific           (7b265b0e-2232-4d45-bef4-bb8ae62f813d)
	UUID: Vendor specific           (81c2e72a-0591-443e-a1ff-05f988593351)
	UUID: Vendor specific           (91c10d9c-aaef-42bd-b6d6-8a648c19213d)
	UUID: Vendor specific           (931c7e8a-540f-4686-b798-e8df0a2ad9f7)
	UUID: Vendor specific           (96cc203e-5068-46ad-b32d-e316f5e069ba)
	UUID: Vendor specific           (b9b213ce-eeab-49e4-8fd9-aa478ed1b26b)
	UUID: Vendor specific           (f8d1fbe4-7966-4334-8024-ff96c9330e15)
	UUID: Vendor specific           (fe59bfa8-7fe3-4a05-9d94-99fadc69faff)
	Modalias: usb:v054Cp0CD3d0411
[WH-1000XM3]# 
mrj@zr:~_$ pacmd list-sinks 
1 sink(s) available.
  * index: 3
	name: <bluez_sink.CC_98_8B_35_74_8C.a2dp_sink>
	driver: <module-bluez5-device.c>
	flags: HARDWARE DECIBEL_VOLUME LATENCY 
	state: RUNNING
	suspend cause: (none)
	priority: 9050
	volume: front-left: 65536 / 100% / 0.00 dB,   front-right: 65536 / 100% / 0.00 dB
	        balance 0.00
	base volume: 65536 / 100% / 0.00 dB
	volume steps: 65537
	muted: no
	current latency: 307.49 ms
	max request: 5 KiB
	max rewind: 0 KiB
	monitor source: 3
	sample spec: s16le 2ch 44100Hz
	channel map: front-left,front-right
	             Stereo
	used by: 1
	linked by: 7
	fixed latency: 56.93 ms
	card: 1 <bluez_card.CC_98_8B_35_74_8C>
	module: 26
	properties:
		bluetooth.protocol = "a2dp_sink"
		device.description = "WH-1000XM3"
		device.string = "CC:98:8B:35:74:8C"
		device.api = "bluez"
		device.class = "sound"
		device.bus = "bluetooth"
		device.form_factor = "headset"
		bluez.path = "/org/bluez/hci0/dev_CC_98_8B_35_74_8C"
		bluez.class = "0x240404"
		bluez.alias = "WH-1000XM3"
		device.icon_name = "audio-headset-bluetooth"
		device.intended_roles = "phone"
	ports:
		headset-output: Headset (priority 0, latency offset 250000 usec, available: yes)
			properties:
				
	active port: <headset-output>
mrj@zr:~_$ 

Offline

#2 2019-11-19 18:39:19

mrjnox
Member
Registered: 2019-01-22
Posts: 8

Re: Bluetooth audio breaking up

More info:

Host: NUC8i7BEH J72992-302
Kernel: 5.3.11-arch1-1
CPU: i7-8559U
Bluetooth radio: Intel® Wireless-AC 9560 (https://www.intel.com/content/www/us/en … -9560.html)

mrj@zr:~_$ lspci | grep Network
00:14.3 Network controller: Intel Corporation Cannon Point-LP CNVi [Wireless-AC] (rev 30)
mrj@zr:~_$ sudo lsusb -s 001:003 -v

Bus 001 Device 003: ID 8087:0aaa Intel Corp. 
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass          224 Wireless
  bDeviceSubClass         1 Radio Frequency
  bDeviceProtocol         1 Bluetooth
  bMaxPacketSize0        64
  idVendor           0x8087 Intel Corp.
  idProduct          0x0aaa 
  bcdDevice            0.02
  iManufacturer           0 
  iProduct                0 
  iSerial                 0 
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength       0x00c8
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0 
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower              100mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           3
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0040  1x 64 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0000  1x 0 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       1
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0009  1x 9 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0009  1x 9 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       2
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0011  1x 17 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0011  1x 17 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       3
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0019  1x 25 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0019  1x 25 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       4
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0021  1x 33 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0021  1x 33 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       5
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0031  1x 49 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0031  1x 49 bytes
        bInterval               1
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       6
      bNumEndpoints           2
      bInterfaceClass       224 Wireless
      bInterfaceSubClass      1 Radio Frequency
      bInterfaceProtocol      1 Bluetooth
      iInterface              0 
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x03  EP 3 OUT
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x003f  1x 63 bytes
        bInterval               1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes            1
          Transfer Type            Isochronous
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x003f  1x 63 bytes
        bInterval               1
can't get device qualifier: Resource temporarily unavailable
can't get debug descriptor: Resource temporarily unavailable
Device Status:     0x0001
  Self Powered

Offline

#3 2019-11-24 00:11:09

llesudb
Member
Registered: 2019-08-11
Posts: 19

Re: Bluetooth audio breaking up

I have the Sony WH-1000XM2, and I've been experiencing the same issue for the past couple of days. The thing is, this is actually an improvement over another, very closely related issue I was having where the audio would suddenly cut out completely. I made some forum posts and filed a bug with KDE about it:

https://bbs.archlinux.org/viewtopic.php?id=249173
https://bbs.archlinux.org/viewtopic.php?id=248708
https://bugs.kde.org/show_bug.cgi?id=412716

Unfortunately, those went nowhere. The problem I used to have was that audio would spontaneously stop playing over the bluetooth connection, and then the bluetooth connection would eventually idle out and disconnect. Every time this happened, I needed to manually reconnect the bluetooth headphones through the KDE UI. This problem now seems to be fixed in that there will still be brief moments where the audio cuts out, but the audio stream is able to recover and continue playing by itself rather than cutting out entirely. However, the frequent gaps in the audio stream are still quite annoying.

I know for a fact that none of these problems happened before early July 2019. I've never been able to pinpoint exactly which package is the problem.

Offline

#4 2019-11-24 07:18:34

racoon
Member
Registered: 2019-11-22
Posts: 2

Re: Bluetooth audio breaking up

Hello.
Try to install pulseaudio-modules-bt-git
May be issue in codecs.

Offline

#5 2019-11-24 10:11:44

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

Re: Bluetooth audio breaking up

If going back to July fixes this the only logical components are either a kernel/linux-firmware regression,  the new bluez, or pulse 13 , figure out which is the actual culprit. the easiest to test because it can safely be downgraded (or try with linux-lts) are the kernel and linux-firmware.

Online

#6 2019-12-03 00:26:49

llesudb
Member
Registered: 2019-08-11
Posts: 19

Re: Bluetooth audio breaking up

So I've now regressed to the previous issue; bluetooth has started disconnecting completely again.

I did, however, notice that when I use my laptop and headphones in a place with no other bluetooth devices nearby, bluetooth works flawlessly -- no disconnects, no stuttering. The issues crop up when I'm in the proximity of my neighbor's bluetooth devices. Are you using your headphones in a place with a lot of other bluetooth devices nearby, such as an office or apartment?

Offline

#7 2019-12-03 00:35:11

mrjnox
Member
Registered: 2019-01-22
Posts: 8

Re: Bluetooth audio breaking up

Yes, I'm in an office with a dozen other people.

Offline

#8 2020-01-19 14:30:47

llesudb
Member
Registered: 2019-08-11
Posts: 19

Re: Bluetooth audio breaking up

So, I have an update. Since the last time I posted, the issue was temporarily resolved -- I no longer experienced disconnections in the presence of other BT devices, and not too much stuttering (but still some). However, after I upgraded yesterday, the disconnection problem came back. Here is the list of packages I upgraded:

[2020-01-18T22:51:00-0500] [ALPM] upgraded alsa-lib (1.2.1.2-2 -> 1.2.1.2-3)
[2020-01-18T22:51:00-0500] [ALPM] upgraded appstream (0.12.9-2 -> 0.12.10-1)
[2020-01-18T22:51:01-0500] [ALPM] upgraded qt5-base (5.14.0-1 -> 5.14.0-3)
[2020-01-18T22:51:01-0500] [ALPM] upgraded appstream-qt (0.12.9-2 -> 0.12.10-1)
[2020-01-18T22:51:01-0500] [ALPM] upgraded graphviz (2.42.3-1 -> 2.42.3-2)
[2020-01-18T22:51:01-0500] [ALPM] upgraded inkscape (0.92.4-10 -> 0.92.4-11)
[2020-01-18T22:51:01-0500] [ALPM] upgraded libgusb (0.3.1-2 -> 0.3.2-1)
[2020-01-18T22:51:01-0500] [ALPM] upgraded libplacebo (1.21.0-2 -> 1.29.1-1)
[2020-01-18T22:51:01-0500] [ALPM] upgraded libsamplerate (0.1.9-2 -> 0.1.9-3)
[2020-01-18T22:51:01-0500] [ALPM] upgraded libva (2.6.0-1 -> 2.6.1-1)
[2020-01-18T22:51:01-0500] [ALPM] upgraded snappy (1.1.7-1 -> 1.1.8-1)
[2020-01-18T22:51:01-0500] [ALPM] upgraded yaml-cpp (0.6.3-1 -> 0.6.3-2)

So I think the culprit is one of those packages. I will happily file another bug report once I know which package is the problem.

Offline

#9 2020-01-20 17:44:26

mrjnox
Member
Registered: 2019-01-22
Posts: 8

Re: Bluetooth audio breaking up

I can help rule out appstream{,-qt}, inkscape, yaml-cpp, as I don't have them installed on the NUC where I'm experiencing the issue:

mrj@zr:~_$ pacman -Qq | grep 'alsa-lib\|appstream\|qt5-base\|appstream-qt\|graphviz\|inkscape\|libgusb\|libplacebo\|libsamplerate\|libva\|snappy\|yaml-cpp' 
alsa-lib
graphviz
libgusb
libplacebo
libsamplerate
libva
qt5-base
snappy

I just got back to this computer today after some weeks away, updated before seeing this, and the issue is as bad as ever.

Last edited by mrjnox (2020-01-20 17:46:26)

Offline

#10 2020-01-20 20:39:37

mrjnox
Member
Registered: 2019-01-22
Posts: 8

Re: Bluetooth audio breaking up

racoon wrote:

Hello.
Try to install pulseaudio-modules-bt-git
May be issue in codecs.

btw, issue persists after replacing pulseaudio-bluetooth with pulseaudio-modules-bt-git

Offline

#11 2020-01-20 20:54:14

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

Re: Bluetooth audio breaking up

What are you actually listening to when it "breaks up"? Can you reproduce this with everything? Every application? The only logical component from that list would be alsa-lib (and libsamplerate to a lesser extent, though it shouldn't be utilized on modern pulse versions) and only when using an application that doesn't have native pulseaudio support.

Last edited by V1del (2020-01-20 20:54:35)

Online

#12 2020-01-21 21:08:11

llesudb
Member
Registered: 2019-08-11
Posts: 19

Re: Bluetooth audio breaking up

Thanks for the info, mrjnox!

Surprisingly, just downgrading the obvious choices, alsa-lib and libsamplerate, does not resolve the issue. I've now downgraded all packages except graphviz, inkscape, and alsa-lib, and I'm not experiencing any problems so far. That leaves:

qt5-base (5.14.0-1 -> 5.14.0-3)
libgusb (0.3.1-2 -> 0.3.2-1)
libplacebo (1.21.0-2 -> 1.29.1-1)
libsamplerate (0.1.9-2 -> 0.1.9-3)
libva (2.6.0-1 -> 2.6.1-1)
snappy (1.1.7-1 -> 1.1.8-1)

My usage is pretty much limited to playing videos in Google Chrome.

Offline

#13 2020-01-25 01:13:47

llesudb
Member
Registered: 2019-08-11
Posts: 19

Re: Bluetooth audio breaking up

I've upgraded all of those packages again to the versions listed above, and I'm unable to reproduce the problem. I think it's likely that there are environmental factors at play (e.g. the presence of certain nearby bluetooth devices).

mrjnox, did downgrading those packages fix your problem, and does the problem come back if you upgrade? Also, does deleting and re-syncing your bluetooth headphones do anything to solve the issue? I happen to have a lot less stuttering after doing so.

Offline

Board footer

Powered by FluxBB