VituixCAD is free engineering and simulation software for passive and
active multi-way / multi-driver loudspeakers. It is one of my DIY
projects and personal challenge in programming, acoustics and
mathematics. Program provides some important features which are
not available in every speaker simulators on the market.
- Total axial frequency response magnitude
- Listening window average response magnitude (optional)
- Total axial phase response
- Minimum phase response (optional)
- Excess phase response (optional)
- Axial frequency response magnitude per driver
- Total axial response overlay, snapshot or loaded from file
- Listening window average response overlay, snapshot or loaded from file
- Adjustable targets:
- Tilting straight target line for total SPL, adjusted by Shift + mouse drag
- Target curve for axial response of driver, adjusted or loaded from Optimizer window
- Power & DI
- Power response approximation
- Axial frequency response (reference of DI)
- Directivity Index response
- Tilting straight target line, adjusted by Shift + mouse drag
- Overlay for each response curve, snapshot or loaded from file
- Horizontal or vertical directivity as line chart,
area chart, surface chart, polar map or polar chart
- 2...361 directions per axis
- Rotation, inclination, zooming and panning of surface chart with mouse
- Frequency of polar chart adjustable with mouse
- Directivity chart options via context menu (right click on graph):
- Disable directivity chart
- Chart type: Line chart, Area chart, Surface chart, Polar map, Polar chart
- Horizontal/vertical plane selection
- Half space view, for Line and Area charts only
- Positive/negative angles in front
- Contour lines (for Polar map)
- Group delay & Phase
- Axial phase response per driver
- Normal group delay
- Excess group delay (optional)
- Overlay, snapshot or loaded from file
- Crossover frequency response magnitude per driver
- Overlay, snapshot or loaded from file
- Load impedance response magnitude of generator (passive XO)
- Load impedance phase response of generator (passive XO)
- Load impedance response magnitude per active buffer (active XO)
- Overlay, snapshot or loaded from file
Chart zooming to full size by double click.
Value(s) at cursor position in status bar.
Export image to file or copy to clipboard via context menu.
- Max. 100 drivers per project. Settings common for all measurements of the driver:
- Frequency response magnitude scaling [dB]
- Frequency response delay +/- [µs], display in mm
- Frequency response polarity inversion
- Frequency response smoothing: none, 1/24, 1/12, 1/6, 1/3, 1/2 oct.
- Impedance response scaling (multiplier).
- Max. 722 frequency response measurements per driver (361 per plane), for example:
- 0, 5, 10, ..., 180 deg horizontally and vertically or
- -180, -170, ..., +170, +180 deg horizontally and vertically
- Impedance response measurement
- Selectable main/design axis of the speaker (Reference angle). Horizontal plane only.
- Free form crossover network with support for unconventional topologies
- Unlimited amount of components and driver instances
- Component menu including active blocks, OP amplifier, passive components (LCR), ideal transformer, wire, ground and driver
- Block library containing few standard connections. User can save own custom blocks and filter block list shorter.
- Wires with multiple nodes. Components can be connected to the corners and ends of the wires
- Multi-selection of components by clicking or selection window with Ctrl or Shift key pressed
- Open, Short, Invert, Mute and Rotate control for components via context menu
- Select all, Undo (x20), Cut, Copy, Paste, Delete commands in context menu
- Copy digital biquad coefficients of selected active IIR blocks via context menu
- Optimize On, Toggle, Off control for main parameters of component groups via context menu
- Zoom to nominal 10px snap grid with button
- Zoom to fit components in picture area with button
- Zoom in/out with Ctrl + mouse wheel
- Passive component value snap 5%, E12, E24 or E48
- Adjustable relative location X, Y, Z [mm] for each driver instance
- Adjustable rotation angle X or Y [deg] for each driver instance
- Driver layout can be adjusted with table control or locations and tilts calculated for linear or curved array:
Filter block types
- Active High/Low pass filters:
- 1st order
- 2nd order (Q)
- Linkwitz-Riley 12...48 dB/oct
- Bessel 12...48 dB/oct
- Butterworth 12...48 dB/oct
- Chebyshev 0.5dB 12...48 dB/oct
- 1st order linear-phase
- 2nd order linear-phase (Q)
- Linkwitz-Riley linear-phase 12...48 dB/oct
- Bessel linear-phase 12...48 dB/oct
- Butterworth linear-phase 12...48 dB/oct
- Horbach-Keele linear-phase (R)
- Horbach-Keele MTM linear-phase (R)
- Brickwall linear-phase
- Active Shelving High/Low pass filters:
- 1st order
- 2nd order (Q)
- 1st order linear-phase
- 2nd order linear-phase (Q)
- Active All-pass filters:
- 1st order
- 2nd order (Q)
- 1st order phase linearization
- 2nd order phase linearization (Q)
- Linkwitz-Riley phase linearization 12...48 dB/oct
- Bessel HP phase linearization 12...48 dB/oct
- Butterworth HP phase linearization 12...48 dB/oct
- Active Peak/Notch filters:
- Parametric EQ (A, Q)
- Gain EQ (A, Q)
- Phase EQ (-90...+90 deg, Q)
- Active Linkwitz Transform (fo, Qo, fp, Qp)
- Active Buffer with gain, delay and polarity
- Operational amplifier (GBP, AOL) with differential input and unbalanced output
- Transfer function file, any supported response file type
- Passive Resistor (R ohm, Pmax W)
- Passive Inductor (L mH, DCR ohm, wire diameter or gauge)
- Passive Capacitor (C uF, ESR ohm)
- Ideal Transformer (N)
- Wire with multiple nodes
- Library blocks, combinations of previous components saved in VituixCAD\Library-directory
- Generator with 1.0 VAC output
Filters in blue are NOT minimum-phase requiring FIR engine for application IRL.
Library blocks can be selected from image menu or dragging from VituixCAD\Library folder.
Menu is possible to filter with predefined keywords to speed-up searching.
User parameters are adjusted when block is inserted, or with Tune block... command in context menu of crossover schematic.
Block is possible to purge i.e. delete links and expressions if calculation parameters are not needed.
Block parameters are designed and maintained with Block editor window which shows block attributes and parameters of crossover components.
Edit commands in context menu: Cut, Copy, Paste, Delete, Duplicate, Append and Find/Replace.
Attributes can be grouped as Options to enable different questions, variables and math expressions for different filter types such as Bessel, Butterworth or Linkwitz-Riley.
Math expressions can be located in block attribute or component parameter. Expression syntax:
- 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
Optimizer is iterative solver for adjusting frequency response automatically to target by modifying parameter/component values in the crossover.
Optimized values are selected from Parameters/components grid.
Main parameters of component groups can be selected for optimising via context menu.
- Setting target axial response of Driver.
HP/LP; 1st...8th order Butterworth, Bessel, Chebychev 0.5dB, Linkwitz-Riley or response file with scaling.
- Optimizing axial response of selected Driver. Adjustable frequency range.
- Optimizing filter gain of selected Driver to overlay in Filter chart. Adjustable frequency range.
- Optimizing total axial and power responses to target lines in SPL and Power & DI charts.
Adjustable weighting (0-100%) between axial and power responses.
Target level can be ignored by unchecking Seek level.
- Minimum impedance constraint.
- Maximum gain constraint.
- Passive component snap to E12, E24 or E48 series.
- Setting of maximum evaluations.
- Undo. Up to 20 most recent changes can be restored.
Parts list window
Calculates and exports axial frequency response or filter transfer function Driver,
transfer function of active buffer or total axial response of the speaker as impulse response in time domain.
Visualisation of impulse response, step response and selected window function.
Curves refresh when speaker/crossover changes. Graph is zoomable to full window.
- Sample rate: 44100, 48000, 88200, 96000, 176400 or 192000 Hz
- FFT length: 8192, 16384, 32768, 65536, 131072 or 262144 bins
- Taps: 512...131072, up to FFT length / 2.
- IR Window function: Rectangular, Bartlett, Hanning, Hamming, Blackman,
Blackman-Harris, Nuttall, Blackman-Nuttall or Cosine.
- Optional centering of impulse peak and window function for FIR convolver.
Without centering impulse peak and maximum point of window function are adjustable.
Initially 1.0 ms to support pure IIR with small timing tolerance.
- File format: 16-bit PCM mono (.wav), 16-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 mono (.txt), miniDSP binary file (.bin) or miniDSP manual mode (.txt).
MLSSA header option for .txt file.
Calculates power dissipation spectrum W(Hz) of generator output, output of active buffers, all drivers and enabled resistors/resistances in the crossover.
Adjustable parameters of amplifier signal: maximum output voltage or power, crest factor (0-30 dB) and spectrum (flat/pink=music).
- Frequency response
- Frequency response of Driver
- Power response
- Directivity index
- Group delay
- Filter gain of Driver
- Load impedance of Generator
- Load impedance of Buffer
- Polar frequency responses. Exports frequency responses to all angles (in both planes) included in the project.
- Crossover schematic
- Configurable for different angle coding in off-axis
frequency response file names
- Frequency responses:
- Mirroring of missing angles:
- measurement to equal positive angle selected if negative
angle is not available
- measurement to equal horizontal angle selected if
vertical angle is not available
- measurement to equal absolute horizontal angle selected
if vertical angle is not available
- DSP system: Analog, Behringer DCX 96k, FourAudio PPA 48k, Generic (adjustable sample rate), Hypex FA 192k, Hypex PSC 48k, miniDSP 48k, miniDSP 96k, Xilica XA/XP 96k
- Adjustable listening distance (reference distance).
- Adjustable listening window in horizontal and vertical planes.
- Power response & DI calculation
- Intensity on spherical surface around speaker is
calculated from radial frequency responses.
This is official formula for dual plane measurements,
suitable for most speaker constructions.
- Intensity on cylinder surface around speaker is calculated
from radial frequency responses.
This is practical selection for long line sources, or if
either horizontal or vertical directivity is temporarily
interesting - not actual power response and DI.
- Selection of included radial responses; horizontal,
vertical or both.
- Frequency axis
- from 5 to 40 kHz
- resolution 48 pts/oct.
- Limiting of visible range in graps: 5-1000 Hz...200-40 kHz
- SPL, Power & DI and Directivity graphs span
- Group delay span
- Filter gain span
- 30, 35, 40, 45, 50, 60 dB
- Impedance maximum
- 12, 20, 30, 40, 60, 80, 120 ohm
- Excursion maximum
- Velocity maximum
Ease of use
- Numeric values such as driver location, mag scaling, timing,
filter parameters, component values and wizard parameters are
adjustable with Up/Down keys or mouse wheel
- Filter network is possible to copy to another project or way
by using clipboard
- List of most recently used projects, max. 20 files
- Drag and drop for file selection and crossover schema design.
Supported frequency response file types
- tab or space delimited .txt or .frd
- decimal separator comma or period
- Windows-1252/ANSI, UTF-8, UTF-8 without BOM, UTF-16 LE and UTF-16 BE character encoding
- ARTA, Clio, Edge, FRD Tools, HOLM Impulse, justMLS, Klippel, LIMP, LMS short ascii, LspCAD, LspLAB, REW, SoundEasy and XSim exports
- Total SPL [dB] and phase, SPL of cones and ports or passive
radiator, max SPL, SPL to full space and Total SPL Overlay (control with context menu)
- Total impedance [Ohm] and phase
- Input Power: volt-ampere [VA], real power [W] and Pmax [W]
- Group delay [ms], optional Crossover response [dB]
- Peak excursion and Xmax [mm] of cone and passive radiator
- Air velocity [m/s] of vents
- Meta data: Manufacturer, Model, Type (S, W, M, F, C, PR), Size [in].
- T/S parameters: Re, Z1k, Z10k, Le, Leb, Ke, Rss, fs, Qms,
Qes, Qts, Rms, Mms, Cms, Vas, Sd, Bl, Pmax, Xmax.
- Cross-calc of missing parameters while adjustment.
- Calculated parameters: n0, SPL, USPL, EBP, Vd.
- Record filtering by any field. Values within given range.
- Record sorting by clicking column header.
- Context menu (right click on table): Undo (all changes),
Copy, Delete rows, Duplicate rows,
Update database..., Find.
- Driver search from web.
- Online database option.
- Two impedance models:
* Basic model with Z1k and Z10k (primary, if Z1k > 0 and Z10k > 0)
* Extended model with Le, Leb, Ke and Rss (secondary).
- New drivers can be added or existing drivers updated with data on the clipboard or text file or online database.
Updated parameters can be selected from the list.
- T/S-parameters can be calculated with one or two impedance reasumements.
Added mass or sealed box method with two measurements.
- Number of drivers; 1, 2, 3, 4, 6, 8, 9 or 12 pcs
- Electrical connection; series, parallel, 2 || 2 ..., 3 || 3
- Extra mass per driver [g]
- Amplifier's output voltage [V] and output resistance [Ohm], common for all drivers.
|Double tuned bass reflex
|Band pass type 1
|Band pass type 1P
|Band pass type 2
|Band pass type 3
- Closed box alignment by selecting or entering Qtc. Optional
high alarm limit for non-linearity [% on Xmax] due to air
- Bass reflex alignment 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 box type is changed.
Single cabinet impact response is possible to include in full space simulation shown in SPL graph.
Diffraction simulator is executed with Baffle step button.
Adjustable box parameters: Volume [l], Qa, Ql.
Fb [Hz] is calculated.
Adjustable vent parameters: Length [cm], Diameter [cm] or Area [cm^2], Qp,
Number, Total end correction; 0.614, 0.732, 0.80, 0.850, 0.90,
0.95 or 1.00
- Enclosure image
- Calculated acoustical parameters of driver, boxes and ports.
Optional display of electrical equivalent values.
- Statistics: f-3dB, f-6dB, f-10dB,
min impedance, max group delay, max excursion of cone and
passive radiator, max air velocity of vents
- Optional execution of external LTspice IV circuit simulator.
Acoustical parameters of driver and enclosure are passed into
- Total SPL frequency response to half space
- Total impedance response
- Directivity; axial and off-axis frequency responses to full space.
- Merges either near field LF response+diffraction simulation
or 2pi+diffraction simulation or 4pi simulation or far field
LF responses to (time-windowed) far field HF responses
- Creates separate merged on-axis and off-axis frequency
response files for simulator(s); txt, frd or LMS ascii
- Creates ## EXTENDED DATA ## OFF AXIS -formatted
frequency response file for LspCAD 6
- Merged off-axis responses contain directivity information
below transition frequency based on time-windowed axial
response divided by time-windowed off-axis response if LF
responses are near field measurements
- Scaling of near field cone and port responses calculated by
radiator diameter or area and far field distance
- Diffraction simulation could be baffle-step function of
sphere or response created with Diffraction simulator
- Transition frequency (Hz) adjustment with chart cursor,
entering value or up/down keys
- Searches magnitude crossing point of LF and HF curves
- Magnitude and phase offsets (LF) calculated automatically on
transition frequency change
- Magnitude and phase blending bandwidth at transition range:
none, 1, 2, 3, 4 octaves
- Manual magnitude offset (dB) adjustment by entering value or
- Manual delay offset [µs] adjustment by entering value or
- Phase inversion
- Preview of merged responses.
- Frequency responses A and B magnitude scaling (dB), time
shifting (delay us) and polarity inversion
- Functions for each input response A, producing multiple
- responses A added by response B
- responses A subtracted by response B
- responses A multiplied by response B
- responses A divided by response B
- response B divided by responses A
- responses A divided by frequency
- responses A mirroring i.e. vertical flipping over entered dB
- responses A normalizing to magnitude in the first response A at entered Hz
- responses A conversion to minimum-phase, manual adjustment of response tails
- responses A group delay, result in milliseconds
- responses A conversion to real, phase set to 0 or -pi
- response B multiplied by responses A / A(0), adding directivity to response B
- Mic in Box A response correction
- responses A multiplied by piston directivity (diameter/width, angle)
- none, just response A magnitude scaling, time shifting and polarity inversion.
- Functions for multiple input responses, producing single output response:
- sum of responses A
- product of responses A
- average (magnitude) of responses A
- RMS of responses A
- maximum magnitude of responses A (phase from selected row)
- directivity of responses A, calculated from radial (2D) measurements
- directivity index DI(f) [dB] with logarithmic result or directivity factor Q(f) with linear result
- optional calculation as axial to average pressure ratio DI'(f) = 10*log(Q), Q = (pref/pavg)2
- power response approximation of responses A, calculated from radial (2D) measurements.
- Optional Complex calculation for Sum, Average and RMS. Complex sum is sensitive to phase difference between frequency responses.
- Smoothing 1/1, 1/2, 1/3, 1/6, 1/12 oct. or none
- Result recycling to input response(s); multiple output to A, single output to B
- Saves results as tab or space delimited .txt or .frd
- Max. 10 frequency response overlays.
- scaling and summing of near field measured cone and vent responses
- near field to far field conversion: multiplying near field response by cabinet impact response
- cone excursion calculation
- directivity index (DI) calculation
- power response approximation
- listening window e.g. ±30 deg hor & ±5 deg ver average response
- normalized directivity responses: off-axis responses divided by axial (or other reference) response
- equalizer target: response flipping and smoothing
- equalizer testing: measured response multiplied by equalizer transfer function
Diffraction simulator calculates cabinet impact 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 by piston
radius and edge radius.
- Baffle can contain 3...36 corners.
Number of corners is initialized by entering value, and adjustable via pop-up menu.
Location of corners is initiated from main dimensions, and individually movable by mouse or keyboard.
- Baffle can contain up to 12 drivers.
Number of drivers is initialized by entering value, and adjustable via pop-up menu.
Location of drivers is initiated from main dimensions, and individually movable by mouse or keyboard.
- Drivers can be circular or rectangular.
- Movable microphone at axis distance for simulation of multi-driver configuration.
- Simultaneous axis rotation in horizontal and vertical planes.
Rotation origin is perpendicular point of microphone on (unrotated) baffle.
- Pan and Zoom Out, 1, In and Fit for baffle image. Fit centers the baffle within drawing area.
- Optional crosshair cursor.
- Optional snap function with adjustable increment 1...50 mm.
- Orthogonal object moving by pressing Shift key while dragging.
- Adjustable splitter between baffle image and response graph.
- Optional Full space view and export, combining diffraction simulation and loaded half space response.
- Max. 10 frequency response overlays.
- Floor and side wall reflections included in frequency response. Adjustable absorption.
- Baffle project is possible to save and reopen. Format is human-readable xml file.
- Export of simulated Cabinet impact response in txt or frd format.
Export of horizontal & vertical polar responses -170...+180 deg, step 10 deg.
- Exported responses can be loaded to current driver of the speaker.
- Support for open baffle.
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.
Exported responses are minimum phase 5Hz...40kHz, default density 48 points/octave. Optional smoothing of 1/12 octaves.
Traced raw data can be copied to the clipbpoard with phase=0 and decimal symbol defined in Control panel.
Magnifier (4x) by pressing Shift key while moving mouse.
- Time Window: Calculates maximum length of time window (ms) without reflections.
- Wave length: Calculates full or 1/2 or 1/4 wave length (mm) and sound travel time (ms) in air by frequency (Hz).
- Near field: Calculates maximum near field frequency (Hz) and maximum distance (mm) to microphone by effective piston diameter (Dd mm) or area (Sd cm^2).
- Sample time: Calculates time (µs) and distance in air (mm) for 1 and 2 and any number of samples by sample rate (Hz).
- Box volume: Calculates outer dimensions by target volume and wall thickness.
- Time align: Calculates delay/distance difference between acoustic centers of two drivers.
Convert IR to FR
Converts multiple impulse responses to frequency responses.
- Supported IR file formats: CLIO .mls/mlsi, ARTA .pir, WAV mono/stereo (16-bit PCM, 32-bit PCM, 32-bit IEEE, 64-bit PCM, 64-bit IEEE) and MLSSA ASCII .txt.
- Right time window and optional Left window. Time adjustable in milliseconds, samples or distance at 344 m/s.
- Window functions: Rectangular, Tukey 0.25, Tukey 0.50, Tukey 0.75 or Hanning.
- FFT length: 4096...1048576 bins.
- Frequency range limits.
- Smoothing: 1/24, 1/12, 1/6 or 1/3 octs.
- Magnitude scaling in dB.
- Output file format: txt or frd
- Optional micprophone calibration with optional minimum phase response calculation.
- Optional full resolution export with frequency step of FFT.
- Optional response routing to main program.
- Optional info header (meta data).
- Windows XP, 7, 8 or 10
- Microsoft .NET Framework 4.
Software is tested up to Microsoft Windows 10 Pro 1909
VituixCAD 18.104.22.168 (2020-06-05).
VituixCAD help in English
How to produce measurement data for loudspeaker simulation:
Measurement Preparations with ARTA,
Measurement Preparations with REW
Installation to Linux with Wine:
VituixCAD in Linux v0.1.pdf
How to start working with VituixCAD
- Install the latest built of version 2.0.
- Read VituixCAD User Manual.
Especially section 'Checklist for designing a loudspeaker' starting on page 4.
- Note 1: Tools and methods which are not listed in 'Checklist for designing a loudspeaker' section are not recommended and needed for final design of typical boxed speakers.
Also VituixCAD has some tools which are meant for preliminary or simplified theoretical studies, but otherwise they should be avoided.
For example graphically traced or downloaded manufacturer's response data is okay for preliminary studies, but not for final crossover design.
- Read Measurement Preparations with ARTA or Measurement Preparations with REW.
This is mandatory document to read and follow to enable fast and controlled speaker simulation producing accurate off-axis simulation and reliable power and DI responses.
Try to avoid not recommended measurement programs and single channel measurement gear such as USB microphones and single channel mode for far field measurements. Also technical support for not recommended measurement programs is not available.
- Tip 1: Frequency response file naming with plane and off-axis angle value is mandatory.
This rule applies also to single (axial) frequency response if filename contains numbers.
See also Options -> Angle parsing from filename.
- Download test projects:
_V2.vxp project file is for VituixCAD 2.0.
Unzip all files with original subdirectories into "(My)Documents\VituixCAD\Projects".
Start VituixCAD and open project file .vxp.
Play with demo project few days before trying with your measurement data.
Make changes and variations to crossover.
Design new crossover with my measurements.
Investigate relation between file naming and settings in Options window.
Test Merger tool with included near and far field field measurements and cabinet impact response.
- Tip 2: Version 2.0 does not have initial crossover so at least single wire from generator to driver is needed for single driver project.