Using Speaker Workshop to simulate crossovers


I've found that Speaker Workshop is a great tool when it comes to simulating crossovers. Speaker Workshop's network simulator can handle virtually any passive crossover circuit consisting of resistors, inductors and capacitors. Unlike some crossover design tools it doesn't limit you to a specific circuit topology (2nd order, 3rd order with zobel, etc.) but instead allows you to layout the parts any way you wish. I like to use it to build prototype crossovers based on manufacturer's specifications (.frd and .zma files traced or downloaded) which give me an idea how well different driver combinations will work with each other. During the tweaking phase after the speaker is built it is nice to be able to adjust different crossover component values in order to get an idea how the overall response is affected. Aside from the ability to measure speakers, I would have to say that the network simulator is the most useful tool provided by Speaker Workshop and don't let the fact that it is free fool you because it is more than capable.

If you don't have Speaker Workshop, you can download it for free from here.

In this tutorial I will discuss the following steps involved in designing and simulating crossovers with Speaker Workshop.
  • Getting Started
  • Assigning Driver Data
  • Crossover Network Construction
  • Simulating the Network
  • Conclusion

Getting Started

The basic layout of SW includes a project tree on the left which is where all of the different components of your simulation are listed including frequency/impedance responses, signals, drivers, networks and other simulation components. The project workspace fills most of the rest of the space and this is where all of the "contents" of the components listed in the project tree are displayed when selected. All windows in the project workspace are resizeable by clicking and dragging the edge of the window using the mouse. Double-clicking any item in the project tree will display that item's contents in the project workspace. As with most windows programs, menus are listed in the upper left. The "File" menu is used for starting, loading or saving projects as well as printing results. The "Edit" menu allows you to cut/copy and paste things (I usually just use the CTRL-X/C/V shortcut keys to perform these tasks) and also allows you undo/redo simulation steps which is very handy. The "View" menu allows you to display or hide different toolbars and displays. I usually select to display all of these items except for the "Locations" and "VU Meter" when simulating crossovers. You'll use the "Resource" menu quite a bit when working on crossovers because it allows you to import and export data as well as add new components to the project tree. The "Options" menu mostly deals with measurment features but the "Calculator" tool can be handy when designing crossover circuits. The final two menus, "Window" and "Help" are common to most windows applications so you should already be familiar with them.

Assigning Driver Data

The first step in designing a crossover is importing the data files required to simulate the drivers' responses. Select the "Resource-Import..." feature in order to import data. This will bring up a file window and you can choose what type of file you want to import by using the appropriate dropdown box. You'll need to import both ".FRD" and ".ZMA" files for each driver you intend to simulate in your crossover network. As you import each data file they will appear in the project tree. Once you are done importing all of the driver data files you next have to add a driver entity to the project tree. To do this select "Resource-New-Driver" and then enter a name for the driver. This will add a driver icon and name to the project tree and a driver data window to the project workspace. Now this driver data window will include a lot of driver parameters but you can completely ignore these because these are only used for simulating enclosures. Instead you are only concerned with frequency response and impedance response information when simulating a crossover and to assign this information to the driver you must first right-click and select "Properties" within the driver data window. This will bring up a "Driver Properties" window and next you'll want to select the "Data" tab. Next you have to assign the appropriate ".FRD" and ".ZMA" data files to this driver by clicking on the "?" next to the "Frequency Response" and "Impedance" dialog boxes respectively and selecting the corresponding data file. Once you've selected the files click "OK" and you'll notice a new graph within the driver data window which displays the driver's impedance and frequency response. That completes the process of adding a driver to your simulation. Just repeat this process for each driver you intend to use in your network simulation.

Crossover Network Construction

Now you're ready to start throwing together the crossover network that you'll soon be simulating. First select "Resource-New-Network" and type in a name for your crossover network. To add circuit components to the network, right-click within the network window and select "Insert." There are several different items you can insert but I usually only select inductors, resistors or capacitors. The other insertable items are predefined circuits whose values are determined within a submenu but I usually design my circuits freeform so I know very little about the capabilities of these features. These predefined circuits may be handy for the novice crossover designer however. After you've selected an individual component to be inserted a dialog box will appear that allows you to enter a name for that component and a value. I usually leave the name blank. The component should next appear within the network window. You can move any component by clicking and holding the mouse button while dragging the mouse. To reorientate a component vertically or horizontally, double click on the component and select the desired orientation from the diagrams in the bottom right of the window. This component window also allows you to change the value of that component if desired.

I almost forgot, but you'll also have to insert driver components for each speaker in your network. When you insert a driver component there will be a couple of check boxes. One checkbox is for individual response which I always leave checked and the other allows you to invert the driver's polarity. Another option allows you to define the driver's offset. This "offset" value refers to the offset of the driver's acoustic center relative to the baffle or a given reference point. A positive value indicates that the driver's acoustic center is sticking out beyond the baffle while a negative value indicates that the acoustic center is recessed into the baffle. Often when designing flat baffle speakers and using manufacturer's data you want to set the woofer's offset value to a negative number around 0.5 inches or more depending on the size of the woofer which indicates that the woofer's acoustic center is recessed into the baffle relative to the tweeter's acoustic center which is in line with the baffle. You can also change this offset value to get an idea what the frequency response will be at a different vertical listening height (listening at a taller height usually puts you closer to the tweeter relative to the woofer so you would make the tweeter offset more positive).

Connecting components together in Speaker Workshop can be a little bit tricky until you get the hang of it. First, click once on the component that you want to make the connection from. Then place your mouse over the component node and hold down the mouse button. Next drag the mouse to the node of the other component that is to be connected and let go of the mouse button. Now if you are connecting multiple wires to the same node then you have to hold down the SHIFT key while making the connections... most people don't realize this and go nuts trying to connect things together. I didn't mention this yet but each parallel crossover filter should be connected to the source block which essentially represents your amplifier or signal source. Now you should have your crossover network complete and are ready to start simulating.

Simulating the Network

To obtain response data from your crossover network you have to right-click within the network window and select "Calculate Response..." Before you do this, right-click within the network window and select "Properties." The Network Properties window contains three checkboxes. The "Network Frequency Response" checkbox causes the network simulator to generate a response for the combined output of all of the drivers together so you usually want this selected. The "Network Impedance" checkbox causes the simulator to generate an impedance response plot for the crossover network and I usually have this activated as well. The "Auto Overview Chart" checkbox causes the simulator to generate a chart which includes the overall network frequency response as well as the responses of each individual driver all on one chart. I also usually select this feature when working with a multidriver crossover network. Now, select "Calculate Response..." and you'll notice a few new datasets and charts pop up in the project tree. There should be an individual frequency response for each driver and if you've selected the appropriate checkboxes, a total frequency response plot, an impedance response plot and possibly a chart which includes all of the frequency responses.

To view the network response, double-click on the appropriate response from the project tree and a graph should appear within the project workspace. To adjust or modify this graph, double-click within the graph window. This will bring up a Chart Properties dialog box with several tabs. The "Data Sets" tab allows you to add and remove data sets as well as choose which data you would like to display and what style/color you would like to display it in. One key feature under this tab is the ability to display or hide the phase information for each data set. The next three tabs allow you to adjust the limits of the plot including the X (frequency), Y (magnitude), and Y2 (phase) axes. Adjust these to your liking in order to display as much information as you would like. I won't go into the details of these menus so you'll just have to experiment with them yourself.

Now one of the features that I use all the time is the ability to undo and redo a "calculate response" which allows you to see the change in the network's frequency response before and after making one or several component changes. To do this, use the undo/redo feature by right clicking on a network or graph window or selecting it from the Edit menu. This feature is also handy for restoring component values to previous states.


Well, hopefully that will be enough information to get you familiar with Speaker Workshop's crossover simulating capabilities. I'm sure that I left some details out but you'll just have to experiment and learn as you go, after all that's how I did it. If there is anything in error or something doesn't make sense, feel free to email me... my email address is under the "About Me" section of my website. Now you shouldn't be afraid to exploit Speaker Workshops great features and ability to simulate just about any crossover network. Good luck and have fun!