• WANTED: Happy members who like to discuss audio and other topics related to our interest. Desire to learn and share knowledge of science required. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

Designing an active 2-way speaker crossover

Rick Sykora

Major Contributor
Forum Donor
Joined
Jan 14, 2020
Messages
3,996
Likes
8,042
Location
Stow, Ohio USA
So, while I wait for Amir to start testing his speaker with the supplied crossover (we will post once we validate the VituixCAD sim and his measurements match), thought I would share a bit more of my testing and a simple crossover development for r1. I am still iterating as I have looked at designs by @ctrl and @kimmosto. The r1 crossover supplied to Amir was designed by @ctrl with minimal input from me. It is the latest of over a dozen versions done over the earlier part of this year.

The development of a crossover using VituixCAD (VCAD) and (in my case) REW is well documented on the VCAD site, so will not repeat here, but share some of my tips for those who might be interested. Note that @napilopez has done a nice job of documenting how to test a finished speaker here. For newbies, suggest you start by reading it as I do not intend to repeat that content here. As it is for a finished speaker, it lacks the steps for developing a crossover, so this is where I will devote more effort in this thread. This takes us back to post #32 where I left off with more build related stuff. Many of the posts since then have been more diversions and will likely clean up this build thread by having them moved to the main Directiva thread.

So, let's see how developing r1 might be different without the aid of a Klippel and (more) experienced designers...
 
Last edited:
First, as it caused some grief earlier in the project, let's take a look at setting up a minimal measurement system. This is one area where there is a departure for many who might have thought that a USB mic and REW were sufficient.

Here is a list of the needed parts for developing a (active) crossover design. Note that passive design is more involved as another test box is required...
  1. A decent soundcard or audio interface with 2 inputs (mic and line) and 2 (line) outputs.
  2. A microphone, mic stand and mic clip. More details in a later post.
  3. A sturdy test stand for the speaker (needs enough height to get the middle of the speaker to half the room height.
  4. Test box or cabling to do dual channel measurements as noted in the VCAD instructions for REW (or ARTA, etc.)
  5. A big enough room (need to get speaker away from walls and enough depth to allow the mic stand to be set up 1 meter away from the speaker)
Most of this is addressed in the VCAD's REW requirements here and @napilopez spinorama measurement post. If you are still remain undaunted, will just offer a few additional details and some tips next...
 
Once you have the equipment set up according to the VCAD instructions for REW. There are some additional steps to consider...
  1. The tweeter is unprotected from too much power or over excursion. The traditional way to protect it would be to add a capacitor in series with it. This requires that you compensate for the resultant filtering. From my perspective, if you do add the cap, why not just add a couple of more components and handle the tweeter passively? If you are careful, you can do fully active without the cap. I protect the tweeter while I design by turning off the output when not in use and limiting the REW measurement sweeps to low levels and to over 200 Hz.
  2. The VCAD instructions for setting the impulse response window really needs to be more specific about how to determine the window. You will find that here on the minidsp site. Depending on your ceiling height, the window should be 3 msec or more. In my room, with 7.5 ft ceilings, I get a window (or gate) of about 4 msec. This may require some iterating to determine as you may need to find a compromise speaker height for individually measuring the woofer and tweeter on their respective axes. If you use a boom mic stand pointed straight at the speaker (to minimize the mic stand acoustic profile), you will need to reposition it for both driver locations. If so, you will minimize the mic repositioning and make more repeatable, consistent measurements.
  3. If you can, use the ASIO drivers for your audio interface. I read this requires that you use the released version of REW. So I did this despite losing some of the nice features of the Beta version. Am still using the Beta to measure impedance as it has improved calibration feature.
NOTE: bear with me here as am trying to capture key points. Will try to give them better ordering, context and some visuals eventually. :cool:
 
Last edited:
Alight, by now you have your equipment (while I was out doing outdoor projects) and so will start by setting up the room for measurements. I use my family room (as you will soon see) and a sturdy speaker stand on top of another box to get to the right height. The speaker then sits about a meter from the back wall and is roughly centered on the room width .

As I mentioned in an earlier post, my ceiling height is only about 90 inches (2290 mm). The speaker position in this case puts the tweeter about 1092 mm from the ceiling and the woofer about the same distance from the floor. If you go into the VCAD tools menu and select Auxiliary, you get the first tab. It is the Time Window. With the the mic distance at 1000 mm, I entered the microphone height at 1092 mm (highlighted in blue) and get the following result,


1632067358951.png


The Time window calculated is about 4 mm. If I use 4 mm as my measurement gate, my lowest accurate frequency measurement is 245 Hz. So, you can see why for most of my measurements (except nearfield ones), I start the sweep at 200 Hz. Lower than 200 Hz will not matter and can also be affected by room modes. Will use nearfield measurements for the lower frequencies (later). Next we need to set up the test equipment and verify this result...
 
Was getting my test rig set up again and decided it needed a further upgrade. A picture of my current breakout box should give you an idea why, so here it is…

14D4B800-72F8-4D6C-AE3B-B453036BCBEB.jpeg


This makes for ugly wiring around my computer and yet another box is needed for a mic preamp too. Additionally, though the SoundBlaster Audigy was ok, it could be much better. So decided I wanted a Motu M4. The trick was finding one at a reasonable price. Amazon did not have but Sweetwater just got some in stock and so looks like I will have one by the end of the week!
 
Got the Motu M4 yesterday. Ordered a loopback cable today. Hoping I get it tomorrow!
 
I received one (1.5 m) monoprice TRS cable for loopback and built another using parts I had around (does XLR to TRS). The M4 accepts TRS or XLR on the front inputs, but only TRS for inputs on the back panel. Am using an older Dell computer with a 2nd gen i7, Windows 10 Pro and a 256G SSD. I installed the Motu software, REW 5.20 Beta and the minidsp 2x4 HD software plug-in. A few reboots were involved, but all went smoothly. After plugging in the Motu, I use my new cables to loopback the outputs to the inputs for IN1 and IN2. At this stage, if you have connected your amplifier, please turn it OFF.

Using the Motu app, I set the Sample rate to 88200 Hz and went with the default 1024 buffer. Was tempted to use the low latency, but it was not the default and my computer is a little older, so left it as is....


1632678683982.png



After launching REW, need to set Preferences to correspond to Motu configuration. First, set the Driver to ASIO using the pull down and ASIO Device to MOTU M Series. Matching the sample rate of the Motu, set to 88.2 kHz.

1632679897363.png


Set the inputs and outputs as shown and the sweep level to -10 dB. Step by Step instructions are at the bottom of the dialog. At this point, you need to be set to "Use loopback as timing reference". My Beta software did not present this in the Analysis Preferences, so here is my workaround. Click on Measure and you will get this...

1632680398201.png


Click on Continue Anyway and you get the Measurement panel...

1632680495671.png


Most of the fields will already be set, but in the upper right, change Setting Length to 1M using the pulldown selector and for Timing, select "Use loopback as timing reference". You can close this dialog and return to the Preferences dialog. At this point, you need to calibrate the soundcard , so click on the Calibrate soundcard button in the middle of the page and follow the instructions at the bottom...

1632680836089.png


On this page, you simply need to verify your inputs and outputs and set the sweep level to -10 dB.. Then click next at the bottom and you will get something that looks like this...

1632681255054.png




Ok, it will probably take some fiddling with the input gain on the Motu to get here. Also, set MON to off on each input and the INPUT MONITOR MIX fully counterclockwise. Once you do, click the Next button twice and the loopback measurement will commence. If all goes well, you will get a SPL and Phase graph for your soundcard. It should look like this one (for a Motu M4at least)...

1632681721494.png


You will have to minimize the Preferences to see this plot. If it looks pretty flat, you should maximize the Preferences dialog and click the Make
cal file button and follow the dialogs to save your soundcard calibration to your hard drive.

1632681994946.png


Once you are done saving the calibration, the Preferences, should show it in the calibration field (in my case, it s motu m4 cal.cal) as shown below:

1632690844167.png


At this point, you can close REW and chose to save you measurement or delete it. Next will use a RCA cable to connect the Motu LINE OUT 1 to the minidsp IN1. Keep your amplifier off. Now, start the minidsp plug-in and set the routing like so...

1632679051236.png


For now, am using Config 4 as a pass-through, and so left the Inputs set to Analog and level is 0.0, no PEQ and Mute is off. Next need to click on the outputs and set both the OUT1 and OUT2. The default settings provide crossovers, so these need to be bypassed, like so...

1632679493876.png


Close the XOVER settings and return to the Output config dialog. While am setting up and getting levels worked out, usually mute the output for the tweeter until I need to use it. Like so...

1632682525443.png


You can close the plug-in if you like. The loopback cable for Motu's first channel should be removed and the mic plugged into IN1. Next we will make our first speaker measurement...
 
Last edited:
Still have a few more steps before am ready to measure a driver. Next we need to return to Preferences and select the Cal Files tab, check the Separate cal file for each input box and then the Browse button for In 1. For my EMM-6 mic, that cal file is 21967.txt

1632877073475.png


Now the response measurements will be adjusted for the unique response of my microphone. Next click the Analysis tab and this dialog will show:
1632879833225.png


Uncheck the box for Set window widths automatically and set the Default Width on the left to 2.00 and the right one to the value you obtained from the VCAD analyzer earlier. In my case, this in 4.00. Once completed, you can close the Preferences dialog.

Click the Measure button along the top ribbon, you should get this dialog...

index.php


This time click on Calibrate SPL and you should get the following dialog:

1632877680962.png


Click on the selection drop down and select Use REW speaker cal signal. At this point, you should have the mic pointed at the tweeter and 1m from the front baffle. When you click OK, the woofer should play the cal signal. If you are hearing the cal pink noise, select Cancel and launch the minidsp plug-in, be sure you are connected and click on Outputs. Unmute Output 1 (tweeter) and mute Output 2 (woofer) as shown below:

1632878140030.png


Once you have done this you can return to REW. If the SPL meter is not showing, you may need to click its button on the ribbon area. Now click the Calibrate button. It should come up with speaker cal already selected and now you should click OK. Next you will see this dialog...

1632878567115.png


The value shown will be 75.0, but it need to be set according to the SPL meter reading at the front of the microphone. Using my well-worn Radio Shack Sound Level Meter with WEIGHTING set to C and RESPONSE to SLOW, I read 86 dB. Following the REW instructions, I change the setting to 86.0 and click Finished. At this point, REW responds with the Maximum SPL info, like so...
1632879067591.png


Click OK and now we are ready to take our first driver measurement. So click the Measure button again and you should get a screen that is comparable to this one...

1632879310878.png


You should only need to make 2 changes if you followed the VCAD instructions correctly. First, to protect the tweeter, set the Start Freq to 200 Hz. Second, under Timing in the upper right, set the Timing offset to 2.907. This corresponds to the mic distance of 1m. Now we are almost read to take our first measurement. Click the Check levels button. If the level is too low or high, you need to adjust. With the M4, this is done with the MONITOR knob on the right. Once REW indicates you have an acceptable level, you can click the Start button.

You should hear a measurement sweep from 200 Hz to 20,000 Hz and then see a measurement screen like this...

1632880839860.png


Congratulations, you have made your first driver measurement! In my case, the green trace is the SPL vs Frequency and Phase vs Frequency is the blue trace. The phase displayed needs an initial adjustment. Click the Controls gear in the upper right and click the Estimate IR delay button in the following dialog. You should get this message:

1632881254405.png


Click the Shift and update timing offset. Note the Estimated delay is about twice the value we set earlier. This is due to to additional timing delay added by the minidsp. The display should now look like this:

1632881536308.png


Click on the Controls gear to close and get a fuller view of the tweeter SPL & Phase.
 
Last edited:
Rick, should that timing adjustment be done for each measurement? (genuinely asking, not calling out)
 
Rick, should that timing adjustment be done for each measurement? (genuinely asking, not calling out)

Yes, as long as the mic distance remains at 1m. The timing offset will get updated in the Measure panel so you should not have to redo the IR delay for subsequent measurements. This is new for REW. Older versions would require you to repeat the IR estimate step for each measure.
 
Before we do more measurements, need to verify how reflections might affect them. In an earlier post, I used the VCAD Time Windows calculator to determine an initial value and that value was entered into the REW analysis. That value was 4 ms and is about as low as you want to go for useful measurements. Unless you have a room with high ceilings (12 ft or more) or has floor and ceiling treatment, you will not get the gate to be much more than 10 ms. Note that without treatment, you will also be working with the speaker at about 6 feet off the floor. So, getting better measurement resolution means better speaker stands, mic stands and (likely) more muscle strain...

Anyway, back to REW. If you did not save the last measurement, may need to redo. The SPL & Phase panel should look similar to this:

1632914816643.png


YMMV, but if the scales are not comparable, click on the Limits button and select Fit to data. Next click on the Impulse button just above the graph and the view should look like this...

1632914997998.png


If you hover over the graph, a drop down selection will appear. Click on it and select %. Now the graph appears like this...

1632915194478.png


Next, click on the Limits setting control in the upper right and set the limits as shown and click Apply Settings.

1632916587698.png


You may need to adjust the scroll bars and/or play with the axis zoom, but should get close to this once you are done...

1632916761920.png


Now this graph shows us several useful items. Across the top you should find the window markers (L for the Left window and R for the Right one). The Ref marker is where the measurements starts. The blue line is the entire timing window and the green trace is the Impulse response. You can see the primary signal start and then dissipate until some other blips occur to the right. The first of these is the first reflection and as predicted it occurs around 4 ms.

If you had made a SPL and Phase measurement without setting this window, it would looked something like this...

1632917588681.png


At this stage, this phase is pretty ugly and cannot be fixed by the IR delay adjustment. This is because the reflections are causing additional phase issues. Also note the the SPL around 200-450 Hz varies significantly. With a 4 ms window (250 Hz resolution), you are only getting one sample point to represent the sound level for this range of frequencies. Unless you attain a better window, nearfield measurements (coming later) will be needed to get better representation of the response in this region.

Once the time window (gating) is restored, we get back to here...

1632918075691.png


So, you can clearly see why the gating of the measurement is so important AND now know how to be sure the estimate aligns with actual test conditions.
 
Last edited:
This is a placeholder for content for designing an active 2-way speaker crossover.

I developed some of this content working on Directiva r1 and need to move this level of detail out of the build thread. So please be aware that this is a work in progress as am multitasking this effort with ongoing Directiva projects. Please excuse the dust during construction...

Thanks!

Rick
 
Last edited:
This is a placeholder for content for designing an active 2-way speaker crossover.
....
Rick

Hello,

Having your words of "an active 2-way speaker crossover", do you accept any suggestion of digital software crossover within PC plus 4-Ch multichannel DAC?
 
Hello,

Having your words of "an active 2-way speaker crossover", do you accept any suggestion of digital software crossover within PC plus 4-Ch multichannel DAC?

Am planning on running with the minidsp 2x4 HD as it is good price/performance for entry level work.

I prefer to leave higher performance version for a follow-on and/or actual deployment,

What do you propose?
 
OK, understood well.

Even though JRiver MC and Roon on PC have nice crossover(XO)/DSP/EQ functionalities, I rather prefer outer independent software XO/DSP/EQ which can work entire OS system-wide receiving digital signal (max.192 kHz 24 bit) from any of the audio software including JRiver, Roon, web browsers, and of course YouTube on browsers. I like to do all of XO/DSP/EQ in upstream digital domain within the single PC rinnig JRiver or Roon.

Recently (actually after around February 2020), I have been intensively evaluating and testing the simple, flexible, reliable, nice GUI, really fast software XO/DSP/EQ "EKIO" by Lupisoft in France. As I shared here, EKIO uses IIR filters; the processing is done using a cascade of second order transposed direct form II biquad sections. Every calculation is done using 64 bit floating point numbers.

You would please refer to my multichannel multi-driver (multi-way) multi-amplifier HiFi "stereo" audio project using EKIO and OKTO DAC8PRO 8-Ch multicannel DAC. Of course, within EKIO and OKTO DAC8PRO, all of the 8 channels are fully in sync, and in your project of 2-way active system, you need to use only 4 channels. (Paid-up EKIO has no limitation of numbers of XO channels.)

As you may aware, OKTO's DAC8PRO is top-ranked by amirm's intensive review and measurements.

You may find my latest system configuration at here in my thread.

I believe it would be quite easy for you to establish reliable, stable, flexible "active 2-way (4-channel) digital software crossover (max. 192 kHz 24 bit)" with EKIO and DAC8PRO together with ASIO4ALL (freeware) and VB Audio Virtual Cable (donationware). You can connect your PC to DAC8PRO with only one USB 2.0 cable.

If needed, I may assist you to establish the digital I/O configuration within PC, as shared here, here and here.

As for the reasonable PC specs, you would please refer to my post here.
 
Last edited:
OK, understood well.

Even though JRiver MC and Roon on PC have nice crossover(XO)/DSP/EQ functionalities, I rather prefer outer independent software XO/DSP/EQ which can work entire OS system-wide receiving digital signal (max.192 kHz 24 bit) from any of the audio software including JRiver, Roon, web browsers, and of course YouTube on browsers. I like to do all of XO/DSP/EQ in upstream digital domain within the single PC rinnig JRiver or Roon.

Recently (actually after around February 2020), I have been intensively evaluating and testing the simple, flexible, reliable, nice GUI, really fast software XO/DSP/EQ "EKIO" by Lupisoft in France. As I shared here, EKIO uses IIR filters; the processing is done using a cascade of second order transposed direct form II biquad sections. Every calculation is done using 64 bit floating point numbers.

You would please refer to my multichannel multi-driver (multi-way) multi-amplifier HiFi "stereo" audio project using EKIO and OKTO DAC8PRO 8-Ch multicannel DAC. Of course, within EKIO and OKTO DAC8PRO, all of the 8 channels are fully in sync, and in your project of 2-way active system, you need to use only 4 channels. (Paid-up EKIO has no limitation of numbers of XO channels.)

As you may aware, OKTO's DAC8PRO is top-ranked by amirm's intensive review and measurements.

You may find my latest system configuration at here in my thread.

I believe it would be quite easy for you to establish reliable, stable, flexible "active 2-way (4-channel) digital software crossover (max. 192 kHz 24 bit)" with EKIO and DAC8PRO together with ASIO4ALL (freeware) and VB Audio Virtual Cable (donationware). You can connect your PC to DAC8PRO with only one USB 2.0 cable.

If needed, I may assist you to establish the digital I/O configuration within PC, as shared here, here and here.

As for the reasonable PC specs, you would please refer to my post here.

Like your tastes, but your budget is beyond any plans I currently have. More importantly, not readily within reach of a new hobbyist either. Am focused on teaching the basics and the minidsp does that pretty well. Their website also has good app notes supporting basic speaker design.

However, you could always start another comparable thread for a high end solution either in parallel or as a follow-on to this one. Thanks. :)
 
Thank you very much for doing a comprehensive guide on how to measure drivers!:D I have a few questions about some procedures and other ways to do it.

PC mother boards have sound card, can we use those plus some program to do dsp? Then we don't have to use minidsp.

The first thing you did was calibrate sound card, what was the purpose of it? Did you calibrate the output dac or the input adc? What if both of them are not linear and we can only get the difference between them but not absolute deviatioin?

Is xlr plus phantom power better than usb microphone? I already have usb microphone and think it is more comvenient.

Before doing the sweep you entered 2.907ms timimg offset which is 1m, do I really have to enter a number there? Later on you use shift IR which shifts timing, does this replace the previous step? Can I use loop back or some way to get better timing than measuring exact 1m in real life? 1cm crosponed to 0.029ms, maybe measuring 1m will not introduce too much uncertainty?
 
Thank you very much for doing a comprehensive guide on how to measure drivers!:D I have a few questions about some procedures and other ways to do it.

PC mother boards have sound card, can we use those plus some program to do dsp? Then we don't have to use minidsp.

The first thing you did was calibrate sound card, what was the purpose of it? Did you calibrate the output dac or the input adc? What if both of them are not linear and we can only get the difference between them but not absolute deviatioin?

Is xlr plus phantom power better than usb microphone? I already have usb microphone and think it is more comvenient.

Before doing the sweep you entered 2.907ms timimg offset which is 1m, do I really have to enter a number there? Later on you use shift IR which shifts timing, does this replace the previous step? Can I use loop back or some way to get better timing than measuring exact 1m in real life? 1cm crosponed to 0.029ms, maybe measuring 1m will not introduce too much uncertainty?
You can perform DSP on a PC, but you would need 4 output channels to create a pair of active 2 way speakers. The miniDSP allows for a pair of speakers that can be used normally, without having to keep a PC running.

Calibrating the soundcard is done for the input portion, so that whatever the microphone is picking up isn't altered.

An XLR mic is better than USB because with the loopback method you can get an absolute timing reference. The USB method only allows for timing based off the impulse response peak, or the start of the impulse response, neither of which is totally accurate.

The timing offset compensates for the physical distance, because the sound hitting the microphone occurs ~2.9ms after it arrives at the soundcard loopback. The shift IR section afterwards compensates for the phase shift caused by this. Because you are using a USB microphone, this is not relevant.
 
As for reasonable-price and reliable HiRes (max. 192 kHz 24 bit) XLR microphone USB audio interface with 48V phantom power supply to condenser mics, I like to recommend these;

US-1x2HR for one microphone;
https://tascam.jp/int/product/us-1x2hr/top
USD 119.00
https://www.amazon.com/Tascam-Resol...ild=1&keywords=US-1x2HR&qid=1633769331&sr=8-2

US-2x2HR for two (stereo) microphones;
https://tascam.jp/int/product/us-2x2hr/top
USD 179.00
https://www.amazon.com/Tascam-Resolution-Versatile-Interface-US2X2HR/dp/B08MFMFYBP/ref=sr_1_1?dchild=1&keywords=US-2x2HR&qid=1633768613&sr=8-1

US-4x4HR for four (stereo and surround?) microphones;
https://tascam.jp/int/product/us-4x4hr/top
USD 219.00
https://www.amazon.com/Tascam-Resol...ild=1&keywords=US-4x4HR&qid=1633768668&sr=8-1
 
An XLR mic is better than USB because with the loopback method you can get an absolute timing reference. The USB method only allows for timing based off the impulse response peak, or the start of the impulse response, neither of which is totally accurate.

I'm not disputing that there is better instrumentation available than a USB mic, but XLR is simply a mechanical spec. There's a bit more required to achieving deterministic timing than that ;)

I've also yet to see any objective characterization of REW'S acoustic timing reference - http://www.roomeqwizard.com/help/help_en-GB/html/makingmeasurements.html#acousticref

It would be great if @JohnPM could comment on loopback vs acoustic timing reference techniques, in particular what range of measurement uncertainty could be expected for the latter.
 
Back
Top Bottom