VituixCAD

The Loudspeaker Simulation Tool

logo

User Manual

Version 2.0.74.1 (2021-06-12)
Copyright © Kimmo Saunisto 2021
kimmo.saunisto@gmail.com

Table of contents


General information

VituixCAD is loudspeaker simulation software. Design philosophy is to simulate loudspeaker behavior in full space or half space. Even though emphasis is on power response, polar responses and directivity index, it is possible to design a loudspeaker without comprehensive angled measurements. This is not encouraged though.

Software package includes everything one needs for simulating and designing a loudspeaker. Additional to crossover simulator, there is enclosure simulator, diffraction simulator, response tracer, response merger, response calculator, auxiliary calculator and FFT tool included.

System requirements

Recommended platform is Windows 10 in real or virtual machine such as VMware or VirtualBox.

Installation and upgrade

Download the latest build: VituixCAD2_setup.exe. See also changelog and license agreement.

VituixCAD could run also on Linux, but it's not guaranteed and supported and some functions might be slow.
Installation to Linux with Wine: VituixCAD in Linux v0.1.pdf

Public folders created by setup program:

\Users\Public\Documents\VituixCAD\Enclosure Local driver database (VituixCAD_Drivers.txt)
\Users\Public\Documents\VituixCAD\Library Library blocks (.vxl, .png)
\Users\Public\Documents\VituixCAD\Projects Response file samples (.txt)
\Users\Public\Documents\VituixCAD\Template LTspice templates (.asc, .plt)

User folders created while running if not already exist:

\Users\username\Documents\VituixCAD\Download Download folder for auto update
\Users\username\Documents\VituixCAD\Enclosure LTspice files (.asc, .plt, .log, .net, .raw)
\Users\username\Documents\VituixCAD\Projects User projects (.vxp, .vxe, .vxm, .vxb, .txt, .frd, .zma, ...)

Command line arguments (optional)

VituixCAD.exe "path\filename" Opens VituixCAD project file ending with ".vxp", ".vxe", ".vxm", ".vxb"

Project directory structure

All files included in loudspeaker project should be located to \Users\username\Documents\VituixCAD\Projects\projectname and it's subdirectories in order to help archiving as zip-file and enable distribution to other users. For example:

.\projectname Project files: vxp, vxe, vxm, vxb.
.\projectname\Far Far field measurements and FR exports: pir/mls, txt/frd.
.\projectname\Near Near field measurements and FR exports: pir/mls, txt/frd.
.\projectname\Diffraction Baffle effect responses for quasi far field conversion with Merger.
Possible simulated directivity i.e. off-axis responses of woofers.
.\projectname\Enclosure Simulated half space frequency and impedance responses.
.\projectname\Merger Merged responses: frd/txt.
.\projectname\Impedance Impedance measurements and ZR exports: pir/mls/sin, txt/zma.
.\projectname\Other Other design material such as drawings, datasheets and exported images.

Support

Press F1 for help.

The latest online manual can also be opened to your default browser from the internet. Add bookmark to the browser for fast access to the latest revision.

How to start working with VituixCAD

YouTube videos

Discussion forums


Preface

This user guide is a chronological walkthrough on how to design a loudspeaker with VituixCAD. Commonly, design process starts with deciding enclosure size, drivers, radiator type, alignment etc. Enclosure tool is used for simulating enclosures, different radiator types and alignments. Next step is to have comprehensive set of acoustic and electrical measurements of the construction. Diffraction and Merger tools are used for combining far field and near field responses. After these prerequisites are met, simulation phase can be started. Whether your goal is to design a speaker with or without interim listening tests, you'll need quality control of some sort. Some prefer their ears, some prefer measurements. If a loudspeaker measures perfectly, but sounds worse than anything you've ever heard, something is terribly wrong. This guide will not teach you how to listen a loudspeaker, but will cover basic QC steps.

Building prototypes and crossovers are not covered in this guide. This guide will also assume you have suitable measurement gear and software and understanding about how to measure loudspeaker drivers for design purposes. See response measurements for crossover simulation with VituixCAD:

Checklist for designing a loudspeaker

Investigate acoustic parameters, dimensions, materials and speaker placement possibilities of the listening room. It is wise to fix issues of bad environment (the room) first rather than trying to handle everything with massive and complex speaker design.

Basic engineering

Construction

Measurements

Export frequency responses with Convert IR to FR tool if measured with CLIO or ARTA. This is not needed with REW 5.20 beta 7 or later having group export.

Merge and manipulate response data

Simulate loudspeaker with VituixCAD

Build and install crossover

Quality control

Mandatory QC-measurements

Additional QC-measurements

Listen to your favorite tracks.

If you are not satisfied return to drawing board.


Main program

main.png

Main window is divided into two sections, control section on the left and graphs on the right.

File

New Create new empty project
Open Open existing project
Recent > Open previously opened project
Save (Ctrl+Shift+S) Save current project
Save as... Save current project with a different filename
Archive project Pack project vxp and external files to zip file. See Options, Archive project
Create library block Save selected components as a block into VituixCAD\Library folder
Edit library block parameters Modify parameters, variables and expressions of library blocks
Export > Export of Frequency response, Frequency response of Driver, Listening window,
Early reflections, In-room response, Power response,
Directivity Index, Early reflections DI, Group delay, Filter response of Driver,
Load impedance of Generator, Load impedance of Buffer, Polar frequency responses,
CTA-2034-A data either as multi-column csv file or 12 separate txt/frd files
Exit Exit VituixCAD

View

Optimizer (Ctrl+P) Open SPL Target setting and Optimizer window
Parts list Open Parts list window
Impulse response Open Impulse response window for preview and export
Power dissipation Open Power dissipation window
Units Show engineering units (Ohm, F, H) in crossover schematic
Part # Show part numbers in crossover schematic
Power Show maximum power of resistors in crossover schematic
Grid Show snap grid in crossover schematic
Nodes Show electrical node numbers of crossover network
Image export size Chart size to Six-pack W x H set in Options.
Press control key to set Single W x H.

Tools

Enclosure (F3) Open Enclosure tool
Merger (F4) Open Merger tool
Calculator (F5) Open Calculator tool
Diffraction (F6) Open Diffraction simulator
SPL Trace (F7) Open SPL Tracer tool
Auxiliary (F8) Open Auxiliary calculator
Convert IR to FR (F9) Open FFT tool

Options

(Alt+O) Open Options window

Help

Help (F1) Open user manual
Donate Donation with PayPal
About Information about VituixCAD. View changelog.

Drivers tab

Driver list

driver_list.png

Drivers in the project are listed in Drivers table. Give actual name for initial dummy driver "Driver #1". Add the rest with (+) button and enter actual names. Enter nominal SPL and Z if you're making just simple tests without measured or simulated frequency and impedance responses. That will scale flat default responses without adjusting via Scaling text boxes.

Frequency responses

Filenames must have valid coding for plane and off-axis angle. ARTA style angle coding <name-prefix>_deg[+|-]<num>.txt is okay, as well as CLIO style <name-prefix> <num>.txt where angle <num> is multiplied by 100. Different planes should be separated with a keyword, typically 'hor' or 'ver'.
For example 'M15CH002_hor_deg+110.txt' or simply 'M15CH002 hor 110.txt' equals to M15CH002 to horizontal off-axis angle of 110 degrees with angle multiplier 1. 'M15CH002 hor 11000.txt' equals to horizontal 110 deg with CLIO naming style having angle multiplier 100.

Also 3D balloon data with CLIO, EASE and VACS file naming formats is supported. Program is able to read horizontal (phi=0) and vertical (phi=90 deg) planes from balloon data. Rotation of phi by +90 deg is needed if balloon data is captured with Klippel NFS having non-standard offset (-90 deg) for meridians. See Options for more information.

Add driver's frequency responses by clicking open button or dropping files into response list. All files of the driver should be selected in one pass with multi-selection (Ctrl or Shift key pressed) i.e. files should locate in the same folder. Delete button X clears response list.

Maximum of 718 frequency responses per driver is supported in practice. Angle step of drivers' off-axis responses could be denser, fewer or equal to angle step of simulation set in Options window. Measured angle step could be constant (0, 10, 20, 30, ..., 180) or variable (0, 5, 10, 15, 20, 30, 40, 50, 60, 80, 100, 120, 150, 180). Off-axis responses of different driver types can have different angle step - constant or variable.

Power response and directivity index are calculated within minimum coverage angle of drivers' frequency responses i.e. 0-180 deg must be measured for all drivers in order to calculate Power&DI to full space.

frd_scaling.png

Frequency responses can be scaled (dB), smoothed (none, 1/24, 1/12, 1/6, 1/3, 1/2 oct.), delayed (± µs), polarity inverted, muted and converted to minimum phase with controls below frequency response list. Hor and Ver angle can be modified by entering new value to the field if program fails to parse angle value from the filename or measurements are swapped intentionally.

reference_angle.png

Reference angle is direction in horizontal plane which is shown as axial response in SPL, Power&DI and Phase response graphs. Also directivity index calculation can use Reference angle as main axis. See CTA-2034-A in Options for more information. Optimizing to single off axis direction is useful if axial response is bad or not representative or measurement data is poor and accurate power response approximation is not available. Default value is 0 deg hor.

Impedance response

Select impedance response file for a driver(s) by clicking folder button or dropping file into text box.

Impedance response can be scaled as well with a multiplier. If multiple drivers are entered to crossover as a single driver (not recommended), scaled impedance response should represent total impedance of driver group. If impedance response was measured from group of drivers in common volume and drivers are entered to crossover as a single drivers (as recommended), scaled impedance response should represent single driver.

Supported response file types

VituixCAD supports tab, space or semicolon delimited .txt or .frd or .zma (for impedance). Recommended decimal separator is period (.). Comma (,) is used as decimal separator if data line doesn't contain periods. Comma is used as field/column separator if data line contains both periods and commas. Therefore any thousand separator is not allowed. Following software exports are supported:

Crossover tab

Filter schematic

filter_schematic.png

Unlimited amount of components can be added via Crossover component menu. Menu includes generic active blocks (9), active transfer function file, operational amplifier, passive components L C R T, library block (LIB), comment text (T), wire, ground and driver.

Crossover should contain one Generator. No more - no less. Parameters are source voltage Eg and output impedance Rg. Voltage affects to sound pressure level in SPL, Power&DI and Directivity graphs, but not to Power dissipation window having own signal. Level in SPL plots equals to USPL when frequency responses in Drivers tab are scaled to dBSPL/2.83V and Ug=2.83 V.

Filter block types

Active Low pass and High pass filters (f). Shape and Order are selected from list boxes:

Active Shelving Low pass and High pass filters (f, gain). Shape is selected from list box:

Active Linkwitz Transform (fo, Qo, fp, Qp)

Active All-pass filters (f). Shape and Order are selected from list boxes:

Active Peak/Notch filters. Type is selected from Shape list box:

Digital Biquad (b0, b1, b2, a0=1, a1, a2)

Active Buffer / Power amplifier of active multi-way (gain dB, delay µs, polarity inversion)

Operational Amplifier (AOL, GBP)

Transfer function file, any supported frequency response file type

Passive R (Pow W)

Passive C (ESR Ohm)

Passive L (DCR Ohm, Wire diameter mm)

Passive ideal Transformer (N=Vs/Vp)

Driver (X,Y,Z mm, R,T deg). See 'Driver instances' below

Generator (Eg Vrms, Rg Ohm)

Important! Active filters in blue are NOT minimum-phase. Blocks in the schematic have 'FIR' text for information. Convolver plugin or DSP device with FIR features is needed for real life application. Transfer function of active filters per driver can be exported as impulse response in wav or txt file format. See section Impulse response.

Components are added by clicking menu button, moving to correct location and clicking left button. Esc key, right click or clicking menu button X cancels adding.

Selected component can be replaced by pressing Ctrl key while clicking menu button. Active block can be replaced with another active, and passive component (LCR) with another passive. Values of parameters with the same name and unit are copied to replacement component. Driver, ground, library block and wire cannot be replaced directly without delete->add.

Driver instances

Each driver instance added in the crossover can be provided with location relative to "design origin". Location is entered to Parameters grid. Design origin is typically perpendicular endpoint of listening axis on front baffle surface. X [mm] is horizontal coordinate of center point; negative to left and positive to right (mic/listener view). Y [mm] is vertical coordinate; negative down and positive up (mic/listener view). Z [mm] is horizontal distance coordinate; negative closer to mic and positive further from mic.

Horizontal rotation R [deg] and vertical inclination T [deg] of drivers are also supported. Rotation R [deg] is positive to counter-clockwise from top view, and inclination T [deg] is positive to up.

Measurement data in Drivers tab is linked to driver instance in crossover network with a list box located below crossover schematic. List box is visible when driver is selected in crossover.

Multiple drivers should be entered as a single driver if they are measured in the prototype cabinet as a package; all connected to power amplifier at the same time. Location is entered as a difference between measurement and design origins.

Example 1: Location (X,Y,Z) = (0,0,0) if multiple driver package is measured on design (listening) axis.
Example 2: Location (X,Y,Z) = (0,-400,0) if multiple driver package is measured 400 mm below design (listening) axis.

Library block menu

Library block menu can be filtered shorter with checkboxes in Filter group. See searched keywords from tooltip of each checkbox. Block is inserted to crossover by double-clicking or with Open button. Blocks (vxl files) are also possible to drag & drop with file system from VituixCAD\Library folder to crossover.

block_library.png

Library block could have attributes for calculating component values by user parameters and mathematical expressions. Tune block window opens when block is inserted, or Tune block... is selected from context menu. Values are updated to crossover while parameters are adjusted. Attribute values can be solved with Optimizer by checking Opt.

tune_block.png

Purge command disconnects links between block and components, and clears expressions from component parameters which enables modification of previously calculated parameters. Purged block disappears when project file is saved.

Wires are added by point & left click, point & left click etc. Space or Enter key or right click accepts/terminates wiring. Esc key rewinds wire node by node until all nodes are removed. Wire is highlighted with lime color when cursor is at valid termination point i.e. terminal of a component, or existing node or endpoint of another wire. New node is created if wire is started or ended to intermediate point of existing wire, or terminal of component is dropped into intermediate point of existing wire in the end of dragging (adding or moving).

Wire can be started from existing wire node or component terminal without clicking wire button in component menu or W shortcut key. Creating new node to intermediate point of existing wire requires wiring command.

Red terminal dot of component indicates missing connection. Program can handle unconnected terminals but calculation speed is reduced.

Shortcut letter keys are available for adding the most common passive components:
C for capacitor, L for inductor, R for resistor, M for transformer, W for wire, G for ground, T for comment text and D for driver.

Passive components and texts are added as rotated (=vertical) if Shift key is pressed while clicking component menu or shortcut letter key.

Selection

Components can be selected for modification by clicking or window selection. Multi-selection with Ctrl or Shift key pressed is available for both clicking and window selection. Selection set is reset by clicking empty area. So called 'Top component' is one of the selected components which parameters are show in Parameters grid below the schematic. Top component is emphasized with bold highlight color, typically blue. Other selected components (except Top component) are emphasized with semi-transparent highlight color, typically light blue. All selected components are targets for moving or modification with context menu or shortcut keys.

Moving

Selected components can be moved by dragging with mouse or arrow keys. Wires connected to terminals of moving component are stretching along if component is moved by dragging and Stretch is checked. Components are disconnected from the network without wire stretching if moved with arrow keys or Stretch is unchecked while dragging. Pressing Alt or Shift key while dragging inverts the setting on the fly.

Modifying

Context menu shows possible (and few impossible) actions for the selected components. See also shortcut keys.

crossover_context.png
Tune block... Opens window for adjusting user parameters of selected block.
Pan to center Point of mouse cursor scrolls to the center point of picture area (as center as possible).
Undo Up to twenty most recent changes and situations before parameter adjustment can be restored.
Redo Reverse Undo commands.
Select all Selects all components in the crossover.
Cut Cuts selected components to the clipboard.
Copy Copies selected components to the clipboard.
Copy Biquad coeffs Copies Biquad coefficients of selected active IIR blocks to the clipboard.
See Biquad coefficients below.
Paste Pastes from the clipboard to cursor position.
Paste Biquad coeffs Pastes first coefficients from clipboard text to selected Biquad blocks.
Delete Deletes selected components.
Deletion of the last generator is verified because network should contain one generator.
Open Disconnects selected components from the network.
Active blocks are disconnected by setting gain to 1E-10.
Opened components are visualized with transparent color.
Short Selected components are shorted (bypassed with wire).
Active blocks are shorted by setting gain to 1.
Shorted components are visualized with thick black line over the component's body.
Invert Polarity of selected components is inverted.
Applies to Active Buffer and Driver.
Visualized with +/- signs in schematic.
Mute Selected drivers are muted.
Driver is electrically in the network, but acoustical output is muted.
Rotate Selected (passive) components and comment texts are turned vertical.
Single component is possible to rotate with right click while dragging.
Hide traces Chart traces of selected drivers are hidden.
Optimize On Main parameters* of selected components are selected for optimizing.
Optimized parameters are visualized with semi-transparent pale green background in the schematic.
*Main parameters of passive components are L, C, R.
All parameters of active blocks are main parameters except AOL and GBP of OP amplifier.
Main parameters of Drivers are X, Y, Z (location in mm).
Other parameters should be selected for optimizing via Opt column of Parameters grid.
Optimize Toggle Optimize status of selected components is inverted.
This enables swapping of two component groups without changing selection set.
Optimize Off Optimize status of selected components is reset.
Part numbers >
Number blanks Renumbers components with empty Part # starting from the next free number.
Part # text box is green while numbering mode is on.
Numbering is done by clicking components in desired order.
Numbering mode ends by clicking empty area or right click or Esc.
Renumber all 123... Renumbers all components starting from 1.
Numbering is done by clicking components in desired order.
Clear selected Clears Part # of selected components. Helpful before Number blanks command.
Clear all Clears Part # of all components. Helps detection of unnumbered while Renumber all.
Driver layout... Opens table view for modifiying driver locations or creating line array.
Copy image Copy crossover schematic image to clipboard
Export image Export crossover schematic image to file.

Buttons located below crossover schematic:

osim_buttons.png
Open Same as Open command in context menu. Shortcut key is Ctrl+O.
Short Same as Short command in context menu. Shortcut is Ctrl+S.
Invert Same as Invert command in context menu. Shortcut is Ctrl+I.
Mute Same as Mute command in context menu. Shortcut is Ctrl+M.
Rotate Same as Rotate command in context menu. Shortcut is Ctrl+R.

Visualization of component status:

component_visualization.png

Comment text

In addition to normal text, comment could contain single link to local file or several URL-addresses separated with space or new line. Comment text with URL(s) could contain normal text before, between or after the link(s). All URLs are opened at once by single double-click. Links are opened with desktop application if link text starts with application's name: for example onenote:https:// and Shift key is pressed while double-click.

Biquad coefficients with miniDSP

biquad_neg-a12.png

Coefficients are compatible with miniDSP Xover/PEQ Advanced view.
For example 3rd order Butterworth LP 1000 Hz:

biquad1,
b0=0.004015505022858,
b1=0.008031010045716,
b2=0.004015505022858,
a1=1.86140844453211,
a2=-0.877470464623539,
biquad2,
b0=0.061511768503622,
b1=0.061511768503622,
b2=0,
a1=0.876976462992757,
a2=0,

Biquad coefficients with other than miniDSP

biquad.png

Coefficients are compatible with 'Cookbook formulae for audio EQ biquad filter coefficients' by Robert Bristow-Johnson.
For example 3rd order Butterworth LP 1000 Hz:

biquad1,
b0=0.001070538380698,
b1=0.002141076761397,
b2=0.001070538380698,
a0=1.03270156461507,
a1=-1.99571784647721,
a2=0.967298435384928,
biquad2,
b0=0.031698896003969,
b1=0.031698896003969,
b2=0,
a0=1,
a1=-0.936602207992062,
a2=0,

Selected IIR blocks can be copied to clipboard as digital biquad filter coefficients b0...a2. Minimum eight (8) biquad blocks are created if Shift key is pressed while Copy Biquad coeffs command.

Note! Select correct DSP system from Options window before copying biquads. FIR, transfer function file, passive and open/shorted blocks are ignored. Stability of biquad filters is not checked.

Zooming

Click 1:1 button to zoom schematic picture to nominal 10 pixels/snap unit.
Click Fit button to fit components into picture area (within limits of zooming range).

Picture can be zoomed in/out with Ctrl + mouse wheel. Zooming range is 70%...300% from nominal 10 px/snap unit.

Parameters

parameters_active.png parameters_passive.png parameters_driver.png

Selecting of component opens corresponding parameters to the list and shows additional list boxes. Component values can be entered directly to the Value field. Value field accepts metric prefix: p,n,u,m,k,M,G,T. Additionally, component value can be increased/decreased by Alt+Up/Down key or arrow buttons on the right or mouse wheel. First parameter can be adjusted with mouse wheel over the selected component. Increment is defined by component Snap value. Available values are 5 %, E12, E24 or E48.

Parameter will be included in frequency response optimizing if Opt field is checked. Otherwise parameter is excluded and existing value locked. See Optimize.

Min and Max fields limit parameter value while manual adjustment and optimizing.

Expression field could contain variable name or full expression for calculating parameter value. Calculated values are readonly with gray background. See Library blocks.

Variants

Variants are different development stages of the crossover. New variant is created or existing overwritten with S1...S8 button, and recalled with R1...R8 button. Variant can be deleted by pressing Ctrl key while clicking recall button. Crossover variants are saved to project file (.vxp) for the next session. #1 is compatible with older project file versions of VituixCAD 2.0.

Warning! Undo buffer is cleared when variant is changed with S/R button.

Driver layout

Driver layout window allows changing of part #, location (XYZ), rotation (R) and tilt (T) of drivers with table control, or adding new drivers as linear or curved array.

 driver_layout.png

Drivers table contains existing driver instances in the crossover. List can be filtered with Filter combo box. Rows can be sorted by Part # or Y mm by clicking column header. XO cell is checked if driver exists in the crossover.

Green dots in graphs show existing locations in Drivers table (initially existing locations in the crossover). Magenta dotted line/curve shows locations calculated with line array parameters (in the middle) but not yet accepted to Drivers table.

Parameters of line array calculator:

X mid Horizontal location of array's middle point, relative to listening axis.
Y mid Vertical location of array's middle point, relative to listening axis.
Z mid Distance offset for array's middle point, relative to origin i.e.
endpoint of design/listening axis on baffle surface.
C-C dist Distance between drivers from center to center.
Along circumference with curved arrays.
Count Numbers of drivers in array. Enabled while adding new drivers.

Array types

Linear | Straight vertical line.
Curved o ) Curved array where focal point is in front of speaker.
Curved o ( Curved array where focal point is on the back side of the speaker.
For example CBT.

Parameters for curved arrays

Radius Radius of curved array.
Y cent Vertical location of curve's center point, relative to listening axis.
Cover Calculated coverage angle of 'slice'.

Parameters Part #, X, Y, Z, R and T can be modified manually to the grid. Accept changes to crossover and close window with OK button. Cancel button closes the window without saving changes to the crossover.

Drivers can be renumbered by entering first Part # to the top cell, selecting cells to be renumbered (including the first cell) and clicking D#+ button.

Select full rows with top left corner or row headers in order to calculate new locations and tilts with line array parameters. Select array type, adjust parameters until magenta dotted curve is okay and apply changes to Drivers table with Locate button.

Select driver with Filter combo box in order to add new drivers to the table. Full rows should not be selected. Select array type, adjust parameters until magenta dotted curve is okay and add drivers to the table with Add button. Locations can be modified with calculator by selecting new drivers as full rows. Accept changes and new drivers to the crossover with OK button. New drivers will be added as max. 8x8 matrix beginning at constant location 43,9.

Creating library blocks

New library block is created by selecting components from crossover and then File->Create library block. Block attribute editor opens. Program lists all parameters of selected components into Component parameters grid. User has few choices:

a) If components could have different values depending on filter variation e.g. Bessel or Butterworth, enter variable name into Expression field of component, and add variable with mathematical expression to Block attributes list.

b) If the block does not have variations and component values can be calculated directly from user parameters, formulas can be located in Expression field of component parameters.

c) Mix of previous. Intermediate results could be worth to calculate with expressions in block attributes to make component expressions shorter (less repeating). Calculation order of block attributes is from top to bottom.

Examples: formulas in block attributes (left), formulas in component parameters (right).

formulas_attributes.png formulas_parameters.png

Check Ask field for user questions. Rows can be added manually or initiated with shortcut buttons: f? (frequency), Q? (Q factor), Z? (impedance), A? (gain), t? (time). Option field is left empty (or *) if the row applies to all variations, or block doesn't have variations. Value field holds initial/default value. Calculated values are also limited within Min...Max. Unit and Expression fields are visible for information in Tune block window.

Variable name should begin with letter, lower or upper case. If the name contains numbers, they must be in the end.

Supported mathematical and logical operators: ^, +, -, /, *, %, >, <, ==, &&, !=, ||, !, >=,<=
Functions: cos, sin, tan, acos, asin, atan, cosh, sinh, tanh, cotan, acotan, exp, ln, log, sqrt, round, ceil, floor, abs
Constants: euler, pi, infinity, true, false
Parentheses: (, )
Note! Decimal separator in Expression must be period (.)

Row order can be changed with Up/Down arrow buttons. Initial/default option is selected with Option combo box. Expressions are evaluated to Value cells with Test button, or by changing Option.

Context menu contains: Cut, Copy, Paste, Delete (rows), Duplicate (rows), Append (rows) and Replace. Press F2 to modify cell value.

Continue with OK button when block attributes and component parameters are okay. Filename is selected in the following Save as dialog. Image visible in library block menu is png-file created automatically when block is saved.

Attributes of existing library blocks can be modified with File->Edit library block parameters command. Open block with small open button in tool strip on the left. Save button overrides existing block without verification.

Room tab

Reflections

Response with room reflections visible in Power&DI graph can include left side wall, front wall, floor and ceiling, selected with checkboxes in Room tab. Distance from speaker's origin (0,0,0 mm) to reflecting surface and rotation away from left side wall (toe-in) are adjusted with text boxes. Left wall X and Floor Y are negative values. Adjustable absorption in dB is available for both walls, ceiling and floor. Distance equals to Listening distance setting in Options window: distance from speaker's origin to virtual mic/ear.

Locations and reflection 'rays' are visualized in Room tab from top and left views.

Room response with reflections is scaled -10 dB to fit in Power&DI chart. Estimated in-room response /CTA-2034-A is hidden while response with reflections is visible.

room_tab.png

Note! Full 0-180 deg measurement data with Mirror missing is needed to simulate front wall reflection.

Driver offset

driver_offset.png

Simulated horizontal and vertical planes can be rotated -45...+45 deg around speaker's origin (X,Y=0,0) with Planes [deg] parameter. Both simulation orbits of virtual microphone are rotated around Z-axis by given angle phi. Positive value to counterclockwise.

All driver instances in crossover can be moved temporarily with X,Y [mm] parameters. This enables for example simulation of different listening elevations and very small off-axis angles (within reference angle steps) without permanent relocation of driver instances in crossover. Positive X to right and positive Y to up.

Driver instances in crossover are moved permanently by X,Y with Relocate button (which also resets X,Y).

Graphs

SPL

spl_chart.png

By default, SPL graph shows total SPL, listening window average, total SPL target, SPL per way, SPL per individual driver and total phase. All lines are responses to Reference angle, see Frequency responses. Color coding for traces:

SPL Target can be adjusted by dragging the line ends with mouse while Shift or Control key is pressed. This is target for axial response optimizing. See Optimize.

Chart overlays

Traces... command in context menu of chart opens properties window allowing user to change visibility, description, color(s), line width and dash style of each trace. Selected overlays are removed with Remove sel button. All overlays are removed with Remove all button. Multi-selection with row headers or top left corner. Line color and fill color with Waterfall and Surface charts is selected from list of 'named colors' or with standard Colour dialog. Default color selection window can be changed by pressing Ctrl-key while clicking color cell in Traces window. BW (black & white) button will change line color of all traces to System.ControlText (black) and fill color to System.Window (white). WB (white background) button will change fill color of all traces to System.Window (white). Dash style is selected with combo box. Available styles are Solid (default), Dash, DashDot, DashDotDot and Dot. Dash styles are temporary - not saved to project file.

chart_traces.png

Save as overlay in context menu of chart saves selected (bold) trace, or all visible traces as overlays if none is selected. Overlay traces are not possible to overlay again.

Response files (txt, frd, lms, zma) can be loaded as overlay traces. Open overlay... command in context menu opens standard open file dialog for selection. Selection of primary/left or secondary/right Y-axis is automatic and not always reliable.

Dropping files into chart area with Drag & Drop provides better control for Y-axis selection. Traces are scaled with primary/left Y-axis if the files are dropped closer to Y-axis on the left. Traces are scaled with secondary/right Y2-axis if the files are dropped closer to Y2-axis on the right.

Selected overlay can be scaled with Shift + mouse wheel or Ctrl + Shift + mouse wheel. All visible overlays are scaled if none is selected.

ovl_buttons.png

Traces in all graphs are saved as overlays with Ovl (+) button above the graph 6-pack. Content of text box on the right is added as name suffix for each overlay trace. Overlays in all graphs are cleared with (-) button.

Total number of traces including overlays is limited to 37 per chart.

Maximum and span

Y-scale maximum of SPL, Power&DI and unnormalized Directivity charts is adjusted automatically by default. Manual setting with text box is possible by checking SPL max on the left side of SPL chart. Manual value is saved to project file.

spl_max_adjust.png

Span (dB range) of SPL, Power&DI and Directivity charts can be adjusted with Expand SPL scale and Compress SPL scale buttons. Available spans are 20, 25, 30, 35, 40, 45, 50, 60, 70, 80 and 90 dB. Initial value is defined in Options window.

In addition, Y-axis maximum can be adjusted with mouse wheel, and span (dB only) with Ctrl + mouse wheel when mouse cursor is closer to Y-axis on the left. Exception: Directivity chart follows max and span settings of SPL chart.

Y2-axis maximum can be adjusted with mouse wheel, and span (dB only) with Ctrl + mouse wheel when mouse cursor is closer to Y2-axis on the right. Exceptions: Directivity index has common span with SPL, and maximum is span - major grid interval. Phase angle has constant Y2-scale +180...-180 deg.

Zooming

Every graph can be zoomed to full size and back to dashboard by double clicking in middle of the chart area.

Power&DI

power+di_chart.png

This graph shows total SPL to Reference angle (WindowFrame), listening window RMS (YellowGreen), predicted in-room response /CTA-2034-A or response with 1st order room reflections (DarkOrange), sound power response (Blue) and directivity index DI or SPDI/CTA-2034-A (Red).

Show ER Horizontal in context menu shows ER Front, ER Side, ER Rear, ER and ERDI in horizontal plane.

Show ER Vertical shows ER Floor, ER Ceiling, ER and ERDI in vertical plane.

Show ER Total shows early reflections (Cyan) and early reflections directivity index ERDI/CTA-2034-A (Salmon).

ER stands for 'Early Reflections'. ERDI stands for 'Early Reflections Directivity Index'. Download Standard Method of Measurement for In-Home Loudspeakers (ANSI/CTA-2034-A R-2020) for more information. See tooltips or Traces... to identify curves. See Chart overlays.

There is also adjustable target curve (magenta), normally set for power response (blue). Target can be adjusted by dragging the line ends with mouse while Shift or Control key is pressed. This is target for power response optimizing. See Optimize.

Directivity

directivity_line.png directivity_waterfall.png directivity_surface.png directivity_polarmap.png directivity_polarchart.png

This graph shows directivity simulation as line chart, waterfall, surface chart, polar map (aka heat map) or polar chart. Density of simulated off-axis directions is selected with Angle step list box in Options window. Response to Reference angle is emphasized with thick line (except Polar map).
Line chart: Trace below mouse cursor is highlighted. Highlighting is possible to lock by clicking the curve. Unlock by clicking chart area.
Waterfall: Highlighted off-axis trace is selected with mouse wheel. Frequency is adjusted with mouse move left/right. Depth is adjusted with left mouse button + mouse move up/down (or Ctrl + mouse wheel).
Surface: Image rotation and inclination is adjusted with left mouse button + mouse move. Limits for rotation and inclination are 10...170 deg. Image size/distance is adjusted with mouse wheel. Image is panned with Ctrl + mouse move. Depth is adjusted with Ctrl + mouse wheel.

Directivity chart options context menu (right click on the graph):

directivity_context.png

Checking Polar chart will show polar plot at frequency selected with horizontal scrollbar.
Checking User's off-axis angles will show directions listed in Options window (except Polar chart).
Checking Show ±90 deg hides off-axis angles outside half space.
Checking Show ±45 deg hides off-axis angles outside eighth space.
Checking Negative angles in front will invert angle-axis of the plot.
Checking Normalized will show flat response to Reference angle.
Checking Contour lines will show edges of level ranges with Polar map. Level steps are initially 3 dB.
Adjust depth allows angle axis scaling of Waterfall and Surface chart by entering value.
Temporary adjustment of colors, line width and description of traces is availavle with Traces... window.
Save as overlay is available for Polar chart only.

Chart title shows visualized plane. 'hor' and 'ver' texts indicate nonrotated planes. If simulated planes are rotated around Z-axis with Microphone offset Planes [deg] parameter in Drivers tab, chart title shows azimuth angle phi of visualized plane. Phi range is -45...hor...+45 deg when Horizontal plane is selected from context menu of Directivity chart. Phi range is +45...ver...+135 deg when Vertical plane is selected from context menu.

Group delay & Phase

gd+phase_chart.png

This graph shows Normal group delay (WindowFrame) and phase response of individual drivers to Reference angle. Optional Excess group delay (SteelBlue) is enabled by checking Show Excess group delay in context menu. Group delay can be hidden by unchecking Show Normal group delay.

See tooltips or Traces... to identify curves. See Chart overlays.

Filter

filter_chart.png

This graph shows magnitude of filter transfer function of individual drivers.

See tooltips or Traces... to identify curves. See Chart overlays.

There is also optional target magnitude curve (Magenta). This is target for optimizing filter transfer function of driver. See Optimize.

Impedance

impedance_chart.png

This graph shows generator's load impedance magnitude (WindowFrame) and phase (Gray). In addition, graph shows total and individual load impedance of active buffers in active multi-way system and 'Equivalent Peak Dissipation Resistance' EPDR (Dark Violet) calculated from generator's load impedance. Active buffers can also be used in passive system for measuring impedance of separate ways without opening components. Note! Impedance chart can be replaced with second directivity chart e.g. to show both planes at the same time. Visible chart is selected with context menu.

See tooltips or Traces... to identify curves. See Chart overlays.

Optimizer

Optimizer adjusts selected filter parameters/component values to shape total axial response or listening window and power response or predicted in-room response, or driver's axial response or transfer function magnitude at driver terminals to target specified by user. Optimizer window can be activated with context menu of SPL or Power&DI chart.

Target response


target_response.png

Frequency range included in optimization is limited with two frequency values. Target response outside specified limits is not visible in the graph.

Target curve could be either frequency response File (txt/frd) or ideal Texbook response with adjustable tilt, high-pass and low-pass slopes.

Target SPL and Tilt can be adjusted manually using the text fields, or read automatically for driver's axial target from total SPL target by clicking binocular button . Ends of target lines in SPL and Power&DI charts can be set with mouse while left button and Shift or Control key is pressed.

Value in drivers text box scales target SPL by number of drivers with the same polarity and crossover. Enter number to text box or search from crossover with drivers button. Polarity of target response is changed with Invert checkbox.

Filter design is selected from the first dropdown menu (High pass or Low pass). VituixCAD supports 1st...8th order Butterworth, Bessel, Chebychev 0.5 dB and Linkwitz-Riley, and 2nd order with variable Q factor. Second dropdown menu (N) controls order of the slope. Corner frequency of the slope is adjusted with the last text field (f).

Linear-phase slope is created by checking Lin.pha, typically for FIR applications.

Target curve can also be loaded from frequency response file (txt/frd) with Open button or drag&drop. Target response can be scaled (dB), delayed (µs), polarity inverted, smoothed 1/2...1/24 octs and converted to minimum phase. Frequency range limits effect also to response file. Textbook response can be re-activated by clearing response file with X button.

Target response divided by response to reference angle or listening window can be exported with TF button in top right corner. Response file is loaded into Transfer function file G(f) block currently selected in crossover. This could be helpful while designing FIR filters with exported impulse response files because crossover can include single G(f) block and active buffer for the speaker or each driver/way, and response is shaped automatically to ideal textbook curve with tilt and HP/LP given or detected from total SPL target line.

Optimizing

optimizing.png

Axial response of selected driver can be adjusted automatically to the target in SPL graph by selecting 'Axial response of Driver'. Select driver from list box on the right and then 'Axial response of Driver'. Create target curve, specify frequency range and select filter parameters/component values to be optimized from Parameters grid in Crossover tab. Driver's target magnitude is visible in SPL graph and target phase in GD & Phase graph. Start solver with Optimize button.

Filter response (magnitude only) of selected driver can be adjusted automatically to the target in Filter graph by selecting 'Filter gain of Driver'. Create target curve, specify frequency range and select filter parameters/component values to be optimized. Target response is visible in Filter graph. Start solver with Optimize button.

Total SPL to reference angle or listening window average can be adjusted automatically to the target in SPL graph by selecting 'Axial response' or 'Listening window'. Select 'Listening window' if you like to optimize RMS of multiple responses instead of single response to reference angle.
In addition, sound power response or predicted in-room response can be adjusted automatically to the target in Power&DI graph by selecting 'Power response' or 'In-room response'. Check 'modify target' to show and edit target in Power&DI graph with controls in Optimizer window.
Weighting between SPL and Power&DI responses is controlled with percent values. Higher value produces smaller difference between the target and simulated response. For example SPL=60%, Power&DI=40% allows more error in power/in-room response than axial/LW response. That could be better if intended listening distance is very short or room is very damped i.e. decay time is short.
Response is optimized to both shape and level of target curve by checking 'Seek level'. If unchecked, optimizer does not care about level - just shape within frequency range limits.
Create target curve, select filter parameters/component values to be optimized from Parameters grid in Crossover tab. Include components with Optimize On/Toggle/Off commands in context menu of schematic. Start solver with Optimize button. Optimizer calculates squared error within frequency limits of each target curve.

Check Minimum impedance and enter preferred minimum value to text box if you like to control impedance response. Squared error is increased with penalty function if minimum impedance drops below the setting. Minimum is detected from total impedance while optimizing total SPL and Power&DI response.
Check Maximum gain and enter preferred maximum value to text box if you like to limit filter gain. Squared error is increased with penalty function if maximum gain exceeds the setting. Maximum is detected from filter of all drivers.

Passive crossover components can be rounded to the closest value in standard E-series by selecting E12, E24 or E48. Note! Values are rounded after optimization which will increase squared error in the end.

Optimization could end up to bad result if initial parameter values are too far from good solution and method finds wrong local minimum. Adjust parameters manually closer to acceptable solution and restart solver with Optimize button. Result can be rejected with Undo button. Undo is able to restore up to twenty most recent changes.

Optimizer stops when error is zero (rarely) or Stop button is pressed or maximum evaluations is reached. Initial maximum is 300 evaluations. Simple problems with only few parameters to optimize could be solved with less than 100 evaluations.

Parts list


parts_list.png

Parts list shows passive components, drivers and parameter values in a grid. List can be copied to your favorite spreadsheet or text editor with Copy command or Ctrl+A, Ctrl+C. Refresh updates the list in case components or values have changed after window was opened.

Impulse response

Axial response or input transfer function of driver or output of buffer or total axial SPL or listening window average SPL can be exported to impulse response in time domain. Typical application is to produce impulse response as wav-file for speaker controller with DSP FIR support or convolver plugin.

Frequency response is extrapolated to cover band from 0 Hz to Sample rate / 2 (Nyquist frequency) before inverse Fast Fourier Transform. After inverse FFT, impulse response is multiplied by window function to reduce artifact errors due to spectral leakage.

impulse_response.png

Sample rate: 44100, 48000, 88200, 96000, 176400, 192000 Hz.

FFT length: 8192, 16384, 32768, 65536, 131072, 262144 bins.
Frequency resolution of FFT is Sample rate / FFT length. For example 48000 Hz / 65536 = 0.732 Hz.

Taps: 256...131072 samples.
Maximum taps is limited up to FFT length / 2.

IR window function: Rectangular, Bartlett, Hanning, Hamming, Blackman, Blackman-Harris, Nuttall, Blackman-Nuttall, Cosine or Tukey 0.25/0.50/0.75.
Check shape and centering via graph with adequate time span.
See wikipedia: Window function. Note: Advanced window functions are designed for spectrum analyzing with high S/N where silent side lobes are required. IR export works fine with Tukey 0.25/0.50.

Center IR shifts timing of source frequency response before inverse FFT by increasing phase angle (by delay * frequency * 2pi rad). Added delay is half of the impulse response length. Impulse peak is not necessarily located exactly at the middle point. Added delay is shown in Pre-delay text box. That value can be entered or copied to analyzing application to restore timing/phase of original frequency response.
Center IR can be unchecked if centering is not needed, typically with IIR filters. Adjustable delay in milliseconds is added to allow minor pre-ringing and timing tolerance without trimming first samples of the impulse peak.

Visible signal is selected with Signal to show combo box.

Up to six (6) signals can be exported at once. Signals can be selected manually with Signals to export combo boxes. Driver inputs (max 6) can be selected with D button, and buffer outputs (max 6) with B button. Click Export button to continue. Save as... dialog box proposes project filename + " IR" as a 'root filename'. Select output directory and modify root filename if necessary. Final filename for individual IR-files will be root filename + " Buffer out A1", root filename + " Driver in D1" + extension, etc.

File format is selected in Save as... dialog. File formats: 16-bit PCM mono (.wav), 16-bit PCM stereo (.wav), 24-bit PCM mono (.wav), 24-bit PCM stereo (.wav), 32-bit IEEE mono (.wav), 32-bit IEEE stereo (.wav), 64-bit IEEE mono (.wav), 64-bit IEEE stereo (.wav), 32/64-bit text (.txt), 32/64-bit MLSSA (.txt), miniDSP binary file (.bin), miniDSP manual mode (.txt, copied also to clipboard).

Signal in 16-bit PCM wav is scaled to ±32760, and IEEE wav to ±0.999 to avoid notification of possibly clipped values. Stereo wav has the same signal in both channels.

Value scaling in text file is equal to source frequency response. Text file has single column from 0.0 s with step of 1/Sample rate [s]:

8.49378929663085E-25
1.64194430575251E-15
-3.17746589425256E-15 ...

Scaling factor is common for all electrical signals; Buffer outputs and Driver inputs, to maintain gain differences. Scaling factor is common for all acoustical signals; Driver SPL and Total SPL, to maintain sensitivity differences. Select 32-bit file format or export IR-files one by one and scale with convolver if resolution with 16-bit PCM causes problems.

Impulse and step curves are updated automatically with selected IFFT parameters when crossover is changed. Time scale can be expanded and compressed with arrow buttons. Graph can be zoomed to full window for design-time preview.

Power dissipation

Graph shows output spectrum of generator and buffers/power amplifiers in active multi-way, and power dissipation or current (mA) or voltage of drivers and passive LCR components in crossover network. Quantity is selected from View group. Peak voltage (Vp) is shown instead of VRMS by ckecking peak.
Visible curves are selected with checkboxes in Components group. Curve's tooltip shows part number and name or two main parameters of passive components, including resistance.

power_dissipation.png

Adjustable parameters for output signal from power amplifier or generator:


Options

options.png

Angle parsing from filename

To allow VituixCAD to parse measurement angles and axis from frequency response files, you have to define file naming format/syntax.

Generic dual plane is configurable option allowing user to specity how plane and angle value are coded in frequency response filename. Plane keywords define how to distinguish between horizontal and vertical axis. Horizontal axis is selected if keyword of vertical plane is not found in the filename. Search from beginning/end defines whether VituixCAD should start parsing angle value from the beginning of the filename (hor +150 drivername.txt) or the end (drivername hor +150.txt). Angle multiplied by defines how angle value is formatted. For example if 1500 represents 15 degrees off-axis, use Angle multiplied by 100.

CLIO 3D balloon filters and decodes either horizontal or vertical plane and angle value from filenames coded by CLIO QC with Auto Save 3-D measurement. The syntax follows: NAME <PHI*100> <THETA*100>.txt/frd. NAME is root filename, PHI is the polar angle (orbit) and THETA is the azimuth (off-axis) angle. These quantities are separated by spaces. Other than PHI=0, ±90, ±180, ±270 are skipped because response file handling and directivity graphs support horizontal and vertical planes only.

EASE 3D balloon filters and decodes either horizontal or vertical plane and angle value from filenames coded by EASE SpeakerLab. The syntax follows: NAME IR[mmm][ppp] or NAME V[mmm]H[ppp].txt/frd. NAME is optional root filename, [mmm] is meridian/orbit and [ppp] is parallel/off-axis angle while the North Pole represents on-axis direction. Other than [mmm]=000, 090, 180 or 270 are skipped.

VACS 3D balloon filters and decodes either horizontal or vertical plane and angle value from filenames compatible with Visualizing Acoustics Software (VACS). The syntax follows: NAME Phi[mmm]Theta[ppp].txt/frd. NAME is optional root filename, [mmm] is meridian/orbit and [ppp] is parallel/off-axis angle while the North Pole represents on-axis direction. Other than [mmm]=0, 90, 180 or 270 are skipped.

Check Klippel NFS to rotate Phi by +90 deg if balloon data is captured with Klippel NFS or compatible.

Test tool is provided for testing the syntax.

Frequency responses

Mirror missing defines if VituixCAD should mirror missing measurement data:

Frequency responses are interpolated between off-axis angles and planes loaded to drivers when Interpolate is checked. Program selects the closest off-axis angle loaded to driver when Interpolate is unchecked. This could cause some errors and discontinuities, but enables simple tests and projects with few responses only in Directivity chart.

If crossover of project is active dsp, select exact or compatible device or application from DSP system combo box. Available options are:

Selection has significant effect to frequency response of Active Peak/Notch, Bessel LP/HP and Shelving LP/HP filters, and to highest frequencies due to possible limit in sample rate. Setting is saved in project file (vxp).

Listening distance is virtual distance from loudspeaker to listener or microphone, needed to calculate phase differences and amplitude relations between drivers in different locations. Enter typical listening distance in mm. Default value is 2000 mm.

When Normalize SPL is checked, SPL traces are normalized to level of frequency responses loaded for drivers with generator voltage of 2.83 V. Default value is checked. Keep checked to avoid tuning of SPL and Power targets if listening distance is changed.

Values in Listening window text boxes specify angle range in horizontal and vertical planes included in calculation of 'Listening window average'. See SPL chart and Optimizer.

Off-axis angles listed in User hor and ver text boxes can be shown in Power&DI chart. Valid list separators are space, comma or semicolon. Angles should be divisible by Angle step > 0.

Display

Font for crossover schematic and visibility of tooltips are selectable.

Power response & DI calculation

Intensity on spherical surface is normally selected for common sized single or multiway speakers. Intensity on spherical surface around speaker is calculated from radial measurements in horizontal and vertical planes.

q(f).png
di(f).png

Intensity on cylinder surface is practical selection for long line sources, or if either horizontal or vertical directivity is temporarily interesting - not accurate power response & DI result. Intensity on cylinder surface around speaker is calculated as pressure R.M.S. from radial measurements, typically in a single (horizontal) plane.

Checkboxes control which planes are included in power response and directivity index calculations; horizontal, vertical or both.

Half space is for half space designs; speakers flush mounted to wall. Angles >90 deg are excluded from power response and DI calculation, and constant 3.01 dB is added to all DI responses. Directivity chart shows angles -90...+90 deg only.

Corner is for quarter space designs; speakers integrated to inner corner of walls. Angles >45 deg in horizontal plane and >90 deg in vertical plane are excluded from power response and DI calculation, and constant 6.02 dB is added to all DI responses. Directivity chart shows hor -45...+45 deg and ver -90...+90 deg only.

Common boxed speakers and dipoles should be measured and simulated to full space with measurement data 0... ±180 deg.

Check Listening window DI to use listening window average as DI reference instead of selected Reference angle.

Angle density of simulated and visualized off-axis directions is selected with Angle step list box. Available options are 0, 5, 10, 15, 20 and 30 deg. Off-axis angles loaded to drivers are simulated when 0 deg is selected. Initial value is 10 deg.

Image export

Single W x H is size of copied/exported chart image. Default size is 480x257 px.

Six-pack W x H is size of one copied/exported chart in group of all six charts in main program or Enclosure tool. Default size is 480x257 px.

Height of image can be calculated by Aspect ratio dB/decades and frequency axis limits and SPL Span. Range of Aspect ratio is 10...50 dB/dec, default 25 dB/dec.

Default values can be set by double-clicking the label in front of text box.

Logo can be printed to chart area on Copy and Export commands (except svg-files). Select image filename with open button. Erase filename with clear button. Select position with combo box: None, Top left, Top right, Bottom left, Bottom right. Default is Top left. Adjust opacity with text box. Default is 30 %. Check Show to print logo in charts on display. Default is unchecked to increase speed of UI. Default VituixCAD logo is printed if filename is empty and position is other than None.

Graph scales

Frequency axis

Internal frequency range is fixed 5...39794 Hz with density of 48 points/octave, but you can define initial visible scale with minimum 5...5000 Hz and maximum 40...40000 Hz.

Magnitude axis

Excursion max defines initial upper limit of cone excursion graph in Enclosure tool.

Filter gain max defines initial upper limit and Filter gain span controls initial vertical scale of filter gain graphs.

Force max defines initial upper limit of reaction force due to cone acceleration in Enclosure tool.

Group delay span controls initial vertical scale of group delay graphs.

Impedance max defines initial upper limit of impedance graphs.

Power max defines initial upper limit of amplifier's output power to nominal load in Enclosure tool.

SPL/Directivity span controls initial vertical scale of SPL, Power&DI and Directivity graphs.

Velocity max defines initial upper limit of vent air velocity graph in Enclosure tool.

External tools and directories

Paths in the text fields define applications VituixCAD should open when pressing corresponding buttons/menu items. Select application by clicking folder button or dropping file into text box.

CTA-2034-A

Button sets defaults for ANSI/CTA-2034-A directivity report with Power&DI chart:

Check for updates

Updates are checked automatically when program starts if Check for upodates is checked.


Tools

Enclosure tool

enclosure_tool.png

Driver database

VituixCAD reads online database from https://kimmosaunisto.net/ when Online database is checked. Adding, modifying and removing drivers are possible only with local database.

Filtering is enabled by checking Enable filtering. Filtering window opens with Filter button. You can filter driver list by user selection (checkbox in Sel column), or by any text or numeric field. Filter is updated by pressing Enter or by moving cursor to another field. Numeric fields are filtered within range specified with Min and Max text boxes or vertical sliders. Values in gray are at the limit so they don't affect to filtering. Criteria in multiple fields is logical AND. Single field can contain several criterion separated with space or semicolon (;). Criteria in a single field is logical OR. For example:

All passive radiators are shown by checking PR. Filtering is not available.

Driver database includes the following fields:

Manufacturer
Model
Type Subwoofer, Woofer, Midrange, Tweeter, Full range, Coaxial or Passive Radiator (passive radiator)
Size Nominal diameter [inches]
Status Active, Discontinued, Preliminary or Vintage
Re DC resistance [Ohm]
Z1k Impedance at 1 kHz [Ohm]
Z10k Impedance at 10 kHz [Ohm]
Le Voice coil inductance [mH] or Bound inductance [mH], see Impedance models
Leb Free inductance [mH], see Impedance models
Ke Semi-inductance [sH], see Impedance models
Rss Shunt resistance [Ohm], see Impedance models
fs Free air resonance [Hz]
Qms Mechanical Q factor
Qes Electrical Q factor
Qts Total Q factor
Rms/R0 Mechanical resistance [Ns/m, kg/s]
Mms Moving mass with air load [g]
Cms/C0 Suspension compliance [mm/N]
Vas Equivalent volume [liters]
Sd Effective cone area [cm2]
Bl Force factor [N/A, Tm]
Pmax Maximum long term input power [W]
Xmax Maximum linear excursion, one way peak [mm]
Beta Creep β with LOG model
USPL Calculated voltage sensitivity [dB] /2.83V/1m
BL²/Re Force factor squared divided by voice coil resistance
Revision Datasheet revision or date by manufacturer
Updated Date/Name in format yyyy-mm-dd/First name Last name

Driver list can be sorted by clicking column header. Columns (except frozen columns) can be reordered temporarily by dragging column header. Right click in driver row opens context menu with more options to search and modify driver list. Context menu options:

search_button.pngbutton searches for selected driver from web (Google search with your default browser).

Parameters of selected driver are modified with edit_button.png button. New driver is added with add_button.png button. Parameters are accepted and window closed with OK button. Local driver database is saved automatically after driver is added or modified.

edit_parameters.png add_new_driver.png

Entering fundamental T/S-parameters Re, Rms, Mms, Cms, Sd and BL first and let program calculate fs, Qms, Qes, Qes and Vas (with c=344.0 m/s, ρ=1.194 kg/m3) is recommended, but not required. You can enter Qms instead of Rms, Qes instead of BL , Vas or fs and Mms instead of Cms, Cms or Vas and fs instead of Mms. Program calculates missing parameters (value=0) when OK button is pressed. See tooltip of OK button for more information.
Pmax >0 W is required for maximum SPL trace (except for PR). Xmax/Xsus >0 mm is required for maximum excursion trace. Enter something smart if not known.

Check Crosscalc to update other parameters while one parameter is adjusted.
Radiators are simulated with Knudsen LOG model if Creep β > 0.
n0, SPL, USPL, EBP and Vd are calculated for information only.

Parameters in xml format or measured and calculated with CLIO, LIMP, REW or other text format are possible to paste with Paste button. Thiele/Small parameters can be calculated with added mass or sealed box method by two impedance measurements and few known parameters. Calculation window opens with Calculate T/S... button.

Local driver database can be saved after modifications with Save Drivers button.

Driver database is simple tab-delimited text file: \Users\Public\Documents\VituixCAD\Enclosure\VituixCAD_Drivers.txt. Database can be maintained also with external tool such as Microsoft Excel, provided that original file format including column headers, measurement units and decimal symbol are not modified.

Calculation of Thiele/Small parameters

calc_ts_parameters.png

Required parameters for all calculation methods are driver's Dd [mm] or Sd [cm2] and free air impedance response measurement.

Re [Ohm] and second impedance response measured in undamped sealed enclosure with known volume are needed for Sealed volume method.

Re [Ohm] and second impedance response measured with known added mass are needed for Added mass method. Added mass ca. half of expected Mms.

Second and third impedance responses measured with known added mass are needed for Dual added mass method. First added mass ca. half of expected Mms, and second added mass ca. expected Mms.
Check LOG model to calculate with frequency-dependent suspension compliance. Extracted parameters are R0, Mms, C0 and Creep β. Transfer function of fitted/simulated motional impedance:
Zem = Bl2 / (R0 + s * Mms + 1 / s / C0 / (1 + β * ln(1 + ω0 / s))), where ω0 = 3*pi*fs
References:
[1] J. Candy and C. Futtrup, "An Added-Mass Measurement Technique for Transducer Parameter Estimation"
[2] H. Hiebel, "Suspension Creep Models for Miniature Loudspeakers"
[3] M. H. Knudsen and J. Grue Jensen, "Low-Frequency Loudspeaker Models That Include Suspension Creep"
[4] https://speakerbench.com

Measure and load impedance response(s). Check Ignore measured phase if phase response is not reliable. Measure Re if needed and Dd if Sd is not known. Enter parameters and added mass [g] or sealed box volume [liters] to text boxes. Check Mms or BL if value is trusted and second impedance response measurement is not available. Press Calculate. Results are visible in Calculated parameters and Z model groups. Basic Z model parameters Z1k and Z10k, and Extended Z model parameters Le, Leb, Ke and Rss are detected from free air impedance response. Also Re is calculated with Dual added mass method. Leach Z model parameters K and n are detected from free air impedance response, and simulated Z response is visible in chart if K is checked. See tooltip of curves for more information.

Results can be accepted to previous Edit parameters/Add new driver window with Apply button.

Impedance models

Enclosure tool can use two different impedance models:

  1. Basic impedance model. Exponential curve fitted with two impedance points: Z1k and Z10k.
    ZL(jω) = K(jω)n
    This is primary model used for impedance response calculation if both Z1k and Z10k are greater than zero. Values should be greater or equal to Re.

  2. Extended impedance model described in detail in the paper Frequency Dependence of Damping and Compliance in Loudspeaker Suspensions by Knud Thorborg, Carsten Tinggaard, Finn Agerkvist and Claus Futtrup, published in JAES Volume 58 Issue 6 pp. 472-486; June 2010.
    Loudspeaker equivalent circuit (seen from electrical side):
    equivalent_circuit.png
    Calculation rules if all parameters of extended impedance model are not applied:
    * Semi-inductance Ke is used if bound inductance Le is blank or zero
    * Bound inductance Le is used if semi-inductance Ke is blank or zero
    * Shunt resistance Rss is ignored (=infinite) if blank or zero.
    This is secondary model used for impedance response calculation if Z1k or Z10k or both are blank or zero
    Extracting of Le, Leb, Ke and Rss from impedance curve on manufacturer's data sheet or impedance measurement is possible with Extended Z model solver located in Calculate T/S parameters window.
    Note! Re, fs, Rms, Mms, Cms or Vas, Sd and Bl should be entered or calculated and >0 before extraction of extended Z model parameters.
    extended_solver.png
    Load free air impedance response file (txt,zma). Press Solve button to start. Optimizer searches Le, Leb, Ke and Rss giving close to free air target. Parameters can be accepted for the driver with Apply button if sum of squared error is less than 0.4. Error field is red if result is not acceptable and cannot be applied for the driver.

Voice coil inductance (with losses) is included in frequency response calculation by checking Show effect of inductance in context menu of SPL chart.

enclosure_spl_context.png

Database update

Local driver database can be updated with data on the clipboard or local file or online database @kimmosaunisto.net. Data format can be either xml or tab delimited text. Order and amount of columns in the source data and destination (local) database must match if the source data is not xml and does not have header line with parameter names. Column match should be verified especially with tab delimited text data on the clipboard. Local files and online database usually have header line or xml elements so the values are copied to correct fields regardless of column order.

Update database window opens via context menu of driver grid.

update_database.png

Select data source: clipboard, text/xml file or online database.

Drivers whose Manufacturer and Model are not found in the local database are added by checking Add new drivers.

Drivers whose Manufacturer and Model are found in the local database are updated by checking Update existing drivers. Select parameters to update from the list. Selections are inverted with [!] button. Allow override with blank enables replacing of existing value with blank. Otherwise blank value in the source data won't override existing non-blank value.

Text to Updated field overrides existing text. Text in the source data is copied if text box is left empty.

Driver configuration

Drop down menu provides selection for amount of drivers. If more than one driver is selected, radio buttons on the right control how drivers are connected.

Number of drivers; 1, 2, 3, 4, 6, 8, 9 or 12 pcs, or pairs in isobaric configuration

Electrical connection; series, parallel, 2 || 2 ..., 3 || 3 ...

If Isobaric is checked, each driver in simulation is combination of two drivers mechanically in isobaric configuration. Isobaric pairs are connected electrically in series if series is checked. Otherwise pairs are corrected in parallel.

Extra mass per driver [g] can be used to simulate increase of Mms, which reduces fs and sensitivity of the driver. Mass is reset to zero grams by double-clicking 'Extra mass' label.

Amplifier's output signal as voltage U[V] or power P[W] and output resistance Rg[Ohm] are common for all drivers. Voltage or power can be changed from default value to simulate cone excursion and vent air velocity with higher electrical power. Default signal (2.83 V or 1.0 W) is restored by double-clicking unit label. Output resistance emulates output impedance of power amplifier or cable resistance. Actual series resistance is quick and dirty way to increase electrical Q factor and decrease sensitivity.

Manufacturer and Model of previously selected driver is visible in text box. Volume excursion capacity Sd*Xmax*N is shown in Vd [cm3] field.

Radiator type

Radiator types supported by Enclosure tool:

Infinite baffle
infinite_baffle.png
Closed
closed_box.png
Bass reflex
bass_reflex.png
Double tuned reflex
double_tuned_reflex.png

Passive radiator
passive_radiator.png
Band pass type 1
band-pass_type-1.png
Band pass type 1P
band-pass_type-1p.png
Band pass type 2
band-pass_type-2.png
Band pass type 3
band-pass_type-3.png

Tabs

Align - Closed and Bass reflex radiator alignment

align_closed.png

Closed box is aligned by selecting or entering Qtc. Optional high alarm limit for non-linearity [% on Xmax] due to air compression is available. Box volume is limited and requested Qtc is not produced if alarm limit is exceeded (red text). Increase limit % until red color disappears to get requested Qtc if you don't care about compression distortion. Distortion is calculated with 1.4 * Sd * Xmax / Vb * 100%. Box Q entered on Enclosure tab and series resistance are included in alignment by checking Include Qb+Rs. Otherwise alignment is done by basic formula: Vb = Vas / ((Qtc/Qts)2-1). Both options are approximations, but normally including Qb+Rs is giving results closer to effective Qtc around system resonance.

align_reflex.png

Bass reflex is aligned by Thiele/Hoge/Bullock -tables: SBB4/BB4, QB3/SQB3 and SC4/C4 with Ql 3, 7 or 15.

Auto align executes alignment with entered parameters when driver or driver configuration or radiator type is changed.

crossover_driver.png

Filter transfer function of selected driver in the main program can be applied for driver in Enclosure tool. Linking is done with Crossover of driver checkbox in Align tab. Responses in Enclosure tool are refreshed on the fly while adjusting the filter. Response is shown in Group delay chart with dB scale (right).

diffraction_response.png

Single cabinet impact response is possible to include in full space simulation shown in SPL graph (brown). Load simulated baffle response by clicking Open button open_button.png, and enable it by checking Diffraction response.

Diffraction simulator is executed by clicking Baffle step button baffle_step_button.png.

Enclosure - Parameters for different radiator types

enclosure_reflex.png enclosure_passive.png enclosure_double.png

Adjustable box and vent parameters vary depending on chosen radiator type.

Adjustable box parameters: Volume [l], Qa, Ql, Fb [Hz]. Box resonance frequency Fb [Hz] is calculated read-only if box is not vented.

Adjustable vent parameters: Length [cm], Diameter [cm], Qp, Number, Total end correction; 0.60 - 2.40.

Fb [Hz] can be locked for vented box with checkbox: Vent Diam/Area is calculated if Length is modified. Vent Length is calculated if Volume, Fb, Diam/Area, Number of vents or End corr is modified. Table alignment unchecks 'Lock Fb' of Box Rear 1.

Get from table button reads passive radiator parameters from current row of driver database. Regular driver with motor is also possible passive radiator.

Manufacturer and Model of previously selected passive radiator is visible in text box. Volume excursion capacity Sd*Xmax*N is shown in Vd [cm3] field.

Info - Acoustical and electrical equivalent parameters

info_tab.png

Info tab shows enclosure image, calculated acoustical parameters of driver, boxes and ports. Optional display of electrical equivalent values is available. Info tab also lists statistics: f-3dB, f-6dB, f-10dB, min. impedance, max. impedance, max. group delay, max. excursion of cone and passive radiator and max. air velocity of vents.

Optional execution of external LTspice IV circuit simulator is available. Acoustical parameters of driver and enclosure are passed into LTspice. Path for LTspice executable needs to be defined in Options window.

Note! Effect of voice coil inductance is not shown in SPL curve.

Export, Save and Open functions

Total SPL to half space and impedance response can be exported if you choose to use them in simulating loudspeaker driver instead of acoustic and electrical measurements. Impedance response is routed to driver selected in Drivers tab in the main program by checking Feed before exporting.

Data in charts can be exported to multi-column text file (txt or csv) and clipboard with Export six-pack data command in context menu of charts. Decimal symbol and list separator (for csv file) are specified in Windows Control panel.

Enclosure project is saved with Save Project button, and opened with Open Project button or Enclosure project table (arrow down button).

Enclosure project table

enclosure_project_table.png

Enclosure project list can be changed with Open button. Default list file is \Users\Public\Documents\VituixCAD\Enclosure\VituixCAD_Projects.txt.

Project list and data in vxe files is reloaded to the table with Refresh button. Selected rows are deleted with Delete button. Note! Enclosure project files (vxe) are not deleted. Projects open while browsing the list by checking Auto open. Project opens and list window closes by double-clicking row also when Auto open is unchecked.

Graphs

Frequency axis limits can be adjusted with text boxes in the bottom. Every graph can be zoomed to full size and back to dashboard by double clicking in middle area of particular graph. Color coding of traces is defined below dashboard. Dashboard of enclosure tool includes following graphs:

See tooltips or Traces... to identify curves. See Chart overlays.


Merger tool

merger_tool.png

Merger tool merges frequency responses using two separate sections: Low frequency part and High frequency part. Low frequency responses can be either far field measurements or near field measurements with baffle simulation. Graph shows preview of low frequency part (red), high frequency part (blue), merged response (WindowFrame) and optionally phase (gray) and individual near field LF reponses (green). Graph cursor (magenta) controls transition frequency and shows also blending range.

See tooltips or Traces... to identify curves. See Chart overlays.

Low frequency part with Near field measurements

Merger tool merges near field measurements + diffraction simulation or 2π + diffraction simulation or 4π simulation to time-windowed far field measurements. Merged off-axis responses contain directivity information below transition frequency based on time-windowed axial response divided by time-windowed off-axis response. Reliable directivity information at low frequencies requires long time window.

Uncheck Far field measurements. Near field frequency responses are added by clicking folder button on the right or dropping files into list. You can have multiple responses, usually near field for cone(s) and near field for port(s). Enter diameter [mm] or area [cm2] of particular radiator and Merger tool will calculate scaling to far field automatically. Scaling can be adjusted via Diam [mm], Area [cm2] and Count of radiators or Scale [dB] in response rows and by total low frequency part via Scale or Distance text box by entering a value or by Up/Down keys.

For baffle diffraction there are three options available. No baffle loss, Sphere baffle step (adjustable nominal frequency) or Diffraction response simulated with internal simulator. Diffraction response can be selected by clicking folder button or dropping file into text box. Diffraction simulator is executed by clicking Baffle step button baffle_step_button.png.

Low frequency part with Far field measurements

Low frequency response list must have equal off-axis angles (with same angle coding in file names) to high frequency response list. Otherwise LF and HF responses cannot be paired.

Check Far field measurements. Far field frequency responses are added by clicking folder button on the right or dropping files into list. Enter Distance of low frequency and high frequency measurements and Merger tool will calculate scaling of LF responses automatically. Scaling can be adjusted via Scale text box by entering a value or by Up/Down keys.

High frequency part

Far field measurements can be added by clicking folder button or dropping files into list. Scaling can be adjusted manually via Scale text box on the right. Axial response is selected by checking Axial column in response file list. Default axial response is 0 degrees in horizontal plane. Merged responses (graph below High frequency part) for particular angle can be previewed by clicking corresponding response from file list.

Transition

Transition from low frequency to high frequency part can be set manually via Frequency text box, graph cursor or Up/Down keys or automatically by clicking binocular button find_button.png. Automatic option searches for lowest magnitude crossing point of low and high frequency curves.

Warning is given with red background color if transition frequency exceeds maximum near field frequency of the largest low frequency radiator. fNFmax = c/π/Dd (c = 344.0 m/s).

Magnitude and phase blending range between low and high frequency parts can be selected from drop down list: none, 1, 2, 3 or 4 octaves.

Delay of low frequency part is calculated automatically on transition frequency change but can be adjusted manually.

Output

Choose which items you want to output. Create merged responses will combine low frequency and high frequency responses into individual response files. Extended data will combine LF and HF responses into a single file, having LspCAD 6 extended data format. Merged responses are routed to main program for currently selected driver in Drivers tab by checking Feed speaker before saving.

Merged responses are exported as minimum-phase by checking Minimum phase. Measured and entered delays are lost and all responses at all frequencies are normalized to the same acoustic center = 0 mm. Color of merged phase response is lime in the chart.

Excess group delay of HF response at transition frequency x 1.4 is added to merged minimum phase response by checking with GD of HF. This option saves measured delay (at transition frequency x 1.4) and delay adjusted by user.

Minimum phase options may be needed if measured far field HF responses are not minimum-phase at transition frequency, though radiator is actually minimum-phase. Significant error is possible with some measurement programs if IR time window is short. Forcing to calculated minimum phase is not recommended if responses are measured with dual channel gear and phase error at transition frequency is only few degrees.

Output file format is selected with TXT, FRD and LMS ascii radio buttons. Result files are saved to destination directory selected with browse folder dialog.

Save and Open

Merger project can be saved with Save button in the bottom left corner. File extension is vxm, internally XML.

Saved merger project can be opened with Open button or dropping vxm-file into Merger tool window.


Calculator tool

calculator_tool.png

Calculator tool is a generic math tool for response file processing. Most of the math skills required for speaker simulation are included in Enclosure, Merger and Diffraction tools and crossover simulator. Calculator tool provides some additional functions and flexibility to process calibration files, preprocess measurements before simulation or analyze complete speaker or a single driver.

Responses

Primary response list is 'A responses'. It accepts multiple responses. 'B response' is single response.

Add response files by clicking folder button or dropping files into list. Multiple file selection with Open dialog is enabled. Delete button clears whole response list. Uncheck Linear input mag if magnitude is in dB value in the response files. Check Linear input mag for impedance, pressure or voltage responses where magnitude is not in dB value. Phase angle unit should be degrees. Calculator wraps phase automatically within -180...+180 deg. All loaded files are processed.

Manual scaling, timing and polarity inversion is available for each response. Simultaneous scaling/timing/inversion of all responses is available above response list. Phase angle in the filename is detected and visible after filename. It is needed for directivity and power response calculation. See Options for more information.

Multiple output

Functions for each input response A, producing multiple result responses:

Add A + B

Responses A added by response B.

Default result filename extension is add.txt.

Subtract A - B

Responses A subtracted by response B.

Default result filename extension is sub.txt.

Multiply A * B

Responses A are multiplied by response B.

Default result filename extension is mul.txt.

Divide A / B

Responses A are divided by response B.

Default result filename extension is divAB.txt.

Divide B / A

Response B is divided by responses A.

Default result filename extension is divBA.txt.

Divide A / frequency

Responses A magnitude is divided by frequency.

Default result filename extension is divAF.txt.

Mirror A

Responses A mirroring aka vertical flipping over entered dB value.

Default result filename extension is mir.txt.

Normalize A

Responses A normalizing to magnitude of the first response A at entered frequency.

Default result filename extension is nor.txt.

Scale, Delay, Invert A

No calculation - just responses A magnitude scaling, time shifting and polarity inversion.

Default result filename extension is sca.txt.

Minimum phase A

Responses A converted to minimum-phase. Response tails below 5 Hz and above 40 kHz are estimated by the first and last 1/2 octaves. Response tails can also be specified manually by checking Lower tail and Higher tail and entering cropping frequency and slope in dB/oct in Response tails group.

Excess group delay can be added to maintain delay of original response. Check Maintain delay and enter frequency where phase shift should be equal to original response.

Default result filename extension is MP.txt.

Group delay A

Responses A group delay in milliseconds.

Default result filename extension is GD.txt.

Real A

Responses A converted to real: phase angle is set to 0 deg or -180 deg if Invert is checked.

Default result filename extension is re.txt.

Multiply B * A / A(0)

Creates off-axis responses for measured or captured axial response B with directivity information in responses A. Directivity data can be simulated with Diffraction tool or compatible set of far field measurements. Response A to 0 degrees is reference in directivity calculation.

Default result filename extension is mulBdirA.txt.

Mic in Box A

Responses A are multiplied by 2nd order high-pass and polarity inverted. Corner frequency and Q-factor are specified with following f0 and Q text boxes.

Default result filename extension is mib.txt.

Function calculates correction to response measured with Microphone-in-Box technique, or any other response including effect of close to ideal room gain at low frequencies.

For more information: Measuring Loudspeaker Low-Frequency Response.

Protection Capacitor A z B

Compensates effect of protection capacitor in series with driver while frequency response measurements with semi- or full dual channel mode i.e. reference channel is connected to output of sound card or power amplifier. Not between protection capacitor and driver!

Load frequency responses (txt/frd) to A and impedance response (txt/zma) to B. Verify that Linear input mag A and Linear result mag are unchecked, and Linear input mag B is checked. Enter series capacitance to C/uF text box.

Default result filename extension is uncap.txt.

Multiply A * piston directivity

Responses A multiplied by piston directivity. Calculation parameters are piston diameter for circular or width for rectangular radiator, and off-axis angle in degrees. Off-axis angle coded in filename in response list A is applied if 0 degrees is entered. Directivity function for circular radiator is 2*J1(k*a*sin(angle))/(k*a*sin(angle)), where J1(x) is 1st order Bessel function of first kind, k=wave number and a=radius. Directivity function for rectangular radiator is Sinc(k*x*sin(angle)), where x is width. Result response is minimum-phase.

Default result filename extension is pis.txt.

Single output

Functions for multiple input responses, producing single result response:

Sum of A responses

= A0 + A1 + A2 + ...

Default result filename is VituixCAD sum.txt.

Product of A responses

= A0 * A1 * A2 * ...

Product calculation produces overflow error quite soon if several files is loaded. Typically product is needed for maximum two...three responses.

Default result filename is VituixCAD prod.txt.

Average of A responses

= (A0 + A1 + A2 + ...) / N

Default result filename is VituixCAD avg.txt.

RMS of A responses

= SQRT((A02 + A12 + A22 + ...) / N)

RMS is alternative for simple average (arithmetic mean). Square scales single magnitude value for area or power, for example from sound pressure to intensity. See Complex calculation.

Default result filename is VituixCAD RMS.txt.

Maximum of A responses

Searches maximum magnitude from responses (A) for each frequency point. Phase angle of result response is taken from selected row.

Default result filename is VituixCAD max.txt.

Directivity of A responses

Phase angle should be included in response filenames in order to calculate intensity on spherical surface from radial measurements. Angle step must be constant.

'Horizontal 0 deg' response is automatically selected as directivity reference. Content of that file should be modified in order to use some other measurement or calculated result as a reference.

Default result filename is VituixCAD DI.txt.

Directivity can be calculated as axial to average pressure ratio by checking DI=Axial/average. This option is valid if polar response set is real 3D containing equally spaced measurements on full spherical surface around the radiator. Another application is to calculate either horizontal or vertical directivity, without requirement of correct result for full space.

Power of A responses

Power response approximation is calculated as Reference response magnitude + Directivity Index + 10*log10(4π). This method requires valid responses for Directivity Index calculation, specified in the previous section.

Default result filename is VituixCAD pow.txt.

Additional options

Complex Sum/Avg/RMS should be checked in order to calculate complex vector sum, average or RMS with phase angle information. Complex calculation is sensitive to phase angle; sum of two equal magnitudes with opposite polarity = 0. This is default option giving correct results with frequency responses.

Absolute magnitudes are summed if Complex calculation is not checked. This option is useful if phase information is too random or nonsymmetrical (like with multiple room responses) causing steep magnitude dips in result response. Phase angle of result response is calculated with complex numbers anyway, but minimum phase features are not completely maintained.

Smoothing options are 1/1, 1/2, 1/3, 1/6, 1/12 octaves or none. Smoothing function is 6th order Butterworth band-pass, slopes truncated at -20 dB.

Result files can be recycled to input responses by checking Result -> input. Multiple result files are recycled to responses A, and single result file to response B. This enables calculation sequences without manual loading of result files to input.

Result files are created by clicking Calculate & Save button. Files are saved to destination directory selected with browse folder dialog. Calculation to graph without result file creation is executed when response files are loaded or calculation formula is selected or smoothing or any other additional option is changed.

Graph

Enter title directly into graph for publishing of captured image.

Maximum and span of magnitude axis are adjusted by arrow buttons or entering value or Up/Down keys in the text boxes. Visible frequency range is also adjustable. Magnitude can be auto scaled by clicking A button. Scale of phase axis is constant -180...+180 deg.

Magnitude and phase of selected response A are shown by checking Show selected.

Magnitude and phase of response B is shown by checking Show.

See tooltips or Traces... to identify curves. See Chart overlays.


Diffraction tool

diffraction_tool.png

Diffraction simulator calculates cabinet impact or full space frequency response of driver(s) in a baffle. Simulation is based on simple ray theory: each driver is a point source sending 72 rays towards baffle edges with fixed 5 deg steps. Path lengths of shortest 1st order diffractions are calculated and summed with delay i.e. phase information in a listening point. Magnitude of diffracted rays is frequency dependent. Weighting factors are calculated from radiator dimensions and edge radius. Maximum amount of corners is 36, and minimum is 3. Baffle can contain up to 50 drivers with equal dimensions. Simplified room response with floor and side wall reflections is available.

Initializing

Start baffle designing by entering main dimensions; width, height and number of corners. Select driver shape; circular or rectangular. Enter effective diameter Dd or area Sd for circular or width and height for rectangular, number of drivers and Step which is vertical distance between drivers (if more than one). Press New button to create initial shape with drivers and mic in the drawing area.

Adding and deleting of corners and drivers is available via pop up menu. Corner is added in the cursor position, but you may need to rotate two corners to get new one to correct position. Driver is added in the cursor position.

Zooming Out, 1, In and Fit are available via zoom buttons zoom_buttons.png. You can pan baffle image by dragging when nothing is selected (blank area clicked). Unit of location coordinates is millimeter. Zoom 1 equals 1px=1mm. Origin (0, 0) is initially in the bottom left corner. Origin can be moved to cursor position by clicking left button when Ctrl key is pressed. If corner, driver or microphone is selected, origin moves to the center point of selection.

Half space frequency response of driver can be loaded for full space response simulation. Enable full space view and export by checking Full space. Y-scale is adjusted automatically.

Check Open baffle for dipole speaker with thin I-baffle.

Adjusting

Individual objects; corners, drivers and microphone are selected by clicking left button above the image. Selected object is highlighted and location (X, Y) is visible in View group. Location can be adjusted by dragging or entering coordinates or pressing arrow keys in the text boxes. Snap setting restricts object movement to intervals specified with the text box. Snap mode is activated by a checkbox. Object is moving orthogonally if Shift key is pressed while dragging. Crosshair cursor helps object aligning. Cabinet impact response graph is updated while adjusting.

Remove selection (deselect) by clicking blank area. Coordinates of mouse cursor are shown as long as nothing is selected.

Edge radius and Driver Dd or Sd, Width and Height can be adjusted after project initialization by entering value or pressing up/down keys in the text boxes. Drawing and cabinet impact response graph are updated while adjusting.

Mic/listening point

Microphone symbol represents listening point at Axis Distance. Baffle can be rotated horizontally and vertically by entering Angle Hor or Angle Ver, or pressing up/down keys in the text boxes. Rotation origin is perpendicular point of microphone on (unrotated) baffle surface. Horizontal rotation of baffle is positive to counter-clockwise from top view. Vertical rotation of baffle is positive to face up. Sign of rotation angles are changed while directivity export for compatibility with measurement data.

Reflections

Check Floor and enter floor elevation in mm to include floor bounce in frequency response. Side wall reflection is included by checking Wall. Negative X coordinate locates wall on the left side. Enter absorption within 0...20 dB to reduce amplitude of boundary reflections.

File functions

Save baffle project by pressing Save button. File extension is .vxb, but it's human-readable xml file containing main dimensions and location of corners and drivers. You can print the file for helping final enclosure design.

Open existing baffle project by pressing Open button.

Export simulated Cabinet impact response or full space frequency response shown in the graph by pressing Export button.

You can also export off-axis responses with adjustable steps (1-45 deg) by checking Directivity. Responses to positive angles in vertical plane are exported by checking Vertical plane. Responses to negative angles are exported by checking Negative angles. Responses are routed for currently selected driver in the main program by checking Feed speaker before exporting. Enter root file name for responses. Program extends file name with horizontal/vertical keyword and angle, using coding defined in Options window.

Graph

See tooltips or Traces... to identify curves. See Chart overlays.

Note!

  1. Bevel can be entered as radius.
  2. Long planar radiator should be constructed by stacking multiple small rectangular drivers with Step = Height.

SPL Trace

spl_trace.png

SPL Trace tool can capture frequency and impedance responses from bitmap loaded from file or pasted from the clipboard. Several image file types are supported such as png, jpg, bmp and gif. Some external tool or print screen is needed for copying bitmap to clipboard from datasheet (pdf) or web page. Snipping Tool installed in Windows 10 works fine.

Recommended size of bitmap is 800x400px or more to enable adequate resolution and accuracy. Bitmap is shown in SPL Trace window with original size or fitted smaller if needed.

Note! Dark background color of bitmap should be replaced with light with Edit -> Invert colors command.

Extracting of responses:

  1. Open image file (File->Open image or Ctrl+O) or paste from the clipboard (Edit -> Paste image or Ctrl+V).
  2. Set frequency boundaries: Point and drag the lowest labeled frequency value in the graph with magenta cursor. Enter the same value to text box on the right side of magenta button, or adjust value with up/down arrow keys or mouse wheel. Uncheck 'Log f axis' if frequency axis is linear. Point and drag the highest labeled frequency value with orange cursor. Enter or adjust the same value to text box on the right side of orange button.
  3. Set SPL boundaries: Point and drag the lowest labeled Y-value in SPL axis with blue cursor. Enter or adjust the same value to Low amplitude text box. Point and drag the highest labeled Y-value in SPL axis with green cursor. Enter or adjust the same value to High amplitude text box.
  4. Set impedance boundaries: Point and drag the lowest labeled Y-value in impedance axis with red cursor. Enter or adjust the same value to Low impedance text box. Point and drag the highest labeled Y-value in impedance axis with cyan cursor. Enter or adjust the same value to High impedance text box.
  5. Select impedance axis type with 'Log Z axis' checkbox. Linear scale (unchecked) has absolute increments and typically starts from zero Ohms. For example from 0 to 60 Ohms with steps of 10 Ohms. Intervals of logarithmic scale are ratios, and scale starts above zero Ohms. For example 2, 4, 8, 16, 32, 64 Ohms.
  6. Move mouse cursor inside the graph area and check that Hz, dB and Ohm values in the status line are calculated correctly.
    Warning! Paste and File open commands reset previous settings if image size changes.
  7. Erase gridlines within chart area if luminance of line color is <90 % and color difference to response traces is small. No need to erase if gridlines are very light gray (or dotted line) and response traces are thick with saturated color (red, green, blue, magenta, cyan).
    Click X Grids button to start erasing. Point with crosshair cursor the lines where all horizontal and vertical gridlines are found, but the cursor lines crosses response traces as little as possible. Accept with left click. Gridlines (with luminance <90 %) should be gone.
  8. You can use Image rubber for cleaning vicinity of response curves. Crossing off-axis responses could interfere tracing of axial and impedance responses.
    Warning! Do not cut axial or impedance responses too much because Undo is not available.
  9. Trace amplitude response. Click Trace SPL button and then starting point of frequency response at the lowest visible frequency. Click again few pixels further if tracing was not started. Press and hold Ctrl key while clicking to prevent deletion of few previous points. This helps tracing e.g. impedance curve with sharp Q peak. Traced path is marked with thick red overlay line. If tracing is interrupted or distracted in an intersection, you can correct the path by clicking a point few pixels after the problem. You can also restart from earlier position or beginning as many times you like.
  10. You can use Trace rubber for cleaning bad points of traced curve. For example short jumps above or below correct path. Erased parts will be interpolated when the response is exported to a file.
    Check Options -> Smooth 1/12 oct. to remove small peaks and tiny steps due to pixels of original bitmap. Smoothing of 1/12 oct. is applied to exported responses.
    Default density of export is 48 points/octave. Lower densities are available in Options menu, but not recommended if responses are created for VituixCAD.
  11. Export amplitude response with Export button (left) after tracing is completed and red overlay line looks fine. Enter filename and select extension (txt or frd). Phase response is calculated automatically as minimum phase. Program estimates slopes of frequency response extensions below and above visible range.
  12. Trace impedance response. Click Trace Z button and then starting point of impedance response at the lowest visible frequency.
  13. Enter voice coil resistance of the driver to Re text box. Initial value is 95% of minimum traced Z.
  14. Export impedance response with Export button (right)...

Traced sound pressure points can be copied to clipboard with Edit -> Copy raw SPL. Traced impedance points can be copied to clipboard with Edit -> Copy raw Z. Phase angle is zero and decimal symbol defined in Control panel.

Press Shift key while moving mouse above the image to open circular Magnifier of 400 %.


Auxiliary calculator

Time window

aux_time_window.png

Calculates maximum length of time window (ms) without reflections. Enter shortest distance from driver to mic, from driver to floor and from mic to floor (mm). Calculates also path length of reflection (mm) and minimum frequency (Hz) with 1/1, 1/2 and 1/3 octs. resolution.

Wave length

aux_wave_length.png

Calculates full or 1/2 or 1/4 wave length (mm) and sound travel time (ms) in air by frequency (Hz).

Enter full or 1/2 or 1/4 wave length to calculate frequency and travel time.

Enter travel time of full wave or fraction to calculate frequency and wave length.

Near field

aux_near_field.png

Calculates maximum near field frequency (Hz) and maximum distance (mm) to microphone by effective piston diameter (Dd mm) or area (Sd cm2). This gives approximately -0.5 dB error at fNFmax in theory if mic is in the center point of ideal piston. In practice maximum applicable frequency is usually lower due to non-centered mic location and mechanical properties of the cone.

fNFmax = c/π/Dd (c = 344.0 m/s)

Max. distance to mic is 5.5% of Dd.

Sample time

aux_sample_time.png

Calculates time (µs) and distance in air (mm) for 1 and 2 and any number of samples by sample rate (Hz). You can also calculate number of samples and distance by time, or number of samples and time by distance.

Box volume

aux_box_volume.png

Calculates outer dimensions (mm) by net volume target (liters), wall thicknesses (mm) and internal volume losses due to vents, drivers, braces and amplifier box. You can lock one or two outer dimensions. Cube button resets shape to cubical. Graph shows frequencies of internal axial modes by width (red), height (green) and depth (blue) as well as open pipe resonances of vents (magenta).

Time align

aux_time_align.png

Time align function can be used to specify delay/distance difference between acoustic centers of two drivers. Delay can be iterated manually with delay [µs] or distance [mm] text boxes, or with a solver. Three response measurements are needed. They should be measured at the same spot in the middle elevation of the drivers, or at normal listening distance and elevation if speaker will be designed with axial responses only. Two measurements from individual drivers and one measurement when both drivers are connected in parallel to power amplifier, maintaining supply voltage for individual drivers.

Load first driver response (usually mid-woofer) to LF measurement text box with Open button or Drag&Drop. Red curve is shown in graph. Check MP on the right if response is not minimum-phase i.e. excess group delay is not yet removed with measurement program or Minimum phase function in Calculator tool.

Load second driver response (usually tweeter) to HF measurement text box with Open button or Drag&Drop. Blue curve is shown in graph. Check MP if response is not yet minimum-phase.

Load sum response of drivers to Sum measurement text box with Open button or Drag&Drop. Magenta curve is shown in the graph. Sum measurement does not need minimum phase extraction, because it's phase response is irrelevant for this operation.

Adjust Frequency range limits which are also constraints for the solver. Exclude frequencies which are not valid for solving the delay.

Adjust delay in microseconds [µs] or distance in millimeters [mm] until Calculated Sum (green curve) is close or equal to Sum measurement. Scale Sum measurement either manually or by clicking dB label, if SPL at low frequencies is not equal to Calculated sum (green). Solver can be started with Solve LF delay button to seach minimum squared error between Sum measurement and Calculated Sum. Sometimes solver may need decent initial delay value to find correct local minimum. Error value is high with red background if solver did not find response match.

Difference in acoustic centers should be entered as a delay to Delay µs parameter in Drivers tab with unidirectional drivers such as closed or vented enclosures and horns. Not to Z mm coordinate of driver instance in crossover to avoid probable response summing error to off-axis >60 deg.

Difference in acoustic centers should be entered as a distance to Z mm coordinate of driver instance in crossover with dipole drivers to enable more accurate geometry simulation to off-axis >60 deg.

Note1: This method is not necessarily accurate due to subjective nature and limited radiator support of minimum phase extraction.

Note2: This method is not recommended for off-axis, power response and directivity index simulation because delay/distance difference between acoustic centers is not constant value to all directions 0...±180 deg with different radiator types such as domes, cones, horns etc. and enclosure types such as boxes and dipoles. Time align feature has been added to support at least simulation of axial and listening window responses. Simulation options are limited for users who don't have adequate measurement gear for accurate and stable timing measurements with dual or semi-dual channel connection and measurement mode.


Convert IR to FR

convert_ir_to_fr.png

Conversion tool imports multiple impulse response (IR) files and converts to frequency response (FR) files. It is recommended that all files in the list are measured with common parameters and settings: rotation center, distance, level, signal type, sampling rate, MLS sequence length etc.

Impulse response files

Load impulse responses to file list with Open button or Drag&Drop. Supported IR file formats are ARTA .pir, CLIO .mls/mlsi, CLIO .crp, WAV mono/stereo (16-bit PCM, 24-bit PCM, 32-bit PCM, 32-bit IEEE, 64-bit PCM, 64-bit IEEE, Apple wav (with FLLR chunk) and MLSSA ASCII .txt. Combo boxes on the right show sample rate in Hz and scale type: Pascal, Ohm, Volt of currently selected IR file. 'Skip samples' text box enables ignoring extra samples in the beginning of impulse response file (added by measurement program). For example ARTA adds 300 samples to pir files and Praxis about 1ms x sample rate to exported wav/txt files. Check Invert to change polarity of impulse response.

Selected file is visualized in the graphs.

Click Far 1 button to set default values for the 1st far field export (tweeter's) while response to reference angle (axial 0 deg) is selected. Following far field exports (mids and woofers) of the same speaker should use the same settings except length of right window which is adjusted for each driver by the first undamped boundary reflection.

Click Near button to set default values for near field export while response of mid or woofer cone is selected. All near field responses can be exported at once.

Click Z/U button to set default values for impedance, voltage and acceleration export.

Impulse responses are possible to save as space delimited text, csv or MLSSA text files to selected Directory by pressing small export button on the left size of Far 1 button.

FFT session is possible to save as vxf-file with 'Save session' button, and load with 'Open session' button. IR file list and FFT analysis, Output and graph settings are saved to session file.

FFT analysis

Impulse response is multiplied by window function (sample by sample) before conversion to frequency domain with Fast Fourier Transform (FFT). Typical purpose of window function is to crop room reflections from measurement data. Window function could have one or two sides. Left side is activated with Left window checkbox. Maximum point of window function and phase response of exported frequency responses are set with Reference time. Reference time is typically set to the first sharp and high (positive) peak of impulse response to produce close to minimum phase response at high frequencies. Get button locates reference time to the highest absolute peak of impulse response. Manual fine tuning may be needed. Name of Reference time will change to Start time if Left window is disabled. Right window is 'main gate' for measurement data after Reference/Start time. Endpoint of right window is typically set in the beginning of the first stong boundary reflection (not diffraction).

Available Window functions are Rectangular, Bartlett, Blackman, Blackman-Harris, Blackman-Nuttall, Cosine, Hamming, Hanning, Nuttall, Tukey 0.25, Tukey 0.50 and Tukey 0.75. Flat top functions Rectangular and Tukey allow some movement or location differences or timing differences of measured objects so that impulse does not attenuate too much or flow totally out of time window. Recommended functions for driver measurements with rotation table are Tukey 0.25 for Left window, and Tukey 0.50 or Tukey 0.25 for Right window.

Side effect of rectangular right window could be HF artefacts/errors in frequency response. Hanning function is not recommended either, but could be usable if timing and location of measured objects are constant and response does not have much resonances i.e. possible variations in IR are small or very close to first peak.

Reference time and length of time windows are adjusted by mouse via impulse response graph, or in milliseconds (ms) or samples (smp) or millimeters (mm) with text boxes in FFT analysis group.

FFT length could change automatically while adusting length of time windows to ensure that whole time window fits into FFT buffer. FFT length is possible to change after window length adjustments. Extending may be needed to increase accuracy/resolution at low frequencies.

Effect of possible DC voltage in the input or ouput of sound card can be reduced by checking DC offset. Average IR level before time window (max. 270 samples) is calculated and subtracted from all IR samples.

Output

Boundaries of displayed and exported frequency responses are adjusted with Frequency range text boxes. Widest possible range is from 5 Hz to 40 kHz or sample rate / 2 (Nyquist frequency) which one is lower. Low frequencies may need cropping due to noise or other inaccuracies if measured object does not pass low frequencies. Highest frequencies may need cropping due to limits of measurement system. For example if sweep stops shortly before sample rate / 2.

Frequency response Smoothing of 1/24, 1/12, 1/6 or 1/3 octs. is available. Smoothing function is 6th order Butterworth band-pass, slopes truncated at -20 dB.

Calibration of sound pressure (in Pa) measurement is enabled with Calibration checkbox. Calibration file is selected into text box with Open button or Drag&Drop. Minimum phase extraction should be applied with Minimum phase checkbox if calibration file does not include phase information. Calibration does not apply if unit of IR measurement is Ohm.

Target folder for frequency response files is selected into Directory text box.

Warning! Existing output files will be overwritten without warning. Select different output directory if both impulse and frequency response files are .txt, or export frequency responses as .frd files.

Magnitude can be scaled with Scale text box: in dB for dBSPL and dBV, and multiplier for Ohm. Metadata can be added to output file by checking Info header.

File format and extension is selected with File format radio buttons. Second option is ZMA if unit of impulse response is Ohm. Magnitude unit is dBV if unit of impulse response is Volt. TXT produces 3-column space delimited text file with header line. FRD/ZMA produces 3-column tab delimited text file without header line.

Full resolution checkbox exports unsmoothed high resolution frequency responses. Frequency step is constant sample rate / FFT length allowing long excess delay without wrapping errors in phase response.

Warning! Use short FFT to avoid huge file size and slow processing.

Output files are created with Export button. Only the selected response is exported when Ctrl key is pressed while clicking Export button. Responses are loaded for currently selected driver in the main program if Feed speaker is checked.

Impulse response graph (upper)

Impulse graph contains impulse response (blue), optional impulse envelope (ETC, dark green), impulse dBFS (dark cyan) and step response (orange red) and overlays, window function (gray), three cursors: Left window start (orange), Reference/Start time (magenta) and Right window stop (red). Cursor legend shows time (ms), impulse magnitude (Pa/Ohm/Volt) and envelope/impulse dB at cross cursor position if cursor dragging is not on. While dragging with left button down, cursor legend shows magnitude of impulse (Pa/Ohm/Volt) at cursor time (ms) and distance to Reference (mm).

Magnitude and time scales are adjusted manually with Expand and Compress buttons. Press Ctrl key to expand/compress dB span of impulse graph. Time scale is panned manually with Left and Right buttons. Auto buttons scale magnitude and time axes automatically. Magnitude axis is scaled to absolute maximum and time axis to show whole time window - not impulse peak if it's not inside time window.
See tooltips or Traces... to identify curves. See Chart overlays.

Frequency response graph (lower)

Frequency reponse graph shows magnitude (blue), phase in degrees (gray), optional minimum phase response (lime), excess phase response (steel blue), overlays and 'gating frequency' with vertical line at 1.0/time_window (green). Result below gating frequency could be unreliable and too smoothed, but it depends on shape of impulse response. For example perfectly flat system produces correct result also with very short time window.
See tooltips or Traces... to identify curves. See Chart overlays.