Skip to contents

These functions output roman numeral representations of a tertian harmony. The **harm representation is the most widely used standard for roman numeral notation in humdrum data. Unlike traditional roman numerals, **harm does not indicate inversions with figuration, using lowercase letters (a, b, c, etc.) instead. The roman function however does output (relatively) traditional figures.

The output format of roman() is very similar to **harm. The main difference is that inversions are indicated using traditional figures , like 653, instead of **harm's simpler system (using letters). So, for example, if we take the input E7/B in the key of A major, we'll get:

Usage

harm(
  x,
  ...,
  Key = NULL,
  transposeArgs = list(),
  parseArgs = list(),
  inPlace = FALSE
)

roman(
  x,
  ...,
  Key = NULL,
  transposeArgs = list(),
  parseArgs = list(),
  inPlace = FALSE
)

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 to diatonicSet; must be either length 1 or length(x).

transposeArgs

An optional list of arguments passed to a transpose() call.

Defaults to an empty list().

Must be a list of named arguments to transpose().

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

  • harm('E7/B', Key = 'A:') => "V7c"

  • roman('E7/B', Key = 'A:') => "V643"

Examples

tertian <- c('AM', 'AMm/3', 'DM', 'Dm', 'B-MM', 'AM/5', 'EMmm')

harm(tertian, Key = 'A:')
#> [1] "I"    "Im7b" "IV"   "iv"   "-II7" "Ic"   "Vm9" 
roman(tertian, Key = 'A:')
#> [1] "I"    "I6b5" "IV"   "iv"   "-II7" "I64"  "Vb9" 

if (FALSE) {
B075 <- readHumdrum(humdrumRroot, "HumdrumData/BeethovenVariations/B075_00_05_a.krn")

with(B075[[ , 2]], harm(Token))
with(B075[[ , 2]], roman(Token))
}