Today's Google Doodle features a simulator for a toy version of the Minimoog synthesiser.
In Google's eclectic fashion, it's meant to celebrate what would have been Bob Moog's 78th birthday.
Moog was a pioneer in electronic music from the 1950s, using the newfangled transistor and analog circuitry to build what were, in short, newfangled analog music computers.
Analog computers differ from modern digital computers inasmuch as they don't bother reducing their inputs and outputs to distinct, quantised, values. Very crudely put, they produce approximate outputs from exact values, instead of producing exact outputs from approximate values.
If you look at the mathematics behind analog computers, for example, you'll probably find integral signs where, in a digital computer, you'd find summations.
You'll find real numbers and continuous functions instead of integers (or fixed-precision floating point representations, which are just integers used in a clever way) and discrete samples.
You might deal with a voltage "somewhere between 0V and 12V", for instance, rather than "a number that has one of the specific values 0,1,2...65535".
Analog computers may be imprecise by modern standards, yet are often capable of performing complex calculations in real-time, even in hostile operating conditions.
For example, consider this problem. As a petrol engine speeds up, the spark plugs need to fire earlier to give the fuel time to burn. This is called ignition advance, and is expressed in degrees of engine rotation. At idle, for example, the advance might be 7°. At 2000rpm, it might be 12°. But above 4500rpm, you might want the advance to be fixed at 20°.
The modern solution is to use a digital mapping - a look-up table telling you what advance to use for which speeds. You end up with an ignition curve which is a series of steps (the rpm range covered by each digitised sample); the size of the steps depends on the quality of the samples and the amount of memory available for the look-up table.
Before digital computers, however, automotive engineers simply hooked up a pair of spring-loaded weights to the distributor shaft.
As engine speed increased, centrifugal effects forced the weights further apart. The weights were linked to a lever which moved - literally advanced! - the ignition trigger switch.
Want to limit the maximum advance? Just add a pin to stop the lever moving past a certain point. Want a slower advance curve? Use stronger springs. Want a funny-shaped advance curve? Drive the lever with a funny-shaped cam.
The input is exact and continuously variable - it's determined by the rotational speed of the distributor shaft. The output is approximate - it will vary with friction, temperature and the age of the moving parts.
On the other hand, the digital map gives an exact answer - the ignition advance is always identical for a specific input. But the input is approximate - it varies only in discrete quanta by time and in magnitude.
So, if you're Googling for something today, have a play on the simulated microminimoog. You can even record and overdub your material on the simulated four-track tape recorder connected to the synthesiser.
Experience some analog computing. Digitally simulated, of course.
(And before you say, "Tape is dead," have a look in the average server room. Sure, it's "digital" tape. But only in name. The underlying principle is the same: record a representative signal as a series of magnetic field alignments in a flexible ferromagnetic layer.)