Time alignment of drivers in active multiway speaker systems

This is a new approach to create a more ideal impulse response in an multiway active speaker systems. The original thread is here https://www.audiovero.de/acourateforum/viewtopic.php?f=8&t=213. I reproduce it here for my easy reference


Recently I have been been intensively working on the topic of optimal time alignment between the individual loudspeaker drivers of a multi-way system and would like to share thoughts and ideas that lead to a better time response of the entire loudspeaker system.

First of all, I would like to thank my friend Holger aka "schoko-sylt" for the eager discussions we have had on this topic and especially for his patience and motivation to run many tests and simulations. Thus at the end a quite time-consuming and complicated procedure developed into a procedure that is more or less easy to use for every Acourate user with moderate effort.

In general, one can postulate that a 1:1 reproduction of a natural sound event via a loudspeaker requires that amplitudes are reproduced unchanged. Phase rotations, which lead to timing errors in the reproduction, are also not allowed. Unfortunately, the reality is different. Still, it is amazing what the brain will forgive. I often become humbled at how well we can listen to music despite all inaccuracies and negative influences.


Anyway it is worth to take a closer look and especially to examine the time alignment between the loudspeaker drivers in active multi-way loudspeakers. With passive loudspeakers this topic is difficult to solve for the interested listener, while with active systems and a digital control there are more possibilities for optimizations. I expressed thoughts on this a long time ago, see my whitepapers on crossovers or on time alignment by sinewave convolution. Since it is well known that you never stop learning, some new insights have now been added that I would like to discuss.


Here the starting point is a measurement of the time response of a driver in response to a Dirac pulse, measured at the listening position. According to the theory of LTI systems (linear + time-invariant) a driver responds with its pulse response. Between the excitation of the system and the pulse response a certain time passes, whereby the position of the driver and the transit time of the sound to the listening position naturally play a role. If you like, you can also think about room reflections, bass reflex boxes and/or dipole systems. There are no limits to the complexity.


If several drivers are involved, a faithful 1:1 reproduction requires that all drivers interact perfectly, especially in the time domain. A bass driver should therefore not be too late in comparison to the midrange driver and tweeter. It should play together with them.


Among other things I have optimized the loopback measurement with the Acourate version V2.0.2. The loopback of a channel allows a precise time reference. You can now simply apply a Dirac pulse to each speaker driver and immediately get the sound propagation time displayed in samples. With a suitable digital delay to fast drivers, all drivers can now be aligned to each other quickly and effortlessly at first glance. Apparently because there are some pitfalls to consider.


Here is an example for explanation. The measurement shows the frequency response of a Yamaha compression driver between 200 Hz and 5 kHz, measured without crossover in the near field to avoid room influences:

The associated pulse response is:

The undershoot following the pulse is characteristic for causal systems. The driver does not oscillate at the same speed for all frequencies. A phase deviation or a delay towards the lower frequencies of the radiated frequency spectrum occurs. This is characterized by the undershoot in the pulse response.


The undershoot also happens when a linear-phase crossover (here with corner frequencies of 400 Hz and 2400 Hz) is applied to the driver. The XO itself has an absolutely symmetrical pulse response. The result then corresponds to the brown curve. For comparison, the ideal behavior is shown in green:

A sinusoidal convolution of the pulse response with the corner frequencies shows that a phase rotation of almost 180° results at the low corner frequency due to the delay. This has the consequence that with a "perfect" time alignment, e.g. by loopback measurement, the sound of this driver and the sound of the driver playing in the frequency range below unfortunately cancel each other out, because they act phase-rotated by 180° in this transition range. This results in a dip in the frequency response at this corner frequency.


A first solution to the problem would be to delay the driver below it so that it oscillates in phase with the driver above it. Then the sound would add up properly. However, the driver would then be slower in time, so the principle of drivers playing together without delay would be violated. For a better understanding, imagine a multiway system as an orchestra, where the musicians orient themselves to the respective person in front and not to the conductor. Therefore, an increasing time difference builds up to the musicians playing in the back. At the end, exaggerated, the music in the back is still playing while the piece in front has already ended. Musically, this is certainly not a pleasure.


A second solution would be to rotate the polarity of the underlying driver. Then sound addition and temporal interplay fit to each other again. Music listeners who are sensitive to absolute polarity will certainly notice this. Unfortunately, it has to be stated that such solutions are often used and deliberately reversed speaker drivers are not uncommon.


How can we properly solve the problem of time correctness?


Let's take a look at the phase chart of our example. Acourate usually cuts pulse responses so that the positive pulse maximum is at sample position 6000, 12000 or 24000 (pulse length 65536, 131072 or 262144 samples). The reason is to be found in the fact that with a position 0 one does not recognize what happens before the maximum of the pulse (e.g. preringing with undesired side effects). If we rotate the pulse response back to 0 by the proper number of samples, the phase diagram shows the given phase response of the respective driver:

In this specific case, the phase is now at 0° in the upper frequency range, but rotated by 180° at 230 Hz. Towards lower frequencies, a driver thus becomes slower, it is delayed in terms of time.


Now we design a 2nd order allpass around the frequency of the phase deviation of 180°. An allpass is specified by its fundamental frequency and the quality. Both parameters are set in such a way that the phase response is as similar as possible to the real phase (here f=225 Hz and Q=1.1):

Due to the reversed allpass, the driver starts to play earlier towards the lower frequencies and thus more timely (in relation to the upward adjacent frequencies of the respective driver). In the end, if possible, all frequencies of the driver to be transmitted are reproduced with fewer phase rotations and thus almost simultaneously. Extensive tests with the phase correction have shown that one should be careful especially towards lower frequencies (bass driver, mid woofer) and should not choose a too high value for Q, since this can lead to undesirable effects such as preringing. In the struggle for absolute time correctness, it is important to maintain the appropriate measure, since one cannot achieve at a perfect zero phase simply because of the "phase noise".


The pulse response of a measurement of chassis and crossover folded with reversed allpass rewards the effort with improved symmetry:

Here, too, it is not important that the pulse becomes perfectly symmetrical. The real system cannot be forced to do so. At least not alone with the aid of a simple and good-natured 2nd all-pass.


How does the procedure described above look for a multiway system?


As an example serves Holger's active 6-way horn speaker system, measured at the listening position without all-pass correction, but with time alignment of the drivers:

And the same now including the phase correction of the respective drivers with individual all-passes:

The phase response definitely looks much friendlier and this with a non-linearized system with elaborate 6 paths per stereo channel and thus multiple overlaps of the phase responses when using flat Bessel filters.


It should be noted that residual phase rotations remain, of course. The more phase-rotation-causing reflections are present in the room, the more pronounced they look. It therefore makes sense to reduce reflections as far as possible beforehand by means of appropriate absorbers/diffusors.

Here are the steps to achieve the outcome:

STEP 1: Do a driver measurement in near-field (or close-up) in the allowed frequency range by the logsweep recorder. Be careful: never ever run a tweeter with a low frequency signal. Check the driver specs.

The following is my left woofer measurement. The mic is placed at about 30 cm from the woofer.

STEP 2: load the measurement and check for the positive peak position x (I assume here that the driver is connected with correct polarity).

From the Impulse response above, we can see that the positive peak position is @6000

STEP 3: rotate the pulse response by -x, see the phase chart

Here I rotated the pulse by -6000. You can see that the frequency response curve did not change, but the phase and impulse response changed

STEP 4: design an allpass. Its phase curve should fit to the phase display of the measurement

In my case, I chose F0 = 20 and Q=0.4. Then you can see that the filter matches the phase curve very well

STEP 5: reverse the allpass

Now, if we want to see the effect on the current pulse, we can

  1. rotate the pulse back to 6000

  2. convolve with the reversed all pass filter

  3. cut "N" window using 65536 as shown below

  4. rotate back -6000 to compare with the original rotated pulse

We can see that the phase is a lot more consistent over the frequency range. The Impulse response is almost identical

Now let's have a look when crossover come into play. Here, you can see Curve 2 is our ideal XO and named X02L96. Curve 5 is this XO convolved with our measured Pulse. If you now look at the IR, the ideal XO is symmetrical but the one convolved with the measured Pulse is not.

Now, if we convolve the ideal XO with the phase corrected pulse, here is the impulse response. You can see that it is a lot more symmetrical.

So, How do we incorporated this technique in the workflow? All we need to do is to

  1. convolve the reversed all pass filter and the ideal XO

  2. CutNWindow the convolution result to the original length of the XO, select start position at position = length of reversed allpass

  3. save the new crossover and use it with this driver

  4. go through the driver linearisation etc