Subwoofer Simulator

by Isaac MCN
May, 2002

0.  Introduction

Subwoofers have received a lot of attention from audio software writers primarily because of our obsession with bass.  Moreover, simulator writers find that, subwoofers are not nearly as difficult to model compared to loudspeakers with relatively high frequency driver units.  Because of this, countless subwoofer simulators can be found in the Internet, some are free and some are not.  This is my attempt to provide a freeware subwoofer program that will hopefully prove itself useful to DIYers.

1.  Background

The very first version of Subwoofer Simulator was a basic Vented-Box calculator compiled in one little MS-DOS command-line utility.  The MS-DOS executable file used equations from Ray Alden's book, "Advanced Speaker Design for the Hobbyist and Technician."  The utility simply calculated net enclosure volumes and port dimensions off one 'alignment'.  It was all I could do since I neither had the time nor patience to hard code a graphical user-interface using only a command-line compiler.  I had to use a 2nd software to plot my program's output files.

It was when Borland decided to let Australian Personal Computer Magazine release Borland C++ Builder 3.0 Standard to the public that I started my journey into the challenging world of loudspeaker CAD software development.  After a month of reading Builder's helpfiles and example programs, I was able to build a fully-independent simulation program, which is pictured below.

Old Subwoofer Simulator

Fig. 1:  First Subwoofer Simulator.

The most time-consuming part was making the graphing functions.  I disliked what was already available, so I made my own plotting routines.  As you can see, the plots weren't perfect around the edges; curves tended to 'overshoot' the graph space.  After the graphing functions were completed, though not necessarily bug-free, the next time-consuming part of making the user-interface followed.  Anyway, it was August, 2001 when I released the old version to the public.

2.  Specifications

2.0.  System Rquirements

Any machine running Windows 95 is good enough.

2.1.  Electroacoustics Model

Subwoofer Simulator uses pre-programmed 'equivalent circuits' to model 7 types of subwoofer designs.  All the models have their electrical and mechanical parts transformed to their acoustical equivalent, which greatly simplifies circuit calculation.  Please see Electroacoustic Modeling Of A Vented-Box Loudspeaker for an example of this simulation method.

The models used are of the small-signal type, and the simulation results are accurate so long as the driver unit in question remains linear at the (user-adjustable) simulation conditions.  The results can be relied upon so long as the driver unit stays within linear Xmax, thermal power handling limit and cone breakup...  All of which are conditions easily-met given today's high-quality subwoofers from Adire Audio, AE Speakers (formerly named Stryke Audio) etc.

Subwoofer Simulator simulates:

Sealed Enclosure Design
Vented-Enclosure Design
Passive Radiator Design
4th-Order Bandpass Design
Enclosure with Passive Radiator
4th-order Bandpass

Parallel 6th-Order Bandpass
Series 6th-Order Bandpass
8th-Order Bandpass

Parallel 6th-Order Bandpass
Series 6th-Order Bandpass
8th-Order Bandpass

Subwoofer Simulator allows for 1, 2 or all 7 types of subwoofers to be simultaneously simulated, however, only one instance of each type is supported in the current software version.  The next version will be more flexible and have lots more features.

2.2.  Graphing

I have made the graphing part of subsim to show multiple curves in one page only so that users may clearly see the relationship between each curve. This is not only educational for beginners, but also informative for knowledged designers. Moreover, all curves corresponding to each box type are shown on the same page, which allows for easy comparison of box designs.

The current version of subsim does not automatically adjust the extremes of the Y-axes. However, all X-axis and Y-axis maximum and minimum values may be easily changed by clicking the supplied Up/Down buttons or Up/Down keys for keyboard bashers.

Subwoofer Simulator plots:

- System SPL and phase
- Impedance magnitude and phase
- Cone and port speed
- Cone and port excursion
- Group Delay
- In-Room frequency response (given the user's room transfer function)

and lets the user save the graphs in FRD/ZMA (textual) format.  The format allows for post processing with any text editor and other audio software such as the ones from the FRD Group.  The format is also used by commercial software such as SoundEasy, LEAP, LspCAD etc.  FRD files are simply text files containing, for example, the following data.

Frequency (Hz) Magnitude (dB) Phase (degrees)
10.000 80.000 90.000
11.000 82.000 85.000
12.000 83.000 80.000
... ... ...
.. .. ..
. . .

Writing Bitmap screenshots is handled by Subwoofer Simulator simply by clicking on the graph space or by going the long way of clicking on the File / Write Screenshot drop-down menu.

In order to help the user distinguish which curve is which, the user has the option to change the color of each curve. Colors are automatically saved when a simulation is ended or when subsim is closed; the last saved colors are loaded everytime subsim is opened.

Clicking anywhere outside the graph space recalculates everything.

2.3.  Create/Load/Save Project Files, Driver Files, Box Files...

Projects can be saved and loaded for convenience.  This greatly saves time in re-entering design parameters or making derivatives of a known good design.  Except for which sub-windows were open, everything is saved in one file, the program even remembers graph colors and axis extremes.  Graph colors are automatically-saved just before ending a session with the program or complete program closure.  Graph colors can be reset just in case the corresponding settings file becomes corrupted.  Enclosure and driver details can be separately saved and loaded as well.

2.4.  Listening Room Simulation

Using measurements of the user's listening room, subsim can show the effects of which with a candidate subwoofer design. Subsim simply adds the transfer functions of both subwoofer and room then displays the results.

2.5.  Curve Tracing

When any of the checkboxes in the Graph Options | Available Curves tab is checked, moving the mouse pointer anywhere on the graph space enables curve tracing. At the bottom-left-hand corner of subsim's window, the corresponding magnitude, phase and frequency of the mouse pointer's position is displayed. Depending on which Y-axes are selected to be shown and which Y-axis is selected, users will see, for example, "88.123dB/-90.456deg at 30.789Hz." Any of the visible Y-axis may be selected for curve tracing simply by clicking on the desired Y-axis type.

2.6.  Auto Calculation

Not all woofers come with enough Thiele/Small parameters.  To compensate, Subwoofer Simulator can calculate the requried parameters...  given a set of extra parameters.

Box volume, Vb, port radius, Av, port length, Lv, and box resonant frequency, Fb are interrelated to one another. I have made subsim to behave as follows.

Enclosure Part - Changed by adjustments of any/all of: - Notes
Vb, Av, Lv, PR parameters, number of vents/PRs    
Vb, Fb, Av, number of vents    
Fb, number of PRs    
PR Parameters
number of passive radiators
to reflect a single equivalent PR

Physical port length is influenced by end-correction, (and user defined values for) speed of sound and air density. Subsim calculates the effective port length by adding 0.850*Av (for flanged end) and 0.613*Av (for unflanged end) to the physical value, Lv.  Please see Cylindrical Ports and Flared Vents for more details.

3.  Quick Startup Guide

3.0.  Double-click subsim.exe and then click on File / New Project

3.1.  Enter driver Thiele-Small parameters or load a pre-saved driver file.

3.2.  Enter simulation parameters and then select which enclosure type to simulate.

3.3.  Click on  Boxes / Vented to bring up the Vented-Box Details window.  Enter your enclosure's parameters and then select which curves to plot.

....  Quite straight-forward.  There really is no particular order, which may make Subwoofer Simulator's user interface a little "different" to some users.

4.  Notes

- Enclosure optimization is disabled and completely removed from the program.  The code works, but is 'randomly' unstable, so I need to work on it some more.

-- Upper frequency roll-off is due to voice-coil inductance, but remember that the SPL curves are only accurate up until Cone Breakup sets in.  For subwoofers, Cone Breakup happens well away from the passband of interest.

--  Radiation is into half-space.  Subtract 6dB from the plotted SPL to obtain full-space radiation, however, remember that Baffle Diffraction is not simulated.  The easiest way to subtract 6dB from the SPL is by halving the voltage input.

--  I have built Subwoofer Simulator to use the most commonly used measurement units in this subject. However, to help you convert from one measurement unit to another, you may download Factor Conversion Tool.

-- multiple woofers may be used with the program simply by manipulating the T/S parameters of the woofer used. The single-woofer equivalent T/S parameters are:

For x woofers in parallel:
Revc = Revc/x    
Levc = Levc/x    
Fs = unchanged    
Vas = x*Vas    
Qms = unchanged    
Sd = x*Sd    
Bl = unchanged    
For x woofers in series, as above, but:
Revc = x*Revc    
Levc = x*Levc    
Bl = x*Bl

--  Please see Thiele-Small Parameters and Dual Voice-Coil Drivers for DVC simulations.

-- for an isobaric configuration, the effective parameters are:
For parallel voice-coils:
Revc = Revc/2    
Levc = Levc/2    
Fs = unchanged    
Vas = Vas/2    
Qms = unchanged    
Sd = unchanged    
Bl = unchanged    
For series voice-coils, as above, but:
Revc = 2*Revc    
Levc = 2*Levc    
Bl = 2*Bl

-- Project/Woofer/Box/Color files are saved in binary format. I was going to use text mode saving/loading but this created an incompatibility with Windows machines which use the comma (,) as the decimal separator (as I program using the full stop (.) as the decimal separator). Text mode would have given the user the option to manually edit the project files using any text editor, but the incompatibility problem was unavoidable in text mode.

-- Subwoofer Simulator displays peak or one-way excursion curves.

-- Input FRD files must not have any comments whatsoever -- the input files must only contain data or the program will refuse to accept your room measurements.

5.  Things To Come

I had originally decided to continue updating Subwoofer Simulator with active filters, equalizers etc., but I thought it is time to combine both Subwoofer Simulator and Crossover Simulator into one loudspeaker simulation package.

6.  Download Details

SubSim ZIP File
size =
Uploaded on May, 2002

Subwoofer Simulator is FREEWARE!

Kindly email me to arrange commercial use.

Please email me if you'd like to donate any sum of money.