VituixCAD

1.1.18.2 (2017-11-28)


  • Scale maximum of SPL and Directivity charts set according visible frequency range.

Hurray :)

This in combination with manual x-axis range gives the opportunity of some 'manual zooming' to have closer looks on areas of interests. And also the auto scale function works better now. This works for me, fine! :)
One step closer to brilliancy :D;):)

Thanks for the quick responses!
 
^You're very welcome, and sorry that this wasn't already done as I thought. Previous improvements for auto max. were related to bad coincidences in extrapolation and missing hysteresis.

Enclosure, Merger and Diffraction tools have the same scaling policy i.e. invisible frequency bands are ignored. Calculator uses full 10...40k, but there is manual scaling in addition to A-button.
 
It would be nice to set a color of a trace.
 

Attachments

  • mic.png
    mic.png
    54.5 KB · Views: 272
aczern, sorry that I'm quite narrow-minded sometimes - maybe always :)
SPL Trace has been mostly programming challenge for me. It's not necessary part of the program because traced curves should not be used in simulation other than very rough preliminary design. Smaller reason is that older tools such as SPL Copy and SPL Tracer are not so excellent, and people should have some working tool (though my attitude for tracing is negative). Any publishing features would be total overkill.
 
Few words about the latest revision 1.1.20.0 (2017-12-09)

Frequency responses of active IIR filters are plotted by transfer function of digital biquad if Active IIR response as digital biquad is checked in Options window. Also visible range and maximum exported frequency is limited up to Nyquist (sample rate / 2).
This makes life easier when designing active filters for dsp with low sample rate (48k). Actual response of digital biquad could be quite far from ideal textbook curve if sample rate is less than 96k.

Few examples.
LR12 low pass 6 kHz, gold=ideal, red=digital biquad 48kHz:
An externally hosted image should be here but it was not working when we last tested it.


PEQ 10 kHz -10dB Q=0.5 , gold=ideal, red=digital biquad 48kHz:
An externally hosted image should be here but it was not working when we last tested it.


PEQ 10 kHz +10dB Q=0.5 , gold=ideal, red=digital biquad 48kHz:
An externally hosted image should be here but it was not working when we last tested it.


Snapshots of phase and filter response are taken from currently selected driver.
Loaded filter overlay helps converting active filter transfer function to passive filter. All-pass filters and delays need some tricks. Easiest way is to load flat 0 dB frequency response to all drivers. That will show filter phase in GD & Phase graph.
 
Added frequency response Optimizer to revision 1.1.21.0 (2017-12-13). See changelog.

This feature is quite basic in the beginning. Not so fancy and comprehensive, but makes the trick. Loading of target curve from a file and filter response optimizing (without workaround using driver response) will be added later.
User manual will be updated and at least some preliminary youtube lesson published within a week I hope.

An externally hosted image should be here but it was not working when we last tested it.
 
Last edited:
This is a big and tough one to tackle - glad to see you'r taking the challenge Kimmo!

I've mostly used the LspCAD optimizer - some of the learnings for me at least have been
* Undo ability is a must - any 'artificial mind optimizer' can sometimes go so horribly wrong that best is to just go back to zero state again and change parameters and try again.
* Ability to isolate some parts of the network is a good thing (like not allowing the optimizer to play with zobel network values), but I'm sure you have that on the future feature list already.
* Minimum impedance option is good to have - the optimizer might think that the power amps are almighty.
* Depending on the algorithm a way to choose a weighting to favor a either a flat response or a good phase matching might be good to have... or maybe as you are looking at power response too it is not needed as much here.
 
ergo,

I have used optimizer with LspCAD 5.25 a lot. It was usually adequate, but common problem was that impedance went down due to missing minimum Z constraint. Another issue was unnecessary drifting of crossover frequency while optimizing total axial response with more than one way selected for optimizing. Finding of totally wrong local minimum is problem with any optimizer. User just have to set initial values close enough to final solution.
New optimizer in LspCAD 6 is excessive comprehensive and difficult to configure, imo. I tried few times but never succeeded before VituixCAD was ready.

I will add minimum impedance constraint for sure. Just need to figure out how error value should be punished when Z drops below the minimum.
Maybe error /= (1 + (Zmin - Z)/Zmin) would be adequate... Active ways/applications should be skipped because calculation of total Z doesn't understand multiple generators.

Undo (for optimizer only) is doable and will be done, though I prefer saving of project. That is 100% sure backup.

Locking of individual parameter/component values or whole way is already there in rev 1.1.21.0.

Phase matching is a bit questionable as a target because phase mismatching is one way to improve power response. Not the best possible but worth to consider seriously if other methods are not possible anymore. For example drivers are already assembled.

Optimizing by weighted sum of axial and power responses is very important feature. Crossover frequency can drift while all ways are selected for optimizing, but it will happen for a good reason. In addition, user can control importance of power and axial responses depending on directivity, room acoustics and listening distance.
I'm aware that many people design with a single (axial) response only or with couple off-axis responses, but it's not my bad :)
 
Another constraint that might be useful is to set a minimum resistance of each coil.

On a test I just ran it optimised one of my RLC notches to 0 ohms for the series resistance - which is not achievable. I could uncheck the R and just not let it optimise the resistance of the coil at all I suppose, but a higher than starting R might be optimal in some cases.