WARRANTY: Absolutely none - Use At Own Risk! Source codes are provided in BASIC that I successfully compiled in Microsoft Quick Basic 4.5.
GENERAL NOTES ON DON KLIPSTEIN WEBSITE SOFTWARE unless otherwise noted:
1. Licensing - as of 6/13/2012 through 4/7/2025, everything here is freeware that I license for free to anyone who wants it, under GPL "public license". Should this ever require any warranty on my part, I disclaim such warranty even should that require me to abandon free licensing.
Some software here may be inadequately copyrighted / noted for enforcement of the very liberal-to-downloader GPL terms. In such case, it becomes public domain software.
2. Executables (ready-to-run) require DOS preferably 3.0 or higher, maybe as low as about 2.3, which is supplied with or required to install (and remains after installing) Microsoft Windows 3.x, 95, or 98. Windows XP "cmd" so far works.
3. For all programs here so far, source code is posted here (in links). Download and compile the source code if you do not trust me to not infect my executibles with nasties such as viruses (virii?) or worms. Source codes are in BASIC (as of 4/7/2025 and all earlier times) and compileable with Microsoft Quick Basic 4.5 (and probably most lower versions down to 2.5 and Basic Compiler 7) and probably compileable with all versions of Microsoft Visual Basic either as-is or with minor changes. BASIC source codes are probably also largely to possibly entirely-as-is workable in most versions of Borland TurboBasic.
3. Most Microsoft Basic compilers 2.5 to 7 (at least for DOS) and maybe some other Microsoft programming languages (especially BASIC) have some strange extraneous slowdown in floating point math. There is a patch, the Dan Barclay Mathpatch.
My Computer Speedup General Hints (mostly old)
.ZIP file with the patch for speeding up the executables produced by many Microsoft BASIC compilers such as Quick Basic 2.5 to 4.5, BASIC 7 ("QBX"), and possibly some other Microsoft programming language / compiler packages such as some versions of Visual Basic.
MWPL - "mW/lm" UV and blackbody spectrum plot.
Additional output displayed on the screen is milliwatts of UV per lumen of visible light.
REQUIREMENTS:
"IBM-Compatible" PC or "PowerPC" sort of computer, video display including VGA compatibility, operating system suitable for running a DOS program (DOS version preferably 3.0 or higher, but may run on DOS as low as about 2.3 or so).
Preferred processor for fast speed is "X86" type Intel 486DX or higher, AMD 5X86 /"X5" or higher or equivalent. Will work on 8088 or higher.
To print output while using DOS, before running MWPL run the DOS utility
GRAPHICS. While what you want to print is displayed, do a
Source Code Notes:
Successfully compiled with Microsoft Quick Basic 4.5.
Download Links:
MWPL.EXE executable with the "mathptch" speedup
worked in.
MWPL.BAS Basic Source Code compileable by Microsoft
Quick Basic 4.5, freeware including blackbody formula and photopic
data useful for such programs.
Surface brightness in candela/cm^2
REQUIREMENTS:
"IBM-Compatible" PC or "PowerPC" sort of computer, video display with CGA or
VGA compatibility, operating system suitable for running a DOS program (DOS
version preferably 3.0 or higher, but should run on DOS as low as 2.3).
Preferred processor for fast speed "X86" type Intel 486DX or higher, AMD
5X86 /"X5" or higher or equivalent. Will work on 8088 or higher.
To print output while using DOS, at least of older versions 3 to 6 or so,
before running RADIATE run the DOS utility GRAPHICS. While what you want
to print is displayed, do a
Source Code Notes:
Successfully compiled with Microsoft Quick Basic 4.5.
Download Links:
RADIATE.EXE executable with the "mathptch" speedup
worked in.
RADIATE.BAS Basic Source Code compileable by
Microsoft Quick Basic 4.5, freeware including blackbody formula, photopic,
scotopic and chromaticity data of visible wavelengths useful for such
programs.
This program asks for driver Fs, Qts, Vas in cubic feet, nominal diameter in
inches, number of drivers, enclosure volume, port tuning frequency, box height
and width in inches, and asks for selection either to one of 4 different
theoretical operating environments (all 4 of them assume "far field", on-axis
and 3 of them assume perfectly reflecting relevant surfaces), or to oversimplify
to the 5-component Thiel-Small equivalent circuit for ported enclosures.
As for where to get Fs, Qts and Vas (Divide Vas in liters by 28.317 to convert
to Vas in cubic feet) of many woofers, fullranges, subwoofers, and some
midranges, some guitar and bass speakers, etc: Put into the Wayback Machine
http://www.thielesmall.com (Link found as no longer currently functioning
4/30/2021.)
Just before asking for enclosure volume and port tuning frequency, this
program usually offers some suggestions based on Fs, Qts and total Vas,
with names of such suggested "alignments".
UPDATE 10:25 AM 5/12/2021: If the port frequency is considered by this
program as erroneously high, then the program decreases it to the maximum it
accepts.
The program next plots a predicted frequency response graph. The frequency
range is fixed at 16 to 1000 Hz, and the dB range is fixed at -27 to +12.5 dB
(for V. 1.25).
At the right end of the zero dB line, a figure for corresponding sensitivity
on axis in the far field in dB @ 1 watt 1 meter is shown, rounded to a whole
number of dB. This figure assumes a typical ratio of nominal impedance to voice
coil DC resistance, a typical ratio of Qes/Qts, and typical low altitude air
pressure and typical room air temperature.
The exact figure for sensitivity dB 1W, 1M corresponding to the "0 dB line" is
111.9 + 10 times the common log of (2.7E-8 * Znom/Re * Fs^3 * Vas (in
cubic feet) /Qes * air pressure /1013 millibars *298K / actual room air
temperature). Add 6 dB if floor coupling is involved to ideal extent.
Immediately under the graph, the program may print a line mentioning an error
or suggesting a change. Under the graph, the program also shows options to
change port frequency, to change box volume, to totally redo the box, to change
number of drivers, to redo everything, to change among the 5 theoretical
environment choices, to erase all curves except the most recent one, or to
quit.
If port frequency or box volume is changed, a new frequency response curve
is plotted without erasing previous ones.
The environment choices are:
(1) On a reflective floor, away from walls (anechoic half space with the
speaker's axis parallel to the halfspace plane)
(2) Anechoic 1/4 space, on a reflective floor and against a reflective wall
(3) Anechoic full space
(4) Standard anechoic half space, speaker axis perpendicular to the halfspace
plane
(5) Oversimplified half space, using the 5-component Thiel-Small equivalent
circuit for ported loudspeakers.
What is unique about this program is that for the first four environment
choices, it calculates approximately and shows the 6 following real-world
effects:
(1) The 6 dB shelf reducing bass response if the loudspeaker enclosure is not
against or recessed into a wall that its axis is perpendicular to,
(2) Depression of bass response by acoustic loading when efficiency is high,
(3) Elevation of midrange response due to loss of mass reactance of the mass
of the air around the cone at frequencies high enough for the acoustic loading
of this air to be mostly resistive in effect,
(4) Depression of lower midrange response by increased mass reactance of the
air around the drivers when more than one driver is used,
(5) Array gain effects from using multiple drivers, floor coupling, etc.,
(6) And - depression of higher frequency response by the voice coil
inductance if that is typical for drivers having the Thiel-Small
parameters and diameter that were entered into the program.
This program does calculate typical values for factors necessary for
calculations for these effects, except floor coupling effect for the 2 options
to consider it assume 100% reflection and measurement in the "far field".
This program calculates these "typical values" with various assumptions
including enclosures being made of 3/4 inch thick wood and trends that I
have found to be typical of loudspeakers, such as in voice coil inductance.
This program *does not* predict diffraction ripple, effects of cone "breakup",
ripple from interference between acoustic radiation from the louspeaker and
acoustic radiation reflected by a wall, enclosure internal resonances and
reflections, bass loss from air friction in ports, bass loss from damping
material inside the box, off-axis response, or near field response. It also
does not show acoustic power efficiency as a function of frequency, but does
calculate this combined with effect of driver or driver array directivity as a
function of frequency.
The source code has been accidentally shrouded. I took extreme measures to
maximize run speed by a BASIC interpreter when I developed the core of this
program in late 1989 on a laptop having an 8 MHz NEC-V20 processor. Such
measures included minimizing length of variable names to increase interpreter
speed. I have lost my notes on this in 1991, and now I cannot understand the
core of the good part of this program.
However, I can say that this analyzes what I consider to be the "expanded
Thiel-Small equivalent circuit", which I will show here in the future.
Requirements:
The executable (of all versions released here) work in Microsoft Windows command
prompts or DOS prompts, for Windows versions at least from 3.1 to XP, and DOS
likely as low as 2.3. It works with VGA and VGA-compatible SVGA displays. It
works with generally all processors of X86 type, preferably with math
co-processors, one .EXE version mentioned here before requires a math
coprocessor. SPKR works on DOS computers with 640K of RAM, actual or
emulated.
Versions 1.01 to 1.25 source codes are optimized for Microsoft Quick Basic
4.5. The executables are of version preferring a math coprocessor, the V.1.01
executable with file size about 37K was noticed on 4/7/2025 as requiring one.
This program should plot essentially instantly with any X86 type processor with
a math coprocessor, of type 486DX or higher, with core frequency 25 MHz or
higher, despite versions below 1.25 lacking the Dan Barclay "mathptch".
Download Links:
UPDATE 4/7/2025: V. 1.25 is now available.
spkr125.bas source code compileable by
Mocrosoft Quick Basic 4.5 and Basic Compiler 7.
Differences from V. 1.01:
1) This works with a Command Prompt / DOS prompt in Windows XP Mode that comes
with Windows 7 Professional, although Integration Features of Windows XP Mode is
likely to need to be disabled to avoid a bug in graphical display working in
graphical video modes of DOS programs. V. 1.01 had display still being buggy
(but "somewhat working") in my experience with System Integration being disabled
in Windows XP Mode of Windows 7 Professional.
2) The graphics improvement requires a video card and a monitor more advanced
than CGA 640x200, VGA or VGA-compatible with resolution of 640x480 is used.
3) Frequency resolution is improved from 1/12 octave to 1/96 octave, and
vertical resolution is improved from 1/4 dB to 1/8 dB.
4) The vertical range has its upper limit increased from +12.5 to +12.75 dB, and
the lower limit of the vertical range is shifted downward from about -19 dB to
-27 dB. The grid for the graph is expanded downward from -18dB to -24dB.
6) Determination of dB numbers was changed from using a large lookup table to
using the LOG function. This decreases source code byte count, but slows DOS &
Windows machines without math coprocessors. Those slower machines generally have
processors older than 486DX that was new sometime in 1993.
7) Bugs affecting reported dB for the 0dB line for dB @ 1 watt 1 meter (as
determinable in the far field in ideal environment) were detected and fixerd.
For older versions of SPKR or this page, please enter into the Wayback Machine
http://donklipstein.com/software.html . Links to older source codes and EXE
files can be copied and pasted into a web browser. If you get such links
that don't start with http://donklipstein.com , then adding this will be
necessary. All versions of source codes and EXE files for SPKR that I ever
linked to in past versions of this page are still available.
Copyright (C) 2001, 2008, 2010, 2011, 2012, 2021, 2025 Donald L. Klipstein
(Jr)
RADIATE - brightness, chromaticity, spectrum
breakdown of blackbody radiators as a function of temperature
This program requests user input of "blackbody radiator" (ideal thermal
radiator) temperature in degrees Kelvin (limited to a range of 350 to
2E7 degrees Kelvin. Its response is to print onto the screen the following
properties of a blackbody radiator at such a temperature:
Scotopic/photopic ratio
Peak wavelength in nm
1931 CIE chromaticity coordinates
Watts radiated per square centimeter
Percent of total radiation in vacuum UV, non-vacuum UVC, UVB, UVA, visible,
IRA, IRB, and IRC, corrected 1/19/2010.
Overall luminous efficacy, in lumens of light per watt of total radiation.SPKR - "Speaker", for designing loudspeaker sealed and
ported enclosures, for woofers, subwoofers and fullranges.
Updated 4/7/2025.
This is actually a very old program of mine, developed mostly during 1989
through 1991, with some work other than petty bug fixes done as recently as
2021. Link for downloading this is after a couple or a few pages of stuff
about this item that I put a lot of work into.
UPDATE 4/7/2025:
This sensitivity figure for the "0 dB line" may be "off" a dB or two.
As for resolution of the plotted frequency response curve: Horizontally 1/96
octave and vertically 1/8 dB in V. 1.25.
spkr125.exe V. 1.25 executable, produced by
Microsoft Quick Basic 4.5.
This page and linked software (except for the Dan Barclay "MATHPTCH")
written by Don Klipstein.
Please read my Copyright and authorship info.
Please read my Disclaimer.