# Matrix music (Part I)

As I’m reading through every article that I see about data science there are a few themes that keep cropping up, namely statistics, linear algebra, Python, SQL, and matrices. It’s that last one that I want to talk about in this post, though not in the mathematical way that one might expect. Well, maybe it is. You’ll see.

I wanted to share a little bit more about my music analysis background specifically as it relates to as many concepts as I can which are related to math and data things. That’s the basis for this whole blog. So, let’s jump right into it.

In 12-tone serial music a composer eschews what we would think of as standard scales, which, in a broad sense, are referential to a single pitch center, or key. Instead, serial composers devise rows containing all 12 pitches of the chromatic scale. Now, these rows aren’t necessarily randomized, although they can be I suppose, but rather create their own kind of references. A row can favor a certain interval (distance between pitches), or a certain collection, meaning groups of pitches that belong to the same set-class. Once the row is set (easier said than done!) the composer is free to manipulate it by retrograding, transposing, inverting, or some combination therein. However, the important thing to realize is that no matter what manipulation the composer decides upon, the structural integrity (meaning the interval structure) of that row is not destroyed.

I know that there is a lot of jargon in that paragraph, but stick with me and hopefully I can clear all of this up.

Now, as a theorist, it is my job to uncover these processes. Again: easier said than done. First, I have to ask myself, is this a serial work? That’s pretty much done by listening at first, and then mapping out some pitches. Since the pitches are no longer referencial to a scale, or focusing back on a single pitch, theorists, in the analysis of 12-tone music, typically use integer notation to represent pitch-classes. It’s base 12 arithmetic and immutable. Therefore C = 0, C#D-flat = 1, D = 2, D#/E-flat = 3 etc. all the way back around to C = 0. Notice that since we no longer consider these pitches as referring back to a single pitch (key) or scale that it no longer matter how the pitches are spelled. E, Dx, F-flat — no matter what you call it, it’s 4. Same for F#/G-flat/Ex, all 6. It doesn’t matter in what octave the pitches are placed, the numbers never change. Ever. So now we have a level playing field.

So we can think of those pitches, when formed into a row of some sort, like the one below.

Right now, as I look at it, sure there are a few things that pop out at me, but it’s much easier to see patterns jump out when we insert that row into a matrix. You can see that below.

Quick note on reading a matrix here: rows left to right are all transpositions of the original row, which is at the top; columns top to bottom are inversions of the row; bottom to top are retrograde-inversions; right to left are retrogrades.

Transpositions are simple — they involve just adding a single number to every pitch integer. Want to raise the original row by 4 half steps? Just add 4 to every number, mod 12. So 9 becomes 1, 0 becomes 4, 3 becomes 7 and so on. Want to invert it? Well, you could look at the matrix, sure, but to understand what is going on just explore the intervals. Nine to 0 is 3 (9 + 3 = 0), so what is 9–3? 6; then 0 to 3 is +3, 6–3 = 3, following that leftmost column down. That, is how the matrix is made. So the interval structure remains intact.

Let’s keep exploring this matrix though, because it has some other interesting properties. I think they are easier to see if we overlay some helpful markers. Check this out:

Now we can start to see some of the interesting patterns that appear in this matrix. The solid line divides the 12x12 matrix into 4 quadrants, while the dashed line divides *those* quadrants into sub-quadrants. Now let’s look at each of those smaller sub-quadrants.

Take the sub-quadrants in the upper-left quadrant. Notice how the upper-leftmost quadrant has only the pitch integers 0, 3, 6, 9. The next subquadrant to the right of that has only the pitch integers 2, 5, 8, e (e and t are 11 and 10, respectively. This helps to avoid confusion when the numbers start flying around. We don’t want 11 to look like two ones.) We also have a sub-quadrant of 1, 4, 7, t and finally another 0, 3, 6, 9.

Ok, now things are starting to get interesting. This is a property not inherent in every 12-tone matrix. What do these tetrachords (collections of 4 pitches) have in common, if anything? Look at 0, 3, 6, 9, which we would notate as {0,3,6,9}, like a dictionary in Python. Now look at {2,5,8,e}. Notice how {0,3,6,9}-1 = {2,5,8,e}? They are the same tetrachord, related by transposition. Look at it another way: by interval structure. 0+3=3, 3+3=6, 6+3=9. Each pitch is separated by 3 semitones. 2+3=5, 5+3=8, 8+3=e. Again, each pitch is separated by 3 semitones. This means that the tetrachords belong to the same set-class. And, yes, {1,4,7,t} does too.

What is interesting about these particular tetrachords is that they are also symmetrical. The distance between the first two pitches (index numbers 0 and 1, in Python terms) is +3 (or -9 if you want to think of it that way, weirdo), is the same as the distance between the last two pitches (index numbers 2 and 3). We could say +3+3.

There aren’t too many of these chords out there in the wild. Check it out. Let’s just cycle through tetrachords adding 3 to each pitch and see how quick we end up with a repeat:

{0,3,6,9}, {1,4,7,t}, {2,5,8,e}, {3,6,9,0}…..

Wait a second. We’ve closed the loop already. There are only 3 distinct members of that set-class. By the way, we catalog set-classes in one of two ways: Forte name (named after Allen Forte), or by prime form. Prime form is the form of the sonority that is most compact and set to 0. In this case {0,3,6,9} would be the prime form of set-class. When we list simultaneities in prime form they look like this: [0369].

This is only scratching the surface. There can be, and usually is, a lot more math involved. I’ll get to that in my next post where even more connections will be found between math, coding, music, and music analysis.