Using log(abs(fft)) as a feature gives even better PCA separation.

That is, the summed multiplication of the FFTs is approximately the
same thing as the fft-based correlation, but without the final ifft
operation.  Taking the logarithm seems to give highly significant
separation, and is also faster.
JavaScript version of the log-fft feature.
Some code for helping to dump the PCA transformation matrix.
For log-fft feature, some different ways to normalize in time and log domains.

Possibly, normalization should occur before or after conversion to
log-frequency domain.  Final mean removal is for PCA reasons, however
pre- or post-processing normalization may be a good idea if we want to
make sure that classification occurs based on shape of spectrum, but
not amplitude.

On the other hand it may be a good idea to allow amplitude as part of
the classification, so we leave some optional normalization lines
commented-out until we have the final training data to play with.
Have a colour-coded look at the pre-PCA feature vectors.
In JavaScript version, correct FFT abs calculation and subtract mean.
Add recorded drum gestures, plus some code to visualize and show tags.
Add calculation of magnitude.
Remove any bad windows, not sure how they get in there.
Add data recorded Feb 12.
Commented-out code for saving PCA data to files for import into Max.
Messages containing log-on/off and PCA data from Emerge, Feb. 17-18, 2013.