Wednesday, February 24, 2016

For the record: PV_HainsworthFoote

This post is probably of very limited interest unless you came here via a search! This is to set the record straight on a function called PV_HainsworthFoote, which someone kindly but erroneously half-named for me.

So I was browsing the Supercollider audio synthesis language documentation and was somewhat surprised to find my name on a function PV_HainsworthFoote.

This function detects audio onsets (typically the start of notes) in a spectral representation of audio. It does this by looking at the difference in the short-term DFT of a signal. Evidently the author read Stephen Hainsworth's Ph.D. thesis which on page 51 attributes the following distance measure to me:

Foote & Uchihashi 2001 [117]
used the principle of audio self-similarity to examine rhythmic
structure. The assumption was that within the space of a single
sub-beat, the sound is approximately constant and therefore the
spectrum will have high similarity. They therefore defined a
similarity measure as the normalised scalar product of two spectra,
DFoote(n) = h|Xn|,|Xn−1|i ||Xn|| × ||Xn−1||.  This produced a two
dimensional plot of similarity between any two frames of the audio
signal, which was then autocorrelatively analysed for tempo

This was taken from my paper The Beat Spectrum: a New Approach to Rhythm Analysis, where I describe it as follows (in slightly different notation):

A simple distance measure is the Euclidean distance in the
parameter space. To remove the dependence on magnitude (and hence
energy, given our features), the product can be normalized to give the
cosine of the angle between the parameter vectors.  The cosine measure
ensures that windows with low energy, such as those containing
silence, can still yield a large similarity score, which is generally
desirable. This is the distance measure used here.

While it's flattering to have this named after me, it is really not my invention: it is nothing more than the cosine similarity which is, or should be, rather well-known. The cosine similarity measures how similar two points in space are by the cosine of the angle between the two vectors from the origin ending at the points.

I am pleased, however, to have the chance to re-read the Beat Spectrum paper (PDF here) which was always one of my favorites and I think has stood the test of time.



RSSicon.png  RSS feed