I've been working to develop some tools for active crossover development for the past few months. This initially was to allow me to do crossover modeling a la Jeff Bagby's Passive Crossover Designer, except with all active filters. This effort has lately been expanded to include the coefficients for the MiniDSP "advanced" biquads.
Just like in passive crossover design, one does not necessarily follow standard filter functions when developing a crossover. The goal is a flat response on axis, and smooth off axis response as well. Many DSP crossover products such as the Behringer DCX2496 only allow you to use standard filter functions (e.g. 2nd/4th/8th order Bessel/Butterworth/Linkwitz-Riley) plus EQ. This can get you a long way, but it would be better to have complete freedom to implement any 1st or 2nd order function (e.g. use an any Q, implement shelving type filters, biquadratic filters, etc.). Well, this is what I have managed to develop over the past few months - a set of tools that take FRD files as input and can apply a set of 1st or 2nd order filter functions to that FRD file, add group delay to account for driver offset, and then sum a number of these representations of driver together in to a "system" as measured at the same position in space.
I am aiming to use the MiniDSP as a crossover development tool. The end goal is to build analog active crossovers using PCBs that I have designed and had fabbed for me, to create active speaker systems but doing the development with the MinDSP, since the filters, and therefore the system response, can be changed very quickly. I can mimic the analog active crossovers filter using the MiniDSP, tweak the filter functions and optimize/perfect the crossover, and then use the resulting set of filters to build the active crossover boards.
Here is an example of the MiniDSP crossover design process using a 2-way using a Seas MP14RCY midwoofer and a Vifa DQ25SC05 tweeter. It's really the midrange and tweeter for a to-be-built 3-way. All measurements are done using gated swept sine measurement carried out using ARTA and a calibrated Behinger ECM8000 microphone:
First I determine the driver acoustic offset (delay) by taking 3 measurements - the tweeter sans filters, the woofer sans filters, and then both the tweeter and woofer sans filters. The microphone position and levels remain the same for all three measurements. In my tools I dial in the delay until the summed response matches the measured two-driver response:

The WHITE line is the measured response from both drivers together with no filters. The YELLOW line is the measured woofer response. The LIGHT BLUE line is the measured tweeter response. The DARK BLUE line is the calculated response, with no filters but with a delay of 0.052 milliseconds for the midwoofer. There is a glitch in the phase response at about 7.6K Hz that I need to fix. Otherwise, the match between measured response (WHITE) and the predicted response (DARK BLUE) is very good with this acoustic delay.
The first filter I will apply is a 2nd order all-pass filter for the tweeter that provides about the same delay that was determined above (0.052 mS), so that the driver waveforms are coherent. Then I am free to dial in whatever filters I want for the drivers. I used something like a 4th order Linkwitz-Riley crossover for both the midwoofer and tweeter, at about 2750 Hz. Also on the midwoofer, I used a first order shelving filter to boost and flatten the low end, and then I cut down the response around about 1k Hz using EQ of about 3 dB.
The resulting filter was implemented using the MiniDSP, and then remeasured. The next plot shows the result:

As before, the YELLOW line is the midwoofer including all filters, the LIGHT BLUE line is the tweeter with all filters, the DARK BLUE line is the calculated response using my tools, and the WHITE line is the measured response with the filters implemented using the MiniDSP. Agreement (between WHITE and DARK BLUE) is good! This validates my modeling.
The measurement shown above was taken on a stand out in the room, but the actual location for the speaker was on a bookshelf inside a wide closet (with two pass-by doors removed) in a bedroom that serves as an office. I installed the speakers, and remeasured the system response. The relative levels of the two drivers has changed, and the midwoofer level is depressed relative to the tweeter:

An adjustment of the tweeter level by -2 dB restored the response of the system to about what was measured on the stand (see plot).
This seems to give a balanced response using a variety of music sources.
I'd like to use this approach to do some A/B/X testing of various types of response "profiles", e.g. the downwards sloping response with increasing frequency that Sigfried Linkwitz prefers, flat on axis, and later when I can take more measurements off axis, balancing power response. I'd like to be able to change between several pre-programmed responses on the fly to evaluate and compare the perceived sound of each.
This seems like a good first step in that direction.
-Charlie
Just like in passive crossover design, one does not necessarily follow standard filter functions when developing a crossover. The goal is a flat response on axis, and smooth off axis response as well. Many DSP crossover products such as the Behringer DCX2496 only allow you to use standard filter functions (e.g. 2nd/4th/8th order Bessel/Butterworth/Linkwitz-Riley) plus EQ. This can get you a long way, but it would be better to have complete freedom to implement any 1st or 2nd order function (e.g. use an any Q, implement shelving type filters, biquadratic filters, etc.). Well, this is what I have managed to develop over the past few months - a set of tools that take FRD files as input and can apply a set of 1st or 2nd order filter functions to that FRD file, add group delay to account for driver offset, and then sum a number of these representations of driver together in to a "system" as measured at the same position in space.
I am aiming to use the MiniDSP as a crossover development tool. The end goal is to build analog active crossovers using PCBs that I have designed and had fabbed for me, to create active speaker systems but doing the development with the MinDSP, since the filters, and therefore the system response, can be changed very quickly. I can mimic the analog active crossovers filter using the MiniDSP, tweak the filter functions and optimize/perfect the crossover, and then use the resulting set of filters to build the active crossover boards.
Here is an example of the MiniDSP crossover design process using a 2-way using a Seas MP14RCY midwoofer and a Vifa DQ25SC05 tweeter. It's really the midrange and tweeter for a to-be-built 3-way. All measurements are done using gated swept sine measurement carried out using ARTA and a calibrated Behinger ECM8000 microphone:
First I determine the driver acoustic offset (delay) by taking 3 measurements - the tweeter sans filters, the woofer sans filters, and then both the tweeter and woofer sans filters. The microphone position and levels remain the same for all three measurements. In my tools I dial in the delay until the summed response matches the measured two-driver response:

The WHITE line is the measured response from both drivers together with no filters. The YELLOW line is the measured woofer response. The LIGHT BLUE line is the measured tweeter response. The DARK BLUE line is the calculated response, with no filters but with a delay of 0.052 milliseconds for the midwoofer. There is a glitch in the phase response at about 7.6K Hz that I need to fix. Otherwise, the match between measured response (WHITE) and the predicted response (DARK BLUE) is very good with this acoustic delay.
The first filter I will apply is a 2nd order all-pass filter for the tweeter that provides about the same delay that was determined above (0.052 mS), so that the driver waveforms are coherent. Then I am free to dial in whatever filters I want for the drivers. I used something like a 4th order Linkwitz-Riley crossover for both the midwoofer and tweeter, at about 2750 Hz. Also on the midwoofer, I used a first order shelving filter to boost and flatten the low end, and then I cut down the response around about 1k Hz using EQ of about 3 dB.
The resulting filter was implemented using the MiniDSP, and then remeasured. The next plot shows the result:

As before, the YELLOW line is the midwoofer including all filters, the LIGHT BLUE line is the tweeter with all filters, the DARK BLUE line is the calculated response using my tools, and the WHITE line is the measured response with the filters implemented using the MiniDSP. Agreement (between WHITE and DARK BLUE) is good! This validates my modeling.
The measurement shown above was taken on a stand out in the room, but the actual location for the speaker was on a bookshelf inside a wide closet (with two pass-by doors removed) in a bedroom that serves as an office. I installed the speakers, and remeasured the system response. The relative levels of the two drivers has changed, and the midwoofer level is depressed relative to the tweeter:

An adjustment of the tweeter level by -2 dB restored the response of the system to about what was measured on the stand (see plot).
This seems to give a balanced response using a variety of music sources.
I'd like to use this approach to do some A/B/X testing of various types of response "profiles", e.g. the downwards sloping response with increasing frequency that Sigfried Linkwitz prefers, flat on axis, and later when I can take more measurements off axis, balancing power response. I'd like to be able to change between several pre-programmed responses on the fly to evaluate and compare the perceived sound of each.
This seems like a good first step in that direction.
-Charlie
Comment