Jump to content
  • mitchco

    Advanced Acourate Digital XO Time Alignment Driver Linearization Walkthrough


    In this article, I walk through the steps using Acourate to create a 3-way digital crossover (XO) for tri-amping my speakers. Additionally, using the audio toolbox functions of Acourate, I walk through the steps of time aligning the drivers, linearizing each driver, and performing a final room correction.


    With respect to room correction, I recommend reading, “Acourate Digital Room and Loudspeaker Correction Software Walkthrough” for an introduction to Acourate. The article details the steps of acquiring a calibrated microphone, measuring the system, and designing a baseline room correction to provide the listener with a perceptually flat frequency response at the listening position.


    My goal is to make this guide repeatable so anyone following the same steps should be able to achieve similar results. Using digital XO, time aligning and linearizing the drivers, and correcting the room’s frequency and excess phase response, increases my systems imaging resolution so my speakers *disappear*.[PRBREAK][/PRBREAK]


    The objective measure is called Interaural Coherence Coefficient (IACC) which is a measure of channel and room reflection equality for the first 80 milliseconds of sound travel. IACC is a common standard especially for describing the spaciousness of sound in concert halls. Uli’s innovative use is in the opposite direction, to get a measure of channel and room reflection equality over time.



    System Under Test


    I am going to briefly describe the components of my system to assist in understanding how Acourate fits in. I have included a picture of my audio system to not only help visualize the components, but to show that my speakers and room are far from perfect. My speaker cabinets have the opposite of rounded edges for diffraction. Not really visible in the picture is that the stereo is offset in the room, where the left speaker is almost in the corner and the right speaker is midway on the long wall. My room has a poor ratio. The stereo offset and room ratio cannot be changed.


    On the positive side, I have added bass traps behind the speakers, thick carpet/underlay from speakers to listening position, broadband absorbers on the ceiling, and back wall to help reduce early reflections. I have carefully set up the system as symmetrical as possible given the physical room constraints.

    From a system design perspective, I favor full-range, high efficiency, dynamic floor standing speakers driven by Nelson Pass designed Class A amplification. The techniques described here can be applied to virtually any system that can be bi-amped or tri-amped.


    The speaker kit is a Bob Crites designed Cornscala Type C, which uses the same bass reflex enclosure as the Klipsch Cornwall (PDF), but with a 15” custom designed Klipsch clone woofer. Midrange: Selenium D405 (PDF) compression driver and 2380A horn. Treble: Selenium D220Ti compression driver and HM11-25 horn. Custom 500 Hz/5000 Hz passive XO. Aside from disconnecting the passive XO and wiring in additional speaker terminals, I replaced the high frequency compression drivers with a pair of BMS 4540 about six months ago as these drivers have frequency extension to 30 kHz.


    The amplification is Nelson Pass DIY A40 stereo Class A amplifier that drives the 97 dB @ 1w/1m sensitivity 15” 4 ohm woofers and 4 x DIY Amp Camp Amp’s (ACA) single-ended Class A Mosfet amplifiers drive the 110 dB and 114 dB @ 1w/1m sensitivity midrange and high frequency compression drivers respectively. While the ACA’s are rated at 6 watts, with the sensitivity of the compression driver/horn combos, I very rarely push 1 watt into them.


    It’s the woofers that require the power, and compared to the compression drivers, this sets the upper SPL limit of the system. With the passive XO, Bob Crites measured system efficiency to be 100 dB @ 1w/1m. At 10 watts that would be 110 dB SPL and sound twice as loud as perceived by my ears. 100 watts = 120 dB = threshold of pain or 4 times as loud relative to 1 watt. I have ~80 watts Class A stereo on tap (with 260,000 micro-farads of power supply reservoir capacitance) for the woofers, so estimate around 117 dB max SPL. That is way more SPL than I would ever listen to in a home environment and it’s nowhere near the maximum power rating of any of the drivers. Conversely, at the other extreme, the speakers sound full-range and dynamic, even listening at 65 dB SPL.


    The A/D D/A Converter is a Lynx Hilo which is a two channel converter, but is flexible enough to be configured for 6 D/A channels, with level trim on the analog outputs to the mid and high frequency amplifiers. This allows me to level balance the higher sensitivity compression drivers to the lower sensitivity woofer and bass reflex cabinet combo.


    The computer audio music player is JRiver MC 19 in which I use its built-in 64-bit Convolution engine to host the Acourate designed FIR filter. The FIR filter contains the 3-way linearized XO’s, time alignment adjustments, and room (frequency and excess phase) correction. The stereo music played through JRiver is convolved in real-time with the Acourate designed FIR correction filters and outputs 6 digital channels. These channels are routed through Lynx Hilo’s digital patch system to the appropriate analog outputs (with level trim for mids and highs) which are plugged directly into the inputs of the 6 amplifiers. Volume is controlled digitally (with volume protection) by JRiver.


    With the brief “system under test” description out of the way, let’s get started. The high level steps are:


    1. Create a 3-way digital XO, measure the system, perform an intermediate room correction, report IACC and listening results.
    2. Time align the drivers in each cabinet, measure the system to verify time alignment, perform an intermediate room correction, report IACC and listening results.
    3. Linearize each driver by measuring 30cm on axis to each driver, check distortion characteristics, and measure the linearized drivers for verification.
    4. Perform final room correction using the time aligned and linearized XO’s, report IACC and listening results.



    Digital XO


    The sonic benefits of bi and tri-amplification are well documented. However, with the advent of massive personal computing power, coupled with the power of sophisticated audio DSP software like Acourate, we can create virtually any digital XO we desire at high resolution (64 bits). I recommend reading Dr. Uli Brueggemann's (author of Acourate) paper entitled, “Thoughts on Crossovers” (PDF).


    Digital XO enables driver time alignment, and linearizing each individual driver, with the goal of increasing the systems IACC.


    I am ready to create my first Digital XO. Again, I recommend reading the introduction article to become familiar with working with Acourate, setting up work spaces, etc., as I will not be covering these procedures here.


    Launch Acourate:





    From the Generate Menu, select Crossover:





    As described in Uli’s Digital XO article, there are several XO filter types to choose from. In my case, I am selecting the default Neville-Thiele, 2nd order filter and entering in the same XO corner frequencies as my passive XO’s of 500 Hz and 5000 Hz:





    Click Calculate and Save:





    If I look in the Acourate workspace directory, I see the generated XO files:





    Now load up the left side 3-way XO’s in Acourate. Remember, each time a file is to be loaded, make sure the appropriate active curve radio button is selected. For the 3 XO files here, I selected radio buttons 1, 2, and 3 before loading each curve:





    This is what the XO’s look like when loaded into Acourate. Looking at amplitude:






    Here are a couple of ways to view the digital XO’s to get familiar with what is happening. When the amplitude scaling in the time domain chart is set to Auto one can view/unview each curve by the according checkbox in the chart legend.





    See how the amplitude in the chart is changing when XO3 is unselected and then XO2. The lowpass filter has a pretty small amplitude compared to the highpass filter, but the frequency response chart has the same level 0 dB for all crossovers. I did not include the individual pics for this as it is best to unselect interactively with the software so one can see the level changes in the time chart. It is a worthwhile exercise as later in the article we will need to locate the pulse peaks for each driver in order to time align the drivers.


    One can add the three crossovers by using TD-Functions - Addition into an empty curve (series):





    The result is a perfect Dirac pulse in the time domain:





    See how the XO’s amplitudes sum together in the frequency domain:







    Acourate crossovers (and correction filters) are generated in the sequence 1L, 1R, 2L, 2R, 3L, 3R. This means bass left, bass right, midrange left, midrange right, tweeter left, and tweeter right.


    Next step is to generate a multiway wav file that contains the XO’s to be used in the measurement. Under the File menu, select Save Multiway Filter WAV:





    Here I select XO1L96.dbl. The save dialog appears, give it a name to indicate a multiway filter:





    Click save. Now from the LogSweep Menu, select LogSweep Recorder:






    It is assumed that one knows how to load the mic cal.wav file from the introduction to Acourate article. Clicking in the Filter field will open a dialog box. Choose the multiway wav filter that contains the XO’s that were just saved. The label should now display a 6 channel filter.


    The LogSweep Recorder will use 6 continuous channels starting with the first selected output channel in ascending order. E.g. if output channel 1 is selected, then the speaker drivers have to be connected by
output1 = bass left, output 2 = bass right, output 3 = midrange left, output 4 = midrange right, output 5 = tweeter left, output 6 = tweeter right.


    Of course one can change the physical connections and use the routing capabilities of a soundcard or converter mixer. But the logical channels will follow the same principle. The LogSweep Recorder will automatically play a left and right sweep in the correct channel sequence.


    The resulting pulse responses for left and right channel will contain the recorded signals of all 6 drivers.


    Before clicking on Start Recording, ensure that the output level is at a reasonable level. Also check that the sweep start and end cover the desired frequency range. In my case, I am sweeping from 10 Hz to 30 kHz with a 96 kHz sample rate. However, best practice is to use a 48 kHz sample rate and sweep to 24 kHz (i.e. 10 Hz to 24 kHz).


    Click Start Recording. Once the recording is finished, both PulseL96 and PulseR96 will be displayed:





    The intermediate step here is to produce a Room Correction as per the introduction to Acourate article, have a seat, and listen to the results. I am not going to walk through the room correction process here as I am saving that for the final correction. But one does need to know how to configure JRiver’s Output and Convolver, and prepare a configuration filter file format for referencing the FIR filters in order to listen to the intermediate room correction.


    Configure JRiver for 6 output channels:





    Configure JRiver’s Convolver to host the FIR filter config file:






    Here is a link to the description of cfg file format and an example cfg file that can be downloaded.


    If one follows the room correction procedure in the introduction to Acourate article, the last step is to run a Test Convolution. Here is the result of the measured and corrected IACC:





    Note the overall IACC values. From a listening perspective, and I am not good with subjective descriptions, I hear the benefits of active XO’s as linked to earlier. The sound remains crystal clear as the volume increases with no hint of dynamic range compression or distortion. When I had the passive XO in place, and with the A40 amp cranked up, there is enough current to make it buzz euphonically.


    With a baseline digital XO and room correction in place, proceed to time aligning the acoustic centers of the drivers in each speaker cabinet.



    Time Alignment


    If one took the time to examine the digital XO’s in the time domain, as described in the XO section, it would have been noted the different amplitude peak levels for each XO. The high frequency XO being the highest amplitude and the low frequency XO the lowest. When looking at the impulse response of a speaker system, most folks look at the peak, which is usually the tweeter’s peak and does not necessarily include the bass or midrange peak, especially if the system is not time aligned.


    To help find each peak in the time domain for each driver, I am going to create another XO, but this time with an artificial delay built in. The idea is that if each driver is separated by a known delayed amount, it will be easier to pick out the pulse of each driver and determine if the drivers are time aligned or not.


    For example, I am going to delay the midrange by 1000 samples and the tweeter by 2000 samples. If the tweeter and midrange were aligned perfectly with the bass driver, I would measure the midrange exactly 1000 samples behind the bass driver, and tweeter 1000 samples behind the midrange.


    As a side note, every time a sweep is made using the LogSweep Recorder and displayed in the time domain chart, the software finds the highest peak amplitude (i.e. the tweeter) and sets the peak at sample 6000 on the time domain chart. It is important to keep this in mind for the following procedure.


    In a separate workspace, generate another XO in Acourate, same XO values as before, but note the added delay of 1000 samples in the midrange XO (Delay 2 = 1000) and 2000 samples in treble XO (Delay 3 = 2000):





    Click Calculate and Save. As before, under the File menu, select Save as multiway WAV and load this into the LogSweep Recorder:





    Start Recording. Once finished, what I want to do is load the left pulse that I just measured along with the 3 “original” left XO’s (i.e. the ones with no delay) into Acourate. The non-time delayed XO’s are going to be my visual “helpers” to find the pulse peaks for the woofer and midrange driver. Should look something like this:






    Now for some math. The originally generated XO’s are linear phase filters, so the peaks are at the midway point of the total number of samples. 65,536 taps divided by 2 = sample position 32768 is where the XO peaks are located.


    The tweeter in Pulse96 (that I just measured with the delayed XO’s) is located at sample 6000. It is the highest red peak towards the left side of the time chart. Remember for every sweep, the highest peak (i.e. the tweeter) is automatically set to sample 6000.


    With treble XO selected as the active curve, using TD-Functions, select Rotation. What I want to do is rotate XO3 by -26768 samples (i.e. 32768 – 6000) for comparison. We use the – sign to indicate rotation to the left. Another way to think of rotation is time or distance. The resolution is 1 sample. So, 1/96000 = .01 milliseconds. In distance that is .343 centimeters or 0.135”. After clicking Rotate Signal:





    Now select active curve XO2 and rotate by -27768 (i.e. 32768 – 6000 + the 1000 sample artificial delay). Then select active curve XO1 and rotate by -28768 (i.e. 32768 – 6000 + the 2000 sample artificial delay). Clicking on the Time radio button displays:





    As mentioned previously, if the tweeter and midrange were aligned perfectly with the bass driver, I would see the midrange exactly 1000 samples behind the bass driver, and tweeter 1000 samples behind the midrange.


    To find the bass driver pulse peak, we use XO1 as the visual “helper” to assist in locating the peak. Unselect XO2 and XO3 in the chart legend. Using the markers, zoom in around 3000 to 6000 sample range. Given the low level amplitude of the bass driver, one will also have to turn the Auto amplitude check boxes off and enter in smaller values in order to see the bass pulse peak. Check and uncheck XO1 to ensure that the bass peak is being located:




    The green curve is XO1 and the red curve is the bass pulse peak. Ensuring that I have selected Active Curve 1, (i.e. Pulse96L), I can set the left and right markers on either side of the pulse and read the MaxM sample number (highlighted top right in the chart below) which automatically detects the pulse peak for the bass driver:





    The bass peak is at sample 4030. Also note the positive polarity of the signal. This is a good way to check each individual driver’s polarity.


    Following the same procedure as above, but now with XO2, locate the midrange peak. Again, one may have to check and uncheck XO2 to be sure it is the midrange peak being located and adjust the chart amplitude numbers accordingly:





    The green display is XO2 and the red display is the midrange peak. Setting the markers again, and looking at the MaxM number highlighted to the right of the chart, the midrange driver peak occurs at sample 5060.


    Therefore the distance between tweeter and bass is not 2000 samples, but 1970 samples (i.e. 6000 – 4030). The distance between midrange and tweeter is not 1000 samples, but 940 samples (i.e. 6000 – 5060). Therefore the tweeter is too quick. Or put another way, the acoustic center of the tweeter is before the acoustic center of the midrange and bass. In fact, all 3 drivers are not acoustically aligned. I repeated the same procedure for the right channel, and the delays measured the same.


    If I delay the tweeter by 30 samples, that lines up with the artificial distance to the bass of 2000 samples (i.e. 1970 + 30 = 2000). If I delay the tweeter by another 30 samples (60 samples total) and the bass also by 30 samples, then it all lines up to the midrange. In other words, the bass needs to be delayed by 30 samples and the tweeter by 60 samples to line up with the acoustic center of the midrange driver.


    To do this, create another workspace and generate new XO’s without any delays. Then open up both the left and right XO1 (bass) and rotate each one to the right by 30 samples (TD-Functions – Rotation). Save each one (overwrite) with the same name. Now open up left and right XO3 (treble) and rotate each one to the right by 60 samples and save each. Read this paragraph again to be sure of the procedure. It is easy to make changes to the wrong XO or not save one.


    Another way to do this is rotate XO1 (bass) to the left -30 and XO2 (midrange) rotation to the left by -60 to line up with the tweeter, instead of the midrange as described in procedure above. In the end, this produces the same result as above, but keeps the tweeter XO peak at 32768. This may be an easier way to understand and makes it easier to verify the time alignment as the tweeter is always referenced at sample 6000.


    Whichever way is chosen, the next step is to create and save the multiway WAV file and load the new time aligned XO into the LogSweep Recorder and take another measurement.


    However, if one wishes to verify the time alignment results first, create another XO, this time with the Delay 2 = 1000 and Delay 3 = 2000. Then rotate the appropriate XO’s by the values obtained above. Create and Save the multiway WAV filter, load into LogSweep Recorder and take another measurement. Using the same procedure as before to locate the peaks (more rotations), one can verify that the midrange is exactly 1000 samples behind the bass driver and tweeter exactly 1000 samples behind the midrange. I verified in my system that this is the case.


    Once verified, use the new XO’s, with the correct delays (i.e. in my case bass delayed by 30 samples and tweeter by 60), and re-measure the system and use those new measures to perform another intermediate room correction. Again, refer to the introduction to Acourate article for the room correction procedure:





    After following the room correction procedure, and generating the Test Convolution, here is the IACC:





    Time aligning the driver’s results in an incremental improvement over the previous IACC values.


    Subjectively speaking, I was surprised at how much time alignment made an audible difference. Probably exacerbated by the fact it is a 3-way system and none of the drivers were aligned. The audible difference can be described in two ways.


    The depth of field of the stereo image (or soundstage or soundscape) appears to resolve to infinity behind the speakers. Another way of putting it is point source sound. I have listened to a few time aligned speakers and monitors over the years and was always impressed by their capability to resolve depth of field.


    But what really surprised me was the tone quality of the speakers changed, for the better. There was something about my system that did not sound quite right tonally. Even after tri-amping, it was still there, and I thought it would go away as my first suspicion was the drivers were operating outside their linear range of operation as the passive XO is only 6 dB per octave. But that wasn’t it.


    However, once the system was time aligned, the tone quality issue I heard is now gone. I suspect my ears are sensitive to the tweeter arriving first as it always had a forward sounding tone quality, no matter how it was eq’d. Whatever the cause, those minor tonal issues are now absent.



    Driver Linearization


    The idea is to measure each driver, in my case, tweeter, midrange, and woofer, in the near field. Near field meaning positioning the mic on axis to each driver 30cm away.


    It is always good to check the behavior of the drivers by examining their distortion characteristics. We want to see if the driver’s distortion is linear over its operating range as the driver could possibly exhibit anomalies near the XO frequencies and may require adjusting the XO corner frequency.


    I will start with the left tweeter first. Looking up the specs for the BMS 4540 compression driver that I linked to in the system description earlier, it states that its frequency operating range is from 1200 Hz to 30 kHz. So that’s what I used as the sweep range in the LogSweep Recorder:





    Careful, with respect to output volume and the channels that the LogSweep Recorder is routed to. For example, what I don’t want to do is sweep the tweeter full range (i.e. sweep start = 10Hz) as that will likely damage the tweeter. Always double check before start recording. Also note to leave the mic in the same position as the procedure is to check the distortion, linearize the driver with the XO, and then check the result of the linearization, then move on to the next driver.


    Start recording. Here is the result of the recording after I deleted the right sweep as I am only interested in the left tweeter at this time:





    In this first section of these steps, I am going to walk through how to extract and view the distortion characteristics.


    Copy the files: \MyDocuments\Acourate\Logsweep\Logsweep96_rec.wav and Inverse96.dbl into the workspace folder because the recording always gets overwritten with each new recording. I renamed the files to add Left in front of the name of the file, so I do not overwrite anything as I continue with the procedure.


    Under the Edit menu, clear all curves. Under the LogSweep menu, select LogSweep Convolution *without* pulse extraction. Set result curve to Series 1:





    The LogSweep measurement file is named: LeftLogSweep96_rec.wav and the LogSweep inverse file is named: LeftInverse96.dbl.


    Now switch to the time domain chart:





    Select the main peak in the time domain chart using the left and right markers:





    Under the LogSweep menu, select Extract pulses and harmonic distortion. Check the logsweep parameters to make sure it matches the sweep range started out with:





    Click Extract Pulse and Distortion:





    What is displayed is the basic pulse response plus 4 series with distortion k2 to k5. The distortion is sample rate converted. So a k2 distortion bump at e.g. 1 kHz can be compared to k1 at 1 kHz (indeed the distortion is at 2 kHz). In the case of the BMS 4540 compression driver, looks good with no anomalies across its operating range, plus no issues at the XO frequency I have selected (e.g. 5 kHz.). While I did not calibrate the level, one can always look up the distortion by converting dB to percent distortion. If interested and want to review the details later, one can save all 6 curves.


    The next steps of this procedure is to linearize the tweeter. Again, leaving the mic in its original position as the tweeter will need to be swept again to verify the linearization.


    From the Edit menu, clear all curves.


    Load the pulse – in this case LeftPulse96





    Apply TD-Functions - Frequency Dependent Windowing: 15/15, 15/15 cycles before/behind the pulse peak. Select Series 2 as the result curve:





    Click Calc sliding window:





    Set the markers to frequencies 2570 Hz and 24627 Hz. At this position the smooth curve has peaks, so I am interested in linearizing this range and discarding the rest:





    Apply TD-Function - Phase Extraction - minphase - below 2570, above 24627. Note my markers are off a bit, but it’s not critical to be identical:





    Apply FD-Function - Amplitude Inversion – minphase:





    Click Calculate Inversion:





    Zoom in on amplitude a bit for a closer view.


    Before then next step, ensure that Active Curve radio button 5 has been selected, otherwise the existing curve will be overwritten and will have to start over again.


    Load the crossover XO3L96 that I actually use into active curve 5. Actual XO meaning the time aligned XO that was prepared in the time alignment procedure.





    Apply TD-Function - Convolution of Inverse and XO:





    Click Convolution:





    Before the next step, select Active Curve radio button 2 and clear curve from under the edit menu as I do not require this anymore and need space for another curve. Once Curve 2 has been cleared, make sure that Curve 6 radio button is selected as the active curve to apply the next function.


    Optional: If one switches on File – Expert Mode, I can save the result of a calculation in any of the series and thus overwrite an existing curve. This makes the handling of a lot of curves sometimes easier.

    Apply TD-Function - CutNWindow - length 65536, start position 0, no windowing:





    Click Cut’N Window:





    Uncheck the display of all curves except the original XO and the CutNWdw.


    Apply TD-Function - Normalization - individual gain. This sets the max gain to 0 dB:





    Click Normalize:





    Save the linearized XO (i.e. CutNWdw active curve 2) as the new XO3L96.





    Now re-measure the tweeter with the new linearized XO in place to verify the result. To do that, clear all curves, open up the new XO .dbl file, and save as a mono wav file to load into the LogSweep Recorder:





    Launch the LogSweep Recorder and load the XO mono wav file. Make sure the frequency sweep range, output level, and channel routing is the same as started with at the top of the procedure:





    Start recording.





    The green curve is the original measure and the red curve is the measurement verification after linearization within the XO range. Zoomed in view to get the picture:





    Note these are full resolution displays, no smoothing has been applied.


    Went from ±6.5 dB to ±1 dB response within the tweeter XO range at 30 cm. distance.


    The idea is to repeat this procedure for each individual driver, in my case 5 more drivers. Patience is a virtue.


    There is some contention as to whether the bass drivers should be linearized due to the wavelengths involved. There is no doubt going to be some room interaction. However, in my case, it turns out the IACC increased with the bass drivers linearized as opposed to not linearized. If you are following the procedure, go ahead and measure and linearize the bass drivers.


    Linearizing the midrange driver, using the frequency range from the spec sheet (i.e. 300 Hz to 7 kHz), went from ±7 dB over the frequency range and the linearized measure is ±2 dB. Again a significant improvement.


    Same improvement for the woofer. Rather than showing each individual drivers distortion and measurement result, here are the before and after driver linearization results for the left side at 30cm distance on axis for each driver.













    Again, full resolution displays with no smoothing. The right side is virtually identical in both response and distortion characteristics. As it turns out, I did not have to adjust any XO corner frequencies. However, I may experiment by lowering the bass to midrange corner frequency.


    Here are the regular XO’s compared with the linearized XO’s, left side:








    Final Room Correction





    At this stage, I have created the digital XO, time aligned, and linearized all drivers. Referring to the introduction article on Acourate, I used the exact same room correction steps and parameters in this article for consistency and being able to compare.


    It is presumed that one has already saved the final XO’s, created the multiway wav filter, loaded the filter in the LogSweep Recorder (along with the mic cal file), and taken a measurement at the listening position. Here is the result of my measurement, looking at the amplitude response and zoomed in a bit:





    Under the Room menu, select Room Macro 1: Amplitude Preparation:





    I feel it is worth pointing out that Uli’s measurement analysis uses a proprietary frequency dependent windowing (FDW) algorithm. Having used several acoustical analysis software packages over the years, to my ears, Acourate represents best what I see on the charts compared to what I perceive with my ears. The FDW is long at low frequencies (100’s of milliseconds) and short at high frequencies (< a millisecond). I recommend Ackcheng’s site for technical details as it is an important concept to understand.


    Run Macro 1: Amplitude Preparation:





    While I was able to get flat frequency response from the drivers at a distance of 30 cm, I can see the effects of the room on the response in the low end at a distance of just over 3 meters to the listening position. Easily taken care of by the room correction. Above 1 kHz, the response is already ±2 dB to 28 kHz.


    Select Room Macro 2: Target Curve Design:





    As mentioned in the introduction article on Acourate, it is very important to get the target curve flat to 1 kHz, and using 1 kHz as a hinge point, make a straight line to -6 dB at 20 kHz. This target design represents a perceptually flat frequency response at the listening position.


    One may have to zoom in to be sure, because as little as .1 dB off will make an audible difference as the straight slope covers a broad frequency range from 1 kHz to 20 kHz. Save target as target.dbl.


    An alternative way, which I use, is to prepare a text file with pairs of frequency and amplitude:


    100 0

    1000 0

    20000 -6



    Then File – Import Amplitude…, save as target.dbl, and use that in the next step. It is worth the extra time to get the target specification exact.





    Run Room Macro 3: Inversion:





    Run Room Macro 4: Filter Generation:





    Note that the Excess Phase window also uses frequency dependent windowing. Here is more information on pre-ringing compensation.




    I hope folks understand that with frequency dependent windowing of both amplitude and excess phase, and a FIR filter length of 65,536 samples, why the bass response in this listening position still sounds even.


    In fact, the bass response sounds even no matter where I listen in the room.


    To check the proposed room correction, run Room Macro 5: Test Convolution. Here is the IACC:





    The process of linearizing the drivers has made a significant impact on improving the IACC from the previous values.


    Here I am looking at the frequency response with frequency dependent windowing applied (i.e. Room Macro 1: Amplitude Preparation) on the correction:





    Note the vertical amplitude scale. Other than a couple ±2 dB swings, the response is ±1 dB from 32 Hz to 2 kHz and ±0.5 dB from 2 kHz to 28 kHz within the perceptually flat target response. Equally important is how closely the two channels are identical to each other.


    Step response in the time domain:





    For further points on step response and other Acourate technical thoughts, refer to Ackcheng’s excellent site. CA readers may also be interested in reading about Tony Knight’s system.





    Replacing the passive XO with Acourate digital XO, time aligning and linearizing all drivers, and applying room correction, has significantly (audibly and measurably) increased the tone quality and imaging resolution of my system. With the grills on the speakers, no one would believe it is a horn based system.


    To try and relate what this means, allow me to share a short story. Over 40 years of listening to music on audio systems, 10 of those as a recording/mixing and live sound engineer, I can’t count the number of systems/environments I have heard – hundreds. But I do remember the best sounding system/environment being a studio in Vancouver, Canada, where no expense was spared for the acoustic design and gear. I was there from the ground up studio and control room build, to paying customers using the facility. I learned a lot about the acoustic design of a state of the art recording and mixing studio.


    Listening to this state of the art system/control room at first is a bit startling as it does give the real sense of envelopment, like I was actually sitting in the studio at the mic position and having the studio sound envelop around me. Setting up a stereo pair of mics in the studio, the control room monitors disappear and one gets a real sense of being *in* the studio as opposed to listening *to* the studio. It is the closest representation I have heard compared to physically being in the same space as the musicians.


    In addition to the reflection free zone (RFZ), and properly diffused room decay, the acoustic design of this control room had no parallel surfaces, and literally one half of the control room is an exact mirror image of the other half. The purpose being is to make the left and right channels response as identical as possible, over a finite period of time. Subjectively, this is what makes speakers “disappear” and all one is left with is the sound image.


    Uli achieves similar results through the use of high resolution (64 bit) digital signal processing in his Acourate software where each channel and room reflections are tuned as close to identical over a defined time period. The objective measure is called IACC. I have shown by using Digital XO, driver time alignment and linearization, and room correction all contribute to increasing my systems IACC.


    Please note that an average setup results in an IACC around 75% based on Uli’s experience. Higher IACC values, like what I have obtained (88.5% and 87%), does require very careful setup and consideration to room design, as I have outlined in the system under test section.


    Using Uli’s designed FIR correction filters, I get that same sense of envelopment and being immersed in the sound as compared to the state of the art system/control room mentioned above. For example, the song Chaiyya Chaiyya has a vibrato synth or string effect that slowly sweeps from one channel to the other. This sound extends well beyond the left and right physical location of the speakers. One gets the sense that it reaches all the way to the listening position and is directly perpendicular to the left and right ears as the effect sweeps. The sense of envelopment, image height, width, and depth of field feels like being in the music.


    The Live Cream Album at Royal Albert Hall is an excellent live recording that has a stereo pair at the house mix position, in addition to the stage mics. One can really hear the envelopment of the Hall. Jack Bruce’s bass guitar and vocals on Spoonful sound staggeringly huge with the Albert Hall reverb. Listening to the image size of Cream in Royal Albert Hall belies the actual physical size of my listening room, and not in an exaggerated way either. The feeling is like being in the recorded music’s acoustic space. I never thought I would hear that in my living room.


    Acourate optimizes my system to reproduce the music as close as possible to the content of the recording. Highly recommended!


    Thanks to Bob Sutcliffe who took the photos of my system.


    Enjoy being in the music!


















    About the author



    Mitch-200.jpgMitch “Mitchco” Barnett

    I love music and audio. I grew up with music around me as my Mom was a piano player (swing) and my Dad was an audiophile (jazz). At that time Heathkit was big and my Dad and I built several of their audio kits. Electronics was my first career and my hobby was building speakers, amps, preamps, etc., and I still DIY today ex.png. I also mixed live sound for a variety of bands, which led to an opportunity to work full-time in a 24 track recording studio. Over 10 years, I recorded, mixed, and sometimes produced ex.png over 30 albums, 100 jingles, and several audio for video post productions in a number of recording studios in Western Canada. This was during a time when analog was going digital and I worked in the first 48 track all digital studio in Canada. Along the way, I partnered with some like-minded audiophile friends, and opened up an acoustic consulting and manufacturing company. I purchased a TEF acoustics analysis computer ex.png which was a revolution in acoustic measuring as it was the first time sound could be measured in 3 dimensions. My interest in software development drove me back to University and I have been designing and developing software ex.png ever since.



















    User Feedback

    Recommended Comments

    You are awesome! Fantastic work and fantastic record of your work.

    Share this comment

    Link to comment
    Share on other sites

    Very impressive work - worth registering for as a new member! It strikes me that the many steps you went through are straightforward but rather complicated, and lend themselves to a rules-based approach to perhaps automate a bit that would help the engineering-impaired. Perhaps Uli (with help from the likes of you) could develop something within Acourate to do that. I don't propose that the result would be as good as what you achieved, but what if Acourate had a "novice" option to use a more rules-driven, automated approach, and an "expert" option that is essentially manual like your experience?

    Share this comment

    Link to comment
    Share on other sites

    Wow. This is really a great work.

    I am impressed about your effort and clear forward thinking.


    Share this comment

    Link to comment
    Share on other sites

    Hello realhifi, lazy, and Juergen. Thanks for your kind words. Welcome to CA lazy! The room correction "macros" are rules driven. I will mention to Uli and see what the possibilities are for rules driven time alignment and driver linearization. Best regards, Mitch

    Share this comment

    Link to comment
    Share on other sites

    Very interesting article. The price of the software was holding me back until now, but this brings a whole new angle to the package.

    Would it be possible to send the 6 xo channels as a 6 channel pcm signal over S/PDIF from J River to a Surround Amp/Processor/Pre Amp?

    Share this comment

    Link to comment
    Share on other sites

    Mitchco, on a note related to justM, when you get a chance could you add a diagram of exactly how you connected all of your components to do what you did? I did look up the Hilo user guide and I see how that can be configured for 6 channels (impressive), but figuring out exactly how everything was wired is a struggle for me. Thanks!

    Share this comment

    Link to comment
    Share on other sites

    Thanks for the fantastic post, Mitch!


    Inspirational :-). Will have to look into Acourate in the days ahead.

    Share this comment

    Link to comment
    Share on other sites

    Mitchco, on a note related to justM, when you get a chance could you add a diagram of exactly how you connected all of your components to do what you did? I did look up the Hilo user guide and I see how that can be configured for 6 channels (impressive), but figuring out exactly how everything was wired is a struggle for me. Thanks!



    I think I figured most of it out. You connected a digital stereo out from your PC to the Hilo, and then from the Hilo to each of 3 stereo (or 6 mono) amps, and then from the amps to each of the drivers in each speaker. I'm not clear on how you exactly connected the microphone to ensure accurate loopback capability for timing measurements.


    Also, please correct me if I'm wrong, but it would seem that one could not do accurate time measurements with a USB microphone like the UMM-6 because it has an A/D converter embedded in the microphone that would be clocked differently than the digital signal output from the PC.

    Share this comment

    Link to comment
    Share on other sites

    Hello justM, have a look at the link in the article, just before the Conclusion, that points to Tony Knight's system. There is a diagram that is somewhat different than what you are asking for, but is conceptually similar.


    Hello lazy, yes, the Hilo is connected via USB to the computer and Hilo's 6 analog outputs are input to the 6 amplifiers. Internally, the Hilo has a 32 x 32 channel mixer that allows one to route any input to any output, including digital and analog loopback. However, Acourate does not require patching manual loopback, but does require ASIO. With respect to measurement mic requirements, and how to hook up, please refer to the intro article on Acourate.


    Hello Archimago, thanks for the kind words. Keep up the great writings!


    Best regards, Mitch

    Share this comment

    Link to comment
    Share on other sites

    Jonathan Valin published a review for a $140,000 pair of speakers in the October 2013 TAS. He went to the speaker factory and observed the driver nonlinearity on the "scope." In the end, he concluded "DSP Can NEVER work."(emphasis not added). I don't even want to mention the openly defensive and hostile response in last month's letter to the editor to a reader who challenged Mr. Vain's conclusion.


    Mitch, I think you've demonstrated otherwise with slightly less expensive gear. :-) The problem with DSP is getting folks to accept that all rooms and speakers are imperfect. The challenge is to carefully use the available technology to overcome. No matter how good or bad the system, there are huge benefits for everyone. That scares some speaker manufacturers a little, I guess.

    Share this comment

    Link to comment
    Share on other sites

    Great work and an inspiration Mitch! I am curious what sort of linearization can be done with acourate for a passively crossed-over speaker in addition to RC functionality. I gather that a near field measurement of say a 2-way can be linearized in the same manner as individual drivers given a certain bandwidth parameter, then RC correction filter at far-field? I can't wait to start playing with acourate once I have the extra bones to pull the trigger. Hopefully within the next couple months. Your articles are going to be incredible resources for all of us, so thank you kindly for not only the effort to optimize your own system by tlearning the steep curve here, but also for memorializing the process for the rest of us. You rock!

    Share this comment

    Link to comment
    Share on other sites

    Hi Michael, thanks! While I was working at the state of the art studio, I gave up on my home system, which at the time were Magneplanar 2.6R's (with real ribbons) paired with a Classe Audio DR2 Class A amp. Nothing wrong with the gear, but the sound quality could not compare to the purpose-built acoustically designed facility. And for good reason, that state of the art facility cost several hundred thousand to construct (without gear).


    I got back into it not too long ago when I came across high resolution DSP software designed to optimize ones speakers and room. At the time I had a very lo-fi setup (Logitech G51 plastic computer speakers :-) and to my surprise, I heard an inkling of what may be possible. The full realization of which is now contained in this article.


    Hi scintilla, thanks for the kind words. Yes, Uli confirms that one can measure a passive speaker in the near-field (best in free-field to avoid as much reflections as possible) and derive an overall linearization filter. The filter can also be used as pre-filter in the LogSweep Recorder. The final room correction filter will contain both the speaker correction and room correction. Have fun!


    Best regards, Mitch

    Share this comment

    Link to comment
    Share on other sites

    Hi Mitch,


    Been a bit of a voyeur when it comes to Acourate, but your post has come at the right time and has persuaded me to push the button on the software and mic.


    I have bought a Void Indigo speaker system, and need to use the XO function as well as the DRC of Acourate to get it up and running.


    To that end i have bought an 8 channel ADC / DAC - the Lucid 88192 which i can find at a good price.


    Jriver will take over the front end and volume control duties.


    i will send digital audio out via the toslink on my computer and into the Lucid running at 48KHz (until i find a 24/192 card with a decent AES digital output.)


    Is relying on JRivers volume control a safe option and are there any glaring problems you would forsee?





    Share this comment

    Link to comment
    Share on other sites

    Hmmm - what i thought was an ADAT port on the back of my computer is actually an SPDIF via toslink.


    Are there any cheap multichannel soundcards that output digital over AES / EBU at 24/192?


    If not i will have to move to a lynx aes16...

    Share this comment

    Link to comment
    Share on other sites

    Hi Mitch,


    Been a bit of a voyeur when it comes to Acourate, but your post has come at the right time and has persuaded me to push the button on the software and mic.


    I have bought a Void Indigo speaker system, and need to use the XO function as well as the DRC of Acourate to get it up and running.


    To that end i have bought an 8 channel ADC / DAC - the Lucid 88192 which i can find at a good price.


    Jriver will take over the front end and volume control duties.


    i will send digital audio out via the toslink on my computer and into the Lucid running at 48KHz (until i find a 24/192 card with a decent AES digital output.)


    Is relying on JRivers volume control a safe option and are there any glaring problems you would forsee?






    Hi Mike, cool project!


    With respect to 24/192 AES card, in addition to CA, you might try searching/posting at the Acourate forum and JRiver sound card forum if you haven’t already.


    JRiver’s digital volume control has worked flawlessly for me. The volume protection works perfectly and the SQ is as good as it gets.


    Let us know how your project progresses.


    Best regards, Mitch

    Share this comment

    Link to comment
    Share on other sites

    Thanks Mitch,


    I will post some pictures Christmas and new year, when i get a chance to get things up together. The Lucid converter was a bit of a punt, but at £400 for 8 channels of AD / DA, it has got to be worth a shot.


    Will pick up an AES card now, so the computer can talk to the DAC.


    Have been selling off random bits of audio equipment to fund the project - should keep me entertained for a while!


    The last bit to get will be Acourate :-)



    Share this comment

    Link to comment
    Share on other sites



    i would love to see a walk-thru for us mac folks using e.g. PureMusic/Vinyl's built-in crossover and fuzzmeasure plus a calibrated mic. i've been trying to time-align the three drivers of my speaker using fuzz, but i'm not sure whether using impulse or step response or time aligning for phase.


    also i wonder if i'm really the only one that does not like LR 4th order crossovers? i find they do more harm than e.g. a 3rd order butterworth.



    Share this comment

    Link to comment
    Share on other sites



    Great article, thanks for the in depth look at this.


    The amplification is Nelson Pass DIY A40 stereo Class A amplifier that drives the 97 dB @ 1w/1m sensitivity 15” 4 ohm woofers and 4 x DIY Amp Camp Amp’s (ACA) single-ended Class A Mosfet amplifiers drive the 110 dB and 114 dB @ 1w/1m sensitivity midrange and high frequency compression drivers respectively. While the ACA’s are rated at 6 watts, with the sensitivity of the compression driver/horn combos, I very rarely push 1 watt into them.


    In college, one of my projects was electronic xover. I took a VAX11/780 (dating myself) that would measure the drivers and determine the xover points which then I could use to make the xover. But an interesting part of that study was one about amplifier usage. I was using a modified Dynaco Mark III for the base and then my stereo push pull EL34 amp (not an ST70) on the midrange and a SET triode connected EL34 for the tweeters.


    I went back and forth and so much more and we talked about the design with a ton of people then it was realized that between 150-8KHz that you really had to use the same amplifier. The reason was that the differential in sound between the amplifiers was greater than the differential in sound of the drivers or the electronic xover.


    The differential in sound of say a SET transistor amp and a PP transistor amp is going to be huge. Same for tube stuff...


    @ RMAF this year we showed plasma tweeters which had their own electronic xover and driver. The same thought went into this that my papers had back in college. Some real thought has to be made here and people who think midrange starts at 1KHz are all nuts. Remember open E string on a guitar is 80Hz!! Middle C is what like 260Hz on a piano and A over middle C is 440Hz. Most of the vocal range happens way before 1Khz.


    I think if you are looking for a more accurate system you may want to take a look at the amps.




    Share this comment

    Link to comment
    Share on other sites

    Hi Mitch,


    Excellent article.

    When I read about Acourate months ago, I was skeptical about its capabilities. Software like that in your hands truly shine. Now I can get the whole picture and I just want to buy it to apply the knowledge I got by reading your *amazing* article.


    Digital XO is the future, now.


    Thank you again.

    Share this comment

    Link to comment
    Share on other sites

    Hi Christian, I wish I could walk through the software you listed. Unfortunately, I am not a full-time audio reviewer, perhaps someone else on CA has experience with the software you have…


    Hi Gordon, thanks for your comments. With respect to identifying frequencies, I like the classic Carnegie Hall chart that can be ordered separately or comes with Bob Katz’s excellent book on Mastering.


    Re: amplifiers. As a system designer, using state of the art Digital XO, I can match individual speaker components to amplifiers of choice. My choice of amplifiers are based on what the best match is for each individual speaker driver to most accurately reproduce what is stored in digital media on disk.


    As mentioned in the article, the 15” bass driver/cab requires some power and a reasonably high damping factor to accurately track the electrical waveform being fed to it. However, the compression drivers require very little (literally milliwatts of) power and low damping factor to accurately track. From a system design perspective, I can tailor fit a high power, high damping factor amplifier to provide the bass driver with transient impact and damping control at the same time. With the ACA’s sonic signature similar to Nelson Pass’s commercial Aleph J design, I can get a very detailed, yet smooth response from the compression drivers/horn combos, which have very different electrical load requirements compared to a 15” cone bass driver loaded in a BR cab.


    Re: “The reason was that the differential in sound between the amplifiers was greater than the differential in sound of the drivers or the electronic xover.” I would say that the sonic signatures between the two Nelson Pass amp designs are somewhat audible if directly compared to each other. However, from a system design perspective, they are synergistic when used together to match the individual electrical load characteristics of each driver, which is what I am after.


    Take a look at any of the acoustic frequency responses, distortion measurements, and impulse/step responses in this article. Even with the corrected responses, the variability is still greater than virtually any modern amplifier would measure today. Speakers and rooms have the most variability in the audio chain and can benefit the most from modern DSP. Hence the article on Advanced Acourate and by following the steps in the article one can get closer to accurately reproducing music that is stored digitally on disk.


    perolater, thanks for your kind words. Acourate is state of the art Digital XO with capabilities to time align and linearize all drivers, and provide room correction. It is an ear opening experience. Let us know how your project goes!


    Best regards, Mitch

    Share this comment

    Link to comment
    Share on other sites

    Hi Mitch,


    I'm sorry I'm very late to this, I'm looking for a way to connect up a Klipsch horn system in a similar way. Can you confirm that when you say - "the Hilo is connected via USB to the computer and Hilo's 6 analog outputs are input to the 6 amplifiers" - you are using the monitor and headphone outputs as well as the line outs? If this is the case have you noticed any differences, other than the cable terminations, between the three outputs? Do you think that using the Hilo is an improvement on using a PCI card? I ask because I'm getting lost in the spec sheets of the various professional audio interfaces. Many thanks.


    David Whistance

    Share this comment

    Link to comment
    Share on other sites

    Hi David,


    Yes, in my case, the line out goes to the bass amps, the monitor out goes to the mid amps, and the headphone out goes to the HF amps. I have extensively tested and listened to each of the three stereo analog outputs and cannot detect any differences. The specs are virtually identical for each set of analog outputs.


    The monitor and headphone outs have an independent analog volume control which allows one to trim and match the levels given the (very) different driver sensitivities (e.g. woofer versus compression driver). As a side note, low noise amps on the mid and treble compression drivers will be important.


    I am extremely happy with the SQ of the Hilo. Personally, I feel its transparency is second to none. I had a Lynx L22 PCI card and while it is no slouch, I believe the Hilo is a significant improvement. The flexibility of the Hilo allows me to do virtually anything I want and I have yet to come across a patch/routing scenario that can't be done.


    Here is a link to a few other converters: High-quality 8-channel analog output that may be of consideration.


    Last point, ensure that the interface/converter has a quality ASIO driver. Hilo's is one of the best and is multi-client. Other's not so much and another check point on the list.


    Let us know how you make out!


    Cheers, Mitch

    Share this comment

    Link to comment
    Share on other sites

    Hi Mitch


    Many thanks for the really quick and helpful reply. I'll have to start start saving for a Hilo, or at least looking for a buyer for my current valve preamp. I'll also have to look for a compatible amplifier to use with my moving coil cartridges so I can try using PureVinyl rather than my phone stage. At the moment I use a set of Supratek Merlot valve amps but will probably move to solid state for tri-amping, mostly on cost grounds. I am thinking about three JLH 69's or First Watt amps but will have to see what funds and time allow.



    Share this comment

    Link to comment
    Share on other sites

    Mitch, thanks for this great article. Based on the article, I just started using Acourate. So far so good. Your article helped a lot.


    I have a few questions about input sample rates and filter sample rates.


    Q: Acourate will compute filters for multiple sample rates: 44, 48, 88 etc. by checking the boxes in macro 4. Is it a best practice to just run once (for example using a 192 input sample rate) and check all the boxes in macro 4? Or is it better to run the macros multiple times, for example the 1st time with 44 input rate and only check the box for the 44 output filter in macro 4, the 2nd time with 48 input rate and only check box for 48 output filter in macro 4, etc?


    I guess I'm wondering if sample rate conversion has any negative effect.

    Share this comment

    Link to comment
    Share on other sites

    Hi chrisr, I am happy you found the article useful. Wrt SRC, I have tried several approaches/combinations, including using JRMC 19's SRC and Convolution engine. To my ears, all sounds transparent, and using null or difference testing, any measurable difference is below my auditory threshold. For myself, Acourate computes the filters and I use 48 kHz as the input sample rate as that is what I use in the LogSweep Recorder to measure. Cheers, Mitch

    Share this comment

    Link to comment
    Share on other sites

    Create an account or sign in to comment

    You need to be a member in order to leave a comment

    Create an account

    Sign up for a new account in our community. It's easy!

    Register a new account

    Sign in

    Already have an account? Sign in here.

    Sign In Now

  • Create New...