In the years leading up to his untimely death, the mad Russian Alexander Scriabin began to work sophisticated mathematical structures into his compositions. And one hundred and eleven years after its publication, I have found the perfect means to narrow the audience for this website.
Take a listen to the first four bars of the Poème Opus 71, No. 1.
What wretched chord could create that spine-tingling arpeggio? Would you believe… D major seventh in root position? Yes, really! The same chord that's usually seen as sweet and maybe a touch wistful, as exposed by more conventional harmony:
So the true source of the eerie chill is… well actually the left hand is just playing a shell voicing of B (written C flat) major seventh. In root position. Obviously these two mild-natured chords do not get along, and if you know much about harmony it's not such a mystery. A major seventh contains two 4-semitone intervals, and we're shifting it by 3 semitones (plus an octave) to place it on top of itself. This makes for clashing 1-semitone offsets, with most notes even falling into tone clusters like D flat and D against E flat in a lower octave—it'd be a total modernist mess if not for that octave separation. We would also get the harmless shared note of G flat, but this is exactly what's left out of the B chord in the shell voicing.
The entire work is practically woven out of this idea, of adding one thing to a transposed copy. In preparation to unravel it, I'd like to dissect one of Scriabin's favorite devices, the octatonic scale. This is the symmetric scale that repeats every 3 semitones, alternating 1-step and 2-step intervals.
As discussed here, an octatonic scale is composed of two diminished seventh chords (and it's the complement of another). To put this another way, you can get it by taking one diminished seventh, and adding it to itself shifted up 1 semitone—or 4 or 7 (take note!) or -2, because that chord is symmetric at 3 semitones. In BQN we can write this as an addition table, which is good because Outer Product, as APLers call it, is the only primitive I know.
↗️3×↕4 # Diminished seventh chord ⟨ 0 3 6 9 ⟩ 0‿1 +⌜ 3×↕4 # Two of them gives octatonic ┌─ ╵ 0 3 6 9 1 4 7 10 ┘ 0‿1 +⌜ 0‿6 +⌜ 0‿3 # It's a cube? ┌─ ╎ 0 3 6 9 1 4 7 10 ┘
It's less often mentioned that the diminished seventh chord itself can be decomposed this way, into a tritone (6 semitones) plus itself shifted by 3 steps. Or a 3-semitone interval with a 6-step shift: a cool property of +⌜
is that the arguments can be rearranged any which way and it will only affect the ordering of the axes, not which values appear (this depends on addition being commutative). We can draw this 3-way addition table as a cube. See how the upper cell [0‿3,6‿9]
matches up with the top face and the other one with the bottom?
We'll return to the octatonic scale, but as it turns out, Scriabin's major sevenths are subject to the same trick, just with the intervals 4 and 7 instead of 3 and 6. Together with the 3-step transposition, we have another cube!
↗️0‿7 +⌜ 0‿4 # The notes of a major seventh chord ┌─ ╵ 0 4 7 11 ┘
And those morose notes that open the piece are also an addition table! The bass notes G and E flat are separated by 8 steps, as are B flat and G flat above. As with the major sevenths, the distance between these two pairs is 3 steps, plus an octave. If we move G up an octave and G flat down, we get a compact form:
What a familiar shape! To get the major sevenths from these notes you shift one copy down by 4 steps, and another up by 3 steps. But this is not the end of it. The next thing Scriabin does is play the opening again, shifted up by 3 steps: now it begins with an exact subset of the major sevenths! Specifically it takes the upper half of each 7-step interval, leaving D and keeping A, and so on (G flat stays, by virtue of appearing as both a lower and an upper half), with some shuffling between octaves of course.
The skeleton above shows that a fairly small number of notes are changed at each step, not counting the octave shifts (but it's not a complete analysis: there's an important and mysterious F in the first two bars, along with other notes brought in from the major seventh chords to follow). At the bottom I've bracketed an octatonic scale that covers most notes. We can also build this whole collection in BQN from a pile of outer products, here as offsets from the bass E flat:
↗️⟨0‿15+⌜¯8‿0, 0‿15+⌜¯4‿0+⌜0‿7⟩ # First half ┌─ · ┌─ ┌─ ╵ ¯8 0 ╎ ¯4 3 7 15 0 7 ┘ 11 18 15 22 ┘ ┘ ⥊ 0‿3 +⌜ ⟨0‿15+⌜¯8‿0, 0‿15+⌜¯4‿0+⌜0‿7⟩ ┌─ · ┌─ ┌─ ┌─ ┌─ ╵ ¯8 0 ╎ ¯4 3 ╵ ¯5 3 ╎ ¯1 6 7 15 0 7 10 18 3 10 ┘ ┘ 11 18 14 21 15 22 18 25 ┘ ┘ ┘
The shared 0‿15
can be extracted with another trick: ⟨a F b, a F c⟩
is the same as (<a) F¨ ⟨b,c⟩
or (<a) F⌜ ⟨b,c⟩
. Naturally I'll choose the second of these. Let's also take the result modulo 3 to show the octatonic properties better. Each 2
is a note that doesn't fit into the highlighted octatonic scale—just the root of each major seventh chord.
3| ⥊ 0‿3 +⌜ (<0‿15) +⌜⌜ ⟨¯8‿0, ¯4‿0+⌜0‿7⟩ ┌─ · ┌─ ┌─ ┌─ ┌─ ╵ 1 0 ╎ 2 0 ╵ 1 0 ╎ 2 0 1 0 0 1 1 0 0 1 ┘ ┘ 2 0 2 0 0 1 0 1 ┘ ┘ ┘
Moving on, bars 9 to 12 are transitional; they introduce some new ideas and don't really stick to the outer product theme. Probably because he is writing music and not some weird array programming math blog. The next section will suit us better, and what catches the eye first is an intimidating, oscillating left-hand line, delivered in 5:3 tuplets.
A younger Scriabin readily jumped into complex ad-hoc patterns, but in his most ostentatious madness he rarely went without a method. This part is in fact a short sequence moving up in tritones, obscured by regrouping them from five 3-note chords to three 5-note tuplets. No matter, reshape will do this for us, and we can throw in a quick and dirty synthesis as well.
↗️6 × 3 -˜ ↕5 # The low notes, still offset from E♭ = D♯ ⟨ ¯18 ¯12 ¯6 0 6 ⟩ ⊢ notes ← (⌽≢)⊸⥊ (6×3-˜↕5) +⌜ 0‿6‿13 ┌─ ╵ ¯18 ¯12 ¯5 ¯12 ¯6 1 ¯6 0 7 0 6 13 6 12 19 ┘ Synth ← { (3.4⋆-↕⊸÷≠𝕩) × -⟜(⋆⟜7) -⟜¬ 1|+`𝕩÷44100 } Play ⥊ (Synth 7560⊸/)˘ 55 × 2⋆12÷˜ 18+notes # Low A = 55Hz 3 | notes # All octatonic, no 2s ┌─ ╵ 0 0 1 0 0 1 0 0 1 0 0 1 0 0 1 ┘
Leaving out the reshape (⌽≢)⊸⥊
, we get two columns that cover the same notes and a third that's different. Paring down to a 2 by 2 outer product gives the unique octave-equivalent notes only.
(6×3-˜↕5) +⌜ 0‿6‿13 ┌─ ╵ ¯18 ¯12 ¯5 ¯12 ¯6 1 ¯6 0 7 0 6 13 6 12 19 ┘ 0‿6 +⌜ 0‿7 ┌─ ╵ 0 7 6 13 ┘
But what about the right hand? It's playing a chord on D flat and G flat above (written C sharp and F sharp, as the spellings now indicate an octatonic scale going from C sharp to C natural; the interested reader is referred to George Perle, "Scriabin's Self-Analyses"). These fit neatly into our reduced outer product, because it also features a 7-step interval on one side. When we reduce the octaves out, we find that the other side is a sequence of 3-step intervals!
↗️0‿6‿27 +⌜ 0‿7 ┌─ ╵ 0 7 6 13 27 34 ┘ 0‿3‿6 +⌜ 0‿7 # Squash together ┌─ ╵ 0 7 3 10 6 13 ┘
This is child's play for someone well-versed in octatonic decomposition like you or I. The octatonic scale is two diminished sevenths (3×↕4) +⌜ 0‿7
and all we have to do is truncate them to triads 3×↕3
. Because only four 7-step intervals are possible within the octatonic scale, any three of them must form the same structure, if you rotate them around right.
Right after, in bar 15, Scriabin moves the B flat to the right hand, forming a perfectly normal major triad, which is again given an abnormal sound by the remaining notes in the left hand. It's the same 0-6-13 shape again, which is obscure but has some recognition as a voicing of the Viennese trichord (I quite like this sound, and was experimenting with tritone-fifth and tritone-fourth combinations on the guitar long before I knew who Scriabin was). To separate things out, the right-hand major chord is moved up an octave, but an extra D flat is left in place so the thumbs cross.
It's interesting to compare this set of notes to the ones from the opening section. For example, we can get them from the last set of two major seventh chords, by moving the lower note of each 4-step interval up to shrink it to 3 steps.
The second iteration of this pattern in bars 17 to 20 starts by repeating from the previous four bars, transposed up 3 steps—the same idea as the opening, but a more noticeable jump without another chord to prepare it. When we reach the chords with both hands together, they're unexpectedly pushed up another 3 steps. But still we can summarize this as an outer product, if we accept that the four 2-bar groups can't be broken down into a two-by-two shape.
↗️⊢ chords ← 0‿0‿3‿6 +⌜ ⥊ 0‿7 +⌜ 0‿3‿6 # Bars 13 to 20 ┌─ ╵ 0 3 6 7 10 13 0 3 6 7 10 13 3 6 9 10 13 16 6 9 12 13 16 19 ┘ Arp ← { +⟜((3e3⥊0)⊸»)˝ -⟜(⋆⟜3) -⟜¬ 1| 𝕩 ×⌜ ↕⊸÷44100 } Play 8÷˜⥊ Arp˘ 110 × 2⋆12÷˜ 18+chords
Those final chords might well be considered part of the next section, where they're interspersed with some fresh material.
In the left hand we encounter another table-friendly chord that's also used heavily in the second piece in the set, and late Scriabin in general. The French sixth is commonly presented as 0‿6+⌜0‿4
, but Scriabin prefers the wider 0‿10+⌜0‿6
, and the lowest notes of bars 25 and 26 proceed 16-10-0 missing only the 6. Because the second instance is transposed down by 6 steps, the two bars together fill out the chord.
0‿10 +⌜ 0‿6 ┌─ ╵ 0 6 10 16 ┘ 6‿0 +⌜ 16‿10‿0 # and 22 = 10+12 ┌─ ╵ 22 16 6 16 10 0 ┘
The shared tones 10 and 16 (C sharp and G) allow him to splice both arpeggios into a starting bit that's repeated without transposing, beginning with a curious B natural. Meanwhile, the right hand plays a B flat minor chord, then moves its root down for the G sharp of C sharp major. If combined, these form B flat minor seventh, which splits up much like the major seventh, into 0‿7+⌜0‿3
. This time it's arranged to play the two 7-step intervals as individual chords! And the 3-step interval makes it a fragment of an octatonic scale… except it's not the same one we've been using up to now. Really these notes don't look related to much of anything, not even the left-hand part as it only shares the note C sharp.
We check below that one note is the smallest possible overlap between a French sixth and minor seventh, by counting the entries of a difference table modulo 12 (it's not obvious this works, think about it as long as you like!). We also find that two notes is the largest overlap, and we'd get it if the chords fit the same octatonic scale. But it seems more important that the right hand's C sharp and F—the two notes appearing in both bars—fit into and complete the whole tone scale all the left-hand notes belong to.
↗️# Intersection size of two chords at each offset ↕12 /⁼⥊ 12| (0‿7+⌜0‿3) -⌜ 0‿10+⌜0‿6 ⟨ 2 1 1 2 1 1 2 1 1 2 1 1 ⟩ /⁼⥊ 3| 0‿7 -⌜ 0‿10 # Closely related! ⟨ 2 1 1 ⟩
The section trails off and suddenly congratulations are in order for reaching the midpoint of the composition! I hope you can persevere as we work through the remainder. What happens is the sequence repeats, transposed down by 6 semitones and with minor artistic changes, and finishes with a 4-bar coda that warps the theme to connect it the mystic chord (with D flat pushed up two octaves) and whole-tone scale. Outer product!
↗️0‿¯6 +⌜ 0‿3 ┌─ ╵ 0 3 ¯6 ¯3 ┘