Email or username:

Password:

Forgot your password?
Top-level
Hailey

@electronic_eel yes it uses the speex-dsp resampler and it will slew to resync for small offsets, and jump for large discontinuous offsets!

7 comments
Electronic Eel

@hailey nice!

do you have plans on integrating it somehow with mpd?

I'd be especially interested in a way to use mpd to select on which devices I want to output audio. mpd has the concept of "audio_output" and most mpd clients allow you to control them.

Hailey

@electronic_eel no special integration needed! You can create a virtual duplex device in both Pipewire and Pulse, configure mpd to play to that device, and bark to capture from that device - see the readme for more info

Electronic Eel

@hailey yeah, but the issue is the multi-room control via mpd audio_outputs if I'm not mistaken.

To control which rooms should be enabled from within mpd, I need multiple audio_outputs in mpd, some are enabled and some disabled. Now these should integrate again into one bark stream to allow it to do it's multiroom magic. Or maybe some other logic to check which rooms are enabled in mpd.

This would allow me to use the many different mpd clients to control the whole stack: playlist, song, volume and rooms.

@hailey yeah, but the issue is the multi-room control via mpd audio_outputs if I'm not mistaken.

To control which rooms should be enabled from within mpd, I need multiple audio_outputs in mpd, some are enabled and some disabled. Now these should integrate again into one bark stream to allow it to do it's multiroom magic. Or maybe some other logic to check which rooms are enabled in mpd.

Hailey

@electronic_eel I see! You could achieve this by creating separate virtual devices and running multiple bark stream processes using separate multicast groups for each speaker. You'd lose the benefit of multicast, since you'd essentially be unicasting to each speaker (but in a roundabout way via multicast), but the actual synchronisation runs according to CLOCK_BOOTTIME on the source host, so provided all stream sources are running on the same machine the sync would work.

Electronic Eel

@hailey ah, cool!

I don't care about network bandwidth as all sinks have direct ethernet cables to one switch. So unicast or multicast doesn't matter for my application.

I think I will give bark a try soon.

CEO of Anti-Clock Society

@hailey @electronic_eel speex-dsp for resampling is an interesting choice. Why use a C library over Rubato?

Go Up