When I designed TuneLab I assumed that if there were any errors in the sound system crystal frequency they would be the same errors whether generating a tone or listening to a tone (audio output vs. audio input). Usually this is true because one crystal drives both processes. Therefore one calibration would correct both tone generating errors and listening errors. But I found out that some PC sound system hardware (and Pocket PC hardware too!) had calibration errors that were different for output and input. Therefore you could calibrate listening mode perfectly and find that tone generation was in error. Apparently these PC sound system makers for some reason decided to use separate crystals for sampling output vs sampling input. (I have not found any similar discrepancy in Android or iOS devices, so we don't don't make any provisions for this problem in the iOS or Android versions of TuneLab.)
Since most people use listening mode exclusively for tuning, it was not a huge problem. But TuneLab Pro does have provisions for calibrating tone generation mode separately from the input mode. So keep this in mind when performing experiments on calibration. One provision is to calibrate for input first, and then use that results of that calibration to determine output calibration internally by running a concurrent input and output process and timing them both. It takes a few minutes. As I said, in most cases the two calibrations will turn out the same.
We focus our main attention on calibrating input mode, since that is the mode that most people use for fine tuning. (Tone-generating mode can be useful for chipping a new piano at the factory, but then absolute accuracy is not important.) Previously our input calibration relied on comparisons with an externally supplied pitch, such as the NIST tones or a precise tone generator. We recently added Internet Calibration to TuneLab Pro as an option for people who do not have access to a precise reference tone.
Even though calibration to reference tones takes only a few seconds, Internet Calibration takes up to 6 hours because it relies on accurate time-of-day references from Internet time servers. Because of the uncertain delays experienced by Internet packets, it is difficult to get a time-stamp any closer than 0.05 sec. To make this time insignificant we must take two time stamps several hours apart. There is an option within Internet Calibration to cut the 6 hour period short and figure the calibration based on a shorter sample time. I have used this an gotten reasonable calibrations in as little as 20 minutes instead of 6 hours. But it is not guaranteed. I set the limit at 6 hours because that guarantees Calibration to within 0.01 cents even with a marginally slow Internet connection. If you only want accuracy to within 0.1 cents, then you can use 1/10 of the time and complete the Internet Calibration in 36 minutes. But if you are going to tie up your PC to this dedicated process for 36 minutes, you might as well leave it on overnight and be absolutely sure of the accuracy.
For those interested in Internet Time Servers and how they are normally used to synchronize time in PCs and other devices, just google "Network Time Protocol", or visit www.ntp.org.
By the way, prout, if someone records a tone for you and sends you the audio file, that does not prove anything. The precise sample rate of their audio recording system might not match the precise sample rate of your audio playback system. So you would not necessarily be rendering the audio at exactly the same frequency at which it was produced.