You are not logged in.

#1 2023-12-27 13:54:51

StephenRamos
Member
Registered: 2023-06-11
Posts: 9

Is possible to sync multiple speakers/audio sinks in Pipewire?

Hi,

Not sure if the subject is correct, if not, let me know and I will change it, I'm not sure I'm using the correct terminology.

Pipewire is working absolutely fine on my computer, no issues there.

I have two sets of speakers, my TV speakers and a Bluetooth speaker.

As my TV has terrible bass I thought: Oi! why don't I combine both the TV (HDMI) and the Bluetooth speaker?

Googling I found this config that creates a sink that combines all sinks into one:

context.modules = [
{   name = libpipewire-module-combine-stream
    args = {
        combine.mode = sink
        node.name = "combined_sink"
        node.description = "Combined Sink"
        combine.props = {
            audio.position = [ FL FR ]
        }
        stream.rules = [
            {
                matches = [
                    {
                        media.class = "Audio/Sink"
                    }
                ]
                actions = {
                    create-stream = {
                    }
                }
            }
        ]
    }
}
]

It all works fine and the audio is sent to both sinks the HDMI and the Bluetooth one, so all speakers get the same sound simultaneously.

"However" There is a noticeable lag on the Bluetooth speaker that ruins my perfect plan.

My question is:

Is it possible to get them to sound "in sync"? is it possible to compensate the HDMI sink and add a delay to match the Bluetooth sink?

I'm an ignorant when it comes to audio stuff in Linux.  I have been searching on-line but I haven't been lucky, maybe what I want to do is not possible?

Thanks in advance.

Offline

#2 2023-12-27 18:06:54

WSDMatty
Member
Registered: 2019-08-27
Posts: 22

Re: Is possible to sync multiple speakers/audio sinks in Pipewire?

It's more a problem with the bluetooth and seems quite common. See this this and this.

I would recommend trying this solution using pavucontrol to set a latency offset. But it likely won't be perfect simply because bluetooth vs wired, one signal is -going- to move faster.

Offline

Board footer

Powered by FluxBB