Donald A. Swanson
The program shown below can be copy and pasted into the window box of the online BASIC interpreter. Click the RUN button to execute the program. Enter in the nominal driver size. There are 3 box sizes to choose from. The box size can be changed by entering a slightly larger or smaller driver size. Width, height, depth values shown in the display are the interior dimensions of the box. Dv is the nominal vent tube diameter. Vent tubes are cut to various lengths and tested to get the best bass output without sounding boomy or dirty. Tubes are usually test fitted from outside of the box where they can be swapped out quickly. The back and sides of the box should be lined with damping material. A small box can be lined with 3-4 layers of craft felt. The backside of the driver cutout hole should be rounded to allow air to escape from the backside of the driver.
A set of short wire alligator clip test leads and a spool of 18 gauge speaker wire will be needed for connecting components.
Headphone sound is useful as a benchmark for speaker testing. Headphones should be wired, closed back, and low impedance. Two examples: Sony MDR ZX310AP and Audio Technica ATHM20x. A short list of mono and stereo rock, pop, folk music tracks should be put together. Listen carefully to the drums and vocals.
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 80 data 1.1253 90 input "Enter nominal driver size (in) = ";dz 100 for i = 1 to 3 110 rem calculate 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 : rem 1 - (1 / (5 + 1)) 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 calculate box volumn (Vb) - convert to liters 210 vb = wd * ht * dp 220 vb = vb / 61.024 230 vb = int((vb * 10) + 0.5) / 10 240 rem calculate nominal vent diameter (Dv) 260 dv = ds / 3 290 dv = int(dv * 8) / 8 310 print"---------------------------------------" 320 print 330 print "Vb";i;": ";vb;" (L)";" Dv: ";dv;" (in)" 340 print 350 print "w,h,d: ";wd;", ";ht;", ";dp;" (in)" 360 print 370 next i 380 restore 390 print 400 input "hit enter to continue ";en$ 410 goto 40
This is a first order attenuator filter for a full range driver. The inductor has the effect of reducing the midrange while the resistor has the effect of reducing the treble. Inductor values typically range from 500-1200uh. Air core or laminated steel core inductors are preferred. Ferrite core inductors with axial leads and a DC resistance of 0.8 ohm or less can be used for testing. Resistors are wirewound type with axial leads, and a power rating of 10 watts or more.
The program shown below calculates first order filter values for a 2-way system. Program lines 150-160 set the range of frequency values to be scanned. Lines 210-250 set the capacitor values. Enter the HF (tweeter) and LF (woofer) impedance values. The program display will show the capacitor/inductor value pairs to be tested. Choose inductor values as close as possible to the values shown in the program display. Capacitors are Film type or bi-polar electrolytic, rated for 100 volts DC or more.
This is a first order series filter. The frequency value shown in the program display is the minimum crossover frequency and may increase with the value of resistor R1. The increase can be as much as 100hz per ohm. The resistor values range from 1-12 ohms with a power rating of 5 watts or more. Examine the LF/HF frequency response graphs. The LF output peak usually occurs at 150-200hz. The HF output peak usually occurs at 6000-8000hz. The difference in db is the starting resistor value. For example: if the LF driver graph shows a peak of 86 db at 200hz, and the HF driver graph shows a peak of 93db at 6000hz, then the starting resistor value will be 7-10 ohms.
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 rem capacitor value flag 130 f1 = 0 140 rem set the range of frequency values 150 fq = 1500 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 test for a capacitor match 210 if c1 = 15 goto 340 220 if c1 = 10 goto 340 230 if c1 = 6.8 goto 340 240 if c1 = 4.7 goto 340 250 if c1 = 3.3 goto 340 260 fq = fq + 3 270 if fq < fh goto 180 280 vtab 1 : htab 30 290 print " " 300 vtab 1 : htab 30 310 print "** done **" 320 end 330 rem calculate inductor value 340 i1 = 0.2251 * rl / fq 350 i1 = int((i1 * 10 ^ 5) + 0.5) * 10 360 if c1 = f1 goto 260 370 print 380 print "F = ";fq;" ";"C = ";c1;" (uf)";" ";"L = ";i1;" (uh)" 390 f1 = c1 400 goto 260
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
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 |
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