Skip to contents
source('vignette_header.R')
## Loading required package: bit64
## Loading required package: bit
## 
## Attaching package: 'bit'
## The following object is masked from 'package:base':
## 
##     xor
## Attaching package bit64
## package:bit64 (c) 2011-2017 Jens Oehlschlaegel
## creators: integer64 runif64 seq :
## coercion: as.integer64 as.vector as.logical as.integer as.double as.character as.bitstring
## logical operator: ! & | xor != == < <= >= >
## arithmetic operator: + - * / %/% %% ^
## math: sign abs sqrt log log2 log10
## math: floor ceiling trunc round
## querying: is.integer64 is.vector [is.atomic} [length] format print str
## values: is.na is.nan is.finite is.infinite
## aggregation: any all min max range sum prod
## cumulation: diff cummin cummax cumsum cumprod
## access: length<- [ [<- [[ [[<-
## combine: c rep cbind rbind as.data.frame
## WARNING don't use as subscripts
## WARNING semantics differ from integer
## for more help type ?bit64
## 
## Attaching package: 'bit64'
## The following object is masked from 'package:utils':
## 
##     hashtab
## The following objects are masked from 'package:base':
## 
##     :, %in%, is.double, match, order, rank
## Loading required package: rlang
## Welcome to humdrumℝ!
##  You are using humdrumℝ version 0.7.0.4
## 
## Attaching package: 'humdrumR'
## The following object is masked from 'package:rlang':
## 
##     int
## The following objects are masked from 'package:stats':
## 
##     filter, lag, sigma, step
## The following objects are masked from 'package:graphics':
## 
##     grid, segments
## The following object is masked from 'package:utils':
## 
##     timestamp
## The following object is masked from 'package:methods':
## 
##     signature
## The following objects are masked from 'package:base':
## 
##     quarters, table

Diatonic Sets

As mentioned in the Pitch and Tonality vignette, a normative diatonic key consists of a set of seven consecutive pitch chroma on the Line of Fifths.

A diatonic set can be ordered either by line-of-fifths position:

LoF -1 0 1 2 3 4 5
Note F C G D A E B

or in “scale-order,” which corresponds to steps of \(+2\) (or \(-5\)) modulo 7.

LoF 0 2 4 -1 1 3 5
Note C D E F G A B
Step 1 2 3 4 5 6 7

Tertian Sets

The set of seven notes in a diatonic key can be reimagined as a chord—a set of notes played at the same time. Specifically, a full seven-note diatonic chord is referred to as a 13th chord. However, most chords used in tonal music are subsets of the full diatonic set, in particular three-note triads.

When viewing a diatonic set as a chord, we traditionally order the set as a sequence of ascending thirds, corresponding to intervals of \(+4\) on the line-of-fifths, modulo 7. These tertian steps are usually not wrapped to the octave, resulting in steps 9, 11, and 13, instead of 2, 4, and 6.

LoF 0 4 1 5 2 -1 3
Note C E G B D F A
Step 1 3 5 7 9 11 13

There are \(2^7=\) 128 possible subsets that can be formed from the full diatonic set. Of these, the seven possibilities that are built from consecutive tertian steps are theoretically privileged : i.e., \(\{\{1\}, \{1,3\}, \{1,3,5\}, \{1,3,5,7\}, \{1,3,5,7,9\}, \{1,3,5,7,9,11\}, \{1,3,5,7,9,11,13\}\}\).

A few other possible sets are fairly commonplace in Western theory as well: \(\{1,5, 11\}\) (“sus4”), \(\{1,3,5,9\}\) (“add9”), \(\{1,3,5,13\}\) (“add6”), etc.

Concrete Representations

There are numerous ways tertian sets of notes are traditionally notated or annotated as character strings. Unfortunately, these systems are not always rigorously consistent or logical, with convenient shorthands for common chords which lead to ambiguity, and/or practices rooted in traditional practices with little relevance. Humdrum\(_{\mathbb{R}}\) aims to provide a general approach to make reading/writing chord annotations in many forms possible.

A chord representation is consists of set of at least one of the following elements:

  • The root note.
  • The bass note.
  • The subset of tertian steps which are present.
  • Qualities of the chord steps, relative to an implicit or explicit key.

Traditional chord notation symbols often conflate or merge these various elements in various ways, with numerous common shorthands. In particular, the common diatonic triads—which are abstractly different combinations of qualities of the 3rd and 5th—are represented in various shorthands.

Chord symbols

  • A tonal chroma
  • If the bass note is different than the root note, the bass note is indicated as a separate tonal chroma, separated by a /.
    • This practice is often used to indicate a bass note which is not part of the ostensible chord. For instance, C7/Ab.
  • The 3rd and 5th steps are assumed to be present, with their quality indicated in various ways.
    • In the most consist form, a unique symbol is appended to indicate one of four unique triad types: major, minor, diminished, or augmented. However, in some cases, major is assumed to be the default, and can be ommitted. In other cases, either a major or minor symbol is ommited, and the case of the root symbol is used to indicate major or minor. (In these cases, the case of the root symbol is also matched to the diminished (lower) or augmented (major) symbols).)

Roman numerals

7ths 753 7, 653 65, 643 43, 642 42 2

753:
    1111000
653:
    1110001
643:
    1100011
642:
    1000111

9ths 9753: 1111100 7653: 1111001 6543: 1110011 6432: 1100111 7642: 1001111 11ths 11