HISTORY.HTM --- Part of Manual for Driver Parameter Calculator --- by Claus Futtrup.
Created 31. December 1999, last revised 15. June 2004. Ported to XHTML 1.0 on 2. October 2004. Last modified 29. October 2004.

History of the product

In this file most resent and relevant information is at the top.

Pi release

Release 0.6.1.

This is a patch on release 0.6.0. I quickly noticed that the new HTML manual had not been validated by the W3C validator service. Now the manual is validated. The exception is the Frames definition in DPC.HTM, but browsers do read the document as intended. <

At the same time I corrected an error in POWER.HTM, where Gold was symbolized by Ag, and Silver by Au in some small tables of material constants - it is the other way around, Gold (Aurum) is symbolized by Au, and Silver (Agentum) is symbolized by Ag. Sorry.

Omicron release

Release 0.6.0. Never released officially.

There is one known error to this release, which was also present in the previous release. When Windows message dialog boxes shows up, or the about-box, or when file open/save dialogs, then Windows doesn't quite know which windows are supposed to be active. This means that the dialog boxes may show up in the background and not as desired in the foreground. You can find the dialog boxes by checking your Windows task bar. Returning from the dialog box, this release will activate the main DPC window - this was not the case for the release 0.5.2.

A new error checking routine has been added, which checks all equations in DPC for situations where an equation may be overdetermined (ie. all parameters in the equation is specified) and displays a warning in case of such errors.

When running "1. Test Data Validity" in the Data Menu, DPC now informs about the total size of the error vector of the equations all together if the error is larger than acceptable rounding errors. Rounding errors are typically of the range 1E-14 or smaller (since DPC uses double precision). Errors which gives a warning are 1E-10 or larger.

Small errors in the range 1E-6 (1 ppm) may apply when loading old DPC data files which were made before the advanced air models were applied in DPC, and therefore fails on check of no and SPL.

Large errors, like in the range of 1E-2 (1 %) or more appear when the user has overdetermined the equations with false data. In this case one parameter or a few parameters are typically the cause for this. With the new checking routine the user should be informed explicitly of such.

If you experience large errors without any overdetermined equations, then you have probably discovered an error or inadequacy in DPC. In this case please contact the programmer with information about how to replicate the situation.

A potential risk of runtime errors has been prevented by adding a check on numeric inputs in DPC.INI, which must be larger than zero.

A minor error in the calculation of equation errors (from overdetermined user input) meant that Gloss was never normalized in the error vector. This has now been corrected. A user would really have no chance of discovering this error in prior versions of DPC. It should not provide any noticeable problems with eg. older data files.

An "About DPC" message box has been included on the DPC Main Menu.

Opening and saving files now uses a normal (easy to use) Windows interface (GIU) with dialog boxes.

Long file names is now supported. This makes DPC much more suitable as a "database" system for storing loudspeaker data.

These windows improvements are the reasons why the DPC release suddenly jumps to release 0.6.0.

The manual pages for DPC has been ported to XHTML 1.0 (mostly STRICT) since I belive anyone who has gotten their hands on DPC must have a web browser installed on their computer - and it does add a bit of quality to the layout.

DPC now supports a REPORT functionality, which can be run when you chosse "Save and Exit" in the Data Menu. The reports are generated from a HTML template - the included sample named template.htm is based on the XHTML 1.0 standard. You can modify the template to make the report generate whatever you want. See REPORT.HTM for more information.

A couple of comments in INVENTOR.HTM expands on information about Rice and Kellogg.

The manual for DPC, wrapped in HTML, now tries to comply with XHTML 1.0, which should make it more suitable for a wider range of browsers. Sorry to say that they do not comply with the W3.ORG validator. Most important, I have not found a quality alternative to frames and apparently the validator does not validate this design.

This release uses the final version of the NSIS 2.0 installer. User options have been expanded.

Xi release

Release 0.5.2. Release date : 28-02-2004.

The handling of temperatures above 99 degC has been improved regarding to moisture content in the air. Also, a potential risk of surpassing the boiling point at low pressures has been eliminated.

INSTALL.HTM was still reflecting release 0.5.0 when 0.5.1 was released. Sorry, this is now changed to reflect the NSIS installer. The DPC release 0.5.1 utilized a release candidate 3 (a kind of beta release) of NSIS 2.0, whereas this release utilizes an installer made with the final release of NSIS 2.0.

When reading the initialization file, DPC still wrote "CFG file" in the screen in release 0.5.1. This is now changed to "INI file".

When running a reload of DPC.INI from the setup menu, DPC release 0.5.1 would not properly reinitialize/calculate its variables (like cu-file, cd-file, rho, c and DateFormat). This is now corrected so that DPC completely reinitializes when reloading DPC.INI - but of course keeps your speakers data in the editor. Driver data is not reinitialized.

Nu release

Release date : 28-01-2004

Release 0.5.1 is compiled with DELPHI 7 IDE.

DPC.URL is included for quick access to the DPC webpage, to check for updates etc.

Release 0.5.0 used InstallShield Express Delphi Edition (for Delphi 3), but it is slow and annoying to the end user. I initially intended to use Installer VISE for this release, but they have discontinued giving away the software to Shareware and Freeware programmers. I have changed to the NSIS Installer from Nullsoft in combination with Venis IX.

A minor visual error in Data Menu, where menu item 41 was available on the screen (but could not be selected). The error occured when Mair and Mvac were made available on the Equivalent Circuit Menu. Now this menu is called "Equivalent Circuit / More Data" to be a more accurate description of this menu.

In FORMULAS.HTM at equations for f2pi and f4pi, semicolons were missing. This has been added.

MULTIPLE.HTM has been added, which explains how to calculate lumped parameters for multiple drivers in DPC. The drivers must be of the same type.

POWER.HTM ha been added, where (thermal) power handling issues are explained, and which parameters could be included in DPC. So far I do not think they are necessary and therefore they are omitted.

The part of DATAINFO.HTM dealing with Xmax has been expanded, and placed in XMAX.HTM for convenience.

On the Weather Menu (where you can specify temperature, pressure and humidity) an information has been added. With the displayed rho value, now the contribution from humidity is displayed. This is the absolute water content in the air. This value is sometimes quoted in eg. automotive test standards and test specifications.

The data parameters fLe and KLe together with Le is now located on the More Data menu only. They have been removed from the Descriptive Parameter Menu.

Added a description of W. Marshall Leach's model of the voice coil inductance, Le, in MEASURE.HTM, which fills the gap between Vanderkooys model and Victor Staggs model.

Added the descriptive parameter BoltD for Bolt diameter and the accompanying BoltsN for the number of mounting bolts.

Added the data-parameter Gloss, for the sagging that may occur when a speaker (typically a subwoofer) is placed in a horisontal position (playing downward or upward). The sagging means that the speaker voice coil is no longer centered in the air gap (unless the speaker is made for vertical mounting only!). As a general rule of thumb the sagging should be less than 5 % of Xmax. The short name Gloss stands for Gravity Loss.

Though Xsag = g/(2*pi*fres)^2 really is an absolute value in meters (or millimeters, or micrometers) I have chosen to let Xsag be substituted by the relative value Gloss = Xsag/Xmax because Xsag is only of value when compared to Xmax. This means that in DPC the Gloss value is a relative factor for sagging (eg. a percentage value, if proper scaling is chosen in the CU files).

Some people have calculated Xsag = Cms * Mms * g, which at a first glanse looks like a much simpler equation, but in reality the fres has just been expanded using the well known equation for fres as a function of Cms and Mms. This is why I have chosen the fres as input in the equation directly instead of Cms and Mms (using Cms and Mms is easy to understand in a static mechanical sense).

Gloss is located on the "More Data" Menu.

Since Gloss requires the g acceleration factor value (ca. 9.81 m/s2) it has been added to the DPC.INI file.

I have found out, thanks to my friend Juha Hartikainen, how to write message dialog boxes with multiple lines. This means that many one-way messages are now carried out in Dialog boxes.

I have added a setting in DPC.INI, which is named Measure_message. If you set this one to "No" (without quotation signs) then you can suppress the popup window when entering main menu item 1 (Measure).

I have added a menu item in the setup menu named "Edit setup files" which spawns a submenu, where you can edit the setup files in use (the Custom Digits file, the Custom Units file and the Configuration file). The prefered editor can also be specified in DPC.INI. Of course, after editing the files, they are re-loaded into DPC.

Also, on the normal setup menu, where USPL_Volts and now also g can be set, you have the option to reload DPC.INI, which basically means that you are resetting the program to its default values.

I have found it very useful with the "Table of Contents" in the manual, so now this concept is expanded into most sections, wherever it could be convenient.

Besides the documentation was filled with small errors, still mentioning DPC.CFG, though since the last release the configuration files has been changed to DPC.INI. This is now corrected so that DPC.CFG is not mentioned anymore.

Internally DPC has been reorganised regarding to error messages. The "Test Data Validity" in the Parameter Editor (Data Menu) used to check the data and be able to call a number of procedures, it has all been souped into one main errorcheck procedure.

Finally I got around implementing a "Date" in DPC. It has been on my personal wishlist for years. It means that two exactly alike datasheets can be differentiated based on when they were entered into DPC. The date may contain either your entry date, or, if you're quoting a manufacturer datasheet you may quote when the original datasheet was made (see the datasheet for futher information). There is a reasonable amount of sanity checking. Any Date format is supported (see DPC.INI) following the standard with two date-numbers, two month-numbers and four year-numbers. When actually entering a date in the editor, DPC will forgive you if you do not type in all the zeros. Eg. instead of 01/08/2003 or 2003/08/01 etc. you can type in 1/8/2003 or 2003/8/1, but the year needs to be fully specified with all 4 digits.

During the implementation I ran across an error, which has never affected my use of the software, where if you chose main menu item 2 (create new data entry) then the initialization overrides your settings in the setup files. This is now changed, so that you get the desired setup.

Mu release

Release date : 07-02-2003

Release 0.5.0 is primarily a change of compiler from a DOS Pascal compiler to the DELPHI 6 (with Object Pascal) windows compiler.

This is a simple conversion for now, where a few CRT routines are substituted with a homecooked library named WCRT. Admittedly the Pascal functions ClrScr and ReadKey works slightly different.

The look and feel of the software is unchanged. The program is now a CONSOLE application. The migration to "pure" DELPHI will follow at a later date.

If you run into problems running DPC under new versions of Windows, please inform by email.

The change from CRT to WCRT means that DPC now spawns its own DOS Window. To make things looks more like a Windows software the background is white with black text. Also you can still use the facilities of a DOS window like copy and paste, eg. into Notepad for printing.

The change also implies a couple of limitations. The old Pentium floating-point bug is not checked for (and compensation, when found, not available). It is assumed that the Pentium fdiv bug is permanently removed from earth, or handled by DELPHI - alternatively I can assure you that DPC will discover if your processor does not calculate values correctly. You will be warned with error-messages when testing data validity or saving data to a file.

Earlier, very good runtime error messages had been implemented (though runtime errors were almost never observed). This module is removed, and runtime errors must be handled by DELPHI. Very few errors should be possible, though new possibilities for errors have definitely showed up. Normally DELPHI is supposed to handle these errors with messages. Please write me an email if you can find any.

DPC no longer checks whether there is sufficient diskspace when saving DPC files, which theoretically can provide you with a runtime error, unless DELPHI is equipped with protection.

DPC will "HALT" in an ugly way if something is wrong with the files loaded. With the windows release you cannot read the error messages anymore. This appears for example if DPC cannot find its .INI file (or related files loaded on startup) or (quite provoked) when you try to load a new .CU file, but write a .DIG file in the field. I will fix it in the future.

Generally you should not experience trouble, but if you come across something weird, just write me. I will help as much as I can.

With the change to DELPHI, the software probably does not run with a 286 processor anymore, since it implies 32 bit source compilation (optimum for 386 and up). 286 checking is removed. Prior to this release, the Kappa release (release 0.4.8) has been tested on a 286, and shows that the changes in the compiler library from verson 0.4.7 works fine on 286 computers. If you need something that runs on 286, then please email and ask for it.

With DELPHI the DPC.CFG file is needed for the compiler. This means that the CFG file to support DPC is now named DPC.INI.

For Windows people, I have changed the documentation slightly, so that a help system with a HTML front-end is available. Just execute the DPC.HTM for a frame-version or the CONTENTS.HTM for a no-frame version. DPC.HTM can be loaded inside DPC from the main menu. Thanks to my friend Juha Hartikainen (the programmer of WinISD among other stuff). Admittedly the ASCii drawings look better in a DOS window than in the Explorer.

Since the Windows display font does not include "frame" chars known from DOS, or integral or square-root char like what is available in DOS, these chars are not properly displayed. I have changed the chars which are (approximately) available from ASCii to ANSI chars.

I have taken advantage of the DELPHI "Dialogue" box interface, so some error messages will show up this way, in separate boxes (the first implemented features of the GUI), but this also means that DPC no longer runs smoothly in a full screen DOS window (which is undesired anyway because the white background is hard to look at this way). Use DPC as a small DOS window.

Error report by Guglielmo Caioli: In MEASURE.HTM line 276 (release 0.4.9) the equations Zl = Zh = sqrt(Zres/Re) was given. This is wrong, the line should read Zl = Zh = sqrt(Zres*Re). The error is corrected in future releases.

New features: I have included a new data parameter, Mair, which is the weight of the air on the diaphragm, when running without a baffle or box, ie. free air exactly like the other parameters in the DPC editor. Besides I have defined Mvac, which is the mass of the moving system when air load is excluded from Mms. Mvac = Mms - Mair. I do not know what you would use Mvac for, but Mair is required by for example the software FINECone v. 1.5, by LOUDSOFT. By the way, the Mair and Mvac shows up on the Equivalent Circuit menu. If more variables shows up then this is the place for it, and the name of the menu may change.

The voice coil inductance Le is shown on the Descriptive menu, but also on the Equivalent Circuit menu where it is directly shown in the circuit. By mistake the status change on Le was not shown when a user changed it in the Equivalent Circuit menu. This bug has been fixed.

Lambda release

Release date : 25-01-2002

Patch release 0.4.9 removes a possible runtime error. If you specified Zres and later enter the Equivalent Circuit menu to specify Res, then giving Res values equal to or higher than Zres was allowed, yet this gives you Re = 0 or negative Re values. Such operation is no longer allowed.

Earlier releases did not run calculations for unknown parameters in the Equivalent Circuit menu, but this has been changed. Now the calculations are run and no mismatch between parameters is possible.

Furthermore, in the Calculate from measurings / Data Calc submenu, you can now exit without finishing the dataentry (without calculations, of course).

Le, fLe, KLe were classified descriptive data, but given their relations this status has now been changed.

In the Data Editor (Description Data Menu and Data Menu) it was only possible to quit the editor from the second menu, now you can quit the editor from both menus.

A couple of descriptive data have been added: Number of (voice) Coils, to support eg. dual voice coil drivers, Nominal Diameter of driver and driver Weight. Furthermore in this process there is a slightly different layout of the descriptive parameters menu.

Regarding the Nominal Diameter (named NomDia within the DPC editor), the user can specify any value, but if the user does not specify a value, then DPC has 2 methods implemented for guessing a nominal size, for the convenience of the user. Both methods works as rule of thumbs for woofers only.

A new feature has been added. Earlier, when measuring a driver (menu item 1 from the main menu) and using both the Closed box method and the Added mass method, then the equations would be overdetermined. Today the user is given 4 options, use Closed box method, use Added mass method, average results from the two methods, or - finally - calculating an Sd value that fits both methods. This is a way to measure the effective diaphragm surface area without using a ruler to estimate it.

Kappa release

Release date : 04-10-2001

Patch release 0.4.8 corrects an error / a bug in the equation formulations introduced in 0.4.7, where the relation between SPL, USPL and Re was not always calculated.

The 0.4.7 release made changes to the definition of the reference SPL level, and together with the new equation describing a relation between SPL, USPL and Re, this created a risk of errors when you try to load .DPC files made by an older release of DPC. The solution is to go into the setup menu (item 5) - air properties (item 3) - specyfy air temperature, pressure and humidity (item 3), then without changing anything return back to the main menu (enter zeros when exiting) and select "Edit existing data entry" - this will change the calculation of various parameters (eg. Gamma, no, Pn, SPL, SPLmx, USPL, EBP). This will force the parameters to be correctly calculated from the settings. The recalculated data can now be saved to a .DPC file, eg. overwriting the old file.

New feature: When measuring a closed box and using the Carrion-Isbert method, I have earlier been giving Rl for leakage loss. Now furthermore an unit-independent Ql factor is given, which is what you would normally associate with leakage loss.

Iota release

Release date : 01-09-2001

Patch release 0.4.7 contains a change in the compiler library. This should mean that the software does not need to be patched to run on fast computers. The release has not been tested on 286 computers. Please report any anomalies you may encounter.

The parameter f2pi has been added as a suggested crossover frequency and related documentation improved in DATAINFO.HTM. The KLe parameter has been added, describing the voice coil inductance as a semi-inductance (after Vanderkooy) and fLe has been added to the parameter set.

Various documentation has been updated. More information on humditiy has been added to AIR.HTM, among other things a classification for DRY, COMFORT and WET. RESISTOR.HTM has been expanded at the bottom etc.

When measuring a driver in a box, the disadvantage is a change of air mass loading (radiation loading), which gives an error in the measurement/calculation of driver parameters. 2 approaches has been implemented to give the user the option to compensate for this error, so that measuring driver parameters with the closed box method (my preferred method) will now be more flexible and versatile, and it supersedes the added mass method no matter which application is intended.

The mass load compensation is implemented with rugged error checking of the algorithms and implementation, but I cannot guarantee that my sources are correct. It is up to the end user to justify that the approaches are correct.

Due to a new equation between SPL and USPL it has been necessary to calculate the reference SPL level at approx. 112.2 dB as an exact figure. The SPL_ref is dependent on air properties (rho and c) and is now displayed in the setup menu.

It is now possible to calculate the driver volume of a dome midrange or tweeter, however simple it may seem. The picture screen showing a cone speaker with its measures is supplemented by a second screen showing the measures of a dome speaker.

It is now possible to remove a given parameter from the listing of parameters in the editor, simply by specifying in the appropriate .DIG file that no digits should display. For example if f4pi=0:0 then the value for f4pi will never be displayed.

The theta release had the following known imperfect sides, known at release time:

The imperfections are unchanged in this release.

Theta release

Release date : 22-05-2001

Patch release 0.4.6 contains the following improvements: PmT table from AIR.HTM is substituted by a continuous function, which can handle temperatures from -100 degC to +200 degC (calculations in DPC are limited to +99 degC, though), which means that DPC is now fully capable of handling special usage, eg. car audio or climate test situations. This addition is followed by a new part of the manual, AIRMODEL.HTM, which describes this (and other) air models, and enhances AIR.HTM. Another document, BOX_AIR.HTM has been added, which calculates the distortion product from a closed box, eg. a measuring box.

A new document was added, DATAINFO.HTM, which explains some details around a couple of parameters. Another new document was added, INVENTOR.HTM, which explains the story about the invention of the electro-dynamic principle. Other changes to the documentiation are secondary, eg. AIR.HTM has a slightly better explanation on the material parameter cv (based on the extended temperature range).

Eta release

Release date : 20-02-2001

Patch release 0.4.5 is a bug correction in the calculation of USPL. When driver data was saved to a file, and reloaded into the DPC editor you would get wrong USPL values. Minor additions to the source (like warning if Znom is not a larger value than Re or Zmin). Features are similar to release 0.4.4 (Zeta release). FORMULAS.HTM has been updated a bit.

Since this was a real bug, Ron Ennenga and my work colleagues (beta testers) have received a version of the eta release without the latest documentation changes.

By the way. A new document named BASICS.HTM added in the Zeta release, which I forgot to mention here. It describes the basics of loudspeaker drivers, without equations and in a language I hope most people can follow.

Zeta release

Release date : 01-02-2000

Patch release 0.4.4 consists of added feature, Mpow, which calculates the power of the motor system. Restructuring gives the user the ability to decide what voltage should be used for voltage sensitivity calculations (USPL), the setting may be adjusted in the dpc.cfg configuration file. Humidity was added to the dpc.cfg configuration file and for logic reasons sound speed and air density was substituted with temperature and pressure. This release includes 286 check and Pentium processor FDIV bug correction. Hardware coprocessor and software emulation is included. A lot of adjustments in the documentation were made.

Runtime error report, 10-01-99 by Ron Ennenga: PII-300 with Win 95, gets a blank screen with runtime error 200 (=division by zero) when trying to start DPC release 0.4.1. I had more or less promised that runtime errors were impossible with DPC, but obviously DPC fails when Intel processors are not backward compatible. Probably anybody with a PII or PIII will get this error with the delta release. This zeta release has been patched, and the software now works on both old and new computers.

Earlier risk of runtime errors when reading setup data from files have been eliminated. So now it should be almost impossible to get a runtime error, even when garbage is entered in the setup files. Driver Parameter Calculator is extremely tolerant to errors. You will get a runtime error if you specify an ultra-low pressure value in DPC.CFG, eg. if you try to calculate the loudspeaker parameters when measured on the moon or in the outer space. Pressures down to around 300 Pa (=0.003 atm) is probably safe (it is driver dependent), which is pretty close to vacuum.

Delta + Epsilon releases

Release date : 25-02-1998 (Epsilon release)

Patch release 0.4.1 consisted of changes in documentation only, and reduction of file size by excluding debug checking. Release 0.4.0 was given to people at work, at the Research and Development department at DYNAUDIO A/S, where I have worked since September 1997. A release 0.4.2 tried to solve problems around the voltage-sensitivity, on request of a fellow employee at Dynaudio, but was never released. The release 0.4.3 (epsilon) consists of a 8086 compilation without 286-support and pentium FDIV checking. It was only given to 2 people with runtime error 200 problems, see above, but it did not solve their problem.

One delta release was made, and widely publizised. Available on my homepage as well as on one of Brian Steeles AudioDIY-pages. This release was compiled with software coprocessor, but also to use a hardware coprocessor if present. It was compiled to use 286 instructions. The delta-release implied checking for 286 processor (or compatible), and a check for the Pentium processor FDIV (floating point division) bug. The software would halt if you could not support 286 opcode/ instructions, while Pentium bugs would be corrected through a software division table.

Gamma release

One gamma release was made, but not publizised (one person got it because I was requesting a job and he could use it to evaluate my knowledge on drivers and my programming skills). One bug is known to exist in the gamma release. You will get into an infinite loop when specifying Hc and Hg to the same values (Xmax=0). This error is also present in the beta release.

Beta release

One betarelease, DPC version 0.2.0, was available from my Web-page, http://www.csek.iprod.auc.dk/ls/dpc.zip, and checked out by a few people. Later it was distributed by Brian Steele on http://www.spiceisle.com/homepages/brian/audiodiy/.

One bug is known to exist in the beta release. When entering data for Cms and Mms, the software does not calculate fres as supposed. A patch was never released.

Alpha release

One alpha release was made, but not publizised (one person got it because he was doing something similar).