Monday, November 9, 2026

Time alignment for Subs and Panels

There's a depression right around the crossover frequency (125 Hz) in both channels and in both Movie and Hotseat modes.  This depression seemed to respond to an adjustment (done in Movie mode) that was counterintuitive.  I delayed the subs LESS so that they sub gets the signal only 0.6 ms earlier (it was 1.6 ms earlier before).  That raised the output at the crossover frequency.

But this made no sense at all, since the sub is about two feet back from the panel.  Making the delay compensation much LESS than 2 ms should make it worse, not better, I figured.  But if I brought it down to 2ms, it got even worse than 1.6ms.  

Because of this anomaly, I decided to reopen this time alignment issue which I haven't investigated for about 6 years.

Back in 2020 I made 3 or more posts on the topic.  I tried various things, and concluded that you couldn't rely on measurements at the crossover frequency.  There were too many confounding factors, I decided, and measurements never made any sense.  I ended up concluding that simply using the distance between sub and panel was as good as anything you could do.  And that was the inspiration for the 1.6 ms delay, since the right sub (then) was about 1.6 feet back (back then).

Well that was before a lot of changes.  And I mean a lot.  I changed the speakers, I added the miniDSP FIR based linear crossovers, I re-did the EQ's many times (including just last week) and I moved the speakers farther out, about 2 feet from the subs now.  By the old reasoning, I should have increased the delay compensation to 2 ms, not reduced it to 0.6ms.

I decided this week the time alignment needed a whole new investigation.  And there's one thing I never thought of before.  The subs, which are SVS PB13 Ultras, (now, at least*) have internal DSP based processing.  All such processing introduces a time delay.   I asked Google and it replied I could expect a 5-6 ms latency for the DSP in an SVS PB sub.  That was based on an investigation by ASR (Audio Science Review) which I have a lot of respect for.

(*When I first bought the SVS subs in 2009 they had all analog controls, and might not have used DSP, but I've replaced the plate amplifier boards since then, almost always under their warranty.  As of now, the right sub has the newest version I have, which is fully app controllable.  The left sub has digital controls, but I have to go to the back of the speaker to control it.  Since they are different plate amplifier boards, they might also have different latencies, though I'd expect them to be similar because SVS probably tries to keep the latency as low as possible since many people don't have a way of correcting it like I do.)

Since I never took the latency of the sub DSP into account before, it's no wonder the whole thing seemed confusing.  The expected delay compensation should be about 5-6 ms (for the DSP) plus 2 ms (for the 2 foot difference) or around 7-8ms total (which is close to my experimental result below).   

Furthermore, given the crossover frequency of 125 Hz, the response at 125 Hz should cycle through a range of values that repeats every 8 ms of applied delay compensation.  So if the correct delay compensation is 8 ms, it should also give a local peak response at 0 ms, which is close to the 0.6 ms I determined from a few quick and not very careful measurements I did last week.  (There is quite a bit of randomness in these measurements, and I didn't take them all the way to 0 ms because I knew that would be wrong.)

This does not mean that 0, 8, or 16 ms of delay would be equivalent in every way, only one of them would be the correct delay compensation value, but they would yield identical (or at least similar) response with continuous signals.

(I use pink noise, which is not really a continuous signal, but in some ways it acts like one.  Actually, given the fact that it is random, the very highest amplitude peak should be at the true correct compensation value, and the other local peaks at 8ms intervals should be increasingly lower, but they would be local peaks higher than at delay values in between.)

This seems to be confirmed by a series of measurements I did yesterday.  I played pink noise and measured the 1/6 octave band at 125 Hz while I changed the delay added by the sub EQ.  

(Note that I have the the panel delay fixed at 10ms, so if the sub delay is set to 2ms, the signal to the sub would therefore "lead" by 8ms because it has 8 ms less delay being applied.  By using a 10 ms fixed delay for the panels, which are equidistant from the listening position, I can compensate for the subs independently, since they are at slightly different distances, and I can compensate up to a 10 ms difference.)

I was starting at "9.42 ms" for the  the right sub which I had determined in more crude measurements last week.   (That would correspond to 0.58ms relative delay.). That made me guess that the correct setting would be 1.42ms (7.58 ms relative delay which is close to the predicted 8 ms).

So assuming my optimization last week was worth something, I started at 1.42 ms sub delay, tried 0.42, and then 2.52.  It was very confusing, and I ended up going all the way from 0.42 to 9.42 to see the pattern.  But the repeating pattern is unmistakeable.

Sadly my Analyzer app doesn't show the actual measured level after you freeze the analyzer.  (I let it run for about 30 seconds on random pink noise.). Instead, it shows the suggested EQ level.  As the response goes down, the EQ goes up.  So what we want is the lowest suggested EQ level, and since the bass level is generally raised for my room curve, this means we are looking for the largest NEGATIVE number (which corresponds to the highest actual output at the crossover frequency):

Sub Delay     Suggested EQ for 125 Hz (smaller means better--higher output)

9.42               -1.0

8.42                +0.6

7.42                +2.0

6.42                +3.5 ***worst***

5.42                +0.8

4.42                -0.6

3.42                 -3.0

2.42                -3.9   ***best***

1.42                -3.4

0.42                +0

This shows exactly the pattern I was expecting.  The amplitude goes through a sinusoidal cycle in about 8 ms (determined by the crossover frequency of 125 Hz, because 1000ms/125 is 8ms).  It reaches its best value (among the delays tested) at 2.42, which corresponds to 7.58 ms relative panel to sub delay compensation, right in the expected 7-8 ms range.  I would expect it to hit another peak at 10.42 (but in that case, the signal would be going to the panels first, which is clearly wrong).  The worst value is at 6.42, which is right in between 2.42 and 10.42.  At 6.42 ms delay the amplitude is so low it needs +3.5dB of EQ to reach the spectrum average, while most of the bass is above the spectrum average.  The output at the best delay tested, 2.42ms, is 7.4dB higher, as indicated by the suggested EQ of -3.9dB.

When I was making these measurements, I was getting very confused, not seeing the pattern correctly, so I mistakenly decided to a finer grid between 2.42 and 3.42.  I did not get a better result than at 2.42ms.  But it looks here like there could be an even higher value between 2.42 and 1.42, so I need to continue this investigation there to find the true optimal delay compensation value, or at least closer than just the nearest 1 ms.  My determination of a local peak around 9.42ms was probably mistaken, it would be more like 10.42ms.

(When I was making the measurements I often confused positive and negative EQ values, and I also figured that what might be important is to compare the EQ suggestion for 125 Hz with that at 112 Hz--that made things very confusing.  When I laid all the data out in a table it became clear that the expected pattern is shown most clearly in the actual 125 Hz value itself, which is where it should be clearest, because that's the crossover frequency.  It's still confounded by the fact that changing the delay does change other frequency bins too, which then affect the baseline the suggested EQ at 125 is computed against.  It would be nice if I could read the measured amplitude value rather than the suggested EQ value after the display is frozen, but I have seen no way to do that.)



No comments:

Post a Comment