What do think is wrong? One of them, all of them? I used standard tables for the coefficients in the Bessel calculations whereas I used the s-plane equations for the others.

Thanks for the translating offer, but I did not translate any VBA. I wrote WinPCD entirely from scratch. The VBA in the original PCD was primarily used for UI customization. Most of the calculations that Jeff wrote were done in the Excel spreadsheet itself. Following those in Excel was out of the question. I did use PCD for some of the verification to check some calculations early on for the crossover sections.

I did some brief additional research. First, I noted that the -3db is not at the selected Fs. I thought that odd when I examined closely. Some research turned up some info I had not seen before.

Whereas a Butterworth filter's order can be increased for greater stop-band attenuation while keeping a constant -3dB cutoff frequency, a Bessel filter's order can be increased, also for greater stop-band attenuation, but while maintaining a constant group delay within some passband (ex. see http://www.mathworks.com/help/toolbox/s ... sself.html), but resulting in a varying -3dB cutoff frequency.

I'll have to look into it more, but this is in line with what I've read on the Bessel. Specifically, the -3db point changes with order. The steeper the slope, the lower the -3db point. The Bessel 1st order matches the Butterworth -3db frequency, if I recall correctly. Increase the order (slope) of the Bessel and the -3db point drops. This is because the Bessel is not purely a magnitude filter. Read the description in my last post. The magnitude curve has to "shift", so-to-speak, to maintain constant group delay. You will see a "jump" as you say, because the -3db point must change with order.

It's possible that I could have one or more coefficients off, but I spent a lot of time on this section, more specifically on the Bessel, to ensure that I had those correct. The others were more easily implemented.

Rane has a table that shows orders 2-4, described as "Bessel Crossovers of Second, Third, and Fourth-Order, Normalized First for Time Delay Design, then for Phase Match at Crossover". The correction factor is provided separately for the phase-match. I may drop any Bessel options higher than fourth and implement a phase-matched version. I see no reason to have the standard -3db version at this point and it's unlikely that order higher than 4th is likely to be desired by designers.

I fire up WinPCD. Select a tweeter frd. Select a tweeter zma(why doesn't it remember the last selected folder?). Go to the tweeter tab. I can see the response and the impedance. Then I select a target. But in stead of setting the target. It filters my tweeter.frd with the selected slope @ the selected frequency.

Now, when I do the same thing. But after importing the zma file, I select the crossover type. Parallel two-way. I go to the tweeter tab. It has already filtered my response. All crossover component values are 0.00

The folder always uses what is in the folder entry. The recommended way to design is to place all files in one folder. You can always import files from other folders, but since files may be in several folders, the one the you enter at the top is the default. Once imported, the source folder for each file is maintained.

The target filter does not in any way filter the driver itself. Those are two totally separate sections of code. What you are seeing is the auto-ranging of the graph. The low end of a tweeter may not go low enough to trigger it when it is imported. The filters usually have data data low enough to trigger the range change. Also, the actual driver filters (crossovers) are not calculated until both woofer and tweeter files are entered. You'll notice that the system graph does not update until all driver files are imported and a crossover type is selected. I've considered changing that, but it's a low priority. Way too many more useful changes to address.