Harmony

Roman Numeral Chords to Pitches

The harm2kern program can be used to convert Roman numeral chords in the **harm representation into **kern pitches. Here is an example conversion, using the Pachelbel’s canon chord sequence:

Example. Pachelbel’s canon chord sequence mapped onto pitches.

**harm
*C:
I
V
vi
iii
IV
I
IV
V
*-
⇒ harm2kern ⇒
**kern
*C:
C e g
G b dd
A cc ee
E g b
F a cc
C e g
F a cc
G b dd
*-

Rhythm can be added to the output **kern data as shown in the following examples. This is useful if you want to align to a musical score or listen to the resulting pitches by converting the result into a MIDI file. A constant rhythm value can be prefixed to each output chord note by using the -P option followed by a **recip rhythm (although -P will also prefix any arbitrary text).

Example. Add half note rhythm to all chord notes using the -P (prefix) option.

**harm
*C:
I
V
vi
iii
IV
I
IV
V
*-
⇒ harm2kern -P 2 ⇒
**kern
*C:
2C 2e 2g
2G 2b 2dd
2A 2cc 2ee
2E 2g 2b
2F 2a 2cc
2C 2e 2g
2F 2a 2cc
2G 2b 2dd
*-

Example. Include a **recip or **kern spine with the input to automatically generate rhythmic values in output.

**recip	**harm
*	*C:
4	I
2	V
4	vi
8	iii
8	IV
4	I
2	IV
1	V;
*-	*-
⇒ harm2kern  ⇒
**kern
*C:
4C 4e 4g
2G 2b 2dd
4A 4cc 4ee
8E 8g 8b
8F 8a 8cc
4C 4e 4g
2F 2a 2cc
1G; 1b; 1dd;
*-

Automatic transpositions of **harm data can be done before or after conversion to **kern data with the transpose command. Also note that the following input data was created by appending the conversion to **kern data to the input **harm data by using the -a option.

Example. Transposing Pachelbel’s canon chords to F♯ major.

**harm	**kern
*C:	*C:
I	C e g
V	G b dd
vi	A cc ee
iii	E g b
IV	F a cc
I	C e g
IV	F a cc
V	G b dd
*-	*-
⇒ transpose -qk f#  ⇒
**harm	**kern
*F#:	*F#:
I	F# a# cc#
V	c# ee# gg#
vi	d# ff# aa#
iii	A# cc# ee#
IV	B dd# ff#
I	F# a# cc#
IV	B dd# ff#
V	c# ee# gg#
*-	*-

Here is a chord label sampler with conversions into pitches:

Example. Various chord types

**harm	**name
*C:	*
I	major triad
i	minor triad
io	diminished triad
I+	augmented triad
viio7	half dim. 7th
viioD7	fully dim. 7th
I7	MM seventh
io7	dM seventh
I7-	dM seventh
N	Neapolitan chord
*-	*-
⇒ harm2kern  ⇒
**kern
*C:
C e g
C e- g
C e- g-
C e g#
B dd ff aa
B dd ff aa-
C e g b
C e- g- b
C e g b
D- f a-
*-