Spectral flux explained

Spectral flux is a measure of how quickly the power spectrum of a signal is changing, calculated by comparing the power spectrum for one frame against the power spectrum from the previous frame.

More precisely, it is usually calculated as the L2-norm (also known as the Euclidean distance) between the two normalised spectra. Calculated this way, the spectral flux is not dependent upon overall power (since the spectra are normalised), nor on phase considerations (since only the magnitudes are compared).

The spectral flux can be used to determine the timbre of an audio signal, or in onset detection, among other things.

Variations

Some implementations use the L1-norm rather than the L2-norm (i.e. the sum of absolute differences rather than the sum of squared differences).

Some implementations do not normalise the spectra.

For onset detection, increases in energy are important (not decreases), so some algorithms only include values calculated from bins in which the energy is increasing.