Spectral Centroid


specC — spectral centroid representation


The specC representation can be used to represent the frequency of the spectral centroid for pure or complex tones. Spectral centroid is the amplitude-weighted mean of several frequency components. For example, given three frequencies (200, 400, 900 Hz) of equal amplitude, the corresponding spectral centroid would be the arithmetic mean of the three frequencies (i.e. 750 Hz). For pure tones, the spectral centroid is equivalent to the frequency of the pure tone. For complex tones, the spectral centroid is higher when tones have greater energy (amplitudes) in the upper partials. Hence, spectral centroid provides a simple index for the richness or brightness of a tone or sonority.

Spectral centroid tokens are numerical values in units of hertz. Frequencies may be specified as integer or real values (using a decimal).

Barlines are represented using the "common system" for barlines — see barlines.


It is recommended that files containing predominantly specC data should be given names with the distinguishing `.spc' extension.


The following table summarizes the specC mappings of signifiers and signifieds.

0-9 frequency (in hertz) specified as an integer or real value r rest = barline; == double barline —– ———————————————-

Summary of specC Signifiers


A sample document is given below:


**specC **specC *pure *complex =1 =1 1900 2730 868.9 . 1362 4402

  1. . . 3742 =2 =2 r r == == *- *- ———– ———–

Notice that frequencies can be either real or integer values. Rests are represented by the single letter `r'.


The following Humdrum commands accept specC encoded data as inputs:

cents translates specC to cents deg translate specC to deg degree translate specC to degree freq translate specC to freq kern translates specC to kern pc translate specC pitch to pc pitch translates specC to pitch semits translate specC to numerical semits solfg translate specC pitch to solfg specc change numerical precision of specC values tonh translate solfg pitch to Tonh

The following Humdrum command produces specC data as output:

specc translates freq, and specC to specC – ————————————- ————————————————————-


The following tandem interpretations can be used in conjunction with specC:

pure tones *pure complex tones *complex meter signatures *M6/8 key signatures *k[f#c#] key *c#: —————— ————

Tandem interpretations for specC


` barlines, **cents, **deg, **degree, **freq, **kern, **pc, **pitch, **semits, **solfg, **Tonh`