EXPLRESO.TXT - Brief explanation of FLUTRESO.BAS program
Most of the program is concerned with getting the parameters
organized, recognizing requests and presenting the results.
The actual calculations are relatively brief, and start in
line 800. The program operates by calculating, at a
particular hole position, the distance R below that point at
which the effective end (the pressure node) of the column
lies. The susceptance corresponding to this distance, at the
wavelength being used, is obtained by the usual cotangent
relation. If the key is open, the susceptance of the hole,
obtained from H and the wavelength, is added, and this new
susceptance is used to calculate a new R representing the
distance to the pressure node. The calculation now moves up
to the next hole, by adding the interhole spacing to R, and
repeating the procedure. If the key is closed rather than
open, an amount is added to R representing the effective
elongation (or shrinking) of the column due to the cavity,
and we then move up to the next hole. After the last hole,
one moves up to the position of the effective mouth hole end,
adding this amount to R. At this time, if the fingering is
consistent with the frequency chosen to establish the
wavelength, R should be close to a multiple of one half a
wavelength. The amount by which it differs is the column
excess. The whole operation is repeated with a slight change
in wavelength, and a new column excess computed. One can use
these two values to interpolate (or extrapolate) to a
wavelength that would give zero column excess, and thus find
the resonance frequency of the column examined.
Some corrections are introduced along the way. The
effective interhole spacing is altered to take account of
varying temperature along the column. Most important,
rather than moving up a fixed distance after the last hole
is calculated, empirical alterations in the distance
are made for each note to take account of the headjoint taper
and the flutist's blowing habits. These corrections were
deduced by comparing the calculated results with actual
blowing tests on the flute, and therefore represent my
personal playing style as well as the headjoint used. In any
register they follow smooth curves, so they do not mask
irregularities due to the flute, and different flutes will
show their own departures since the same corrections will be
used for all.
Lets go briefly through the process. We start at the far
end of the tube and assume at first that it is closed -
infinite impedance. The apparent position of the
pressure node, seen from this point as if there were an
infinite extension of the tube, is 1/4 wavelength away. Line
810, R=L/4 expresses this. I added .001 mm to avoid getting
an infinity on taking the tangent of 2*PI*R/L. Line 830
starts the iterative calculation, which will cover 19 holes,
and K is the hole number. Line 820 was put in just to make
the first step behave like all the others. Line 840 makes DR
the distance from the hole we are at to the next one up the
tube, the C array values having been read from the geometric
data in line 380. Before going on, we make a temperature
correction of this effective distance in lines 850-870.
Line 880 asks if the key is open. If so, we go to line 920.
Here the susceptance of the hole, l/2/PI/H (where H has
been read from data as C(K,1)) is added to the susceptance
corresponding to the distance R. Line 230 then calculates
the new R corresponding to this total susceptance. We go
back to 900, which sets K to the next hole, and we go
through the process again. If the key had been closed,
(line 890 true) we would have gone to line 940, where the
cavity parameters a and b ( expressed by C(K,2)
and C(K,3)) are applied to change the length of R
by a small amount. How much depends on the position in the
standing wave, which is why R and L come into the expression.
After all the holes have been passed, (K<1) line 900 is
followed by line 910. DM is the distance to the mouth end
from our reference point, the A hole. The value of DM had
been established by line 1440 at the time the note was
selected, adding to a basic value of 380.1 mm the withdrawal
WD, and the empirical headjoint correction HJ calculated in
lines 1390-1430. Since we are at the last trill key, we need
to add the negative distance from the trill key to the A hole
and add DM to get the R at the mouth end as in line 910.
Lines 950 and 960 add or subtract multiples of half
wavelengths until the resultant R is smaller than a quarter-
wave, after which it represents the column excess for that
calculation. If J=1 (first time around, see line 800), line
980 records the column excess as RA and the wavelength used
as LA. The wavelength L is then increased by 3% (also in line
980) and the whole process is repeated (line 990 and 800). In
line 1000 the two values obtained for two slightly different
wavelengths are used to find the cents deviation.