Announcement

Collapse
No announcement yet.

VituixCAD v2

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • VituixCAD v2

    For information, VituixCAD speaker simulator has been updated from version 1.1 to 2.0 with the following additions and changes (so far):
    • Crossover schematic changed from formal block ladder to free form supporting unconventional topologies.
    • Predefined passive blocks replaced with individual LCR components, wire, ground, generator and library blocks. Passive components have some new parameters; ESR, DCR, wire diameter, power.
    • Library blocks can be "smart" with parameters asked from user, option menu, variables and mathematical expressions for calculating component values by user parameters and selected filter option such as Butter, Bessel or L-R. User can add and maintain own custom blocks. Block parameters are saved to project file. Math expressions can be located in parameters of components too.
    • Operational amplifier added. Many library blocks are OP stages.
    • Max. amount of different driver models is 100 in a project. Amount of off-axis responses for each driver model is unlimited, but in practice 718 is maximum because of two planes and off-axis angle is integer value.
    • Amount of driver instances in crossover is close to unlimited. Drawing sheet area limits in practice.
    • Width of crossover schematic and graphs is adjustable with splitter control.
    • Smoothing of frequency responses.
    • Zooming In/Out/Fit/100% of crossover schematic.
    • Optional snap grid for schematic.
    • Separate schematic preview window removed.
    • Parts list changed to grid. New data: R.Pow, C.ESR, L.DCR, L.wire dia and drivers.
    • Optimizer, Impulse response and Power dissipation windows, file exports and few graphs adapted for free form schematic which doesn't have "Ways" anymore.
    • Box dimensions by volume and thickness added to Auxiliary calculator.
    • LMS short ascii response file support added.


    More information in changelog, user manual and software page.
    VituixCAD, Features, User manual, Measurements with CLIO, ARTA, REW, SoundEasy, Download

  • #2
    Wow. Simply wow. Downloading now.

    And ... Thank You!! :-)
    Welcome to Rivendell, Mr. Anderson.

    Comment


    • #3
      Yes, I think wow just about covers it. I've just downloaded it and given it a whirl and it certainly seems to cover all of the bases although I did have some trouble with the optimiser. It's possible that it encounters an error if the filters it has to work with aren't enough for a decent match?
      What you screamin' for, every five minutes there's a bomb or something. I'm leavin' Bzzzzzzz!
      5th Element, otherwise known as Matt.
      Now with website. www.5een.co.uk Still under construction.

      Comment


      • #4
        Optimiser is pure Nelder-Mead (amoeba) without artificial intelligence added for this application. It needs decent initial values to find the best overall solution. Otherwise is could lose optimal path and find some local minimum which is far from the best. This is common behavior with other algorithms too. Only thing I could tune is perturbation; the first step away from the initial values. I've no plans to test other choices because this works okay if user bothers to adjust starting point.

        Network calculation could be faster. Version 1.1 with Ohms law is about two times faster. Linear equation solver is very smart though it's iterating, but that single iteration circle takes quite long time with complex network. I'll try to test some other math lib e.g. ALGLIB having "sparse linear conjugate gradient" algorithm.
        VituixCAD, Features, User manual, Measurements with CLIO, ARTA, REW, SoundEasy, Download

        Comment


        • #5
          I tried repeating the same thing today, just to give an example of what went wrong, as the deviation from the target wasn't all that high, it just kept throwing up a large error and increasing the Q of a 2nd order filter block, rather than trying to actually fit the line.

          Repeating things today didn't throw up the same issue, obviously I am using slightly different parameters as I cannot exactly remember how things were yesterday, but it's passing with flying colours.

          Would it be possible to add in limits to the optimiser to bandwidth constrain it? Such as say optimise between 500Hz and 10kHz for a tweeter, such that the optimiser would then ignore any ragged low end response, due to measurement limitations, or upper octave dips/peaks from waveguides etc? It would also allow you to get the optimiser to focus in on various parts of the frequency response that are more important. For example, I am optimising the tweeter that I tried yesterday and it's doing a decent job of it this time, but it's paying a lot of attention into matching the response way down into the stop band, but leaving a rather decent bump in the transition band. I would much rather the optimiser choose to deviate away from the target down at -20dB and concentrate on flattening the bump instead.

          Another decent addition would be for the optimiser to include variable Q targets. Such that you pick 4th order, but instead of being constrained to Butterworth or Linkwitz, for example, you can select variable Q and then choose for yourself. Then being able to select any order along with the variable Q. This would be quite useful when fine tuning asymmetric passive crossovers. And finally a slider to slow down the optimisation process would be quite nice too, so you can potentially stop after an iteration because that's actually preferable to letting it completely run.

          This may seem like I am nitpicking, but being a long time LspCAD user, some of these things I find extremely useful and some of them are just things that I would find extremely useful anyway.

          Many thanks again!

          Update - When working with the enclosure designer there is a tick box that enables you to apply the transfer function of the crossover of the current driver. This is buggy. If I apply a LT to a sealed box and click the apply button it will do so. But if I then alter the settings of the LT, it does not update the response applied to the driver and selecting/deselecting the 'crossover of current driver' buttons doesn't do anything. If I click 'optimise toggle' of the driver in the crossover window it seems to update something and the crossover will now carry over to the enclosure designer.

          I also got this error message.


          See the end of this message for details on invoking
          just-in-time (JIT) debugging instead of this dialog box.

          ************** Exception Text **************
          System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
          Parameter name: index
          at System.ThrowHelper.ThrowArgumentOutOfRangeExceptio n(ExceptionArgument argument, ExceptionResource resource)
          at Vituixman.FormMain.u3T2WBYIAU(Object , DataGridViewCellEventArgs )
          at System.Windows.Forms.DataGridView.OnCellEndEdit(Da taGridViewCellEventArgs e)
          at System.Windows.Forms.DataGridView.EndEdit(DataGrid ViewDataErrorContexts context, DataGridViewValidateCellInternal validateCell, Boolean fireCellLeave, Boolean fireCellEnter, Boolean fireRowLeave, Boolean fireRowEnter, Boolean fireLeave, Boolean keepFocus, Boolean resetCurrentCell, Boolean resetAnchorCell)
          at System.Windows.Forms.DataGridView.SetCurrentCellAd dressCore(Int32 columnIndex, Int32 rowIndex, Boolean setAnchorCellAddress, Boolean validateCurrentCell, Boolean throughMouseClick)
          at System.Windows.Forms.DataGridView.OnRemovingRow(In t32 rowIndexDeleted, Point& newCurrentCell, Boolean force)
          at System.Windows.Forms.DataGridViewRowCollection.Rem oveAtInternal(Int32 index, Boolean force)
          at System.Windows.Forms.DataGridView.set_RowCount(Int 32 value)
          at Vituixman.FormMain.ParametersGridRefresh()
          at Vituixman.FormMain.uq32plrtPH(String )
          at Vituixman.FormMain.Q2C2R7GqsG()
          at Vituixman.FormMain.c7G2Z8FXON(Object , EventArgs )
          at Vituixman.KSpeaker.set_TopIndex(Int32 value)
          at Vituixman.FormMain.Mbk8ExvvQS(Object , MouseEventArgs )
          at System.Windows.Forms.Control.OnMouseDown(MouseEven tArgs e)
          at System.Windows.Forms.Control.WmMouseDown(Message& m, MouseButtons button, Int32 clicks)
          at System.Windows.Forms.Control.WndProc(Message& m)
          at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


          ************** Loaded Assemblies **************
          mscorlib
          Assembly Version: 4.0.0.0
          Win32 Version: 4.7.3101.0 built by: NET472REL1LAST_B
          CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
          ----------------------------------------
          VituixCAD2
          Assembly Version: 2.0.2.0
          Win32 Version: 2.0.2.0
          CodeBase: file:///C:/Program%20Files%20(x86)/VituixCAD/VituixCAD2.exe
          ----------------------------------------
          System.Windows.Forms
          Assembly Version: 4.0.0.0
          Win32 Version: 4.7.3056.0 built by: NET472REL1
          CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
          ----------------------------------------
          System
          Assembly Version: 4.0.0.0
          Win32 Version: 4.7.3056.0 built by: NET472REL1
          CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
          ----------------------------------------
          System.Drawing
          Assembly Version: 4.0.0.0
          Win32 Version: 4.7.3056.0 built by: NET472REL1
          CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
          ----------------------------------------
          System.Numerics
          Assembly Version: 4.0.0.0
          Win32 Version: 4.7.3056.0 built by: NET472REL1
          CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
          ----------------------------------------
          System.Core
          Assembly Version: 4.0.0.0
          Win32 Version: 4.7.3101.0 built by: NET472REL1LAST_B
          CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
          ----------------------------------------
          System.Configuration
          Assembly Version: 4.0.0.0
          Win32 Version: 4.7.3056.0 built by: NET472REL1
          CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
          ----------------------------------------
          System.Xml
          Assembly Version: 4.0.0.0
          Win32 Version: 4.7.3056.0 built by: NET472REL1
          CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
          ----------------------------------------
          Microsoft.GeneratedCode
          Assembly Version: 1.0.0.0
          Win32 Version: 4.7.3056.0 built by: NET472REL1
          CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
          ----------------------------------------
          Accessibility
          Assembly Version: 4.0.0.0
          Win32 Version: 4.7.3056.0 built by: NET472REL1
          CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
          ----------------------------------------

          ************** JIT Debugging **************
          To enable just-in-time (JIT) debugging, the .config file for this
          application or computer (machine.config) must have the
          jitDebugging value set in the system.windows.forms section.
          The application must also be compiled with debugging
          enabled.

          For example:

          <configuration>
          <system.windows.forms jitDebugging="true" />
          </configuration>

          When JIT debugging is enabled, any unhandled exception
          will be sent to the JIT debugger registered on the computer
          rather than be handled by this dialog box.
          What you screamin' for, every five minutes there's a bomb or something. I'm leavin' Bzzzzzzz!
          5th Element, otherwise known as Matt.
          Now with website. www.5een.co.uk Still under construction.

          Comment


          • #6
            Originally posted by 5th element View Post
            Would it be possible to add in limits to the optimiser to bandwidth constrain it? Such as say optimise between 500Hz and 10kHz for a tweeter, such that the optimiser would then ignore any ragged low end response, due to measurement limitations, or upper octave dips/peaks from waveguides etc?
            There is frequency range constraints also for optimising SPL response or filter's magnitude response of single driver. Textboxes are located just below driver selection combo box. Problem for user is that limits are calculated automatically when filter type/shape or low/high pass frequency or filter order of target curve is changed or different driver is selected. Previous changes to values are lost. Limits should be visible in the graph (just like in LspCAD) that user would see all changes in target curve.

            Originally posted by 5th element View Post
            Another decent addition would be for the optimiser to include variable Q targets.
            Bessel, Butterworth and L-R options are playing different Q factors. Earlier there was also some Linear phase but that was quite close to idea of Bessel. I think that those three are quite adequate as driver targets because final tuning for speaker is done by optimising combination of total axial and power response. In that point response shape and "acoustic Q" of each driver will change anyway (if user has allowed changes with Opt-bit).
            Usually single 2nd order stage can have adjustable Q factor. That is possible to add, but higher orders are difficult to arrange because parameters of each stage are specified in design tables like this one.

            Originally posted by 5th element View Post
            ...being a long time LspCAD user.
            So am I.

            Originally posted by 5th element View Post
            But if I then alter the settings of the LT, it does not update the response applied to the driver and selecting/deselecting the 'crossover of current driver' buttons doesn't do anything.
            ...
            Index was out of range.
            Thanks for information. I will check these out.

            "Index out of range" error is usually related to situations when project should be opened and one driver selected from crossover (or Drivers tab), but it is not. Part of the old code copied from version 1 doesn't work well because some driver was always selected in version 1. I've found some of those but few left.
            VituixCAD, Features, User manual, Measurements with CLIO, ARTA, REW, SoundEasy, Download

            Comment


            • #7
              Originally posted by 5th element View Post
              But if I then alter the settings of the LT, it does not update the response applied to the driver and selecting/deselecting the 'crossover of current driver' buttons doesn't do anything.
              This is now fixed with quick n' dirty workaround with timer of 1000 ms. Feature won't be logical and clear for users in version 2 because after you have modified the crossover, you need to click the driver again in order to inform Enclosure tool which driver is currently selected. This has always been just an auxiliary workaround for LT tuning etc. but now it's worse than ever
              VituixCAD, Features, User manual, Measurements with CLIO, ARTA, REW, SoundEasy, Download

              Comment


              • #8
                Originally posted by kimmosto View Post
                Limits should be visible in the graph (just like in LspCAD) that user would see all changes in target curve.
                This is done in rev 2.0.2.2. Driver's SPL target curve is thicker (2px) than earlier to improve visibility of frequency range constraints.
                VituixCAD, Features, User manual, Measurements with CLIO, ARTA, REW, SoundEasy, Download

                Comment


                • #9
                  Originally posted by kimmosto View Post
                  There is frequency range constraints also for optimising SPL response or filter's magnitude response of single driver. Textboxes are located just below driver selection combo box. Problem for user is that limits are calculated automatically when filter type/shape or low/high pass frequency or filter order of target curve is changed or different driver is selected. Previous changes to values are lost. Limits should be visible in the graph (just like in LspCAD) that user would see all changes in target curve.
                  Ah! I thought those were only relevant when you selected 'filter gain of driver'. The updated version makes the limits a lot clearer.


                  Originally posted by kimmosto View Post
                  Bessel, Butterworth and L-R options are playing different Q factors. Earlier there was also some Linear phase but that was quite close to idea of Bessel. I think that those three are quite adequate as driver targets because final tuning for speaker is done by optimising combination of total axial and power response.
                  Usually the way I design passive crossovers is to start with an ideal acoustic slope at a suitable crossover frequency and see the way the phase integrates. Then I'll deviate away from the ideal acoustic slopes, to asymmetric, for a decent phase alignment. The way I do this with LspCAD is to use live update, small optimisation steps, and then real time alter the Q and filter order. Due to the small step sizes, the optimiser takes its time drifting, from say a 4th order LW target, to a 4th order BW target. I observe the reverse null as it drifts, see if it improves etc, to get an idea of what degree of asymmetry I'm going to need to get the drivers properly integrated. Due to the speed of the optimiser in Vituix this is impossible. Maybe I'm the only one who does it this way.

                  Originally posted by kimmosto View Post
                  "Index out of range" error is usually related to situations when project should be opened and one driver selected from crossover (or Drivers tab), but it is not. Part of the old code copied from version 1 doesn't work well because some driver was always selected in version 1. I've found some of those but few left.
                  Alrighty.
                  What you screamin' for, every five minutes there's a bomb or something. I'm leavin' Bzzzzzzz!
                  5th Element, otherwise known as Matt.
                  Now with website. www.5een.co.uk Still under construction.

                  Comment


                  • #10
                    Originally posted by kimmosto View Post
                    This is now fixed with quick n' dirty workaround with timer of 1000 ms. Feature won't be logical and clear for users in version 2 because after you have modified the crossover, you need to click the driver again in order to inform Enclosure tool which driver is currently selected. This has always been just an auxiliary workaround for LT tuning etc. but now it's worse than ever
                    At least there is a way to workaround it!
                    What you screamin' for, every five minutes there's a bomb or something. I'm leavin' Bzzzzzzz!
                    5th Element, otherwise known as Matt.
                    Now with website. www.5een.co.uk Still under construction.

                    Comment


                    • #11
                      Originally posted by 5th element View Post
                      Then I'll deviate away from the ideal acoustic slopes, to asymmetric, for a decent phase alignment...
                      I observe the reverse null as it drifts, see if it improves etc, to get an idea of what degree of asymmetry I'm going to need to get the drivers properly integrated... Maybe I'm the only one who does it this way.
                      Maybe. This is not the best thread to discuss about design strategies, but at least I wouldn't care too much about phase matching. It is one of many tools to affect sound balance and sound stage, but usefulness or harmfulness depends on directivity features of selected drivers, crossover frequencies and enclosure type (open/closed/leaking). Some concepts could benefit phase matching, but some could suffer. Therefore primary design policy should be that you'll get clean, balanced, high resolution and dynamic sound no matter how matched or unmatched phase responses of adjacent ways are. In practice, optimising combination of axial and power responses gives valuable information how much you can care about phase match and deep reverse nulls. After all, it's not #1 priority task for optimiser.
                      VituixCAD, Features, User manual, Measurements with CLIO, ARTA, REW, SoundEasy, Download

                      Comment


                      • #12
                        Outstanding! The best just became better.
                        However, I'm not able to open my projects made in version 1.1.25. I get this message "File is not valid VituixCAD project".
                        Joaquim

                        DIY 4 way speakers.
                        DIY subwoofers.
                        Zaph ZD3C.

                        Comment


                        • #13
                          Originally posted by cochinada View Post
                          However, I'm not able to open my projects made in version 1.1.25. I get this message "File is not valid VituixCAD project".
                          Network structure and project files of version 1 are so different that separate conversion program would be required. I suppose we all have converted the most valuable old projects before such tool is ready. I have more than 130 projects with version 1, but less than ten are active and worth to convert to version 2. Manual work takes few minutes per project.
                          VituixCAD, Features, User manual, Measurements with CLIO, ARTA, REW, SoundEasy, Download

                          Comment


                          • #14
                            Originally posted by kimmosto View Post
                            Maybe. This is not the best thread to discuss about design strategies, but at least I wouldn't care too much about phase matching. It is one of many tools to affect sound balance and sound stage, but usefulness or harmfulness depends on directivity features of selected drivers, crossover frequencies and enclosure type (open/closed/leaking). Some concepts could benefit phase matching, but some could suffer. Therefore primary design policy should be that you'll get clean, balanced, high resolution and dynamic sound no matter how matched or unmatched phase responses of adjacent ways are. In practice, optimising combination of axial and power responses gives valuable information how much you can care about phase match and deep reverse nulls. After all, it's not #1 priority task for optimiser.

                            All I'm trying to do is offer suggestions that would make the software more flexible, not everyone will use every given feature, we all have different design processes. I figured if it's something that would be easy to code/add (the variable Q target) then it certainly can't hurt to include it. I, for one, would definitely use it, maybe you wouldn't, but this doesn't make my (or someone elses) design process incorrect.
                            What you screamin' for, every five minutes there's a bomb or something. I'm leavin' Bzzzzzzz!
                            5th Element, otherwise known as Matt.
                            Now with website. www.5een.co.uk Still under construction.

                            Comment


                            • #15
                              ^"2nd order" with adjustable Q factor is now added to driver's SPL target list. As mentioned earlier, higher order (3...8 ) filters are usually (and also in this case) fixed textbook versions. Of course it is possible to allow adjustment of some 2nd order stage(s) in the chain, but I'd like to encourage users to put that effort to next (final) phase: total axial, power and DI responses.

                              Two more 'index out of range' bugs related to driver selection found and fixed to rev 2.0.3.
                              VituixCAD, Features, User manual, Measurements with CLIO, ARTA, REW, SoundEasy, Download

                              Comment

                              Working...
                              X