# Command: cents¶

cents – translate selected Humdrum pitch-related representations to cents

## SYNOPSIS¶

 cents [-p n] [-tx] [inputfile ...] [> outputfile.cnt]

## DESCRIPTION¶

The cents command transforms various pitch-related inputs to corresponding numerical values in hundredths of semitones. It outputs one or more Humdrum **cents spines containing values corresponding to the cents distance from middle C for pitch-related input tokens. Pitches above middle C produce positive output values, whereas pitches below middle C produce negative output values. For example, the **pitch token “C3” is transformed to -1200 (cents).

The cents command is able to translate any of the pitch-related representations listed below. In each case, a tuning standard of A4 equals 440 hertz is assumed. For descriptions of the various input representations (including **cents) refer to Section 2 (Representation Reference) of this reference manual.

It is recommended that output files produced using the cent command should be given names with the distinguishing .cnt’ extension.

 **cents hundredths of a semitone with respect to middle C=0 **freq fundamental frequency (in hertz) **fret fretted-instrument pitch tablature **kern core pitch/duration representation **MIDI Music Instrument Digital Interface tablature **pitch American National Standards Institute pitch notation (e.g. “A#4”) **semits equal-tempered semitones with respect to middle C=0 (e.g. 12 equals C5) **solfg French solfège system (fixed doh’) **specC spectral centroid (in hertz) **Tonh German pitch system

Input representations processed by **cents*.*

## OPTIONS¶

The cents command provides the following options:

 -h displays a help screen summarizing the command syntax -p n output precision of n decimal places -t suppresses printing of all but the first note of a group of tied **kern notes -x suppresses printing of non-cents signifiers

Options are specified in the command line.

The -p option can be used to set the precision of the output values to n decimal places. The default precision is integer values only (n=0). Note that cents is able to process **cents as input; this feature allows the user to round-off existing **cents data to a specified precision.

The -t ensures that only a single output value is given for tied **kern notes; the output coincides with the first note of the tie.

In the default operation, cents outputs non-pitch-related signifiers in addition to the cents value. For example, the **pitch token “A5zzz” will result in the output “2100zzz” – that is, after translating A5 to 2100 cents, the “zzz” signifiers are retained in the output. For some applications, echoing non-pitch-related signifiers in the output is useful. However, in other situations, the result can prove confusing – especially, when the non-pitch-related signifiers are numbers. Consider the case of the **kern token “8aa”; after translating aa’ to 2100 cents, the non-pitch-related signifier 8’ will also be output, hence the value 82100 – which will undoubtedly cause confusion. The -x option is useful for eliminating non-pitch-related signifiers from the output. For most **kern inputs, the -x option is recommended.

## EXAMPLES¶

The following example illustrates the use of cents. The input contains six pitch-related spines – two of which (**deg and **cocho) cannot be processed by cents. In addition, there are two non-pitch-related spines (**embell and **metpos). 

!! cents’ example. 

**kern

**pitch

**MIDI

**deg

**metpos

**cocho

**Tonh

**embell

*M2/4

*M2/4

*M2/4

*M2/4

*M2/4

*M2/4

*M2/4

*M2/4

*

*

*

*

*tb8

*

*

*

=1

=1

=1

=1

=1

=1

=1

=1

8ee-

G#4foo

/60/bar

1foo

1

r

Gis2

ct

.

.

/-60/

.

.

.

.

.

8ff

A3

/62/

2

3

9.89

H2

upt

.

.

/-62/

.

.

.

.

.

8dd-

Ab3

/70/

1

2

7.07

B2

ct

.

.

/-70/

.

.

.

.

.

8d-

C#4

/61/

6

3

7.135

Cis4

sus

.

.

/-61/

.

.

.

.

.

=2

=2

=2

=2

=2

=2

=2

=2

[4a-

r

.

5

1

r

r

.

.

.

.

7

3

5.5

Heses2

ct

4a-]

D4

/48/ /52/

1

2

8.11

C3

ct

.

.

/-48/

.

.

.

.

.

.

D4 F4

/-52/

2

3

7.33 6.4

C3 Es3

ct

=3

=3

=3

=3

=3

=3

=3

=3

r

G4

.

r

1

r

H2 D3

.

===

===

===

===

===

===

===

===

*-

*-

*-

*-

*-

*-

*-

*-  Executing the command

 cents -tx input > output.cnt

produces the following result: 

!! cents’ example.

**cents

**cents

**cents

**deg

**metpos

**cocho

**cents

**embell

*M2/4

*M2/4

*M2/4

*M2/4

*M2/4

*M2/4

*M2/4

*M2/4

*

*

*

*

*tb8

*

*

*

=1

=1

=1

=1

=1

=1

=1

=1

1500

800

0

1foo

1

r

-1600

ct

.

.

.

.

.

.

.

.

1700

-300

200

2

3

9.89

-1300

upt

.

.

.

.

.

.

.

.

1300

-400

1000

1

2

7.07

-1400

ct

.

.

.

.

.

.

.

.

100

100

100

6

3

7.135

100

sus

.

.

.

.

.

.

.

.

=2

=2

=2

=2

=2

=2

=2

=2

800

r

.

5

1

r

r

.

.

.

.

7

3

5.5

-1500

ct

.

200

-1200 -800

1

2

8.11

-1200

ct

.

.

.

.

.

.

.

.

.

200 500

.

2

3

7.33 6.4

-1200 -900

ct

=3

=3

=3

=3

=3

=3

=3

=3

r

700

.

r

1

r

-1300 -1000

.

===

===

===

===

===

===

===

===

*-

*-

*-

*-

*-

*-

*-

*-  Both processed and unprocessed spines are output. Notice that the tied note at the beginning of measure 2 in the **kern spine has been rendered as a single note rather than as two notes (due to the -t option). Also notice that the non-pitch-related signifiers (e.g. foo) in the first notes of the **pitch, **MIDI, and **cocho spines have been stripped away (due to the -x option).

The file x_option.awk is used by this program when the -x option is invoked.

DOS 2.0 and up, with the MKS Toolkit. OS/2 with the MKS Toolkit. UNIX systems supporting the Korn shell or Bourne shell command interpreters, and revised awk (1985).

 **cents (2), **freq (2), freq (4), **fret (2), **kern (2), kern (4), **MIDI (2), midi (4), **pitch (2), pitch (4), **semits (2), semits (4), **solfg (2), solfg (4), **specC (2), specC (4), **Tonh (2), tonh (4)