VituixCAD

I would use a bit different work order. This is for driver for responses:
0. Add all drivers and load driver responses to Drivers tab. Set smoothing e.g. 1/12 oct for all driver responses to avoid unnecessary detailed EQ with FIR. Add full connection to crossover schematic.
1. Short custom EQ blocks of the driver (Param EQ blocks in the image below).
2. Select G(f) block of the driver to be EQd by clicking it (block highlighted).
3. Select 'Axial response of Driver' option in Optimizer window.
4. Select the (same) driver from list box on the right.
5. Create target response. Note! Woofer's target response should be quite close to system response and Lin.phase unchecked to avoid huge amount of taps. Check Lin.pha for other slopes.
6. Click TF button to save and load mirrored EQ response to selected G(f) block. Command supports also updating response of G(f).
Repeat steps 1-6 for other drivers.
Enable custom EQ blocks and equalize combination of ON, LW, ER, PIR and SP as you like or with Preference rating option.
Finally export IR files as IEEE wav for EquAPO.

1642660916408.png


One small thing. Wires between active blocks are useless and just waste of time.
 
Yes, all blocks and components which are not bypassed (shorted/open) when TF button is pressed will be compensated with G(f) transfer function. That enables also equalizing total response of passive speaker with single IR file and 2 channels. This version has target for listening window. Excess GD again flat 0 ms. Note! Buffer block is needed after G(f) for Impulse response export.

1642663744010.png
 
Last edited:
Assuming you've loaded the impedance curve for the speaker, you'll see the actual impedance change as you adjust a passive filter.
An Active filter shouldn't have any effect on the impedance of the speaker.

If you haven't loaded the impedance response of your driver in the lower section of the drivers tab, then you'll just be seeing a nominal/default value of 8Ω. This won't matter with an active filter but if you're trying to design a passive, you have to take account of the actual impedance curve of the driver in the box.

Re is only the value occurring at 0Hz, so if you extended the frequency axis low enough, you'd see the Z curve tend to that value too.
 
Hi Kimmo,

could you please check the ease format data parsing, this is not working as expected in the VxxxHxxx format.

as long as V=000, i.e. V000H010 , V000H020 it works as expected (parsed as vertical=0 degrees, horizontal = 10,20

but for all non-0 vertical values it doesnt work (throw s an error saying illegal/rotated) i.e. V010H000 , V020H000

I realize that Vituixcad doesnt support non-axis (i.e. V010H030) positions, but V000H000 to V360H000 should just be the "normal" vertical axis (it is in ease)

many thanks in advance!

Kees
 
Hello - i believe this is the general help thread for Vituix, and being a started, i have a simple, easy question... when i'm tuning a 2nd order low pass block, is the Z impedence the actual nominal impedence of the speaker (8n in my case) or is this the actual voice coil resistance Re?
Best thing to do with the filter blocks is hit the "purge" button to break them apart and adjust the components individually for your specific design. Values in the block are simple "textbook" calculations to get you in the ballpark. Crossover components are always applied against the driver impedance files that you load.
 
I would use a bit different work order. This is for driver for responses:
0. Add all drivers and load driver responses to Drivers tab. Set smoothing e.g. 1/12 oct for all driver responses to avoid unnecessary detailed EQ with FIR. Add full connection to crossover schematic.
1. Short custom EQ blocks of the driver (Param EQ blocks in the image below).
2. Select G(f) block of the driver to be EQd by clicking it (block highlighted).
3. Select 'Axial response of Driver' option in Optimizer window.
4. Select the (same) driver from list box on the right.
5. Create target response. Note! Woofer's target response should be quite close to system response and Lin.phase unchecked to avoid huge amount of taps. Check Lin.pha for other slopes.
6. Click TF button to save and load mirrored EQ response to selected G(f) block. Command supports also updating response of G(f).
Repeat steps 1-6 for other drivers.
Enable custom EQ blocks and equalize combination of ON, LW, ER, PIR and SP as you like or with Preference rating option.
Finally export IR files as IEEE wav for EquAPO.

View attachment 1016723

One small thing. Wires between active blocks are useless and just waste of time.
Thanks for your feedback on this process, much appreciated. I will review the workflow that you've suggested later today and update the document.
 
Assuming you've loaded the impedance curve for the speaker, you'll see the actual impedance change as you adjust a passive filter.
An Active filter shouldn't have any effect on the impedance of the speaker.

If you haven't loaded the impedance response of your driver in the lower section of the drivers tab, then you'll just be seeing a nominal/default value of 8Ω. This won't matter with an active filter but if you're trying to design a passive, you have to take account of the actual impedance curve of the driver in the box.

Re is only the value occurring at 0Hz, so if you extended the frequency axis low enough, you'd see the Z curve tend to that value too.
Yes, i loaded the .zma files at the bottom of the program. However, in the crossover design tab, on my second order crossover, it has a value for frequency (i get that) and Z Load Impedance which is default to 8. Not sure what's going on?

Is there a good primer set of videos on learning this software (it's amazing really...). For example, i'm not sure what the X/Y/Z values mean on the drivers in the crossover (i assume this is for BSC, but nothing defines how to input these).
 
Best thing to do with the filter blocks is hit the "purge" button to break them apart and adjust the components individually for your specific design. Values in the block are simple "textbook" calculations to get you in the ballpark. Crossover components are always applied against the driver impedance files that you load.
Good info... i'll try that out.
 
Kimmo has done a few videos, there are links in the helpfile IIRC.
That helpfile also explains the coordinates which are for setting the relative driver positions.
Yup, i see that, and i'm about 5/6th of the way down in the help file. However, i'm not sure how to add the tweeter as part of the baffle (or is this only concerning a single driver woofer only)? Also i'm not sure where to find the "half space response" file from the manufacturer... is that readily available?
 
In the drivers tab, use the green + button to add as many drivers to the project as you need and then add the relevant frequency and impedance response files for each one in the fields below.
Most manufacturers don't supply frequency response files, Dayton are about the only one that do IIRC.
Normally, for best results, we need to measure the drivers in a test/prototype cab matching reasonably well what we plan to build.
For rough "what if" level of modelling, tracing the manufacturer's response curve (using the SPL Trace tool) and then altering it to include the effects of LF enclosure type (using the Enclosure & Merger tools), bafflestep etc (using the "Diffraction tool) is what's needed.
 
Sorry, just realised I misunderstood your original question zinger, I hadn't realised the control options for the preset filter blocks are a bit different than those for when you build from individual components.

In your case, you would be best to use whatever the approximate value of the impedance is at the range of frequencies around your crossover point - for a nominal 8Ω woofer that could be a bit below the 8Ω or a little above, depending on the exact impedance curve of the woofer.
 
I would use a bit different work order. This is for driver for responses:
0. Add all drivers and load driver responses to Drivers tab. Set smoothing e.g. 1/12 oct for all driver responses to avoid unnecessary detailed EQ with FIR. Add full connection to crossover schematic.
1. Short custom EQ blocks of the driver (Param EQ blocks in the image below).
2. Select G(f) block of the driver to be EQd by clicking it (block highlighted).
3. Select 'Axial response of Driver' option in Optimizer window.
4. Select the (same) driver from list box on the right.
5. Create target response. Note! Woofer's target response should be quite close to system response and Lin.phase unchecked to avoid huge amount of taps. Check Lin.pha for other slopes.
6. Click TF button to save and load mirrored EQ response to selected G(f) block. Command supports also updating response of G(f).
Repeat steps 1-6 for other drivers.
Enable custom EQ blocks and equalize combination of ON, LW, ER, PIR and SP as you like or with Preference rating option.
Finally export IR files as IEEE wav for EquAPO.

View attachment 1016723

One small thing. Wires between active blocks are useless and just waste of time.
Based on the feedback above, I've updated the document for this process, attached.
 

Attachments

  • mirror EQ filtering.pdf
    919.1 KB · Views: 104
Yes, all blocks and components which are not bypassed (shorted/open) when TF button is pressed will be compensated with G(f) transfer function. That enables also equalizing total response of passive speaker with single IR file and 2 channels. This version has target for listening window. Excess GD again flat 0 ms. Note! Buffer block is needed after G(f) for Impulse response export.

View attachment 1016726

When I tried this, I am unable to limit the filter to a certain frequency range, despite setting it in the Optimizer window.

What end up is that it will try to hold a flat FR until 0Hz (or it seems so as step response never came down). That drove the woofer crazy. :)

Is there a way to have the FR limit to a certain range? It can do unity gain outside the range so it won't affect the response.

I understand one way is to try to play with the LP/HP curve to match the current cut off but it'd be nice for the woofer to come down naturally in its low range.
 
I understand one way is to try to play with the LP/HP curve to match the current cut off but it'd be nice for the woofer to come down naturally in its low range.
Setting target response very close to system response at sub frequencies is the best and only way because flat response down to 0 Hz is not possible electrically or acoustically. This is not mentioned in user manual because it should be self evident. Instructions exist on both diyaudio and htguide.

Dropping naturally "as is" could also be difficult in some cases because limiting frequency range causes step to both magnitude and phase response, or target could be linear phase at HF while original response is something else. Both have impact also to impulse response. I have to make some subjective decision how magnitude and phase steps are handled; with simple offset, some ramp, generating theoretical minimum phase response, ...
 
Just a thought, what if you take the TF result in the calculator tool and use HBT to define a flat line response at lower frequencies. In my testing I often encounter noisy measured response at low frequency where the driver rolls off, so at the very least using HBT to avoid compensating for noise may be a good solution.

1642959492526.png
 
Hi Kimmo,

could you please check the ease format data parsing, this is not working as expected in the VxxxHxxx format.

as long as V=000, i.e. V000H010 , V000H020 it works as expected (parsed as vertical=0 degrees, horizontal = 10,20

but for all non-0 vertical values it doesnt work (throw s an error saying illegal/rotated) i.e. V010H000 , V020H000

I realize that Vituixcad doesnt support non-axis (i.e. V010H030) positions, but V000H000 to V360H000 should just be the "normal" vertical axis (it is in ease)

many thanks in advance!

Kees
Kinmo, sorry for the bump, but I am afraid thatthis will be drowned in all messages and yiu have switched pms's off