Open Source Monkey Box

A quick and dirty lesson with Minidsp 2x4HD:

1- set routing
2- toggle output, select driver/output#, set delay, gain, polarity
3- click PEQ of selected output, set eq parameters
4- click Xover of selected output, set lowpass and highpass parameters
5- save settings and upload to unit.

Estimating or calculating appropriate settings is the difficult task. Vituixcad can make them based on raw driver measurements and simulation, but without that you must measure, set, measure etc. many times.
 

Attachments

  • minidsp hd settings_tile.jpg
    minidsp hd settings_tile.jpg
    246.5 KB · Views: 302
Ok, here are the data files from the processing described in post 568.

Thanks they should be better than tracing so will have a look, think use of miniDSP trials sounds a good idea also to get a little feel on summed system sound.

Byrtt,

Your third simulation version looks a little irrealistic, looking to the filter transfer of the midrange at low frequencies.
How this optimizing transfer is done, by a kind of optimizer in Vituix?

You right mid is probably overloaded or misused there and trial is mostly meant to see how system react when we get real close to planned textbook target responses.

There is some build in optimizer in VituixCAD for passive networks but i don't have a clue how to use that, what i did was add a virtual transfer funchtion per passband that use below correction to massage each passband close to textbook target, i use the math over in REW but VituixCAD can do the same in its calculator, code is something as divide target slope (traced from post 515) with electric filter and then divide that difference with measured on axis outputs that difference to massage passband into text book.

I'm not used to miniDSP myself where i use JRiver as DSP but guess we can use something in the style above to get biquads or use REW EQ as a generator.
 

Attachments

  • 1000.png
    1000.png
    39.2 KB · Views: 298
Last edited:
Observed in VituixCAD manual that biquad coefficients needs active blocks to generate outputs so our passive blocks can not be used.

Process i can think of to replicate this passive network is take exported electric passive filter seen below and EQ it flat in reverse over in Rephase, and what that takes of various IIR PEQ dial ins can then be set up into VituixCAD as active blocks to output a biquad, problem can probably be if it takes too many IIR PEQ dial ins to get it flat so that miniDSP gets overloaded where i haven't got a clue how much power it has. If Matthias has a soundcard with more than 2 channels then we could use that with a 30 days trial version of JRiver in it has unlimited power of IIR PEQ dial ins or use convolution engine.
 

Attachments

  • 1000.png
    1000.png
    39.2 KB · Views: 281
Just had a quick look at those. I may be wrong, but Equalizer APO and rePhase seem to be targeted at "textbook" filter functions and are a bit more complicated than what we need. The miniDSP spreadsheet is also "just" for textbook filter functions.

We need a tool that fits an IIR filter (biquads) to a custom transfer function, such as the filter transfer functions we get out of Vituix or Leap. I just made up such a tool in GNU Octave. I'll have to polish and test this for a bit though.

The Monkey Coffin is playing music with a bunch of quick'n'dirty miniDSP filters. Now I understand the different sound character between Linkwitz-Riley and Butterworth. It's very easy to hear the difference. I am NOT in the Linkwitz-Riley camp...

Paul: can you export the filter functions from your Leap model (EL3 filter) as ASCII / FRD files so that I can fit an IIR/biquad filter for the miniDSP to this?
 
Here the EL3 targets in frd format.

Matthias:
If your trials for programming the miniDSP will not be successful, it is possible to calculate the biquad coëfficiënts in Leap also, export and transform to the miniDSP format. I am familar with it.
If you can do it yourself now, is very welcome for me, as I am occupied with other jobs now.
 

Attachments

  • Targets for MonkeyBow EL3 500 2500 HP 40Hz Q 0.70.zip
    14.1 KB · Views: 65
Thanks Juhazi an KaffiMann.

So far have used some time for tweeter to get cascaded active filter blocks replicate close to the passive filter transfer funchtion and now have some quistions because there no need to use more time to same procedure for mid and woofer if miniDSP run out of power :) guess exercise is to replicate the passive network in miniDSP so as to stamp filter funchtion approved before order expensive components although feel it would not be bad if resonance and inductance compensate networks per passband was at place even for miniDSP use because in own experience it can very often make a subjective difference to the good side even into active systems.

Quistion is if we have enough biquads available in miniDSP, when i look at visual from Juhazi it looks there is 10 PEQ per channel and guess on advanced page or tab that one then can load 10 biquads there, then comes Xover where miniDSP site Kaffimann links to say can load 8 biquads so now we at 18 biquads. So far my active curve for tweeter takes 22 PEQ/1 LS/1 HP and that is a total of 24 biquads so we ran out of power, but i see in same visual from Juhazi that at bottom is a FIR feature and mayby that one coud take all 22 PEQs and get it going for tweeter. I'm i right in numbers of features for miniDSP Matthias, visual for curves is below.

It would be much easyer having a convolution engine and just load a IR of difference from drivers acoustic output.
 

Attachments

  • 1000.png
    1000.png
    90.7 KB · Views: 274
..The Monkey Coffin is playing music with a bunch of quick'n'dirty miniDSP filters. Now I understand the different sound character between Linkwitz-Riley and Butterworth. It's very easy to hear the difference. I am NOT in the Linkwitz-Riley camp...

I can be wrong here but take care making conclutions cascade a named textbook electric filter to inherent acoustic curve from transducers in the sum you get out there is probably far from the named textbook filter, and isolated BW often have ripple if they symetrical where LR sum flat, think you need dial in the right acoustic slopes to call it a name also SPL should be calibated same to make comparison real fair.
 
Here the EL3 targets in frd format.

Matthias:
If your trials for programming the miniDSP will not be successful, it is possible to calculate the biquad coëfficiënts in Leap also, export and transform to the miniDSP format. I am familar with it.
If you can do it yourself now, is very welcome for me, as I am occupied with other jobs now.

Hi Paul

These are "just" the target functions for the acoustic output, not the filter transfer functions of the passive x-over. The filter transfer functions of the passive x-over should not have any gain, and they will not be as flat as the targets in order to to compensate for the driver SPL curves.

Can you export the filter transfer of your passive x-over design? Also, when you're at it, can you also tell Leap to provide the corresponding biquads? It would be nice to check my Octave tool vs the tried and tested Leap export.
 
Last edited:
Sorry, I have never tried the limits of Minidsp. My most complex PEQ has 4-5 per channel and xos. Many on-axis jumps are compensated off-axis and you shouldn't eq them.

Know it mayby sounds brutal but that was what it took me to get measured driver on axis response divided passive electrical transfer funchtion curve so that miniDSP will output same response as Paul's passive XO network (curves in post 587) and using those high numbers of active textbook filters a rightclick in VituixCAD can output their biquads to feed miniDSP. That procedure was using cascaded textbook filters to output biquads for miniDSP where it looks Matthias is working on a smart solution in GNU Octave that can output the differense curve that really is is a non textbook filter in one shut.
 
Matthias,

Little misunderstanding :), here the XO transfers of the passive EL3 filter.
The transfers are scaled 1.5db down as there is some boost at 30 Hz of + 1.5 dB.

To create biquads out of these transfers in Leap isn't possible.
The procedure in Leap is to make a xo with analog functional blocks, do a bilinear transform to get the biquad coëfficiënts and export these to a txt file.
This procedure can be done completely within Leap CrossoverShop. Working very nice.
After that the txt file is transformed to a miniDSP text format, that can be copied directly to the biquad editor window in miniDSP.
It means that to deliver biquad coëfficënts, it needs a separate design in Leap. The procedure is completely tested in a lot of practical designs.
At this time the Leap and miniDSP environment is occupied by the design team of my speaker :D.

Edit:
It should be interesting having more people using miniDSP or other platform, but miniDSP is very easy to use and its sound is very good.
At this moment I am comparing different filter configurations with my own speaker and it should be nice to share this with others to have some discussion about filter concepts and how they sound. This is almost impossible with passive filters, too expensive and too much work. And once the concept is chosen, also a passive version can be buit by those who wanna do that.
Matthias, you will built now a mono version. I think it will be difficult to interprete the complete behavior. You have to make a stereo miniDSP setup :).
 

Attachments

  • 20190106 MonkeyB XO transfers EL3 500- EL3 2500 HP 40 0.70.JPG
    20190106 MonkeyB XO transfers EL3 500- EL3 2500 HP 40 0.70.JPG
    142.7 KB · Views: 308
  • Monkey Box XO transfers EL3 500 2500 HP 40 Hz Q 0.70.zip
    17.7 KB · Views: 42
Last edited:
...here the XO transfers of the passive EL3 filter.

Thanks! First results with my biquad calculator look promising. However, the Leap curves have some funny jumps either in the magnitude or phase data. Most of those jumps are easy to cope with because they are at the end of the spectra, so no big deal (for the woofer and tweeter data). However, there is something strange happening with the phase of the midrange transfer function at about 4.4 kHz (jump from +180° to -25°). I don't really know what to do with this... Paul, can you take a look at this?

The attachment shows the Leap (red) transfer function vs. the IIR/biquad filter (black). The biquad goes terribly wrong because the "funny" phase jumps at 4.4 kHz and the magnitude jumps at 50 Hz and at 23 Hz in the Leap data. Removing the Leap data below 50 Hz and above 4.4 kHz gives a pretty nice fit.
 

Attachments

  • biquad.png
    biquad.png
    47.3 KB · Views: 280
Matthias,

The steep phase step at 4 kHz is caused by an error in the schematic, coil L14 had a DC resistance of 0 Ohm. Or maybe the phase wrapping applied by Leap causes some problems.
I have changed the DC resistance of L14 to 0.5 Ohm too avoid the steep phase change and to avoid phase wrapping.

The magnitude step at 50 Hz is caused by the impedance of the Volt midrange, which becomes zero below 50 Hz in Leap, because in your Volt impedance frd its value starts at 50 Hz. Leap makes the impedance zero below 50 Hz.
I have edited the impedance frd and runned the simulation again

In attach the adapted XO transfer of the midrange.
 

Attachments

  • XO transfer mr EL3 500 - EL3 2500 HP 40 0.70.txt
    19.5 KB · Views: 52
I have edited the impedance frd and runned the simulation again

In attach the adapted XO transfer of the midrange.

Thanks, that looks perfect now.

I can get a nice fit of the transfer functions for the woofer (6 biquads) and the tweeter (7 biquads). However, I can't get a good fit for the full midrange transfer function with the max. 8 biquads that are available with each channel of the miniDSP. Since there are 4 DSP channels in the miniDSP, and only 3 are used at the moment (one per driver), I was thinking to cascade two DSPs for the midrange filter (so I get up to 16 biquads for the midrange). Is this possible to do within the digital domain / software of the miniDSP, or do I have to connect them via the analog connections on the outside of the miniDSP?

As an alternative I might also try to fit only the main part of the midrange transfer function (pass band and slopes), ignoring the stop-band tails. Maybe that's good enough to make it work in a single DSP with 8 biquads.
 
...It's a 2x4 HD unit...

For info per printed manual there should be more than 8 biquads per channel in that unit, manual say up to 8 cascaded biquads for Crossover section and up to 10 cascaded biquads for PEQ section and then comes a up to 4096taps FIR section using IEEE 754 file, BTW for biquad design manual tell its important design software is set to 96kHz samplerate.

attachment.php
 

Attachments

  • 1000.png
    1000.png
    27.5 KB · Views: 394
I tried a bit harder to get a good fit of the biquads to the Leap filter curves using more biquads. No luck. It seems it's better to remove some of the stop-band data that are far away from the pass band, and then use fewer biquads. See attached comparison of my calculated biquad filter curves with the Leap targets. I am happy with this (6 biquads for the woofer, 7 biquads for the midrange and tweeter). I believe my biquad fitter program is actually useful somehow.

I still have to stuff this into my miniDSP and see if it actually works...
 

Attachments

  • woofer.png
    woofer.png
    94.7 KB · Views: 209
  • midrange.png
    midrange.png
    88.9 KB · Views: 59
  • tweeter.png
    tweeter.png
    87.3 KB · Views: 62
For a EL3 design in Leap 5 Hz - 20 kHz, less biquads are needed for a full spectrum. A basic elliptical 3rd order high or low pass filter needs 2 biquads each.
Dependent on the driver equalization needed, the mean number of biquads is about 5 for the woofer, 7 to 8 for the midrange and 4-5 for the tweeter.
If wanted, I can make a version with biquads also later on.
I have some doubts about the abrupt changes of the curve slopes outband. Some impact on the time response of the filter can be expected, I don't like so much.