This functions a generic form of tertian harmony representation, commonly used in music theory.
In this representation, the root of a chord is indicated as **kern, followed by one or more
quality indicators, like "CMM" (C major seventh).
Arguments
- x
An
atomicvector.The
xargument can be any (atomic) vectors- Key
The diatonic key used by the parser, deparser, and transposer.
Defaults to
NULL, which is interpreted as C major.Must be a
diatonicSetor something coercable todiatonicSet; must be either length1orlength(x).- transposeArgs
An optional list of arguments passed to a
transpose()call.Defaults to an empty
list().Must be a
listof named arguments totranspose().- parseArgs
An optional list of arguments to the chord parser.
Defaults to an empty
list().Must be a
listof named arguments to the chord parser.- inPlace
Should non-chord information be retained in the output string.
Defaults to
FALSE.Must be a singleton
logicalvalue: an on/off switch.
Details
The first quality after the root indicates the quality of the triad. Subsequent qualities, if present, indicate the quality of the 7th, 9th, 11th, and 13th respectively. Some examples:
M: major triadMm: dominant-seventh chordMM: major-seventh chordMmm: dominant-seventh-with-flat-9 chord.oo: fully-diminished-seventh chord.
Missing extensions can be indicated in their position using ..
For example, E-Mm.P indicates a E-flat dominant-11th chord with no 9th.
Missing members of the triad can be indicated by specifying either 5 or 3 immediately after the root, but before any
quality indicators.
For example, C5M indicates a C major chord with no 3rd, while G3mm indicates a G-minor-seventh chord with missing 5th.
The default quality indicators are P (perfect), M (major), m (minor), o (diminished), or + (augmented), but these
can be overridden by calls to their respective arguments: for example, tertian('Cdim', diminish = 'd').
Inversions
Inversions are indicated with slash notation, with the scale degree to the right of the slash.
For example, a first-inversion A major chord would be AM/3.
Examples
romanNumerals <- c('2I', '2IV7', '1V', '2vi', '2-VI', '2iio7', '2Vb9')
tertian(romanNumerals)
#> [1] "CM" "FMM" "GM" "Am" "AbM" "Dom" "GbMm/7"
tertian(romanNumerals, Key = 'A:')
#> [1] "AM" "DMM" "EM" "F#m" "FM" "Bom" "EbMm/7"
if (FALSE) {
B075 <- readHumdrum(humdrumRroot, "HumdrumData/BeethovenVariations/B075_00_05_a.krn")
with(B075[[,2]], tertian(Token))
results
}