What follows is a series of tools and charts I’ve developed over the course of my flute-making journey, to aid in the calculation of tonehole placement for a 3-hole Fulani Flute made from uniform diameter tube.

While this “electronic worksheet” is the result of honing my process with many dozens of flutes, the concepts and equations are based largely on those outlined in Bart Hopkin’s Air Columns and Toneholes: Principles for Wind Instrument Design — a fabulous resource for aspiring flutemakers and enthusiasts alike. That resource has proven to be invaluable to me numerous times as I searched for answers as to why a particular flute was slightly off, or while continuously striving to improve upon a prior prototype. I share the below information in the hopes that it may be of some benefit (or at least some interest) to someone else out there embarking on a similar path.

If you know what you’re doing and want just the tools with no background information, click here.

Background Information


In order to properly calculate the placement of toneholes on a flute, several variables come into play. They are:

\( L_{eff} \) The effective tube length associated with each desired note. This is the length the flute would be theoretically if it were “uncomplicated by end corrections, toneholes, and the like” (Hopkin, p.18). For flutes that are open at both ends (the blowhole constitutes an open end), this length is equal to the ½ the actual wavelength of the note itself.
\( v_{sound} \) the speed of sound in air, which varies depending on the temperature and the humidity of the air. Since our variable \( L_{eff} \) above is equal to ½ the wavelength of a given note, we need \( v_{sound} \) to be able to calculate the wavelength of that note. (We’ll automatically calculate the speed of sound for our environment below.)
\( A \) The actual tube length of the desired lowest note of the flute. We use the effective tube length \( L_{eff} \), above, to estimate the actual length — but we won’t know the actual length of the flute until we have reduced the flute’s length down until it produces the correct note. We need the actual length of just the lowest note, however, in order to accurately position the rest of our toneholes using the tonehole correction factor, that we will calculate below.
\( C \) The tonehole correction factor — this is really the crux of the matter and what we are after; it is the amount the hole position must be displaced from the effective tube length (above), given the variables that follow:
\( d_t \) the internal diameter of the tube
\( d_h \) the diameter of the tonehole(s)
\( t_e \) the effective thickness of the tonehole (this is the flute’s wall thickness plus some end corrections that depend on the diameter of the hole). \( t_e\ =\ t\ +\ .75d_h \)
\( s \) the distance between \( L_{eff} \) for the hole in question and \( L_{eff} \) for the next hole below (or the entire tube in the case of the first open hole)


We’ll calculate these equations automatically with the tools below, but so we know what’s being done, the equations are provided here.

Using the above variables, the equation used for calculating the amount of tonehole correction (\( C \)) and thus the placement of each tonehole is:

$$ C\ =\ s/2\ [\sqrt{1\ +\ 4(t_e\ /\ s)\ (d_t\ /\ d_h)^2}\ -\ 1] $$

Once we have determined the tonehole correction (\( C \)), the location of each individual tonehole (\( L_h \)) can then be calculated using:

$$ L_h\ =\ L_{eff}\ -\ C $$

Tube Lengths

To start building our flute, we need to know how long, initially, to make the tube that will become our flute — in other words, we need to know the effective tube length (\( L_{eff} \)) for our lowest note (the note that will play with all holes closed). To find that initial length, we need the frequency of the lowest note, and the speed of sound at the temperature in which we are working. With those two, we can find the wavelength (\( \lambda \)) of the note by dividing the speed of sound (\( v_{sound} \)) by the frequency (\( f \)):

$$ \lambda\ =\ v_{sound}\ \div\ f $$

For example, if the lowest note were middle C (261.63 Hz), we would take the speed of sound (34600 cm/second) and divide by the frequency, 261.63, to get its wavelength:

$$ 34600\ /\ 261.63\ =\ 132.25\ cm $$

Finally, to arrive at our effective tube length \( L_{eff} \) we simply divide in half (for a flute that is open at both ends):

$$ (34600\ /\ 261.63)\ \times\ .5\ =\ 66.125\ cm $$

So, for a theoretical flute that was intended to have middle C as its lowest note, we would start by making the flute about 66 cm, and then slowly trim it down from there until the flute produced the desired note…thus arriving at our actual length (our variable \( A \)).

The Procedure

The procedure at this point for making our flute, using the below tools to do the heavy mathematical lifting, looks like this:

  1. Start by specifying your environment variables (temperature and humidity). This will give you a more accurate speed of sound calculation. Note: you might want to play around with these numbers, and the reason is this: while the temperature and humidity of the room you’re working in will naturally be a starting point, ultimately it’s important to think of the temperature inside the flute — this temperature will be raised by the player’s breath. I usually bump the temperature up a few degrees to account for this.
  2. Using the generated \( L_{eff} \) values in Chart #1 as reference for the length of the flute at the lowest note, first make the flute, with just the embouchure and blowhole completed, and cut flute to length so lowest note can be played to pitch.
  3. Once that is done, measure from the center of the blowhole to the far end of the flute: this value is the Actual Length that you’ll need to input below (along with some other specs about your flute).
  4. Once you have the Actual Length, fill out the “Tonehole Placement Calculator” form below to get the calculated tonehole location, for each note.

Temperature and Humidity

Use custom temperature and humidity to calculate the speed of sound that matches your playing environment. (Think inside the flute — ultimately it will be a few degrees warmer than the room temperature.)

% humidity

Speed of sound: cm/s

Chart #1

Based on the variables above, the below chart shows the calculated values of wavelength and \( L_{eff} \) for all of the common notes found on a three-hole Fulani flute. You can refer to this chart to determine the approximate initial length of the flute for the desired lowest note:

Loading chart...

The Tonehole Location Calculator

At this point, theoretically, you would have a flute with just a blowhole and no toneholes. The flute should be able to play the lowest note, and as such, you should know the Actual Length value. Now, fill in the rest of the variables below as they pertain to your flute, and submit the form.

If you’re just kicking the tires to see how it works, trying selecting the “Key of G” preset, and filling in “65” for the Actual Length. Feel free to change the other values.

Loading calculator...


And there you have it! Once you’ve submitted the form, you should see the locations of the toneholes for each of the notes you specified. If you were careful with your initial calculations and measurements, these locations should be fairly accurate — but start by making the tonehole very small (just big enough to sound a note), and then slowly increase the size of the hole until the desired note is achieved. The bigger the hole, the sharper the note becomes. Furthermore, enlarging the hole towards the embouchure end of the flute will raise the note’s pitch more, while enlarging it towards the other end (away from the blowhole) will help keep the note lower (in case you overshot and need to compensate).

This tool was created by Dave Kobrenski and is for educational and reference purposes. If you find it useful, let me know.