The article and comments seem to suggest that the use of Matlab or R is a prerequisite for performing calculations such as this. However, MIR (Music Information Retrieval) libraries exist for a number of languages, including Java[1] and Ansi C[2], amongst others. A good dynamic language for experimenting with this sort of thing is SuperCollider[3].<p>By the way, the psycho-acoustically spectral measurements referred to in the article are called MFCCs[4] - basically an FFT reading weighted according to the sensitivity of our ears. They are often used in both music and (especially) speech recognition because they tend to accurately sum up the timbre we perceive in a given sound. Timbre is much easier to extract from a digital audio file than pitch or vocal information, hence why it tends to be successful in applications such as this.<p>Shazam is still pretty cool too<p>[1] <a href="http://jmir.sourceforge.net/" rel="nofollow">http://jmir.sourceforge.net/</a><p>[2] <a href="http://libxtract.sourceforge.net/" rel="nofollow">http://libxtract.sourceforge.net/</a><p>[3] <a href="http://supercollider.sourceforge.net/" rel="nofollow">http://supercollider.sourceforge.net/</a><p>[4] <a href="http://en.wikipedia.org/wiki/Mel-frequency_cepstrum" rel="nofollow">http://en.wikipedia.org/wiki/Mel-frequency_cepstrum</a>