Ear training for piano tuners
Version: V1.6
© 2022, Matt Pestle, Afino Systems, All rights reserved.
Acknowledgements: Rick Butler (RPT), and his outstanding
course on piano technology,
for illuminating the need.
Feedback or bug reports welcome.
This app removes the physical difficulties associated with tuning a piano and lets you concentrate on training your ear to hear coincident partials of intervals, their beat rates, and their relationships to each other.
Note that this tool does not explain what you should be listening for. You will need to figure that out for yourself, or perhaps more easily, talk to someone who does this explaining (see the acknowledgements at the top, for example).
This is merely a tool for ear training to recognise and judge beat rates produced by the first 6 partials. To get this ear training experience when you are starting out, I think it instructive to be able to answer, and put an actual number on, the question "How far away is this note from where it should be?", even though "where it should be" may be subject to debate. This tool is a complete solution to that question.
For these purposes, I believe it is more than sufficient to work on a fixed (and configurable) amount of "stretch" over an octave, and to assume that this stretch amount is the same over the compass of the keyboard that we are working with (the midrange). If you can master the Practice Piano, your ear will be good enough that you will know how to stretch anything to any level you want to. By then you should also be able to figure out the extremities of the piano, which may use partials higher than the 6th, and whose frequencies are not suitable to sine waves generated by a computer.
Development on this tool has stopped and it is now open for anyone to use, even anonymously. If you don't sign up you can't save your tunings and come revisit them later, but everyone is welcome to use it.
We now have a good solution for ear training to get smooth beat rate transitions in the midrange of a piano, for intervals that use up to the first 6 partials. This is such a small part of the broader problem of learning to deal with a piano that it's hard to get excited, but I think it is more than we had previously. Hope you enjoy it.
(requires a login) The current frequencies of all notes, along with the current settings of octave stretch and A4 frequency (and of course which piano you are working on), are timestamped and saved to a database. These can be retrieved later with the Retrieve Tuning button. Use this facility if you want to save where you are and pick it up again later from that point. |
|
Shortcut key = 'd' (Right Shift, which is usually closer to the arrow keys, also activates this button, to save you from having to move your hand away from the arrows). Displays data about the current note or interval being played or tuned. If a single note is played, the frequency of each of its 6 partials is noted. If an interval is played, specifics about the coincident partials and their beat rates are displayed. If the tuning lever is engaged, that note's status (sharp/flatness) is shown as well. Click the button again to hide the data. If you wish to retain the information on the screen after you release the notes, click and hold on the data as you release the notes. This will cause the data to remain visible until the next time data would normally be displayed. |
|
Shortcut key = 'm' or 'esc'. Any sounding notes are silenced, and the tuning lever is disengaged. |
|
Starts a timer running so you can work "under pressure". Click again to pause or restart the timer. Double click to reset it. |
|
(requires a login) Displays a list of tunings that you have saved. The tunings for the instrument you are tuning currently are displayed first, then saved tunings for other instruments. You can import a tuning for another instrument, but you should be aware of the inharmonicity differences between the instruments if you do this. A tuning on one piano may not sound the same on a different piano. Click on a tuning to retrieve it (your current tuning will be lost, of course). You can also delete a saved tuning, using the "delete" link, if you want to tidy up after yourself. |
|
Shortcut key = 'f'. Produces a pure sine wave at the frequency of the current setting of A4 (440hz by default). It also produces a tone at 3 times that frequency if the "Fork has 3rd partial present" option in the Setup Panel is ticked. Click again to silence the fork. |
|
Shortcut key = 's'. Displays the Setup Panel. Click again to hide it. |
|
Shortcut key = 'i'. This is a shortcut key for the Initial tuning procedure of A4. Clicking it plays F2 and the tuning fork simultaneously. Listen to the beat rate. Clicking it again silences the fork and plays A4 instead, while F2 continues to sound. You then adjust A4 to match that beat rate. This ensures that A4 is at the same pitch as the tuning fork. More clicks alternate between the two. You may wish to "calibrate" F2 first if you feel it necessary, although you should read the note about F2 pertaining to the "Knock out" button. |
|
Shortcut key = '?' (also '/', so you don't have to use the Shift button). Opens a new tab/window that displays this page. Your browser may block popups, so you may need to allow this in order to see it. |
|
Shortcut key = 'r'. Produces a report of each note of the Midrange (C3-B4), showing the number of cents (or cents*) deviation from in-tune (with the asterisk, this means "in-tune" relative to the octave stretch specified). It is also color coded: Anything within 0.5 cents is green. 0.5-0.9 is pink (flat) or light blue (sharp). Anything further out of tune is deep red (flat) or dark blue (sharp). These are the same colours used in tuning pin animation as you tune the note for big/small nudges sharper/flatter. Next to the cents deviation matrix will appear the scores that this piano would receive on 3 portions of Part 1 of the PTG's RPT exam: The pitch set, the temperament octave, and the midrange scores. My information on how these are calculated come from this post, which is from 2007 - this information may be out of date. The "master tuning" is taken to be a theoretical equal temperament taking into account the amount of stretch specified in the Setup panel. As such, the suggested usage of the Temper Tool to practice for the PTG exam is:
|
|
Shortcut key = 'k'. Randomly knocks the piano out of tune. If the tuning pin is engaged, only that note is randomly de-tuned. If no tuning pin is engaged, the entire piano is knocked out (a suitable dropped-piano sound will be heard). Whether a note is knocked sharp or flat, and by how much, is random (generally within about 3 cents). One exception to this is F2, which is always tuned so that its 5th partial is between 4 and 6hz flat of the A4 pitch. If you know why, you might appreciate this time saving feature. |
|
Shortcut key = 't'. Tunes the piano, subject to the value of A4's specified frequency and Octave Stretch in the Setup Panel. If the tuning pin is engaged, only that note is tuned. Otherwise the entire piano is tuned. |
|
(requires a login) Brings up the demo and coaching interface. If there is a demo running or you have been invited to a coaching session by a tutor, you will have a button to join the demo or coaching session. In a "demo", everything the presenter does in her piano is transmitted and reflected in everybody else's piano so they see/hear the same thing, but nothing flows in the other direction. In a "coaching" session, anything that anybody in the session does is transmitted to everybody else in the session. This can be used for 1-1 tutoring, possibly with a supervisor or other interested party "listening in". If more than 2 people are trying to use the piano, however, it will probably get unwieldy. It is assumed that a group audio conference call is simultaneously happening with all participants (Zoom, Skype, etc). Scheduling a demo has the option of publicizing Zoom meeting parameters. If you are a "tutor" you can start a demo that all others can join, or you can invite specified users to a coaching session. Tutors are only allowed to be in one coaching session at a time, and should not start a demo when there is already one running. (I can't imagine being so overloaded with demand that this restriction is an issue) |
|
(requires a login) This button appears if you join a "demo". Use it if you make changes to your piano while the demo is in progress (which means your piano will be out of sync with the presenter's). Clicking this button will synchronize the state of your piano with the presenter's piano. |
If you have a MIDI keyboard hooked up, you will probably want to keep the Interval Shortcut Keys hidden. If you don't have a keyboard, these shortcuts reduce the mouse clicks required for many of the interval tests that you can perform to tune a piano. The ones with keyboard shortcut characters ( -, +, [, and ]) may be useful even if you do have a MIDI keyboard. They function even if the buttons are not visible.
If you want to know why these shortcuts were selected for implementation, I can highly recommend Rick Butler's course on piano technology.
Shortcut key = '+' (also '=', so you don't have to use the Shift button). Any note sounding is moved up a semitone.
|
|
Toggles between a 3rd and 10th.
|
|
Toggles between a 3rd and 6th. For measuring the width of a 4th.
|
|
Toggles between a minor 3rd and the major 3rd on top of it.
For measuring the width of a 5th.
|
|
Shortcut key = '-'. Any note sounding is moved down a semitone.
|
|
Toggles between a minor 3rd and a major 6th atop it.
|
|
Toggles between a 6th and a 10th. Measures the width of the 5th at the
first coincident partial (3:2).
|
|
Toggles between a minor 3rd and a major 3rd with a common bottom note.
|
|
Toggles between a minor 3rd and a major 6rd with a common bottom note.
|
|
Shortcut key = ']'. Any note sounding is moved up a full tone (wholestep).
|
|
When a major 3rd is sounding, this button moves both notes up a major 3rd.
|
|
When a minor 3rd is sounding, this button moves both notes up a minor 3rd.
|
|
When a major 3rd is sounding, this button moves both notes up a 4th.
|
|
When a major 3rd is sounding, this button moves both notes down a 4th.
|
|
Shortcut key = '['. Any note sounding is moved down a full tone (wholestep).
|
|
When a major 3rd is sounding, this button moves both notes down a major 3rd.
|
|
When a minor 3rd is sounding, this button moves both notes up a minor 3rd.
|
|
Toggles between the inner maj 3rd / outer maj 6th of a dominant 7 chord in what I believe
is referred to as 4th form (3rd inversion?) ... the 7th in the bass.
|
Note: This method makes assumptions about the amount of inharmonicity on the A4 string. See the discussion of inharmonicity below.
This increases/decreases the base volume. It is only relative to your computer's volume setting, however. It is supplied here so that if you are seeing a "demo" of the Temper Tool, you can adjust the volume of the Practice Piano relative to the conference call going on in which someone is explaining something to you.
This increases/decreases the volume of the upper partials relative to the fundamental. (this has the effect of making beats easier/harder to hear). Moving it all the way to the left results in nearly a pure sine wave at the frequency of the fundamental, where you will not hear the beating. Differing speaker setup may require different settings in order to clearly hear the beating of coincident partials.
This is the value you wish to use for A4. By default it is 440 (hz). It is reflected in the "tuning fork".
So if you tune the piano when this is set to 440, and then change this value to A4 = 441 and play A4 again (without tuning the piano), it will be about 4 cents flat (since it was tuned at A440).
This increases the width of an octave by the specified amount. It is limited to 4 cents. For example, if set to 2, A3 will be "in tune" when it is 1202 cents below A4 (about 219.75hz).
If not set to zero, then any "cents" flat/sharp reported will be shown as "cents*" (with asterisk), to indicate that it is not true cents away from a theoretical value. The point is that this tool is intended to tell you how far away a note is from where you want it, and I think this algorithm is close enough for these ear training purposes.
If your browser supports MIDI, you should see "Yes", and a list of the connected devices. Your browser may initially request access to the MIDI devices, which you will have to grant. All connected devices that produce note on/off data are listened to. If your device produces note on with zero velocity instead of note off (this is common, and valid, in the MIDI world), this is also handled.
Interval shortcut keys will be handy if you don't have a MIDI keyboard, but otherwise they're probably superfluous. You should know these intervals/tests. This preference is saved (if you are logged in).
Controls whether or not the tuning fork is a pure A4 tone or also has 3*A4's frequency present. If you want to use Rick Butler's method for setting A4, you need the 3rd partial. This method makes assumptions about the inharmonicity of the A4 string however. You should understand this before ticking this box - See the discussion on Inharmonicity below. This preference is saved (if you are logged in).
Note - This feature does not function in some major browsers (firefox, safari, for example). Chrome is the only tested version so far. Do not use this feature if does not function as described.
When ticked, the volume of a played note will decay over a few seconds. This is more realistic, but makes it harder to tune, since your decision on the beat speeds must be made under time pressure. The jury is out on whether or not this option is useful. It seemed interesting at the time, but subsequently I'm not so sure - I personally never use it anymore. This option is also not useful unless you are using MIDI. This preference is saved (if you are logged in).
When ticked, two note intervals will have their fundamental and coincident partials (within partials 1-6) sounded, but the other partials will be muted. For example, if you play F3/A3, you will hear F3 and A3's fundamental and F3's 5th partial and A3's 4th partial only. This sounds like a Hammond organ, but it makes the beating especially pronounced, even more than adjusting the "partial strength" slider. You should use this only if you are really struggling to hear some beating partials. For 5ths, both the 3:2 and 6:4 partials will sound. For octaves, both the 2:1, 4:2, and 6:3 partials will sound. Listen carefully and you should be able to distinguish all three beat rates (try a very wide D3/D4 octave).
This option came about in response to Rick Butler's exercise that compares major and minor 3rds - an exercise that I found impossible until I implemented this option.
When this box is ticked, all bps quantities are accompanied by metronome markings, to allow you to relate the speed to a tempo. For example, 7bps is noted as triplets () at ♩=140 or semiquavers (♬) at ♩=105. This is useful if, for example, you find it easier to feel the relationship between the beating speeds of F3/A3 vs A#3/D4 as triplets vs semiquavers at very nearly the same tempo.
Select the piano you wish to practice on. This piano selection is saved (if you are logged in).
Each piano has different inharmonicity characteristics and therefore different amounts of "stretch" will be desirable. If you change pianos, only the frequency of the first partial is transferred to the new piano. Upper partials are adjusted as per the inharmonicity characteristics of the new piano. If you want to "tune" the new piano, set the desired amount of stretch and "tune" it again.
We initially include one piano (a "6 foot grand"), and one with no inharmonicity. This latter "ideal piano" won't be an interesting piano to tune, however, and is only provided for comparison purposes. If anyone can give me a complete set of more realistic values for inharmonicity coefficients, I will adjust these, or add more pianos.
Future versions (if there are any) may allow you to define your own pianos and their inharmonicity characteristics.
The tone you hear when you play a note is actually 6 tones, one for each of the first 6 partials. We use only 6 since it's hard to hear any higher, and we don't have any gauge tests (in this version) that use a corresponding partial beyond the 6th partial, so we don't need any more to produce audible beating for us to practice with.
This document from a music technology course at the University of Rhode Island gives a good explanation of the calculation used to determine the frequency of the upper partials, and here is the relevant portion:
The initial piano included with the Practice Piano uses this formula. We uniformly use Y=150kN/mm2 (see
this discussion -
there's also some good information available from
this interesting paper).
The values of D, and L for A#2 and up of the "6 foot grand" piano are taken from the model in the software developer's lounge,
and T comes from the fact that the frequency of a vibrating string is given by:
so we can get a T as long as we know L and the linear density of the wire
(mu in the equation, based on the diameter and a density of steel of 7.85gm/cm3),
and the known approximate frequency of the note.
The end result is that the inharmonicity will change for each string, giving a more realistic experience.
The bass strings (C2-A2) haven't been analyzed and are only approximated. Their inharmonicity values
are clearly not realistic,
but for our purposes (ear training in the midrange), these are sufficient.
Initial emphasis is on the temperament octave,
so we may address the specification of inharmonicity values of bass strings in future versions as time permits.
One thing to note about this, however is that Young's modulus of 150K was chosen so that the 3rd partial of A4=440 of the "6' grand piano" is at about 1323.5hz. This is so that using Rick Butler's suggested method of setting A4 (see Use Case #1b) will yield an accurate value. On the other hand, if we use the experimental measured value of 140kN for Young's Modulus mentioned in the PTG member discussion, A4's 3rd partial is only 1322. If we use the suggested 210k value, it's nearly 1325, so if you use Rick's rule of thumb to set A4, you're always out by more than would be acceptable for a 100 score on the PTG's RPT exam. If we assume that Rick's rule of thumb is accurate, then the true values of most A4 strings must get us to between 1323hz and 1324hz.
Future versions may allow the user to edit the values of Y, D, T, and L for each string, or otherwise allow the user to specify the frequency of the upper partials of each string. Apparently Cybertuner's "pianalyser" will give these values. If anyone has a complete set of values for a complete set of strings on a given piano, I will be happy to add it to the "library" of pianos available for practice.
left arrow | lower pitch of note being tuned by a small amount, maybe |
right arrow | raise pitch of note being tuned by a small amount, maybe |
down arrow | lower pitch of note being tuned by a larger amount |
up arrow | raise pitch of note being tuned by a larger amount |
d (or right Shift) | display/hide Data of note/interval being played |
a or i | Initial A4 tuning procedure: toggle between playing F2/fork and F2/A4 |
f | play/silence the tuning Fork |
k | Knock the piano out of tune |
? (or /) | open documentation/help page |
t | Tune the piano in even temperament with given octave stretch |
s | show/hide the Setup area |
r | show/hide the temper Report |
Esc (or m) | Silence all sounding notes and remove tuning lever for any note it may be on |
- (hyphen) | shift all sounding notes a semitone down |
+ or = | shift all sounding notes a semitone up |
[ | shift all sounding notes a full tone down |
] | shift all sounding notes a full tone up |