XSim free crossover designer

I agree with Pano, this is a very nice piece of software, best out there and I think its one small step away from being the holy grail.

Bill, you were looking to differentiate the package by adding simulations of diffraction etc. There are other tools around which do that that in a very user friendly way (eg TheEdge). To simulate diffraction, you set it up once input FRD file. I wrote a turorial on one way to do this here:
software
"How to Design Loudspeakers without Performing Measurements
"Simple Loudspeaker Design" - By Dave Dal Farra"

and there are other ways, well covered.

The suggested work around of calculating a set of output FRDs for each angle of observation for each unique crossover and exporting and comparing in another tool requires that same level of effort as used to simulate diffraction be repeated every time a component is changed when adjusting the crossover, many times the overhead of having to simulate diffraction externally.

Not trying to be pushy and if you're done with the package, I hope you're enjoying retirement! But if you are looking to fiddle with it a bit more, multiple views per graph is many times the bang for the buck vs adding diffraction and off axis simulation. It significantly improves usability and any off axis simulator would have to make simplifying assumptions that handicap the utility and accuracy of those features (I was one of the reviewers of PCD while it was being created, and helped with this aspect of it).

Thanks,

Dave
 
Thanks for suggestions and comments, everyone. I will probably go back to working on it at some point, but probably not till I'm designing another speaker and need it! I'm currently messing with diffusers and getting my listening room arranged.

That was one of the other reasons I did XSim, I wanted to be able to model unconventional topologies (group delay allpass filters, in particular) for the Synergy-type speakers I'm now using. I started with (and liked) PCD, but it was locked to certain more-classical topologies. I also wanted to easily see what kind of voltages and power dissipations various components saw (what happens to components within shunt resonant traps can be kind of shocking!).
 
I hope that it can stay alive. It's a very nice piece of software that I enjoy using. IMO it's the best, most useful crossover designer around.

I've had at least 3 designs in my head that I just never got around to working on, Xsim is making me work on these designs probably because it moves so fast to try things. It makes the design work rewarding and enjoyable. I think I'm going to explore designs in Xsim, then probably check out the polars in WinPCD or perhaps CASLSOD for now.
I'd like driver positions on the baffle even as point sources, and even without diffraction modeling, as my suggested next step.
 
Member
Joined 2004
Paid Member
It's a Catch 22. To make the software popular the large driver database is needed. But to make the database worth contributing to, the software needs a large user base. :xeye:
.

PSD-Lite has a modest collection of driver measurement files that you can get to even if you don't have PSD-Lite. If someone wants to add to this collection, send me the data and I will post it and make it available for all.
Link: Directory Listing of /Reference/FRD_data/

PSD-Lite also has an integrated TS database with over 600 current drivers and passive radiators. It uses a Compact Edition SQL database that you can view with CompactView. Actually, I had absorbed all of the old ThieleSmall.com data at one time, but I never got permission from Jan to use it, so I deleted that data.

Link to driver TS database: http://www.audiodevelopers.com/Reference/Driver_data/Driver_data.sdf
PR database: http://www.audiodevelopers.com/Reference/Driver_data/PR_data.sdf

Link to PSD-Lite: http://www.audiodevelopers.com/Software/PSD_Lite/setup.exe
 
Last edited:
Member
Joined 2004
Paid Member
Thanks Neil, that makes for a good start. :up:

Well, that's been sitting there for 3 years, and I've pointed it out here and on the PE forum on many occasions. But no one has expressed any interest or offered some help. So I don't really view it as a "start" anymore :rolleyes:.

I fully appreciate what Bill has experienced regarding the user base. The main reason for doing PSD was to provide a front-end for selling crossover components. In the full version of the program (not the Lite version), you can right-click on the components in the crossover and select inductors, capacitors or resistors from a parts database through a pop-up window. The selection retrieves the parts and their associated values such as DCR, ESR, wattage, etc, and it also retrieves associated shopping information (part numbers/SKU's) for various sources. Once the design is done, you can generate a BOM and use that to fill a shopping cart at your favorite online parts store. But I never got that shopping cart code working, because it was clear I needed some help from the vendors and that it was going to take a lot of labor to keep the database up to date. In the 3 years since I did that initial work, it has become clear that the user base isn't there to help offset those costs, and I don't expect that to ever change.
 
Member
Joined 2004
Paid Member
....What would make it perfect would be the ability to overlay multiple speaker FRDs at once, so you can see the response from multiple angles in one view. I'm not aware of any free simulator that does this and its so very important in crossover design.

I'm been considering different ways of displaying the data to make the off-axis response information more user-friendly. The WPF programming environment in .NET provides some nice 3D functions. I found someone's code that populates a 3D volume with random data, and you can spin the 3D volume around to view the data from any angle. The next step is to calculate the response at regular points in that 3D volume using the data generated by the PSD crossover and baffle response modules. I still don't have a clear idea how it's going to look and how to use the color and transparency information as another dimension (frequency), or whether the frequency needs to be selected using another control. But I think the approach is promising...

Capture.JPG
 
I'm been considering different ways of displaying the data to make the off-axis response information more user-friendly. The WPF programming environment in .NET provides some nice 3D functions. I found someone's code that populates a 3D volume with random data, and you can spin the 3D volume around to view the data from any angle. The next step is to calculate the response at regular points in that 3D volume using the data generated by the PSD crossover and baffle response modules. I still don't have a clear idea how it's going to look and how to use the color and transparency information as another dimension (frequency), or whether the frequency needs to be selected using another control. But I think the approach is promising...
I think Dave(DDF) wants to be able to import multiple measurements of different axes, rather than generating off-axis responses from a single set of measurements. That's one of the many options available in CALSOD that is missing in current software, including mine. It would take quite an effort to add that sort of option and it would dramatically slow the calculations, but I can see why Dave would like to have that. CALSOD allows optimizations that take all imported measurements (limit of five I believe) into account, rather than optimizing a single axis. This is a good idea since it can produce a better polar/power response, especially in the case where diffraction is not adequately controlled and is representative of the actual polar response, not a predicted one.

Dave
 
Last edited:
Member
Joined 2004
Paid Member
It would take quite an effort to add that sort of option and it would dramatically slow the calculations...

I understand the part about the effort to add the calculations, but I doubt that you would see much slowdown. The crossover and summation calculations don't take that much time. It's the baffle diffraction calculations that take a lot more CPU horsepower. In PSD-Lite, I use a 1/2" grid on each driver and 40 edge reflection points on the edge of the cabinet and 500 sample points. So each time an 8" driver gets moved in PSD-Lite, there are over 8 million rays that get recalculated and summed. You can see the lag between moving the driver and updating the response chart for the diffraction calculations, but there is no visible delay when the crossover components are changed. So adding a few more summation points to the crossover calculation probably won't slow things down by much.

In order to speed up the diffraction calculations, I broke the frequencies into 4 bands, each with its own thread running in the background (background worker). That way a multicore CPU could execute the threads in parallel, and the user interface remains very responsive. You can move drivers around on the baffle with no lag, and when you stop moving the last calculation will catch up and get displayed. That's what I planned to do with these scatter plots--just run them in the background and let them get filled in for as long as the user wanted to wait. It might take several hours to calculate all of the data, but by prioritizing the summation points to provide the most important information first, this could be a useful tool.

BTW, I was pleasantly surprised by the ease of integrating this sample 3D code. It's in C# using WPF, but I was able to compile it as a library and call all of the functions and access its data from VB.NET using Forms rather than WPF. I had no idea it was that easy to use VB and C# together, or to execute a WPF 3D application from a Windows Form. You can see from the first attachment that it is a mix of VB Forms and C# WPF. I've got a form with a textbox and update button to specify the number of elements in the plot, and the WPF control uses this information to update the display. The same sample code also has a nice 3D surface plot that you can rotate around and view from any angle, but I don't think this display will be as useful (second attachment).

Capture.JPG Capture2.JPG
 
I understand the part about the effort to add the calculations, but I doubt that you would see much slowdown. The crossover and summation calculations don't take that much time.
You're right. I had been thinking that each curve addition was the another 1x time added, but it's only the final calculation after the crossover calcs that then have to be multiplied with a measurement. In may case, I might have to do some refactoring in some areas.

It's the baffle diffraction calculations that take a lot more CPU horsepower.
For what DDF is asking, there are no diffraction calculations. He's looking for multiple imported measurements that inherently include measured diffraction.

BTW, I was pleasantly surprised by the ease of integrating this sample 3D code. It's in C# using WPF, but I was able to compile it as a library and call all of the functions and access its data from VB.NET using Forms rather than WPF. I had no idea it was that easy to use VB and C# together, or to execute a WPF 3D application from a Windows Form.
Managed code in .NET, definite advantage for this aspect.

You can see from the first attachment that it is a mix of VB Forms and C# WPF.
Why does is it have to be WPF? Can it not be built in Forms?

Dave
 
Member
Joined 2004
Paid Member
Why does is it have to be WPF? Can it not be built in Forms?

Dave

Not easily. Using Forms would require 3rd party libraries that have support and sometimes cost issues. But WPF has an integrated Viewport3D element based on Direct3D that is fast and well supported. It's not suitable for complex games, but it should be fine for visualizing audio data. It's easy to change the camera position or lighting, and there is a Transform3D class for rotating and resizing the model.

Here is the link to the sample code I've been playing with: High performance WPF 3D Chart - CodeProject
 
Not easily. Using Forms would require 3rd party libraries that have support and sometimes cost issues.
I've run into this. Cost prohibitive.

But WPF has an integrated Viewport3D element based on Direct3D that is fast and well supported. It's not suitable for complex games, but it should be fine for visualizing audio data. It's easy to change the camera position or lighting, and there is a Transform3D class for rotating and resizing the model.
I wasn't aware of this. I may have seen that during a search last year, but at the time it didn't look like what I wanted and since it was for WPF, I didn't pursue further, I found what I had thought would be better. It was, until I realized that the final debugged version would be at cost.

I'll look into this one. I've been planning on digging into WPF, this will be a good place to start. Thanks.

Dave
 
Hi Dave (dlr), you hit the nail on the head. Capability to use measured data at multiple angles and plot on one graph would greatly speed up design. For me off axis is almost as important as on axis and this would remove having to go back and forth with up to 5 curves, with every component tweak.

Xsim allows only the graphs wanted to be displayed, so choosing only freq response would greatly speed this up.