knitr::opts_chunk$set( collapse = TRUE, comment = "#>", fig.path = "man/figures/README-", out.width = "100%" )
The corpdiss
R package implements a corpus-based model of dissonance perception.
This model represents the idea that dissonance decreases through familiarity,
and therefore perceptual dissonance should decrease in proportion to
a chord's prevalence in a given musical style.
You can install the current version of corpdiss
from Github by entering
the following commands into R:
if (!require(devtools)) install.packages("devtools") devtools::install_github("corpdiss")
The corpus_dissonance
function estimates the consonance of an individual chord.
library(corpdiss) # Major triad, root position corpus_dissonance(c(60, 64, 67)) # Major triad, first inversion corpus_dissonance(c(64, 67, 72)) # Minor triad, root position corpus_dissonance(c(60, 63, 67)) # Diminished triad corpus_dissonance(c(60, 63, 66)) # Augmented triad corpus_dissonance(c(60, 64, 67))
By default, the corpus_dissonance
function uses chord prevalences
extracted from the McGill Billboard dataset (Burgoyne, 2011).
The dataset's contents were sampled from the Billboard magazine's
United States "Hot 100" chart between 1958 and 1991,
and transcribed by expert musicians.
By default,
the dissonance estimation treats chords as transposition invariant,
and chord pitches as octave-invariant,
but differentiates between different inversions of the same chord.
Different behaviour can be achieved by passing a custom corpus analysis
to corpus_dissonance
(see ?corpus_dissonance
for more details).
It is easy to analyse dissonance using a different corpus, or a different chord representation.
corpus <- hcorp::classical_1[1:5] analysis <- corpus_dissonance_table(corpus, type = "pc_set", add = 0) chord <- c(60, 64, 67) corpus_dissonance(chord, analysis)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.