My solution to Bluetooth Audio with Roon

@stubaggs what do u mean by worked for me … airplay-> roon-bridge → BT receiver → BT speaker?

Worked with no special driver on mac/win/linux, most importantly Ropieee !

I did not have to do anything special, the dongle connected no issues to a bluetooth speaker and headphones (one at a time, not simultaneous).

have u make it work via airplay?

It should work because the bluetooth unit is a soundcard in linux. The one i’ve got works this way. In shairport-sync you can specify which alsa soundcard you want to use (if you’re using more than one, or got the built in still activated on a rpi for instance).

Do you have a stable wifi connection for airplay? Or are you using a cable?

44.1khz should be a default for Bluetooth audio (don’t believe this is the issue). Also in shairport-sync.conf you can specify the sample rate you want/need.

@jmvdv yes, via cable so connection is stable.

no clue why its not working properly, i set in shairport conf rate 44100 and it shows warning that not supported by BT transmitter ;/

Did you try 48khz?

This is a bluetoooth adapter not airplay adapter. Roon sees it as a sound card so it it works natively via Roon Advanced Audio Transport.

no i did not

yes it is, but the point is to make it work with airplay.

You can get the native sample rate when you connect the bluetooth usb unit directly to roon (or via roon bridge). If it’s 48khz then you can try that (or you can just try that directly)

issue was with the setup of alsa on linux box, works OK.

1 Like

software conversion plugin in alsa has to be enabled

cat /etc/asound.conf :frowning:
pcm.!default {
type plug
slave.pcm {
type hw
card 1 # for headphone, turn 1 to 0
device 0
}
}

ctl.!default {
type hw
card 1 # for headphone, turn 1 to 0
}

One of my customers discovered that the USB Bluetooth Adapter, ZEXMTE Bluetooth 5.2 Audio Adapter for Bluetooth Headphones/Speakers works fine with bluetooth in a Raspberry Pi with installed Roon Bridge.
I have not tested but as it behaves as a normal USB Audiointerface it should also work with Mac and Win.
It has best audio quality you can currently get with Bluetooth (APTX-HD, 24/96)
It works like a USB Class2 audio device and therefore is plug and play.

Best DrCWO

1 Like

Hi all! I wanted to signalize some options for people like me who boil at the thought of using redundant hardware to bypass (what looks like) an arbitrary software limitation in Roon. After all, Roon on Mac and PC will play music just fine using the machine’s built-in Bluetooth, so I don’t see why Roon Core / Bridge on Linux should not be allowed to do that.

First of all, there’s the minimal solution using BlueALSA. I run Roon on an Ubuntu laptop, so I wanted to mess as little as possible with my ALSA config, lest it confuses the PipeWire audio server running on top. The solution I came up with is:

  1. Use snd-aloop to create a virtual HW loopback device.
    $ sudo modprobe snd-aloop
    You will see two new “Loopback” devices appear in Roon, enable and select the first one. (Roon does not give you the ALSA device numbers, but the first one should be device 0.)
  2. Change the PipeWire profile of your loopback device to Pro Audio. This can be done in pavucontrol in the “Configuration” tab. Note that pavucontrol is also not very verbose with device names, so you need to guess which of the “Built-in Audios” is a hardware sound card and which one is the loopback device. In my case, the one on the bottom of the list was the loopback.
  3. In PipeWire, Connect the loopback device 1 (not 0!) to your Bluetooth speaker / headphone and enjoy! You can do this with CLI or in a patchbay program of your choice. I used qjackctl since I already had it installed (see a screenshot below of how it looks).

1 Like

It can be grouped. But I have not tested, if it is in sync with other members of the group. I can try it next week. I could imagine, there is a slight delay on the bluetooth enabled speaker/headphone due to the bluetooth transmission…

Did you ever try this Christopher?

I just got a JBL Charge 5 for camping, and it meets those needs perfectly, but when I try grouping it (via my phone as an endpoint) there’s a decent delay between the networked RAAT endpoints and the JBL. As far as I can tell this is solely due to the additional bluetooth transmission, if I include my phone in a group using the connected speakers it remains in-sync.

I suspect there’s no fix, and it wasn’t my intended use-case for the JBL, but if there’s a way to make it work then a portable endpoint would be pretty handy during parties.

Set a group zone delay, try different values!

Edit: screenshot is dutch, it the “Zone groepering vertraging”, value in milliseconds. Try 1000 to start with.

Sorry I have not tried it, as there is currently no need anymore on my setup to use bluetooth.
(I used this to play audiobooks to my bluetooth in-ears back then. But now I am directly listening from audible and have my in-ears connected to my phone).

Set a group zone delay, try different values!

Great idea @jmvdv, although I suspect to work correctly I’d now need to set a delay for every other speaker? (i.e. all my speakers are in-sync (I’ve tried up to 5 at once) except for my phone’s bluetooth JBL which is delayed). I’ll try setting all of the others to 100ms delay and see what happens :slight_smile:

Looks like that does the job! Requires about 125ms delay on every non-bluetooth speaker (in my case at least). Need to do a bit more testing but certainly resolves the issue sufficiently for occasional portable use during a party.

And thanks @jmvdv, I’d messed with the resync delay setting (which is for a different purpose and was obviously unsuccessful) but hadn’t found the group delay setting in the advanced audio options.

1 Like