Donald A. Swanson
This work describes a simple and concise methodology of loudspeaker design. A box design program is presented that uses box side ratios to calculate the box volumn. First order filters are used for frequency separation. A program is presented that calculates the requisite capacitor and inductor values.
A pair of reference headphones will be needed, preferably wired and closed back. For example: Sony MDR ZX-310ap or Audio Technica ATH-M20x. A short program of mono and stereo music tracks will be needed for evaluation. Listen to the bass drum (heavy rock), string bass (acoustic jazz) and especially vocals from recordings where vocals are prominent (1960s pop and folk).
Download the specifications and design notes for the woofer and tweeter. Is the woofer designed for a closed box or vented box? Calculate the F-ratio (Fs / Qts). Below 100 tends toward a closed box. Above 100 tends towards a vented box. What is the sensitivity and frequency range of the woofer and tweeter? Choose a tweeter with a relatively low Fs and a high power rating.
The program below can be copy and pasted into the window box of the online BASIC interpreter. Clear out the window before pasting the code. Click the RUN button to execute the program. Enter in the nominal driver size.
The program display will show three choices for box size and volumn. Width, height, and depth are precise to 1/4 inch. Vb1 is typical of a compact closed box. Vb2 is typical of a vented box. Vb3 is intended for high end, relatively high Vas woofers. Dv is the estimated diameter of the vent tube in inches. The vent tube diameter is usually about 25 to 35 percent of the driver diameter. Vent tubes should be cut to various lengths and tried to get the best bass output without sounding boomy or dirty.
10 rem Loudspeaker Box Interior Dimension Calculator 20 rem Donald Swanson - das605813@yahoo.com 30 rem online BASIC interpreter - https://www.calormen.com/jsbasic/ 40 clear 50 home 60 data 0.9 70 data 1.0 80 data 1.1253 90 input "Enter nominal driver size (in) = ";dz 100 for i = 1 to 3 110 rem calc box sides - width (wd), height (ht), depth (dp) 120 read s1 130 ds = dz * s1 140 wd = ds * 1.618 150 ht = wd * 1.618 160 dp = wd * 0.84 170 wd = int((wd * 4) + 0.5) / 4 180 ht = int((ht * 4) + 0.5) / 4 190 dp = int((dp * 4) + 0.5) / 4 200 rem calc box volumn (Vb) 210 vb = wd * ht * dp 220 vb = vb / 61.024 230 vb = int((vb * 10) + 0.5) / 10 240 rem calc vent tube diameter (Dv) 250 dv = ds / 3 260 dv = int((dv * 100) + 0.5) / 100 270 print"---------------------------------------" 280 print 290 print "Vb";i;": ";vb;" (L)";" Dv: ";dv;" (in)" 300 print 310 print "w,h,d: ";wd;", ";ht;", ";dp;" (in)" 320 print 330 next i 340 restore 350 print 360 input "hit enter to continue ";en$ 370 goto 40 380 end
The program below can be copy and pasted into the window box of the online BASIC interpreter. Clear out the window before pasting the code. Click the RUN button to execute the program. Enter the impedance values for the HF (tweeter) and LF (woofer).
All of the capacitor/inductor value pairs should be tried. Keep the one that sounds the best. Choose inductors with values as close as possible to the values shown in the program display.
Check the tweeter frequency response graph and note the output peaks. The tweeter will likely need some attenuation. Wirewound resistors are typically used ranging from 1 to 12 ohms with a 5-watt power rating and a 5-percent tolerance.
Capacitors are typically film type rated at 100 volts DC with a 10-percent tolerance. Non-polar or bi-polar electrolytic capacitors are typically rated at 50 volts DC with a 20-percent tolerance. Inductors are typically ferrite or air core with a DC resistance (DCR) of 0.6 ohms or less with a current rating of 1.25 amps or more and a 10-percent tolerance.
10 rem Solen Split First Order Filter Calculator 20 rem Donald Swanson - das605813@yahoo.com 30 rem online BASIC interpreter - https://www.calormen.com/jsbasic/ 40 clear 50 home 60 input "HF ohms = ";rh 70 vtab 1 : htab 15 80 input "LF ohms = ";rl 90 vtab 1 : htab 30 100 print "running" 110 print 120 f1 = 0 130 f2 = 22 140 rem set the range of frequency values 150 fq = 1000 160 fh = 4500 170 rem calculate capacitor value 180 c1 = 0.1125 / (rh * fq) 190 c1 = int((c1 * 10 ^ 7) + 0.5) / 10 200 rem look for a match 210 if c1 = 15 goto 320 220 if c1 = 10 goto 320 230 if c1 = 6.8 goto 320 240 if c1 = 4.7 goto 320 250 fq = fq + 1 260 if fq < fh goto 170 270 vtab 1 : htab 30 280 print " " 290 vtab 1 : htab 30 300 print "** done **" 310 end 320 rem calculate inductor value 330 i1 = 0.2251 * rl / fq 340 i1 = int((i1 * 10 ^ 5) + 0.5) * 10 350 if i1 = f1 goto 250 360 if c1 <> f2 then print 370 print "F = ";fq;" ";"C = ";c1;" (uf)";" ";"L = ";i1;" (uh)" 380 f1 = i1 390 f2 = c1 400 goto 250
Donald A. Swanson
This work describes a subjective method of making odds from the analysis of a thoroughbred horse race. Symbols are chosen by the handicapper to represent the race analysis. Fibonacci numbers are used to convert symbol combinations into weighted percentages.
The leftmost column in figure 1 shows the seven symbols used in the method. The left side symbol part is the base (+, N, Ø). The right side symbol part (+, -) is the modifier. Descriptions are names for the symbols. The symbols are usually hand-written with a forward slash "/" as a separator, for example: (N+ / + / Ø+). Symbol selection starts with consideration of (+, N, Ø) before moving up or down to the appropriate symbol. Memorize the symbols and descriptions. The rightmost column in figure 1 shows the matching Fibonacci numbers which will be used to calculate the weighted percentages.
Symbol | Description | Weight |
---|---|---|
++ | double plus | 21 |
+ | plus | 13 |
N+ | neutral plus | 8 |
N | neutral | 5 |
N- | neutral minus | 3 |
Ø+ | doubtful plus | 2 |
Ø | doubtful | 1 |
The race is analyzed to decide which horses will be contenders. The handicapper will have some level of confidence that one of the contenders will win the race. A symbol is selected to represent the confidence level. Figure 2 shows the symbols and matching confidence levels. Symbol selection starts with consideration of (N+) before moving up or down to the appropriate symbol. Non-contenders get a (Ø).
Symbol | Confidence Level |
---|---|
++ | maximum |
+ | high |
N+ | moderate high |
N | moderate |
N- | moderate low |
Ø+ | low |
Ø | minimum |
cp - contender percentage
nc - number of contenders
fs - field size
wt - weight
cp = (wt * nc) / ((wt * nc) + (fs - nc))
Four contenders in an eight horse field with moderate high confidence.
4 / 8 / N+
N+ / N+ / N+ / N+ / Ø / Ø / Ø / Ø
8 + 8 + 8 + 8 + 1 + 1 + 1 + 1
cp = 32 / 36 = .889
cp = (8 * 4) / ((8 * 4) + (8 - 4)) = .889
Measure the strength of the betting favorite in an eight horse field.
1 / 8 / N-
cp = (3 * 1) / ((3 * 1) + (8 - 1)) = 0.30 or 5/2
1 / 8 / N
(fs - 1) / 5
(8 - 1) / 5 = 7/5
cp = (5 * 1) / ((5 * 1) + (8 - 1)) = 0.42 or 7/5
1 / 8 / N+
cp = (8 * 1) / ((8 * 1) + (8 - 1)) = 0.53 or 4/5
Races with two or more contenders will use one to three factors which must be arranged from left to right in order of importance, for example: class, form, distance. Factors can be two-part compounded, for example: form-surface, jockey-trainer, form-age, distance-surface.
The (N) symbol can be extended to (NN) making the neutral base symbols (N+, NN, N-). The factor symbols are the right side symbol parts (+, N, -) matched up with Fibonacci numbers 8, 5, 3 respectively. Figure 3 shows the six factor symbol combinations and weighted percentages. A symbol combination is chosen that indicates the relative importance of each factor.
Symbols | Percent | Doubled |
---|---|---|
N N N | 33,33,34 | 66,34 |
+ N N | 44,28,28 | - |
N N - | 38,38,24 | 76,24 |
+ N - | 50,31,19 | - |
+ - - | 56,22,22 | 56,44 |
+ + - | 42,42,16 | 84,16 |
Weighted percentage calculation for the (+ N -) combination.
8 + 5 + 3 = 16
8 / 16 = .5
5 / 16 = .3125
3 / 16 = .1875
Factors can be doubled, for example: speed, speed, form making a two factor race. The factor symbol representing the doubled factor must be duplicated in the combination as shown in figure 3. A single factor can be tripled (N N N) making a one factor race.
Two contenders in an eight horse field with high confidence.
cp = (13 * 2) / ((13 * 2) + (8 - 2)) = .813
Three factors are chosen: class, form, distance with the (+ N -) combination.
8 + 5 + 3 = 16
(8 / 16) * .813 = .407
(5 / 16) * .813 = .254
(3 / 16) * .813 = .152
Each contender gets three symbols one for each factor as shown in figure 5 second column.
Horse | cls / fm / dst | Weights |
---|---|---|
#1 | + / N / N | 13 / 5 / 5 |
#2 | N- / N+ / + | 3 / 8 / 13 |
13 + 3 = 16
(13 / 16) * .407 = .331 (#1)
(3 / 16) * .407 = .076 (#2)
5 + 8 = 13
(5 / 13) * .254 = .098 (#1)
(8 / 13) * .254 = .156 (#2)
5 + 13 = 18
(5 / 18) * .152 = .042 (#1)
(13 / 18) * .152 = .110 (#2)
Sum the three percentages for each contender.
.331 + .098 + .042 = .471 (#1)
.076 + .156 + .110 = .342 (#2)
Sort the percentages (pct) in descending order before converting into odds.
odds = (1 / pct) - 1
(1 / .471) - 1 = 1.123 (#1)
(1 / .342) - 1 = 1.924 (#2)
Select the increment (inc) for rounding off.
if odds < 0.3 then inc = 20 elseif odds < 1 then inc = 10 elseif odds < 2 then inc = 5 elseif odds < 5 then inc = 2 else inc = 1
odds = (int ((odds * inc) + .5)) / inc
(int ((1.123 * 5) + .5)) / 5 = 1.2 (#1)
(int ((1.924 * 5) + .5)) / 5 = 2 (#2)
Convert rounded odds into fractions.
n = 0.5 // numerator d = 0 // denominator while int(n)<> n d = d + 1 n = odds * d end print n,"/",d
Finished calculation shown in figure 6 with percentages and fractional odds.
2 / 8 / + | cls / fm / dst | + N - | |
---|---|---|---|
#1 | + / N / N | .471 | 6 / 5 |
#2 | N- / N+ / + | .342 | 2 / 1 |
Figure 7 is a two factor race with the distance factor doubled.
2 / 10 / + | cls / dst | + - - | |
---|---|---|---|
#1 | N+ / N / N | .552 | 4 / 5 |
#2 | N- / Ø+ / Ø+ | .213 | 7 / 2 |