The Temper Tool Practice Piano

Back

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.

Introduction

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).

Disclaimer

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.

Nov 2021 update

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.

Quick Start

  1. The keyboard shows C2 through C5, with Middle C (C4) highlighted.
  2. If you don't have a MIDI keyboard, click/touch a note to play/silence it.
  3. Click/touch the note's tuning pin to simulate putting your tuning lever on it. With a MIDI keyboard, play the note twice quickly to do the same thing. You will receive audible feedback when the hammer goes on and comes off a pin.
  4. Adjust the pitch using the arrow keys: left/right arrows produce a small nudge (approx .1 cent), up/down arrows give a larger nudge (approx 1 cent). The pin will indicate that you are attempting to nudge it in a given direction. The size of the nudge is irregular, however, beyond large and small. And sometimes (5-10% of the time) it will only appear to move. You must listen.
  5. If you do not have arrow keys (on an iPad, for example), you can use the slider. This is not "nudging", however, and is less realistic. Once you demonstrate that you have arrow keys, the slider disappears - you must use your ears.
  6. If you can't hear the beating for a given interval, move your head a little bit to get into a different part of the sound wave.
  7. "Hide/Show data" to see information about the notes or interval being sounded or tuned.
  8. "Tuning fork" produces a pure sine wave tone at your specified A4 value (440hz by default).

Buttons

(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:

  1. Practice until you can set A4 within 0.2 cents every time.
  2. Practice until you can set A3 as a 6:3 octave within 0.2 cents every time. On the "6 foot grand" piano, This involves a stretch of 1.1 cents.
  3. Now you can concentrate on the temper. Set the stretch to 1.1, then "tune" A4 (activate its tuning pin and hit the "Tune" button) and A3.
  4. Given these A3 and A4 as fixed, now tune F3-F4, and then expand to C3-B4.
  5. The Temper Report will now be meaningful. If you can do it all within 1c, you understand and probably don't need any further ear training. Go find some real pianos and start getting time on the pins - knowing where to put the note is the easy part.

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.

Interval Shortcut Keys

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.
If everything is in tune, the beating speed of any interval should very slightly increase.

Toggles between a 3rd and 10th.
(Allowing the measurement of octaves at the 4:2 coincident partial)
If the 10th beats faster, it is wide of a 4:2 octave.

Toggles between a 3rd and 6th. For measuring the width of a 4th.
The 6th must beat faster than the 3rd.
How much faster is what you need to learn to feel.

Toggles between a minor 3rd and the major 3rd on top of it. For measuring the width of a 5th.
This gauge measures the width of fifth at the 2nd coincident partial [6:4].
The m3 must beat quicker than the M3 atop it.

Shortcut key = '-'. Any note sounding is moved down a semitone.
If everything is in tune, the beating speed of any interval should very slightly decrease.

Toggles between a minor 3rd and a major 6th atop it.
Allowing the measurement of octaves at the 6:3 coincident partial
If the M6 is faster, it is wide of a 6:3 octave.

Toggles between a 6th and a 10th. Measures the width of the 5th at the first coincident partial (3:2).
The 6th must beat quicker than the 10th.

Toggles between a minor 3rd and a major 3rd with a common bottom note.
The m3 must beat significantly quicker than the M3.
How much faster, and the relationship between the two speeds, is what you need to learn to feel.

Toggles between a minor 3rd and a major 6rd with a common bottom note.
Particularly accurate and useful when tuning down out of the temperament.
The m3 needs to beat quicker than the M6 (but not too much), or else you've put that bottom note too flat.

Shortcut key = ']'. Any note sounding is moved up a full tone (wholestep).
If everything is in tune, the beating speed of any interval should noticeably increase.

When a major 3rd is sounding, this button moves both notes up a major 3rd.
If everything is in tune, the beating speed must noticeably increase.

When a minor 3rd is sounding, this button moves both notes up a minor 3rd.
If everything is in tune, the beating speed must noticeably increase.

When a major 3rd is sounding, this button moves both notes up a 4th.
If things are in tune, you should hear beat rates shifting from triplets to semiquavers at the same tempo.
[This test I believe to be original, and shall hereby be known as the Pestle Dictum (with a nod to the late great saxophone professor Robert Sibbing, who coined the term)]

When a major 3rd is sounding, this button moves both notes down a 4th.
If things are in tune, you should hear beat rates shifting from semiquavers to triplets at the same tempo.

Shortcut key = '['. Any note sounding is moved down a full tone (wholestep).
If everything is in tune, the beating speed of any interval should noticeably decrease.

When a major 3rd is sounding, this button moves both notes down a major 3rd.
If everything is in tune, the beating speed should very noticeably decrease.

When a minor 3rd is sounding, this button moves both notes up a minor 3rd.
If everything is in tune, the beating speed should very noticeably decrease.

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.
If everything is in tune, the beating speed should be very close - the 6th ever so slightly faster than the 3rd.


Use case 1a: Practice setting A4 (from fork/F2)

  1. "Knock out" ('k') (be sure no tuning pin is engaged - so the entire piano is knocked out)
  2. "F2/fork v F2/A4" ('i' - the Initial A4 tune). This puts the tuning lever on A4 and toggles back and forth between F2/tuning fork and F2/A4. Tune A4 using the arrow keys.
  3. "Show data" ('d') to check.
  4. Repeat. (Remove tuning lever first so that you also get a randomized F2).

Use case 1b: Practice setting A4 (Rick Butler method)

Note: This method makes assumptions about the amount of inharmonicity on the A4 string. See the discussion of inharmonicity below.

  1. "Show setup" ('s') and tick the "Fork has 3rd partial" box.
  2. Put tuning lever on A4
  3. "Knock out" ('k')
  4. "Tuning fork" ('f')
  5. Play A4 and tune it using Rick's suggested method of listening to the 3rd partial.
  6. "Show data" ('d') to check.
  7. Repeat (no need to remove tuning lever if it is on A4, since only the note with the tuning lever is knocked out of tune if it is on a pin).

Use case 2: Setting an octave between 4:2 and 6:3

  1. "Tune" ('t') piano
  2. Put tuning lever on A3
  3. "Knock out" ('k') - with the tuning lever on a pin, this will randomly detune only this note (A3)
  4. Play A3/A4 and tune A3 to where you want it. Practice setting a 4:2 octave, and a 6:3 octave, and between.
  5. "Show data" ('d') to check. Note that for this exercise you are only interested in the data regarding the beat rates of the coincident partials, not whether the note is "sharp" or "flat"... you know it's going to be flat of 220hz if you tune a 4:2 or a 6:3 octave, because of the inharmonicity.
  6. Repeat from step 3

Use case 3: Setting F3 from A3/A4

  1. Do Use Cases 1 & 2. (If you want to just concentrate on this use case, set the Octave Stretch to however many cents A3 is in Use Case 2 and Tune ['t'] the piano).
  2. Put tuning lever on F3
  3. "Knock out" ('k') - this will randomly detune only F3
  4. Play F3/A3 (or A4) and tune F3 to where you want it (presumably about 7bps).
  5. "Show data" ('d') to check.
  6. Repeat from step 3

Use case 4: Setting the "foundation 3rds"

  1. Do Use Cases 1, 2, & 3.
  2. Optional: Set F4 - Do Use Case 2, but tuning F4 from F3. Tune the same width octave as you did A3/A4 in use case 2.
  3. Put tuning lever on C#4.
  4. "Knock out" ('k') - this will randomly detune only C#4.
  5. Tune C#4 where you want to place it between A3 and F4, so that you get the desired progression from F3/A3, A3/C#4, Db4/F.
  6. Optional: If you did not do step 2, tune F4 using C#4.
  7. "Show data" ('d') to check.
  8. Repeat from step 3

Use case 5: Setting consecutive 3rds

  1. Set a desired Octave Stretch (this will be from your investigation as to how far flat you want to set A3 in Use Case 2).
  2. Tune piano.
  3. Put tuning lever on F#3
  4. "Knock out" ('k') - this will randomly detune only F#3
  5. Play F3/A3. Listen to the beat rate.
  6. Play F#3/A#3, and adjust F#3 so that its beat rate is the correct amount faster than F3/A3. (Hint: Use the '-' and '+' or '=' keys to go between the two if you don't have a MIDI keyboard [or even if you do])
  7. "Show data" ('d') to check.
  8. Repeat from step 4. Use a different starting Major 3rd.

Use case: Practice setting F3-F4

  1. Disengage tuning lever.
  2. "Knock piano" ('k')
  3. "F2/fork v F2/A4" ('i' - the Initial A4 tune). This puts the tuning lever on A4 and toggles back and forth between F2/tuning fork and F2/A4. Tune A4.
  4. "Show data" ('d') to see how you did. Adjust further and set it exactly.
  5. "Hide data" ('d')
  6. Tune A3 to wherever you want it: A 4:2 octave? 6:3?
  7. When you have A3 where you want it, "Show data" ('d'), and see where it really is. Adjust if you want.
  8. Make note of how flat A3 is. "Show setup" ('s'), and adjust the Octave Stretch factor to this value. A3 will then be considered "in tune". With the Octave Stretch set, the reported data about the sharpness or flatness of a note now means "sharp or flat of where you want it", given your specified Octave Stretch Factor.
  9. Carry on tuning F3-F4. "Show data" when you want help. If you have a MIDI keyboard and are comfortable engaging and disengaging the tuning pin with it, dim your screen so the experience is completely aural.
  10. When finished tuning the temperament octave, "Temper report" ('r') to see how you did.


Setup

Overall Volume

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.

Partial Strength

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.

A4 value

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).

Octave Stretch

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.

MIDI available

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.

Display interval shortcut keys

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).

Fork has third partial present

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 decay

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).

Isolate Beating Partial(s)

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.

Show metronome speeds

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.

Instrument

Update: This option has proved irrelevant - the default piano and the "ideal piano" demonstrate everything required to effectively use the software, so no further instruments will be developed or included.

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.

Notes on Inharmonicity

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.


Ideas for future releases

  1. Bug: If temper report is showing, the isolate beating partials doesn't function.
  2. Maybe put some more effort into the sound effects.
  3. Investigate getting the click sound out (caused by stopping the wave at non cross-points). Note: The obvious solution to this (the exponential ramp to level function) doesn't seem to solve this in all browsers, and seemed to create other problems, so was removed.
  4. Provide a means of ordering piano selection. Both global and user defined ones. (Again, this may turn out to be irrelevant - particularly if there's only 1 piano selection, as I suspect there will be).
  5. iPad experience: "grabbing" the tuner slider ... you seem to have to initially touch it on its left border or it jumps. Investigate getting that to the center.
  6. iPad pro bug: Asking for confirmation when you knock out or tune the instrument causes the audio for oscillating nodes to suspend. I think this is an OS bug. It doesn't appear on the smaller iPad or any of the desktop browser versions. Work around it for users with the larger device. For the moment we work around this by not requesting any confirmation if you're using a touch device.
  7. Bug: If you close the help window you can't get it back without refreshing the page.
  8. User preference values for what "way too" and "little bit" sharp/flat mean, to be reflected in the colors of the temper report. Currently hardcoded to 0.9 cent and 0.5 cents. Or, if there is a standard measure (say, from the PTG exam), implement that. Note: I read that 0.9 is the PTG tolerance in the temperament octave before points start being deducted. Probably should verify that with someone more knowledgeable in these things.
  9. Handle loss of Internet connection better (for logged in users trying to save tunings).
  10. The random nudge size should probably be an option (Default=on). It requires considerably more listening ability with random nudge sizes. So to make it easier for beginners, it could be disabled. Then, set left/right arrows = 0.1c movement, up/down = 1c, always. Note that I've already disabled the random pinslip "tick", which was novel at first, but got old fast.

Version history

V1.6 : 15 Jul 2022

  1. Added the 12th as an interval that's under consideration, after Maggie Jusiel's video and subsequent comments from Robert Bussell and Carl Lieberman.

Version history

V1.5 : 14 Nov 2021

  1. Addition of m3M6cbn shortcut key.
  2. Opening for anonymous usage (just can't save your preferences or any tunings, since I don't know under whose name to save them).
  3. Discard the Temper Test - everything is free and open now, so there's no point.
  4. Default piano set to 6' grand, default stretch set to 1c, default "Fork has 3rd partial" and "Show Metronome speeds" are ticked. These are how I like them. If you don't like them, sign in and change them.

V1.4 : 5 Jul 2020

  1. Allow customization of 4 MIDI notes to be specified to do the same pitch adjustment as arrow keys.
  2. No confirmation requested at any point if using a touch device (to get around the iPad Pro bug that messes up the sound every other time user is requested to confirm something).
  3. Allow the piano's octave stretch to be saved as a user preference (I got tired of resetting each time).
  4. Expanded the Temper Report to encompass 3 portions of the PTG's RPT exam: The Pitch Set, the Temperament Octave, and the Midrange.
  5. RPT A4 pitch set score added to data if sounding A4 with fork.
  6. Added "Demo" and "Coaching" functionality - From a coding standpoint, without question the coolest thing about the app (the developer needed to learn about websockets).
  7. Retired the Kees Meter - Sorry Kees. Good idea though.
  8. Retired the "hotspot" - another idea that I didn't end up liking.
  9. Changed "bps" line of the data report to italic and boldface type, at David Jenkin's suggestion that bps is the most important statistic on view.
  10. Added Note Decay option (not recommended for any browser except Chrome)
  11. Added "Show Metronome Speeds" option
  12. Disabled tuning slider except on Touch devices with no arrow keys
  13. Temper report now "toggles" on and off

V1.3 : 8 Jun 2020

  1. Added Partial Strength Adjustment
  2. Deployed to https://tempertool.com
  3. Added overall volume control.
  4. Trial of the Kees Meter, for a simple and accurate method of setting A4 (and generalized to any note). Didn't make the cut. Have removed in the next version. The idea is to alternate 443 and 437 hz tones, and to set A4 until beating was the same with both of them (and thereby centered exactly between them at 440).
  5. Bug fix: Tuning fork was fixed at 440 rather than taking its value from the A4 frequency slider.
  6. Added timer.
  7. Returned F2's 5th partial to "normal" volume. It made setting A4 too easy when it was stronger than the others.
  8. Minor database changes to standardize some naming conventions.
  9. Technical changes in computations.
  10. Changes to Young's modulus of default piano (6' grand) so as to put A4's 3rd partial at 1323.5, enabling you to accurately use Rick Butler's suggested method of setting A4 from a sound source.
  11. Add cents difference in upper partials (based on inharmonicity coefficient) to setup display.
  12. Adjusted random dither of each tuning nudge, and disabled the random "pinslip", in which it randomly jumped a large distance (with the accompanying "tick" of the pinslip). This was getting annoying to me - Just closing in on where you want it and suddenly having to reset. Yes, it's probably realistic, but this is an ear training tool, not a tool for helping you manage frustration.

V1.2 : 4 May 2020

  1. Cosmetic changes.
  2. Hotkey additions.
  3. 'j'/'k' thrown out in favor of new keyboard shortcuts and arrow keys.
  4. Init A4 tuning shortcut procedure.
  5. Tuning pin animation.
  6. Added click and hold to retain data in view.
  7. Interval wide/narrow explicitly added to data (particularly octaves).
  8. Temper report.
  9. 6:4 data added for 3:2 intervals.
  10. Proportional display adjusted - hopefully will be ok on smaller resolution screens, and when squeezed.
  11. Handle dynamic connection and disconnection of MIDI devices.
  12. Ability to dynamically change pianos.
  13. Save preferences (display shortcut keys, fork has 3rd partial, note decay, and the selected instrument)
  14. Save and retrieve tunings
  15. Shortcut key documentation
  16. Strengthen F2's 5th partial, for ease of tuning A4.
  17. If tuning lever is on a note, Tune and Knock Out only act on that note. This is handy for practicing a single operation (such as "place F3 from A4/A3").
  18. Hotspot display changed to a baseline level with blue sharp above baseline and red flat below. Active key/pin changed to green. Pin animation adjusted with blue/red indicator of direction it's being pushed as well, and two different levels of the size of the nudge (blue/red for big nudge, lightblue/pink for small nudge).
  19. Random nudge sizes, including about 20% of the time when nudging doesn't move anything, and 5% of the time when it randomly really moves it (with corresponding pin "click").
  20. Tuning slider hides if using arrow keys - otherwise you have visual feedback, and we want you using your ears.
  21. Add sound effect for tuning a single note.
  22. More effort put into inharmonicity characteristics of the 6' grand piano bass strings, based on information provided from David Jenkin (ARPT, Birkenhead, Auckland, NZ) and Stephen Powell (RPT/ARPT, in Karori, Wellington, NZ).

V1.1 : 27 Apr 2020

  1. MIDI keyboard support added - game changer
  2. 'j'/'k' tuning slider keyboard shortcuts
  3. Cosmetic changes
  4. Tweaks to the default piano's inharmonicity

V1.0: 25 Apr 2020

Initial release

Shortcut keys

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