Enabling 96Khz for the LDAC Bluetooth Codec in Linux when using WirePlumber

Enabling 96Khz for the LDAC Bluetooth Codec in Linux when using WirePlumber

Hi everyone,

In this post, we will learn how to change the default Sample Rate for the LDAC Bluetooth Codec from the default value of 48Khz to 96Khz. In order to do this, you must be using PipeWire with WirePlumber and the libspa-0.2-bluetooth package installed in your Linux System. In this post, we are using Ubuntu 23.04 (Development Branch). Depending on your Linux distro, some information on this post may be different.

If you are not using WirePlumber nor have the libspa-0.2-bluetooth packages installed, you can take a look at the following posts before proceeding with this post:

Now that we are using WirePlumber and PipeWire instead of PulseAudio, we can modify one config file in order to increase the Bluetooth Sample Rate from 48Khz to 96Khz when we use an LDAC-compatible Bluetooth device.

To perform this change, we will modify the file 50-bluez-config.lua located in /usr/share/wireplumber/bluetooth.lua.d/:

sudo nano /usr/share/wireplumber/bluetooth.lua.d/50-bluez-config.lua
Enabling LDAC 96Khz on Linux using Wireplumber - 01

The file should look like this:

Enabling LDAC 96Khz on Linux using Wireplumber - 02

Look for the line containing bluez5.default.rate:

Enabling LDAC 96Khz on Linux using Wireplumber - 03

We will uncomment this line by removing the -- at the beginning of it. We will also change the value of 48000 to 96000. This will effectively change the sample rate from 48Khz to 96Khz:

Enabling LDAC 96Khz on Linux using Wireplumber - 04

Finally, we will save the file. If using nano, press CTRL + O followed by Enter to save it:

And that’s it. You can restart the WirePlumber service with systemctl --user restart wireplumber. The next time you connect an LDAC-enabled Bluetooth device, the Sample Rate should be 96Khz instead of the default 48Khz.