Chord matrices

Much of regular temperament theory is formulated in terms of intervals, for which we have a fairly extensive algebraic theory. For instance, any just intonation interval can be written in monzo form, the set of which forms a "group" or "lattice," and which is dual to another lattice of vals. Many of these ideas can be extended to chords in a pretty straightforward and equally algebraic way using chord matrices, which we will explore in this article.

Preliminaries

Monzos, Vals, and Matrices

In the convention we will use in this article, a monzo will be written as a column vector and denoted in bra-ket notation using a "ket":

$\displaystyle \begin{bmatrix} a \\ b \\ c \end{bmatrix} = |a\; b\; c\rangle$

And its dual, a val, will be written as a row vector and denoted using a "bra":

$\displaystyle \begin{bmatrix} x & y & z \end{bmatrix} = \langle x\; y\; z|$

The bracket product of the two is then represented via a matrix multiplication:

$\displaystyle \begin{bmatrix} a \\ b \\ c \end{bmatrix} \cdot \begin{bmatrix} x & y & z \end{bmatrix} = \langle x\; y\; z|a\; b\; c\rangle = ax + by + cz$

Prime Limits

In the article that follows, we will typically assume that the monzos we are talking about are in some prime limit, rather than being in some arbitrary subgroup. Thus, a monzo with three coefficients represents an interval in the 5-limit, a four-coefficient monzo represents an interval in the 7-limit, and so on. The theory presented below can also be extended to arbitrary subgroups, although it can be a bit involved to do so.

From Chords to Ordered Chords

There are many different subtly different notions of what a "chord" is: an unordered collection of absolute pitches ("C4 E4 G4"), an unordered transposition-invariant collection of pitches specified as intervals relative to some root ("root M3 P5"), or even an unordered, octave-equivalent collection of pitch classes without regard to multiplicity ("C major"), or even possibly made transposition-invariant ("major chord"), and so on.

From a mathematical standpoint, it turns out that the more thing we lump together into a single notion of "chord," the harder it is to represent these things mathematically. The space of unordered octave-equivalent chords is notoriously non-simple and requires the mathematics of orbifolds, for which music theorist Dmitri Tymoczko is well-known for having written about extensively. For the purposes of what we want to do, it is much simpler if we treat 4:5:6, 2:3:5:8, 1:2:3:4:5:6, etc as all being different entities.

Things get even simpler if we treat the different permutations of the same chord as being different entities. For instance, suppose we have three voices, which we'll call #1, #2, and #3. Then if we want them to play 4:5:6, there are six different possible assignments of notes in that chord to those voices:

1. (1/1, 5/4, 3/2)
2. (1/1, 3/2, 5/4)
3. (5/4, 1/1, 3/2)
4. (5/4, 3/2, 1/1)
5. (3/2, 1/1, 5/4)
6. (3/2, 5/4, 1/1)

We will treat these all as different entities. (In harmonic entropy, these are often notated as 4:5:6, 4:6:5, 5:4:6, 5:6:4, 6:4:5, and 6:5:4, a notation we will sometimes use.)

We will call these entities ordered chords, or simply "orderings of chords," or if we really want to be precise, ordered chord voicings, although we may simply just call them "chords" when the meaning is clear. They will be the basic object of our study.

A Historical Tangent on the Term "Chord"

There is some terminological subtlety regarding what the term "chord" actually means, as it can vary from author to author. It has even sometimes been the subject of some debate. We will not really attempt to enter this debate here, other than to simply outline the situation and choose a usage for this article.

Sometimes, in tuning theory, when one uses terms like "chord," or "triad," "tetrad," etc, one is subtly using it in a different way than is common in colloquial usage, or even in academia. For instance, a triad is viewed as an entity that has three notes in it, a tetrad has four notes, and so on. We may say that 4:5:6 is a triad, 2:3:5:8 is a tetrad, and 1:2:3:4:5:6 is a hexad. We may even say that all three are different chords, although it is of course always understood that these are all just different octave-transpositions of one another, with some extra notes being doubled.

But colloquially, when one says to play a "G major chord" on guitar, for instance, one tends to think of chords in a very abstract sense, in terms of an unordered collection of octave-equivalent pitch classes, even without regard to how many notes are really being played. In other words, the thing one calls "G major" on guitar typically has six notes... although it could have a different six notes if you play it as a E-shaped barre chord, rather than the open string version... or maybe five notes, if you play it as an A-shaped barre chord... or maybe four... it doesn't really matter, as long as we get the notes G, B, and D in there somewhere, typically with G in the bass. In this usage, all of these things are thought of as "the same" chord; they are called voicings of the abstract G major chord in a general sense. In fact, sometimes we can even literally omit notes from a chord, such as the fifth, and still treat it as "the same" chord in this usage.

In this article, we will go with the sense in which "triad" literally means a three-note voicing, "tetrad" literally means a four-note voicing, etc.

And this clears up the preliminaries, so let's begin!

From Monzos to Chord Matrices

The basic idea is that a chord can be represented as a list of intervals from some pitch that we have labeled 1/1, and we will represent this list as a matrix in which the columns are monzos. Before we can outline explicitly how that works, however, we should first note that there are two different ways in which we can interpret an interval to begin with.

Given some interval, let's say 3/2, we could interpret it as one pitch, which happens to be some ~701.955 cents from whatever pitch we have labeled 1/1.

Or, we could interpret it as a musical dyad, e.g. two notes sounding simultaneously, e.g. as a dyad or musical interval, for which the bottom note is the thing we have called 1/1 and the top note is ~701.955 cents higher.

We have the same situation with chords. Given a list of intervals such as (5/4, 3/2, 7/4), this could represent a three-note chord of 5:6:7 in which the lowest note is the pitch we have labeled "5/4." We will call this an absolute chord. Or it could represent the four note chord of 4:5:6:7 with the 1/1 being placed explicitly. We will call this a relative chord.

We will explore both representations, but to start, we will go with the first representation. This means that we are interpreting monzos as representing single pitches placed some interval from whatever we are calling 1/1.

Absolute Chord Matrices

Given some ordered collection of notes in p-limit just intonation, each represented as a monzo which is some just interval away from some arbitrary note we have labeled 1/1, we can represent this collection as an absolute ordered chord voicing matrix, or just absolute chord matrix for short. For instance, the JI major chord of 4:5:6, with the lowest note transposed equal to what we're calling 1/1, can be represented as follows

$\displaystyle \begin{bmatrix} 0 & -2 & -1 \\ 0 & 0 & 1 \\ 0 & 1 & 0 \end{bmatrix}$

where the columns can be viewed as monzos representing 1/1, 5/4, and 3/2, respectively. Note that we have inserted the 1/1 explicitly.

If we want to instead represent the same 4:5:6, but now where the root is the pitch called 3/2, we would instead write that like this:

$\displaystyle \begin{bmatrix} -1 & -3 & -2 \\ 1 & 1 & 2 \\ 0 & 1 & 0 \end{bmatrix}$

so that the columns now represent 3/2, 15/8, and 9/4. The pointwise difference between these two matrices is the matrix

$\displaystyle \begin{bmatrix} -1 & -1 & -1 \\ 1 & 1 & 1 \\ 0 & 0 & 0 \end{bmatrix}$

which is a matrix with all columns equal to 3/2.

Let's go back to that first un-transposed 4:5:6 chord. We could swap the columns around to get a different matrix representing a different reordering of the same chord:

$\displaystyle \begin{bmatrix} 0 & -1 & -2 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}$

This is the same chord, just reordered so that now column #3, representing "voice #3," has the 5/4 and likewise voice #2 has the 3/2. Again, this is being treated as a different "ordered chord," or we could call it a different ordering of the same chord; whichever you like. All of the different orderings of the same chord can be obtained by right-multiplying the chord by a Wikipedia:permutation matrix.

These matrices can be left-multiplied by a temperament mapping matrix, yielding the tempered version of the same chord in tempered coordinates. For instance, we can meantone-temper our 4:5:6 chord to get

$\displaystyle \begin{bmatrix} 1 & 1 & 0 \\ 0 & 1 & 4 \end{bmatrix} \cdot \begin{bmatrix} 0 & -2 & -1 \\ 0 & 0 & 1 \\ 0 & 1 & 0 \end{bmatrix} = \begin{bmatrix} 0 & -2 & 0 \\ 0 & 4 & 1 \end{bmatrix}$

The columns of the resulting matrix are tempered monzos, or tmonzos, which in this case happen to be in the |octave fifth> basis of meantone. So the columns tell you that the first note is the origin, the second note is four fifths minus two octaves (e.g. the meantone major third), and the third note is just one fifth (e.g. the meantone fifth). Thus, we can see that chord matrices behave similarly to monzos in this regard.

One important thing to note is that we are using these matrices quite differently than we are, for instance, with Subgroup basis matrices. Subgroup basis matrices also have columns equal to monzos, but in that situation we typically care about making sure the columns are linearly independent from one another, so that an Nx3 matrix really has rank 3. This is because we are using them primarily to represent some subgroup, so the real point of these matrices is to look at the column span. We do not really care about that in this case and we don't even care if one of the columns is 1/1.

Monotonicity

Note again the difference between the chords

$\displaystyle \begin{bmatrix} 0 & -2 & -1 \\ 0 & 0 & 1 \\ 0 & 1 & 0 \end{bmatrix}$

and

$\displaystyle \begin{bmatrix} 0 & -1 & -2 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}$

If we are in JI, the first one is in pitch-ascending order from left to right, and the second is not. Thus, we say the first is monotonic or monotone and the second is not, with respect to the JIP (e.g. the tuning map which gives the JI tuning for monzos).

That "with respect to the JIP" is important. To see this, let's look at the meantone chord matrix formed from playing the notes "C" and "Dbb" at the same time, again in the |octave fifth> basis and where the note "C" is the origin:

$\displaystyle \begin{bmatrix} 0 & 7 \\ 0 & -12 \\ \end{bmatrix}$

Now, the thing is, the monotonicity of this matrix depends on the particular meantone tuning we are using. If the fifth is flat of 12-EDO, then this is a monotonic matrix; if we are sharp then it isn't. Thus, monotonicity is not an absolute quantity; it only exists relative to some tuning map. (When working in JI, however, we will often assume the JIP as the tuning map, when it's convenient.)

Vector Space Properties

Within some p-limit, the space of all chords of size n forms a vector space, called the n-adic p-limit chord space (not to be confused with Gene Smith's Chordal space, which is a different construction using a different notion of space). That is, the various mxn matrices themselves can be thought of as vectors to be added pointwise, or multiplied by a scalar, etc, similar to regular vectors.

Sometimes, it is notationally convenient to "flatten" these matrices so that they are written literally as an nx1 block matrix, meaning a vector

$\displaystyle \begin{bmatrix} 0 \\ 0 \\ 0 \\ \hline -2 \\ 0 \\ 1 \\ \hline -1 \\ 1 \\ 0 \end{bmatrix}$

We will not really dive further into this notation into this article, simply mentioning it in passing here, although we may sometimes use it just for clarity.

It is also noteworthy that the space of chord matrices can easily be turned into a Banach space by adding a norm on it - and there are several of interest, although as we will see, some of the really interesting things are obtained by looking at "asymmetric norms" instead. However, for us to get into that, we will first need to look at relative chord matrices.

Relative Chord Matrices

Sometimes we really do not care about the exact transposition of a chord. This is most common when we want to refer to a chord shape like 4:5:6 without being particular about how it is transposed, and look at the various properties the chord has, such as its complexity. In this situation, we will then look at relative chord matrices.

It so happens that relative chord matrices can be unambiguously specified using the other interpretation of a list of intervals we specified before. That is, we instead interpret the list [5/4, 3/2, 7/4] as having an "implicit" 1/1 in the front, so that it refers to the chord 4:5:6:7 played on the note called 1/1, rather than interpreting it as a three-note triad of 5:6:7 played on the note called 5/4. Sometimes we will write this as [(1/1), 5/4, 3/2, 7/4] when we want to make it explicit.

So for instance, the relative chord matrix representation of 4:5:6 would simply be

$\displaystyle \begin{bmatrix} -2 & -1 \\ 0 & 1 \\ 1 & 0 \end{bmatrix}$

where the columns are now just [5/4, 3/2], and which is interpreted as representing all 4:5:6 chords.

Note that the different orderings of any chord still correspond to different relative chord matrices. As we noted, the above chord corresponds to [1/1, 5/4, 3/2]. If we flip this backwards to get [3/2, 5/4, 1/1] - which is transpositionally equivalent to [1/1, 5/6, 2/3] - we instead get

$\displaystyle \begin{bmatrix} -1 & 1 \\ -1 & -1 \\ 1 & 0 \end{bmatrix}$

Which is simply a different non-monotonic reordering of the same major chord (note this is not the same as the minor chord!). Note that if we take the original chord and negate the entries, on the other hand, we really do get the utonal inverse (or at least one reordering thereof):

$\displaystyle \begin{bmatrix} 2 & 1 \\ 0 & -1 \\ -1 & 0 \end{bmatrix}$

Which corresponds to the list [1/1, 4/5, 2/3], or a utonal minor chord. As our original major chord matrix was the unique monotonic ordering of the major chord, the inverse here is the unique anti-monotonic ordering of the minor chord.

Reordering Matrices

Any two relative matrices which are simple reorderings of one another are related via what we may term a reordering matrix. For instance, if $A$ and $B$ are reorderings of one another, then we have that $A\cdot O = B$ for some matrix $O$, which we call a reordering matrix. For chords of size $N$, there are $N!$ different reordering matrices which map each chord to a different reordering of the same chord. For instance, the following is a reordering matrix on triads:

$\displaystyle \begin{bmatrix} -1 & -1 \\ 0 & 1 \end{bmatrix}$

This map, for instance, takes the relative matrix representing [(1/1), 5/4, 3/2] to [(1/1), 4/5, 6/5].

Relationship to JI Chord Ratios

Relative chord matrices can be viewed as representing JI chord ratios, like 4:5:6, or 4:5:6:7, etc, in a rather direct way. Given such a chord, let's say 4:5:6:7, we can simply form all of the dyads by dividing all of the latter notes from the first one, so that we get the set [5/4, 3/2, 7/4]. Then, we can simply form a matrix with monzos as columns:

$\displaystyle \begin{bmatrix} -2 & -1 & -2 \\ 0 & 1 & 0 \\ 1 & 0 & 0 \\ 0 & 0 & 1 \end{bmatrix}$

Similarly, we can work backward from any such relative chord matrix by simply going backward, expressing it as a list of intervals, and then re-expressing that as a chord ratio. Thus, there is a direct one-to-one correspondence between JI chords represented in lowest terms and relative chord matrices. For absolute chord matrices, there is instead a direct correspondence between JI chord ratios along with one extra "root ratio" specifying the choice of root.

This is rather straightforward, but the linear-algebraic relationship between relative and absolute chord matrices is really what is interesting, and will serve as a starting point for many useful properties.

Relative Chord Matrices as Quotient of Absolute Chord Matrices

The basic idea is that, rather than building the above representation a priori, we can instead start from first principles with our set of absolute chord matrices, and then say that any two matrices are deemed "equivalent" if they are transpositions of one another. Then, we can look at the resulting equivalence classes and see what we get.

For instance, in our prior example with absolute matrices, we had two 4:5:6 chords which differed only in root; the first was on 1/1 and the second on 3/2. The pointwise difference of these two absolute chord matrices was

$\displaystyle \begin{bmatrix} -1 & -3 & -2 \\ 1 & 1 & 2 \\ 0 & 1 & 0 \end{bmatrix} - \begin{bmatrix} 0 & -2 & -1 \\ 0 & 0 & 1 \\ 0 & 1 & 0 \end{bmatrix} = \begin{bmatrix} -1 & -1 & -1 \\ 1 & 1 & 1 \\ 0 & 0 & 0 \end{bmatrix}$

in which we can see all of the columns are identical replicas of one another. Such matrices are simple; since we are adding 3/2 to every column at the same time, we are transposing every note identically, so of course we are transposing the entire chord. We will call this a transposition matrix, so that the above is a 5-limit triadic transposition matrix.

In general, any two matrices which are transpositions of one another will differ by some transposition matrix. So, we can build our space of relative chord matrices as a linear quotient of our space of absolute chord matrices, simply by quotienting out every such transposition.

One way to think of this is to again flatten our triad matrices to vectors. Then, in the resulting vector space, we want to "temper out" the "comma" of

$\displaystyle \begin{bmatrix} -1 \\ 1 \\ 0 \\ \hline -1 \\ 1 \\ 0 \\ \hline -1 \\ 1 \\ 0 \end{bmatrix}$

and in fact, we want to "temper out" all "commas" of the form

$\displaystyle \begin{bmatrix} a \\ b \\ c \\ \hline a \\ b \\ c \\ \hline a \\ b \\ c \end{bmatrix}$

or, written in the usual matrix notation, we are quotienting by all matrices of the form

$\displaystyle \begin{bmatrix} a & a & a \\ b & b & b \\ c & c & c \end{bmatrix}$

This is a 3D null space, and since our 3x3 matrices form a 9D vector space, the result will be a 6D vector space, which is what we derived before with our 3x2 representation of a relative triad.

This is a very powerful way to look at things. Sometimes, instead of just looking at some relative chord matrix, we will instead view it as useful to look at all of the absolute chord matrices that correspond to the same relative chord matrix (e.g. which are just transpositions of one another, and thus which are preimages of the relative chord matrix under the quotient space operator). Oftentimes, for some relative chord matrix, there will be one corresponding absolute chord matrix with special properties that make things easy to compute, which we will look at next.

Expanded Relative Chord Matrices and Reduced-Rational Form

Earlier, we mentioned that relative matrices correspond most directly to JI chord types, such as "4:5:6", expressed in lowest terms. That is, for any such chord a:b:c, we simply create the relative matrix corresponding to [b/a, c/a] and vice versa.

It turns out that we can represent unreduced chord ratios using what would appear to be absolute chord matrices, but where we are now interpreting these matrices slightly differently. Instead of interpreting them as a set of absolute pitches from some tonic, we are instead interpreting them as a relative chord type, along with a spurious common factor among the notes of the chord. This common factor can also itself be a fraction, so that we can have not only 12:15:18 and 8:10:12 as different unreduced versions of 4:5:6, but also 2:5/2:3 as well, with a common factor of 1/2. We will call these expanded relative chord matrices.

For instance, the following chord matrix was previously used to represent 4:5:6 on the root, as an "absolute chord matrix":

$\displaystyle \begin{bmatrix} 0 & -2 & -1 \\ 0 & 0 & 1 \\ 0 & 1 & 0 \end{bmatrix}$

In this situation, however, where we are interpreting it as an expanded relative chord matrix, which we will notate as 1:5/4:3/2. We can move everything up by an octave to get

$\displaystyle \begin{bmatrix} 1 & -1 & 0 \\ 0 & 0 & 1 \\ 0 & 1 & 0 \end{bmatrix}$

which we will notate as 2:5/2:3. We can move it up one more octave to get

$\displaystyle \begin{bmatrix} 2 & 0 & 1 \\ 0 & 0 & 1 \\ 0 & 1 & 0 \end{bmatrix}$

which we will notate as 4:5:6, which we note is in lowest terms.

Any expanded relative chord matrix which represents in this way a chord ratio in lowest terms we will say to be in reduced-rational form, or a reduced-rational expanded relative chord matrix if you want to say the entire thing. Otherwise, we will say it is an unreduced-rational expanded chord matrix. These matrices have the following properties:

1. All entries are positive.
2. There is at least one zero in each row of the matrix.

To see why this is, let's go up one more octave, so that we get

$\displaystyle \begin{bmatrix} 3 & 1 & 2 \\ 0 & 0 & 1 \\ 0 & 1 & 0 \end{bmatrix}$

this now represents 8:10:12, which has a common factor of two, and we can also see that that top row has positive entries but no zeros. Since there are no zeros, this means every note in the ratio has a factor of two, so that we can remove this factor to get our reduced version. The criterion that at least one note has no factor of two is equivalent to the criterion that there be at least one zero in that row, and likewise for all rows.

This is an extremely useful thing to look at, as it will enable us to put a notion of "length" or "complexity" on our space of chord matrices.

Simple Complexity: Generalized Tenney Height of a Chord and Tenney Chord Space

Now that we have this together, we can define the generalized Tenney height of any expanded relative chord matrix. We will define for x_1:x_2:...:x_n as

$\displaystyle T_s(x_1:x_2:\ldots:x_N) = \frac{1}{N} \log(x_1 \cdot x_2 \cdot \ldots \cdot x_N) - \frac{1}{s}\log(N)$

where $s$ represents a free parameter regarding how differently-sized chords scale with one another (typically set to $s=1$). We will call this the normalized Tenney height in this article for reasons to be made clear soon below.

We note that this is a type of simple complexity or "otonalness" measure of the chord, in that we are only evaluating the complexity of the entire chord, rather than looking at any subsets or subdyads, but we will start here.

The normalized Tenney height of any chord matrix, then, is a simple is simply the sum of the Tenney heights of the columns, then normalized in the above way. For instance, suppose our expanded relative chord matrix is expressed as a block matrix called $M$

$\displaystyle M = \begin{bmatrix} m_1 | m_2 | m_3 | \ldots | m_N \end{bmatrix}$

where $m_1, m_2, m_3, \ldots, m_N$ are all different monzos forming the columns of our expanded relative chord matrix. Then the Tenney height of $M$ is equal to

$\displaystyle M = \frac{1}{N} \left(||m_1||_{T1} + ||m_2||_{T1} + \ldots + ||m_N||_{T1} \right) - \frac{1}{s}\log(N)$

Now, this would be a norm on our space of chord matrices, except for the subtraction of this term at the end, because the norm of the zero vector must be zero. But if we only care about chords of size $N$, we don't need that, because it's only to normalize comparisons between chords. So what we can do is simply just ditch that to get the unnormalized Tenney height or unnormalized Tenney norm of the chord matrix - and we may as well ditch the $1/N$ term too, while we're at it:

$\displaystyle M = \left(||m_1||_{T1} + ||m_2||_{T1} + \ldots + ||m_N||_{T1} \right)$

This very simple quantity is the unnormalized Tenney norm for our relative chord matrix, and it can be used to build some very interesting things.

Tenney Height as Asymmetric Norm on (Non-Expanded) Relative Chord Matrices

We can use this to also see what the Tenney Height looks like for non-expanded relative chord matrices. For any such matrix, we first "expand" it back to an expanded relative chord matrix, and then transpose it until it is in the unique reduced-rational transposition, and then get the Tenney norm on that, and then assign the result to our non-expanded relative chord matrix. Let's see what that looks like.

For starters, let's look at 4:5:6 again. We have as our matrix

$\displaystyle \begin{bmatrix} -2 & -1 \\ 0 & 1 \\ 1 & 0 \end{bmatrix}$

which represents the list [5/4, 3/2] with the implicit 1/1. We first convert it back to an expanded relative chord matrix, and one way of doing so is to simply add a column of zeros to the left, making it explicit:

$\displaystyle \begin{bmatrix} 0 & -2 & -1 \\ 0 & 0 & 1 \\ 0 & 1 & 0 \end{bmatrix}$

Then we need to put it in the reduced-rational form, which means every entry must be positive and every row must have at least one zero. To do this, we just add [2 2 2] to the first row to again get:

$\displaystyle \begin{bmatrix} 2 & 0 & 1 \\ 0 & 0 & 1 \\ 0 & 1 & 0 \end{bmatrix}$

It is pretty easy to see that, when this complexity is viewed directly as a function on the original non-expanded relative chord matrix, that we don't get a norm, as for any norm we have $||x|| = ||-x||$, whereas we get different results for 4:5:6 and 10:12:15 using this function, both of which have relative chord matrices that are inverses of one another (up to permutation). On the other hand we still have that this function is subadditive and non-negative homogeneous, thus it defines an Wikipedia:asymmetric norm.

This can be expanded to look at a "recursive" type of complexity where we also quantify the different subdyads, or in general subchords of any chord.