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
atomic
vector.The
x
argument 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
diatonicSet
or something coercable todiatonicSet
; must be either length1
orlength(x)
.- transposeArgs
An optional list of arguments passed to a
transpose()
call.Defaults to an empty
list()
.Must be a
list
of named arguments totranspose()
.- parseArgs
An optional list of arguments to the chord parser.
Defaults to an empty
list()
.Must be a
list
of named arguments to the chord parser.- inPlace
Should non-chord information be retained in the output string.
Defaults to
FALSE
.Must be a singleton
logical
value: 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
}