Grouped zone out of sync with HAF convolution filter

Since switching to homeaudiofidelity convolution filters on my main zone, the grouped kitchen zone is out of sync by about 1-2 seconds.

When I go back to the basic REW filters they sync up again.

I believe the REW filters don’t do anything in the time domain, whereas the HAF filters do. Perhaps there’s an issue there? One for @brian perhaps…

Main hifi is Allo digiOne Dietpi RAAT into Devialet.
Kitchen is RAAT on Dietpi iqaudio RPi3

They are probably linear phase filters…this is not a great idea if you care about synchronization, frame-sync, or other things that require precise positioning in time. There are also user experience considerations with using very long linear-phase filters (music takes longer to start).

The filter itself is introducing the delay (and it’s not really practical for us to auto-detect and compensate, given how general-purpose the convolution mechanism is).

It’s possible to do time-domain correction without making the filters linear-phase–that isn’t the issue. This is just a filter design choice that isn’t so user-friendly.

(You can compensate for some time differences using RAAT’s sync adjustment settings, up to 500ms I think. Not sure if that will be enough).

Mmmm, ok, thanks Brian. Not ideal, will chat to Thierry at HAF, I don’t think he’s active here. It’s well over a second delay, might even be over 2 so I’m hosed if I want to use it grouped, which I do.

I also expirence a delay with HAF filters when grouping with another zone. I adjust the none HAF zone with 350ms and it works more or less. I have not been able to tell if the delay is longer with high sampel rate material. Most of my stuff is 44.1 kHz.

Having had a brief chat with Thierry my understanding is the delay can’t be avoided for phase correction. Id need 743ms for this one apparently, which means either there’s additional delays from the convolution, or I’m just really bad at estimating timing sync offsets…

In any event, it seems to make more sense to add in some ability to keep the zone in sync if it’s DSP making it go out, be it manual or automatic.
My argument would be convolution is pretty advanced, so anyone adding that feature is more of an advanced user anyway so could have some extra controls. Maybe a simple checkbox to say what filter type is and even a manual time correction offset for grouping. Ideally if it can be automated that would be better - it only has to be done at the point of loading the filter the first time and then the value can be stored so it’s not much of a drain on resources.

One would assume filters made by Acourate would also cause this issue?

Adjusting the non HAF zone has implications for grouping other zones, so the best bet would be to have the offset at the convolution zone. Also if you have different convolution filters you really want each to have their own sync controls otherwise everything will go out of whack when you change DSP preset or whatever and you’d have to remember the values and adjust manually.

Anyway, will experiment more next weekend. For now the zones are ungrouped sadly.

We may be able to do a manual entry of this on the filter screen. I don’t think it can be detected automatically-there are lots of cases where delay is automatically undecidable (bass alignment for digital XO, crossfeed, etc). Convolution is used for so many different things that you can’t just look at a filter and figure out when the sounds will be heard.

Even in the case of 2ch room correction it’s not autodetectable since L and R could have different delays to compensate speaker position and we wouldn’t know which was “right”.

Doing the sync adjustment at RAAT is fine for small adjustments, but it eats into the network buffer, so we limit it to 500ms to keep the feature from causing stability problems. It’s really there to compensate for hardware-introduced delays (generally <100ms, nearly always <20ms), not stuff like this.

My Acourate filters are zero-delay FWIW. I think he just likes linear-phase.


So glad to have found this thread - it just didn’t even occur to me that the HAF filters could be relevant to syncing problems. For a horrible and rather embarrassing moment I thought all my ‘Bluesound’ sync issues might be down to this but turns out they still exist with the filters turned off, just less dramatic.

Would be really good if you are able to implement some sort of a workaround for this, as you suggest, otherwise it’s going to prove quite frustrating.

Thierry kindly made me some filters that fit exactly into 500ms and using -500ms group delay on that zone appears to fix the sync issue.

It’s a good workaround but has some obvious downsides, especially when exploring different filters, or disabling convolution.

I guess at the bare minimum some additional info about this could be added to the docs and the convolution page. I have thought for a while it could use some additional info - ie it would be great to see what sample rates were contained within the zip file loaded, and also show any filter type/delay info would be useful too.

In terms of auto-detection and channel delays being different, I would (perhaps wrongly) assume that for sync purposes all that matters is the longest delay?

Meanwhile I recommend anyone else with issues just ask Thierry to make 500ms versions as a workaround, he was very helpful and speedy.

Thanks, Steve, for flagging this workaround…glad to know it’s a possibility…I’ll contact Thierry.