Think I saw Pygmy running down the hallway looking for the exit 🙂
To get your feet wet Pygmy w/DSP you're going to be using many of the same processes as you'd use w/passive.
Assuming you've picked drivers that will have a good directivity match in a given frequency range, the rest is pretty simple to get you going. I'd measure each driver, on baffle, individually to see what their response looks like. Take this measurement about 1/2m away for each. Flatten any big peaks that you might encounter and remeasure. Match the drivers' gain to each other and overlay their responses, in REW for instance.
Respect the tweeters response as a starting point and try not to steer it w/PEQ gains to achieve a certain response curve. Apply a filter (choose a LR2 or LR4 for now) and use REW's target response function to see how well the tweeter follows the filter. Do the same with your mid woofer and check the response. Move your measurement mic out about 1m and elevate that to your desired listening axis (tweeter height or between mid and tweeter).
Measure the response again with both drivers combined. Invert the polarity on the tweeter and measure again looking for a deep null at the frequency you've chosen as the crossover. Apply a time delay to the tweeter if the null isn't very deep. Keep measuring and checking the response after each timing change till you get the deepest null you can. Once there, put the tweeter polarity back to normal and remeasure. You should have a relatively flat frequency response for both drivers combined.
If this is a three way, do the same for the mid woofer to woofer as you did for the mid woofer to tweeter. Make some off axis measurements to see how well the drivers are working together and that this response is smooth as well (no big holes or abrupt changes between each driver). You can make some adjustments with the crossover to some degree if need be to improve the off axis responses. After that, have a listen and take some measurements back at the listening position. Use "global" EQ to fine tune this response so you don't undo your time aligned drivers' responses.
Once you get this far you'll start to understand how this works 🙂
To get your feet wet Pygmy w/DSP you're going to be using many of the same processes as you'd use w/passive.
Assuming you've picked drivers that will have a good directivity match in a given frequency range, the rest is pretty simple to get you going. I'd measure each driver, on baffle, individually to see what their response looks like. Take this measurement about 1/2m away for each. Flatten any big peaks that you might encounter and remeasure. Match the drivers' gain to each other and overlay their responses, in REW for instance.
Respect the tweeters response as a starting point and try not to steer it w/PEQ gains to achieve a certain response curve. Apply a filter (choose a LR2 or LR4 for now) and use REW's target response function to see how well the tweeter follows the filter. Do the same with your mid woofer and check the response. Move your measurement mic out about 1m and elevate that to your desired listening axis (tweeter height or between mid and tweeter).
Measure the response again with both drivers combined. Invert the polarity on the tweeter and measure again looking for a deep null at the frequency you've chosen as the crossover. Apply a time delay to the tweeter if the null isn't very deep. Keep measuring and checking the response after each timing change till you get the deepest null you can. Once there, put the tweeter polarity back to normal and remeasure. You should have a relatively flat frequency response for both drivers combined.
If this is a three way, do the same for the mid woofer to woofer as you did for the mid woofer to tweeter. Make some off axis measurements to see how well the drivers are working together and that this response is smooth as well (no big holes or abrupt changes between each driver). You can make some adjustments with the crossover to some degree if need be to improve the off axis responses. After that, have a listen and take some measurements back at the listening position. Use "global" EQ to fine tune this response so you don't undo your time aligned drivers' responses.
Once you get this far you'll start to understand how this works 🙂
puppet said:Think I saw Pygmy running down the hallway looking for the exit 🙂
Here's a lightweight article explaining all the commonly used filters, suitable for anyone who doesn't want to read full-length textbooks. Please note that in spite of being this simple, this article is frequently used even by professionals and digital processing equipment manufacturers.
The RBJ EQ Cookbook
No Mark, I wasn't joking at all. RBJ's cookbook is probably the shortest and most complete material (with all IIR essentials) one could find. However, I think it's dense, as all information has been squeezed into few pages.
Also, if implementing IIR, it's necessary to take the biquad route, as any higher order filters would accumulate mathematical errors very quickly, resulting in audible quantisation noise, response variations, instability etc. The following link shows the difference in accuracy between the direct and cascaded biquad methods for a 6th order filter (Figs. 6-9).
https://www.dsprelated.com/showarticle/1137.php
Also, if implementing IIR, it's necessary to take the biquad route, as any higher order filters would accumulate mathematical errors very quickly, resulting in audible quantisation noise, response variations, instability etc. The following link shows the difference in accuracy between the direct and cascaded biquad methods for a 6th order filter (Figs. 6-9).
https://www.dsprelated.com/showarticle/1137.php
I was thinking the same thing. Lightweight in terms of dense equations in ascii text and no whitespace or figures. It might as well be in hexadecimal. 🙂Lol newvirus...i trust you were joking about "lightweight" 😀
I can't believe anyone would mess with bi-quads in today's dsp world....talk about beating your head against a wall...
If you want to go the route of complex H(s) filter functions, I like Duelund’s paper a lot. At least properly formatted, readable and has figures and graphs. It’s more of a paper on chasing the ultimate phase perfect filter function but lots of good stuff on other filters in there.
https://duelundaudio.com/wp-content/uploads/sites/3621/2013/12/duelund-filter.pdf
Ok guys, if bi-quads work for ya, so be it.
Hey, here's my solution/recommendation that i use for xovers and EQ,s and what i would suggest to the OP.
Get a decent dsp, .....PC or proaudio hardware, or even one of the recommended mini-dsp boxes.
Get a good dual channel FFT...say ARTA for 100 euros, along with an XLR measurement mic like dayton or ECM8000 and a sound card like the UMC202...another $150 or so.
Get dual channel because, then in real time, you can simply dial in flattening EQs for each driver watching their transfer functions flatten out.
After seeing what kind of smooth bandwidth you get from driver flattening (including out-of-band as needed), decide on xover point range.
Experiment a little with type/order/frequency, seeing measurements in real time. Hint: fully complementary xovers work very well when drivers are flattening in & out of band .
Set delays in real time.
Polish with final EQs...in real time.
All done with real time measurements...no need for sims...complications...anything other than learning how to make good measurements ....which is a necessary prerequisite for ANY tuning method. It's real time that makes it so easy....and accelerates learning because you can see/try so many filters and immediately see the response.
KISS... big time 😉
Hey, here's my solution/recommendation that i use for xovers and EQ,s and what i would suggest to the OP.
Get a decent dsp, .....PC or proaudio hardware, or even one of the recommended mini-dsp boxes.
Get a good dual channel FFT...say ARTA for 100 euros, along with an XLR measurement mic like dayton or ECM8000 and a sound card like the UMC202...another $150 or so.
Get dual channel because, then in real time, you can simply dial in flattening EQs for each driver watching their transfer functions flatten out.
After seeing what kind of smooth bandwidth you get from driver flattening (including out-of-band as needed), decide on xover point range.
Experiment a little with type/order/frequency, seeing measurements in real time. Hint: fully complementary xovers work very well when drivers are flattening in & out of band .
Set delays in real time.
Polish with final EQs...in real time.
All done with real time measurements...no need for sims...complications...anything other than learning how to make good measurements ....which is a necessary prerequisite for ANY tuning method. It's real time that makes it so easy....and accelerates learning because you can see/try so many filters and immediately see the response.
KISS... big time 😉
Last edited:
I would adhere to a fundamental basic difference. With passives you are tailoring the response with attenuation. I would avoid and boost if at all possible as it just steals headroom. An example would be compensation of a compression driver on a CD horn. With passive you would just attenuate the mid-band. With DSP you could just as easily go the other way and boost the upper octaves. In many older pro bi-amp set-ups that's exactly what they did to maintain the maximum SPL of the systems. When done that way many sounded over harsh up top. IMHO the reason was because they added boost where the compression drivers has it's worst break-up modes.
Rob 🙂
Rob 🙂
https://www.grimmaudio.com/publications/speakers-white-paper/
Bruno Putzeys describes in there a process similar to post 6 by krivium.
Bruno Putzeys describes in there a process similar to post 6 by krivium.
Yes, it's the 'standard' approach in profield: each one you go to an amplified concert you listen through a system who seen same procedure...
The above quoted process is basically the process I use, with some differences:First i linearise each way for their intended pass band plus/minus one octave. For this i need peq. Then i (try) to time align them at intended xover freq.
From there you should be able to use textbook kind of filters like LR24, LR12,.... ( the 'named ones' Cask is talking about, the presets you find into your dsp)
1) the individual measurements of the drivers/horns, first checking the phase response to check whether sufficient absorption was laid down on the floor to suppress floor bounce for the measurements at 1 metre. Then the individual driver SPL responses can be overlaid on a single Bode plot to see their natural crossover interference regions. Each driver passband is chosen based on natural crossing points, and employing output channel PEQs to flatten the individual driver passbands.
2) each driver's passband is first flattened in terms of SPL response (using REW's EQ facility to speed the process, as well as personal judgments), then trimmed in the crossover interference band that's chosen to join two drivers' passbands by running a combined measurement of them. The initially chosen crossover points will typically need to be adjusted based on the flattened driver responses. I typically use PEQs and shelving filters to do the crossover breakpoint trimming (no induced phase shifts except for minimum phase corrections). But typical "named" crossover filters can also be employed to do this (with their attendant phase shifts across the crossover interference band).
3) time alignment and relative driver channel gains are adjusted using combined sweep of both sets of drivers together (higher and lower frequencies together) using spectrogram and excess group delay views (thus avoiding the need for loopback measurements of soundcards, etc). Usually, there are considerations to be made based on microphone position and relative vertical offset distance between drivers.
4) final PEQs are employed to smooth the crossover region, using predominantly "input channel" PEQs. I do fine tuning of time delays, then adjust the input channel PEQs to smooth the transition.
5) repeat the process for other drivers (3-way, 4-way, etc.). These setting can be copied to the other loudspeaker (stereo) or other surrounds (5.1, etc.) to save time, or each loudspeaker can be individually dialed-in using the steps above.
6) have a listen (or have the guy on the other end of the email listen critically). If needed, very slight "room curves" can be factored in at this point to taste. Usually, these slight downward-sloping curves are much less steep than you read about, but the resulting curves are based on listening preferences of the owner, not some pro-forma measurement down slopes that someone wrote about in a book or on line.
[Note that in an MEH (multiple entry horn), the time alignment is easy, i.e. zero, if a first order crossover filter applied--or even within 90 degrees of phase if no crossover filter is used. The time alignment will fall into place automatically under this circumstance.]
___________________________________________________________________________________________________
Now saying how to do it, above, and in fact doing it are two different things, and I find it takes a bit of "feel" for choosing crossover frequencies and applying PEQs during the remote dial-in process, and a bit of mind-reading of the other guy's setup particulars, as well as the performance of the drivers/horns and where to put the polar "lobes" in the combined output of the loudspeaker. Also, encouraging the owner to put down sufficient room acoustic treatments in the nearfield of the loudspeakers is usually a delicate (but essential) task.
Lots of persuading during the process (statistically averaging 4-10 measurements per loudspeaker) is usually required to keep the process sold and executed to completion--without the guy on the other end "fading away" and abandoning the process. It should, at this point, knock their socks off, and the owner usually becomes a believer after the final touches are applied. Follow-up adjustments are usually rare, but they can occur from time to time with different owners.
Chris
Last edited:
I was thinking the same thing. Lightweight in terms of dense equations in ascii text and no whitespace or figures. It might as well be in hexadecimal. 🙂
Well, here is a version of the Cookbook with LaTeX formatting, for those with difficulties in reading plain text equations.
https://www.w3.org/TR/audio-eq-cookbook/
Also, from the thread title, the OP seems to want to design the crossover and parametric EQ filters using a DSP, while what many members describe seem to describe is their preferred method for crossing over and equalising a multi-way loudspeaker. I think this difference is analogous to the that between making a car and driving one. If the OP (by any chance) actually meant to ask for help on the latter, then I must say that the thread title is somewhat misleading.
Besides, if I understand correctly, the discussion is also not IIR vs. FIR filters, and either way, the OP will need to read up on both types (if not already done) and then decide which way to go. For people who choose IIR, the most accurate implementation would be the one that uses biquads, especially if using fixed-point arithmetic.
Perhaps you missed the clarification that the OP added...?Also, from the thread title, the OP seems to want to design the crossover and parametric EQ filters using a DSP
I believe the OP clarified his meaning with the words above. I don't believe that it's that difficult to understand his starting place.I'm more interested in how to design a proper crossover for f.e. a 2-way speaker - should I use Linkwitz-Riley, Butterworth, or something else.. How do I properly determine how to pick my crossover frequency, the filter / order to be used, how does phase shift / time alignment apply when using DSP, etc.
To get where he's apparently wanting to go, just some basic idea of the DSP dialing-in process for a real loudspeaker is required (i.e., not really designing the bi-quads themselves, etc.). That's what I described above, along with other contributors here trying to respond to the OP's intent.
Any further discussion of the particular type of IIR crossover filters (mentioned above by the OP) can be targeted from here, but also a mutual understanding of the process that is typically required first. That was the part that was missing from his request for info (as also evidenced by the comments of other contributors here).
Chris
Last edited:
So far I think best advice came from krivium and hifjim, and my method is alike.
Here is my route, try and correct, without simulations. Basic knowledge of loudspeaker driver properties and acoustic phenomenoms is needed.
Basically designing a dsp-speaker has many stages, this applies to every dsp and measurement systems
1) define how loud and what frequency range the loudspeaker should deliver, and directivity preference (low/mid/high DI)
- size of the box, number of "ways", bass tuning, direct or horn loading of mid-tweeter range etc.
2) outline and find drivers that can achieve your goals set at 1)
3) make prototype box and if needed buy some horns with different profile
4) measure each driver's raw response in the box (learn to take quasi-anechoic and ground plane measurements)
- study spl response, directivity and distortion
- if there are some obvious problems in measurements, try another drivers or horns or baffle size/chamfering/driver location
- study bass tuning options and perform more tests with measurements, if there are critical issues
- consider passbands for each "way/driver"
- perhaps you want to use a protective serial capacitor with the tweeter - take measurements with it installed!
5) equalize each driver's response flat at least one octave below intended xo, and 2oct upwards to control resonances
6) set crossover filters eg. LR4 for two highest "ways" and measure only them playing simulateously
- set spl (gain) levels to match
- set delay to the higher unit (typically) to get best match (look at spl response and step response, also with reverse phase
- this requires several setting/measurement cycles to get right. Remember, with LR2 polarity must be different!
- look at distortion throuh xo too!
7) repeat 6) for next lower xo
- the lowest driver typically has delay of 0, higher ones some added delay
Now that you have learned to master your system, you can also try other crossover types and fine-tune room response
Have fun and listen to your favourite music! Call out friends and listen to their opinions too!
Here is my route, try and correct, without simulations. Basic knowledge of loudspeaker driver properties and acoustic phenomenoms is needed.
Basically designing a dsp-speaker has many stages, this applies to every dsp and measurement systems
1) define how loud and what frequency range the loudspeaker should deliver, and directivity preference (low/mid/high DI)
- size of the box, number of "ways", bass tuning, direct or horn loading of mid-tweeter range etc.
2) outline and find drivers that can achieve your goals set at 1)
3) make prototype box and if needed buy some horns with different profile
4) measure each driver's raw response in the box (learn to take quasi-anechoic and ground plane measurements)
- study spl response, directivity and distortion
- if there are some obvious problems in measurements, try another drivers or horns or baffle size/chamfering/driver location
- study bass tuning options and perform more tests with measurements, if there are critical issues
- consider passbands for each "way/driver"
- perhaps you want to use a protective serial capacitor with the tweeter - take measurements with it installed!
5) equalize each driver's response flat at least one octave below intended xo, and 2oct upwards to control resonances
6) set crossover filters eg. LR4 for two highest "ways" and measure only them playing simulateously
- set spl (gain) levels to match
- set delay to the higher unit (typically) to get best match (look at spl response and step response, also with reverse phase
- this requires several setting/measurement cycles to get right. Remember, with LR2 polarity must be different!
- look at distortion throuh xo too!
7) repeat 6) for next lower xo
- the lowest driver typically has delay of 0, higher ones some added delay
Now that you have learned to master your system, you can also try other crossover types and fine-tune room response
Have fun and listen to your favourite music! Call out friends and listen to their opinions too!
Last edited:
To get where he's apparently wanting to go, just some basic idea of the DSP dialing-in process for a real loudspeaker is required (i.e., not really designing the bi-quads themselves, etc.). That's what I described above, along with other contributors here trying to respond to the OP's intent.
Well, in that case the OP has to learn loudspeaker compensation in general, without worrying about analogue/digital etc., starting with some kind of simulation or an existing processor, loudspeaker and measurement system. In other words, what the OP needs are some "exercises" to learn loudspeaker crossover / compensation. The following are simple articles on the same.
Introduction to Equalization
Processor Setting Fundamentals - Nathan Butler
Last edited:
I read all above and I do think that you must include a look at distortion curves to get a clearer view of cut off freq
Juhazi - nice workflow description.
As I have said, I have done it this way, and it worked for me. But implicit in this measure/modify/listen method is the limitation that we are measuring either the on-axis gated response, or the in-room response at the listening position (I did gated response on my design axis at 66 cm). This can work fine, but it requires that the system has been designed with a full understanding of what the off-axis response is likely to be, use good judgment, and follow well established design practices. I think it is easier to pull off with direct radiator drivers. In my case, I cross from woofer to mid and from mid to tweeter before any driver starts beaming. I used the old (antique?) rule of thumb that the crossover frequency should be no higher than the point where the 45 degree off axis response is -3 dB to the on axis response. In my case I was -2 dB at 45 degrees.
The advantage to building the DSP filter based on simulation is that we do not have to make assumptions about the off-axis behavior, the model can predict what will happen. We can predict the effect of driver spacing and optimize it. We can manage the directivity instead of just assuming it will be acceptable and hoping our assumptions prove correct.
The other advantage of simulation is that we have to make just one set of measurements to begin simulation. Then we can put our measurement gear away and do the rest of the work at a computer. Only when everything is fully done, do we need to make a final verification measurement. With my first system I was constantly re-measuring everything.
j.
As I have said, I have done it this way, and it worked for me. But implicit in this measure/modify/listen method is the limitation that we are measuring either the on-axis gated response, or the in-room response at the listening position (I did gated response on my design axis at 66 cm). This can work fine, but it requires that the system has been designed with a full understanding of what the off-axis response is likely to be, use good judgment, and follow well established design practices. I think it is easier to pull off with direct radiator drivers. In my case, I cross from woofer to mid and from mid to tweeter before any driver starts beaming. I used the old (antique?) rule of thumb that the crossover frequency should be no higher than the point where the 45 degree off axis response is -3 dB to the on axis response. In my case I was -2 dB at 45 degrees.
The advantage to building the DSP filter based on simulation is that we do not have to make assumptions about the off-axis behavior, the model can predict what will happen. We can predict the effect of driver spacing and optimize it. We can manage the directivity instead of just assuming it will be acceptable and hoping our assumptions prove correct.
The other advantage of simulation is that we have to make just one set of measurements to begin simulation. Then we can put our measurement gear away and do the rest of the work at a computer. Only when everything is fully done, do we need to make a final verification measurement. With my first system I was constantly re-measuring everything.
j.
To add a little more thoughts...
I applied both methods (measure/modify/listen/repeat method, and the measure-once-simulate method) to two different systems. Both methods produced substantially the same final result. The simulation method, in my opinion, is a superior method, but that does not mean it will produce a superior result. With enough time and attention, either method can produce an optimized solution.
I feel the measure/modify/listen/repeat method can very quickly arrive at a reasonably good solution. After about 4 hours of work, I think I was 90% done, and my DSP filters were very listenable, and very good sounding. Getting that last 10% optimized was time consuming because I had to set up my measurement gear each time I wanted to tweak the filters. I spent several weeks doing this. Eventually I got the filter optimized.
The simulation method allowed me to optimize the filters to a high level, and then load them into hardware. After a couple of days, I had a filter that was optimized, and when I loaded it into hardware, all I had to do was tweak the driver levels using some final measurements.
So when I describe the simulation method as being superior, I am not criticizing the measure/modify/listen/repeat method. I am certainly not criticizing any system designed with this method, because I know it can work very well.
j.
I applied both methods (measure/modify/listen/repeat method, and the measure-once-simulate method) to two different systems. Both methods produced substantially the same final result. The simulation method, in my opinion, is a superior method, but that does not mean it will produce a superior result. With enough time and attention, either method can produce an optimized solution.
I feel the measure/modify/listen/repeat method can very quickly arrive at a reasonably good solution. After about 4 hours of work, I think I was 90% done, and my DSP filters were very listenable, and very good sounding. Getting that last 10% optimized was time consuming because I had to set up my measurement gear each time I wanted to tweak the filters. I spent several weeks doing this. Eventually I got the filter optimized.
The simulation method allowed me to optimize the filters to a high level, and then load them into hardware. After a couple of days, I had a filter that was optimized, and when I loaded it into hardware, all I had to do was tweak the driver levels using some final measurements.
So when I describe the simulation method as being superior, I am not criticizing the measure/modify/listen/repeat method. I am certainly not criticizing any system designed with this method, because I know it can work very well.
j.
--
4) measure each driver's raw response in the box (learn to take quasi-anechoic and ground plane measurements)
- study spl response, directivity and distortion
---
I emphasize the importance of directivity and distortion measurements, and find it strange that many people seem to forget or skip those.
My writeup skips many important details about driver choice, measurement techniques, analysis. Perhaps the most important thing I forgot is to study off-axis response of the system, also vertically. Xo topology and frequency choice can have a big influence. Phase and excess group delay alike. Etc. and so on as one learns more...
Set-measure-reset method saves you from learning to master complex simulation programs, like VituixCAD. I am too lazy and dumb to learn such simulation, but playful enough to spend hours with measuring and tweaking baffles etc. - my kind of fun! I don't even look at biquads, only graphic curves! Seems to me that pygmy as well thinks that he wants to skip extensive simulation.
My learning curve can be studied in this thread. I have neverever even tried to design passive xo, so multiway-dsp was a revolution to me!
I found these writings of John Reekie very helpful too https://www.hifizine.com/issues/minidsp-tutorials/
Last edited:
Adding on to what Juhazi said above, in my projects I measure each driver individually while I am screening them for a project, and I do this at a wide range of angles. For a boxed speaker this should be out to at least 60 degrees. At the same time I do some distortion testing on axis. These two single-driver measurements help me figure out if a driver will work well in a particular project or not before I try to incorporate it with other drivers into a complete loudspeaker. After doing this, I have a good idea what to expect on and off axis and this reduces the amount of measuring that is needed for the full loudspeaker, which is often more difficult to measure properly than a single driver.
- Home
- Loudspeakers
- Multi-Way
- Designing the crossover when using DSP - should I follow everything written for analog crossovers, or is there a better way to start when using DSP?