MiniDSP as Linkwitz Orion ASP

Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.
First MiniDSP project

I've decided on my first project with MiniDSP. It's a 4-way open baffle loudspeakers, with 3-way panel and a dipole bass array.

htguide.com/forum/showthread.php4?t=36626

Waiting for the boards to arrive :)

s14bdesign.jpg
 
Thank you for the fast shipment! The boards arrived and I quickly got it up and running.

I replicated the analog xo's transfer function of my current dipoles within 15 minutes or so. Mind you it's quite a complex one similar to SL's ASP. With a laptop it's all too easy!

IMGP8947.jpg


I tried many recordings last night to "find" any faults with the sound quality.... nothing!... there was simply no distortions nor coloration comparing to analog xo. It is either equal or better.

Thanks for such a great product to cater us DIYers. I will post my progress and findings.
 
A calc would be great!

I am doing one myself at the moment for learning. Let's say I want to put two High pass filters for a tweeter, one at 300hz and one at 2.1kHz, both 2nd order (Q=0.5?), I come up with these values:

biquad1,
b0=0.0187723817731764,
b1=0.0375447635463527,
b2=0.0187723817731764,
a1=-1.92491047290729,
a2=0.728559550134926,
biquad2,
b0=0.981227618226824,
b1=-1.96245523645365,
b2=0.981227618226824,
a1=-1.92491047290729,
a2=0.728559550134926

But when I entered this into MiniDSP it expects the rest of the biquads (biquad3 to biquad8 as per example in the software). What values should I put for those?
 
Last edited:
Account Closed
Joined 2001
Gainphile,

Paste this to your advanced window in one of the crossover filters: (I didn't try it, but I believe it should work for you.)

knuisje,

Nice spreadsheet! :)

Cheers,

Dave.



biquad1,
b0=0.961852371238129,
b1=-1.923704742476260,
b2=0.961852371238129,
a1=1.922962903190660,
a2=-0.924446581761860,
biquad2,
b0=0.771744849183422,
b1=-1.543489698366840,
b2=0.771744849183422,
a1=1.513960384941010,
a2=-0.573019011792680,
biquad3,
b0=1,
b1=0,
b2=0,
a1=0,
a2=0,
biquad4,
b0=1,
b1=0,
b2=0,
a1=0,
a2=0,
biquad5,
b0=1,
b1=0,
b2=0,
a1=0,
a2=0,
biquad6,
b0=1,
b1=0,
b2=0,
a1=0,
a2=0,
biquad7,
b0=1,
b1=0,
b2=0,
a1=0,
a2=0,
biquad8,
b0=1,
b1=0,
b2=0,
a1=0,
a2=0,
 
Last edited:
Let's start ...

Davey, thank you very much that string works :). Now we have the recipe to implement circuit as complex and well-engineered as Orion ASP. In this case I have also found an easier way to do it.

The Circuit in question:

orion-asp2.jpg


As discussed previously only MiniDSP has the capabilities to implement something like this compared to other products like DCX2496 as highlighted.

Slopes (obviously) ... ok
Phase alignment/allpass filters ... ok
Notch filters ... ok
Channel level ... ok
Shelving Lowpass filter ... ok
Master volume control ... ok
Cascaded filter stage topology ... ok
Linkwitz Transform ... ok (thanks to the netherlands DIYers!)


Here, one would need:
2x MiniDSP kit $200
1x Advanced 4-way crossover $10
 
Last edited:
Step 2 - Cascaded Filter Topology

This separates MiniDSP from the other DSP XO which I have read. The cascaded topology is very important as explained here.

Simply put, the phase shift induced by prior highpass section would influence the crossover region. In this case the 120Hz highpass would have an effect at 1440Hz point. In analog XO filters are simply cascaded. With DSP we can achieve the same effect by replicating 120Hz highpass at the Tweeter path. See Macboy's great graphical explanation

In MiniDSP this is realised by utilising the Advance setting of Parametric EQ. So at the tweeter section (Parametric EQ - Output 4) we enter the following setting:

02.jpg


Note that 1 biquad generates 1 2nd order filter (12db/oct) so to realise 24db/oct we simply use 2 biquads with exact same values.

The values are generated using knusisje's excellent spreadsheet. If you like the math, the algorithms are in RBJ EQ Cookbook.

03.jpg
 
Step 3 - Shelving Filters

MiniDSP uses center frequency and Q instead of f1 and f2. This can be easily calculated. Using 100-200 SHP (Shelving High Pass filter) as an example we obtain

Frequency = f2 - (f2-f1)/2 = 200-(200-100)/2 = 150Hz
Gain = 20 Log (f2/f1) = 20*Log(200/100) = 6dB
Q = 1

05.jpg


The above filter is early in the signal chain so we use "Parametric EQ" section.

The same process is applied for the Shelving Lowpass sections:
Midrange 30-400 Dipole EQ
Woofer 20-110 Driver EQ
Woofer 20-305 Dipole EQ

Example for Midrange 20-400Hz SLP:

06.jpg


Interesting to note here is that the Gain should have been 22.5 but it's limited to 16. I have to ponder whether it's a found limitation or the scale is not in dB.
 
Account Closed
Joined 2001
Center frequency should be computed with the formula. Fc = SQRT(F1*F2). So, for a 100-200 shelving filter the center is 141Hz. (20-400....89Hz.)

For gain calculations.....Gain (in db) equals 20 * log(F2/F1). So, for a 20-400Hz SLP gain is 26db.

Cheers,

Dave.
 
Account Closed
Joined 2001
Just to add a bit more info......using your 20-400 as an example:

This could be created in a couple of different ways. Here's one way:

20-400 SLP is the requirement. The arithmetic yields targets of 26db gain and Fc of 89Hz.
Cascading two shelving filters of 13db gain (20-89Hz, Fc=42Hz and 89-400Hz, Fc=188Hz) will yield the proper curve.
Careful with excessive gain programming though since it might yield unwanted clipping depending upon other parameters. The same curve could also be programmed (with a different absolute level) with SHP filters vice SLP....just set the gains to negative 16db. Or, a combination of the two with one SLP and one SHP.

And that's just one way to program that filter with the MiniDSP. :)

Hope that helps.

Cheers,

Dave.
 
@gainphile: Neat to see that you're going ahead with the custom implementation of Linkwitz and documenting your findings in the mean time... Great reading!

@ Davey, Thanks as well for complementing this thread with your valuable insight on building these custom biquad filters...

Looking forward to maybe seeing some speaker measurements to witness the benefits of this specific custom implementation. Were you able to perform any?

Devteam
 
PLuto 2.1 ASP -> DSP

I'm in the midst of replicating the Pluto 2.1 ASP on the MiniDSP and found this thread very helpful.

Here's what I have so far on a 2-way Advanced Plugin, ordered by the stages on the MiniDSP:

Woofer
PEQ: 8.6 db (pair of cascaded SLP/SHP filters f=20K, gain=8.6, Q=1.5)
XO: 980LP (LR4)
PEQ: LT (f0=65.78, Q0=0.85, fp=40.75, Qp=0.71)
PEQ: Notch (221 Hz, Q=3.4, gain=-5.3)
PEQ: SHP (233-541 Hz, f=355, Gain=-7.3, Q=1)
Gain/Delay: N/A

Tweeter
PEQ: 8.6 db (same filter as above)
XO: 1000HP (LR4)
PEQ: Tweeter Boost????? (RC)
PEQ: Notch (4300 HZ, Q=2.5, gain=-8.7)
Delay (328us)
Gain (Adjust as needed to match tweeter levels)

It's not yet clear to me how to to translate the RC tweeter boost circuit that SL added to the 2.1 XO. Any insight would be appreciated. It's entirely possible that I made one or more errors in my calculations above.
 
Account Closed
Joined 2001
Yes indeed. Sharp eyes knuisje. Another mistake. :)



sdsnyc,

You don't necessarily have to use the advanced plug-in to replicate the Pluto transfer functions. I haven't done the 2.1 yet, but I have done the 2.0. (IMHO, the 2.0 alignment is better sounding than the 2.1, but that's another subject.) :)

Anyways, here's a setup for the 2.0.

Woofer:

HP: 20Hz, 6db, BW.
LP: 1000Hz, 24db, LR.
EQ: 50Hz, +8db, Q=1.6, low-shelf.

Tweeter:

HP: 1000Hz, 24db, LR.
LP: bypass.
EQ: 4200Hz, -7db, Q=1.3, peak.
EQ: 9000Hz, +5db, Q=1.0, high-shelf.

Delay: This setting is a bit different since you're using a pure delay vice the all-pass filter of the Pluto ASP (or an all-pass created with the MiniDSP advanced plug-in.)
Here's a good method to find the correct setting for tweeter delay. Setup your measurement microphone about a meter away on-axis, reverse polarity of the tweeter and then adjust the tweeter delay setting until the notch depth at the crossover frequency (about 1000hz in this case) is maximum. Then return tweeter polarity to normal. (My setting was 0.3mS.)

Gain: Adjust relative gain between woofer/tweeter to your liking. An approximate 6db difference is a good starting point.

I actually have a PLUTO ASP configured with the 2.0 revision and so could make/save a transfer function measurement for a reference and then adjust the MiniDSP iteratively to match it exactly.

Cheers,

Dave.
 
Status
This old topic is closed. If you want to reopen this topic, contact a moderator using the "Report Post" button.