Representation: **specC

Humdrum Representation for 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
. 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``