TunerTime is a tool for visualizing sound, a detail-oriented augmentation for the human ear. It can be used to tune pianos, and for many other uses.

Its primary mode operates on the same principle as a strobe tuner. The strobe mode shows you a very precise and nuanced picture of the frequency of a tone as it relates to an ideal reference.

It also has an FFT mode, or spectrum analyzer. This produces a real-time spectrogram, allowing you to easily see harmonics and relationships between sounds without knowing the frequency beforehand. This is for more than just tuning, I use it to understand everything from melodies to insect sounds.

I had Piano Servicing Tuning & Rebuilding by Arthur A. Reblitz and a very old piano by my side while I was writing this software. I have since used it to help me tune 4 pianos, and I wouldn't change a thing about it.

Yeah, TunerTime is a dumb name for this program. You should say it as if you were saying "it's tuner time." The same way you might say "it's dinner time," but perhaps with less anticipatory salivation.

Strobe intro

The strobe mode is based off of an electro-mechanical spinning-disk strobe tuner, except instead of appearing like it is spinning forward or backward depending on the frequency, the dividing line between red and green bands moves up and down the screen.

Just start up the app, set it for a note (semi-tone and octave) in the range of your instrument, and then bang on or blow into your instrument. Sing if you dare, but beware the human voice is incredibly imprecise.

If the note is flat, the red and green lines will slope down. If it is sharp, they will slope up. If it is very sharp or very flat (or you set it for the wrong note), the lines will appear vertical or messy. If it is sounding a beat note (perhaps due to resonating with other parts of the instrument), the lines will be wavy.

Another thing to do is set TunerTime to E, and then sound an A. Notice how the harmonics of the A do show up (imperfectly) in the E. C'est la vie.

Three harmonics are shown at once, by default showing the two upper octaves.

The small vertical yellow lines along the bottom of the strobe bands represent 1 second intervals. If it takes 1 second for the green line to go from the top to the bottom and wrap around, then it is 1 Hz flat.

Tap on the strobe display to pause.

tone button

Tap on the "tone" button to toggle playback of a reference tone, so you can hear what fundamental the strobe display is aiming for. While the reference tone is playing, a few interesting effects may be observed.

If the display is not showing perfectly horizontal red/green bands (in tune), then that indicates a calibration error in your phone's audio hardware.

Background noises (talking, etc) show up as intermittent phase discrepancies.

If the fundamental display is showing an octave high (i.e., red/green/red/green instead of red/green), that usually indicates clipping distortion. Your phone's microphone and speaker are so close to eachother that the microphone can be saturated beyond its capacity, and the clipping introduces overtones.

If you output through an external (i.e., bluetooth) speaker, then the doppler effect is visible clear as day if you move the Android device relative to the speaker.

When changing frequencies, the strobe display updates faster than the audio output buffer, so often there will be some period of the previous frequency visible on the new strobe. This is clearest when using cent+/cent- to change the tone.

Strobe settings

There is a bar of panel selection buttons along the bottom of the strobe display. In each panel, you can configure a different aspect of the strobe's behavior.


This is the default panel where you can control the semi-tone, octave, and cents (1/100ths of a semi-tone) to select the note that determines the frequency of the fundamental, the note you are tuning against.

A freq

On this panel you can adjust the frequency for the center A (defaults to 440Hz), or reset it to the default. This is handy, for example, if you want to tune the entire instrument flat to avoid stretching old strings too much. Or, of course, if you're matching an orchestra that tunes to a different A.


On this panel you can adjust the stretch factor, or reset it to 0.

When tuning pianos, the upper harmonics of a single string are often slightly higher than you would expect in an ideal world. Instead of the second harmonic (octave) being at exactly 1200 cents (2.0 times), it might be at, for example, 1200.5 cents (2.0005777 times). This is called inharmonicity, and will make a perceptible beat note if you use ideal tuning and play octaves on the piano. To avoid this, piano tuners typically tune a slightly stretched scale.

Personally, when I sit down to a new piano, I adjust TunerTime's note panel until it shows a horizontal line for the fundamental, and then I adjust the stretch panel until the second harmonic is also a horizontal line. Do it again for a couple other notes to get a feel for the instrument.

In the past, the stretch factor was specified in decimal, but now it uses the standard units of cents per octave.


For each note in the scale (semi-tone), TunerTime can store an offset in cents from the default (+00c) which defines the tempering of the scale. When tempering is enabled, this offset is applied automatically each time you use the semi-tone adjustment in the note panel. "save" locks in the current cents as being the tempering for the current semi-tone. "enable"/"disable" turns tempering on/off.

So the procedure is: for the first semi-tone, select the temper you want (in cents) and then hit save. Then select the next semi-tone and repeat the process until you have filled in the temper you desire for all twelve semitones in the scale. Make sure you enable tempering.


By default, the 1st (fundamental), 2nd, and 4th harmonics are displayed because it is often convenient to see what is happening in other octaves. But if you would find it convenient to view other harmonics instead, you can select them on this panel.

Note that the stretch factor is in effect here, so if the stretch factor is non-zero then the distance between the fundamental and 2nd harmonic will not be exactly a multiple of 2.0.

FFT Spectrum Analyzer

Tapping the "mode" button in the lower-right corner switches between the strobe view and the FFT (spectrum) view.

FFT stands for Fast Fourier Transform, which is a technique for converting a time-domain signal (like a waveform) into a frequency-domain signal (like a spectrum analyzer).

The vertical axis is time, with markings at 1 second intervals.

The horizontal axis is frequency, with lower frequencies to the left. In musical "scale" mode, the legend along the bottom of the screen has a little white line for each of the 52 white keys on a piano, and labels where they fit. In "Hz" mode, the legend indicates frequency in Hertz.

The useful tuning parameter is "N", which is the size of the block that the FFT operates on. The rule is that bigger N means more precise frequency measurements for tones that do not change over time. Smaller N means faster response and better display of tones that do change over time.

Pinch to zoom, drag to scroll horizontally, tap to pause.

Change log


TunerTime is open source software written by Greg Alexander. Questions or comments?

TunerTime is Copyright Greg Alexander, 2016. To be distributed under the terms of the GNU GPL version 2.

To get the source:

git clone http://galexander.org/git/tunertime.git