# A gentle introduction to Fokker periodicity blocks: part 3

[Paul Erlich, © 1999, Yahoo tuning group, message 6227 (Mon Nov 15, 1999 1:11 pm)]

[from Monzo: This exposition provides information useful for understanding my concept of finity.]

. . . . . . . . .

In this installment we move on to 7-limit just intonation. We will need three dimensions to depict the relationship of the notes: one axis for factors of 3, one for factors of 5, and one for factors of 7. Although it's not too difficult to create the illusion of depth for at least a few layers of lattice, showing how three-dimensional space is divided into identical periodicity blocks is beyond my ASCII art abilities. Therefore I will display each periodicity block alone, without its identical neighbors, and leave it to the imagination or artistry of the reader to discover how the block repeats to fill space.

Let's view a portion of the 7-limit lattice. It contains our now-familiar 5-limit system; that system is simply reproduced at transpositions of a 7:4 up ("out of the screen") and down ("into the screen"):

```          1225/1152-----1225/768------1225/1024-----3675/2048----11025/8192
,'|           ,'|           ,'|           ,'|           ,'|
175/144|-------175/96|------175/128|------525/512|------675/512|
,'|  |        ,'|  |        ,'|  |        ,'|  |        ,'|  |
25/18|--|-----25/24|--|-----25/16|--|-----75/64|--|---225/128|  |
,'|  |  |     ,'|  |  |     ,'|  |  |     ,'|  |  |     ,'|  |  |
100/63|--|--|--25/21|--|--|--25/14|--|--|--75/56|--|--|225/224|  |  |
|  |  |  |    |  |  |  |    |  |  |  |    |  |  |  |    |  |  |  |
|  |  |  |    |  |  |  |    |  |  |  |    |  |  |  |    |  |  |  |
|  |  |  |    |  |  |  |    |  |  |  |    |  |  |  |    |  |  |  |
|  |  245/144-------245/192-------245/128-------735/512------2205/2048
|  |  |,'|    |  |  |.'|    |  |  |,'|    |  |  |,'|    |  |  |,'|
|  |35/18|--------35/24|--------35/32|-------105/64|------315/256|
|  |,'|  |    |  |,'|  |    |  |,'|  |    |  |,'|  |    |  |,'|  |
|10/9-|--|------5/3-|--|------5/4-|--|-----15/8-|--|-----45/32|  |
|,'|  |  |    |,'|  |  |    |,'|  |  |    |,'|  |  |    |,'|  |  |
80/63|--|--|--40/21|--|--|--10/7-|--|--|--15/14|--|--|--45/28|  |  |
|  |  |  |    |  |  |  |    |  |  |  |    |  |  |  |    |  |  |  |
|  |  |  |    |  |  |  |    |  |  |  |    |  |  |  |    |  |  |  |
|  |  |  |    |  |  |  |    |  |  |  |    |  |  |  |    |  |  |  |
|  |  |49/36---------49/48---------49/32--------147/128-------441/256
|  |  |,'|    |  |  |,'|    |  |  |,'|    |  |  |,'|    |  |  |,'|
|  |14/9-|---------7/6-|---------7/4-|--------21/16|--------63/32|
|  |,'|  |    |  |,'|  |    |  |,'|  |    |  |,'|  |    |  |,'|  |
|16/9-|--|------4/3-|--|------1/1-|--|------3/2-|--|------9/8 |  |
|,'|  |  |    |,'|  |  |    |,'|  |  |    |,'|  |  |    |,'|  |  |
64/63|--|--|--32/21|--|--|---8/7-|--|--|--12/7-|--|--|---9/7 |  |  |
|  |  |  |    |  |  |  |    |  |  |  |    |  |  |  |    |  |  |  |
|  |  |  |    |  |  |  |    |  |  |  |    |  |  |  |    |  |  |  |
|  |  |  |    |  |  |  |    |  |  |  |    |  |  |  |    |  |  |  |
|  |  |49/45---------49/30---------49/40--------147/80--------441/320
|  |  |,'     |  |  |,'     |  |  |,'     |  |  |,'|    |  |  |,'
|  |56/45---------28/15----------7/5----------21/20---------63/40
|  |,'        |  |,'        |  |,'        |  |,'        |  |,'
|64/45---------16/15----------8/5-----------6/5-----------9/5
|,'           |,'           |.'           |,'           |,'
512/315------128/105---------64/35---------48/35---------36/35
```

By now the process of finding unison vectors and constructing the resulting periodicity blocks should be familiar. In the case of one dimension, the operation was almost trivial. In two dimensions, we drew a parallelogram (or, in our excursion, a hexagon) constructed from the unison vectors and could make various periodicity blocks by sliding the shape around the lattice (but the number of notes in the block remained unchanged). In three dimensions, the concept is similar -- we can create a parallelopiped (the fancy name for a 3-d parallelogram) from three unison vectors. The number of notes inside the parallelopiped will always equal its area. Just like before, the area of the block is equal to the determinant of the matrix formed from the unison vectors. But we need to know how to calculate the determinant of a 3-by-3 matrix. The way I learned in college mechanics is to imagine that the matrix wraps around and the left and right edges are joined together. Then add all products of three elements along diagonals that slant downward and to the right, and subtract all the products along diagonals sloping the other way. So:

```|a b c|
|d e f| = a*e*i + b*f*g + c*d*h - c*e*g - a*f*h - b*d*i
|g h i|
```

Let's try an example using some simple unison vectors. Looking near 1/1 in the lattice above, we see 7/5 and 10/7, which are separated by 35 cents. Since going from 7/5 to 10/7 (a move of 50:49) one moves 0 steps along the 3-axis, 2 steps up along the 5-axis, and 2 steps into the screen along the 7-axis, we may write:

```(0 2 -2) = 35 cents
```

We need two more unison vectors to define a periodicity block in three dimensions. One can be the interval between 8/7 and 7/6, or 49:48:

```(-1 0 2) = 36 cents
```

and the other, the interval between 7/4 and 16/9, or 64:63:

```(-2 0 -1) = 27 cents
```

So the "Fokker matrix" is

```( 0  2 -2)
(        )
(-1  0  2)
(        )
(-2  0 -1)
```

Let's see how many notes a periodicity block built from these three unison vectors would contain. Using the formula above,

```| 0  2 -2|
|        |
|-1  0  2| = 0 + (-8) + 0 - 0 - 0 - 2 = -10
|        |
|-2  0 -1|
```

As usual, we ignore the sign of the result, so the block has 10 notes.

Now, even if we could draw the parallelopiped formed from these unison vectors perfectly in ASCII, we would still have a very hard time determining visually which notes were inside and which were outside. So we will resort to mathematics. Technically speaking, the 3-by-3 matrix of unison vectors defines a linear transformation -- a uniform "stretching" or "squashing" -- in three-dimensional space. In particular, the matrix of unison vectors takes a 1-by-1-by-1 cube and transforms it to the parallelopiped with unison vectors as edges. Let's show how this works. Each edge of the 1-by-1-by-1 cube is represented by a vector with one "1" and two "0"s. Now to transform a vector using a matrix, you need to use matrix multiplication. In this case, it's defined as:

```        (d e f)
(a b c)*(g h i) = (a*d + b*g + c*j    a*e + b*h + c*k    a*f + b*i + c*l)
(j k l)
```

Let's try this with our matrix and each of the edges of a unit cube (known as "unit vectors":

```        ( 0  2 -2)
(        )
(1 0 0)*(-1  0  2) = ( 0  2 -2)
(        )
(-2  0 -1)

( 0  2 -2)
(        )
(0 1 0)*(-1  0  2) = (-1  0  2)
(        )
(-2  0 -1)

( 0  2 -2)
(        )
(0 0 1)*(-1  0  2) = (-2  0 -1)
(        )
(-2  0 -1)
```

Now in order to determine which notes would be inside the parallelopiped, it would be helpful to apply the _inverse_ of this transformation to the whole lattice, because then we would simply have to find which notes are in a 1-by-1-by-1 cube, which is easy to do by just looking at the numbers. What is the inverse of a 3-by-3 matrix? Well, this is a bit too much mathematics for us to deal with here, but any decent linear algebra textbook will explain it and any decent math software package should be able to calculate it. For the 3-by-3 "Fokker matrix" above, the inverse is:

```(  0 -.2 -.4)
(           )
( .5  .4 -.2)
(           )
(  0  .4 -.2)
```

We can verify that this matrix transforms each unison vector into a unit vector:

```           (  0 -.2 -.4)
(           )
( 0  2 -2)*( .5  .4 -.2) = (0+1+0 0+.8-.8 0+.4-.4) = (1 0 0)
(           )
(  0  .4 -.2)

(  0 -.2 -.4)
(           )
(-1  0  2)*( .5  .4 -.2) = (0+0+0 .2+0+.8 .4+0-.4) = (0 1 0)
(           )
(  0  .4 -.2)

(  0 -.2 -.4)
(           )
(-2  0 -1)*( .5  .4 -.2) = (0+0+0 .4+0-.4 .8+0+.2) = (0 0 1)
(           )
(  0  .4 -.2)
```

OK, so all we have to do is transform a large enough portion of the lattice with this inverse matrix. Then we can just pick a range of values that spans exactly one unit along each of the axes, and the transformed lattice points whose components fall into these ranges will be the ones in a unit cube. Let's take the lattice above -- it's the set of points whose coordinates range from -2 to 2 on the 3-axis, from -1 to 2 on the 5-axis, and from -1 to 2 on the 7-axis:

 ``` -2 -1 -1 -2 -1 0 -2 -1 1 -2 -1 2 -2 0 -1 -2 0 0 -2 0 1 -2 0 2 -2 1 -1 -2 1 0 -2 1 1 -2 1 2 -2 2 -1 -2 2 0 -2 2 1 -2 2 2 -1 -1 -1 -1 -1 0 -1 -1 1 -1 -1 2 -1 0 -1 -1 0 0 -1 0 1 -1 0 2 -1 1 -1 -1 1 0 -1 1 1 -1 1 2 -1 2 -1 -1 2 0 -1 2 1 -1 2 2 0 -1 -1 0 -1 0 0 -1 1 0 -1 2 0 0 -1 0 0 0 0 0 1 0 0 2 0 1 -1 0 1 0 0 1 1 0 1 2 0 2 -1 0 2 0 0 2 1 0 2 2 1 -1 -1 1 -1 0 1 -1 1 1 -1 2 1 0 -1 1 0 0 1 0 1 1 0 2 1 1 -1 1 1 0 1 1 1 1 1 2 1 2 -1 1 2 0 1 2 1 1 2 2 2 -1 -1 2 -1 0 2 -1 1 2 -1 2 2 0 -1 2 0 0 2 0 1 2 0 2 2 1 -1 2 1 0 2 1 1 2 1 2 2 2 -1 2 2 0 2 2 1 2 2 2 ``` Transforming these using the inverse matrix, we get: ``` -0.5000 -0.4000 1.2000 -0.5000 0 1.0000 -0.5000 0.4000 0.8000 -0.5000 0.8000 0.6000 0 0 1.0000 0 0.4000 0.8000 0 0.8000 0.6000 0 1.2000 0.4000 0.5000 0.4000 0.8000 0.5000 0.8000 0.6000 0.5000 1.2000 0.4000 0.5000 1.6000 0.2000 1.0000 0.8000 0.6000 1.0000 1.2000 0.4000 1.0000 1.6000 0.2000 1.0000 2.0000 0 -0.5000 -0.6000 0.8000 -0.5000 -0.2000 0.6000 -0.5000 0.2000 0.4000 -0.5000 0.6000 0.2000 0 -0.2000 0.6000 0 0.2000 0.4000 0 0.6000 0.2000 0 1.0000 0 0.5000 0.2000 0.4000 0.5000 0.6000 0.2000 0.5000 1.0000 0 0.5000 1.4000 -0.2000 1.0000 0.6000 0.2000 1.0000 1.0000 0 1.0000 1.4000 -0.2000 1.0000 1.8000 -0.4000 -0.5000 -0.8000 0.4000 -0.5000 -0.4000 0.2000 -0.5000 0 0 -0.5000 0.4000 -0.2000 0 -0.4000 0.2000 0 0 0 0 0.4000 -0.2000 0 0.8000 -0.4000 0.5000 0 0 0.5000 0.4000 -0.2000 0.5000 0.8000 -0.4000 0.5000 1.2000 -0.6000 1.0000 0.4000 -0.2000 1.0000 0.8000 -0.4000 1.0000 1.2000 -0.6000 1.0000 1.6000 -0.8000 -0.5000 -1.0000 0 -0.5000 -0.6000 -0.2000 -0.5000 -0.2000 -0.4000 -0.5000 0.2000 -0.6000 0 -0.6000 -0.2000 0 -0.2000 -0.4000 0 0.2000 -0.6000 0 0.6000 -0.8000 0.5000 -0.2000 -0.4000 0.5000 0.2000 -0.6000 0.5000 0.6000 -0.8000 0.5000 1.0000 -1.0000 1.0000 0.2000 -0.6000 1.0000 0.6000 -0.8000 1.0000 1.0000 -1.0000 1.0000 1.4000 -1.2000 -0.5000 -1.2000 -0.4000 -0.5000 -0.8000 -0.6000 -0.5000 -0.4000 -0.8000 -0.5000 0 -1.0000 0 -0.8000 -0.6000 0 -0.4000 -0.8000 0 0 -1.0000 0 0.4000 -1.2000 0.5000 -0.4000 -0.8000 0.5000 0 -1.0000 0.5000 0.4000 -1.2000 0.5000 0.8000 -1.4000 1.0000 0 -1.0000 1.0000 0.4000 -1.2000 1.0000 0.8000 -1.4000 1.0000 1.2000 -1.6000 ```

Which of these are in a unit cube? Let's take the points where all three transformed coordinates are greater than or equal to 0 and less than 1. That leaves:

```          0    0.4000    0.8000
0    0.8000    0.6000
0.5000    0.4000    0.8000
0.5000    0.8000    0.6000
0    0.2000    0.4000
0    0.6000    0.2000
0.5000    0.2000    0.4000
0.5000    0.6000    0.2000
0         0         0
0.5000         0         0
```

Thankfully, this is 10 points, so we included enough notes in the original lattice. Which notes are they? Well, we can transform them back to the lattice using the original Fokker matrix. That gives:

```      -2            0            0
-2            0            1
-2            1           -1
-2            1            0
-1            0            0
-1            0            1
-1            1           -1
-1            1            0
0            0            0
0            1           -1
```

Let's transpose this one unit to the right along the 3-axis to center it better around 1/1:

```      -1            0            0
-1            0            1
-1            1           -1
-1            1            0
0            0            0
0            0            1
0            1           -1
0            1            0
1            0            0
1            1           -1
```

That represents the following scale:

```         5/3-----------5/4
,'|           ,'|
40/21|--------10/7-|--------15/14
|             |
|             |
|             |
|             |
|             |
| 7/6-----------7/4
|,'           |,'
4/3-----------1/1-----------3/2
```

If you have particularly good spatial imagination, you can imagine how this scale tiles with copies of itself transposed by the unit vectors ( 0 2 -2), (-1 0 2), and (-2 0 -1) to fill the 3-d lattice.

This scale resembles one of my decatonic scales in 22-tET (see my paper on 22-tone equal-temperament); it would be 0 2 5 7 9 11 13 16 18 20, or the Dynamic Major mode of the symmetrical decatonic scale.

If we shift the unit cube slightly, so that the first two coordinates are greater than or equal to 0 and less than 1, and the third coordinate is between -.5 and .5, we get the following set of points:

```          0    0.2000    0.4000
0    0.6000    0.2000
0.5000    0.2000    0.4000
0.5000    0.6000    0.2000
0         0         0
0    0.4000   -0.2000
0    0.8000   -0.4000
0.5000         0         0
0.5000    0.4000   -0.2000
0.5000    0.8000   -0.4000
```

which, when transformed back to the lattice, gives

```      -1            0            0
-1            0            1
-1            1           -1
-1            1            0
0            0            0
0            0            1
0            0            2
0            1           -1
0            1            0
0            1            1
```

Let's transpose this one unit to the right along the 3-axis:

```       0            0            0
0            0            1
0            1           -1
0            1            0
1            0            0
1            0            1
1            0            2
1            1           -1
1            1            0
1            1            1

105/64
,'|
5/4----------15/8  |
,' |           ,'|   |
10/7--|--------15/14|   |
|             |   |
|             |   |
|             |   |
|             |   147/128
|             |   |,'
| 7/4-----------21/16
|,'           |.'
1/1-----------3/2
```

This is another rational interpretation of the Dynamic Major mode of the symmetrical decatonic scale.

If we shift the unit cube slightly, so that the first coordinate is greater than 0 and less than or equal to 1, the second coordinate is between .5 and 1.5, and the third coordinate is between -.5 and .5, we get the following set of points:

```     0.5000    1.2000    0.4000
1.0000    1.2000    0.4000
0.5000    0.6000    0.2000
0.5000    1.0000         0
0.5000    1.4000   -0.2000
1.0000    0.6000    0.2000
1.0000    1.0000         0
1.0000    1.4000   -0.2000
0.5000    0.8000   -0.4000
1.0000    0.8000   -0.4000
```

Transforming back:

```      -2            1            1
-2            2            0
-1            1            0
-1            1            1
-1            1            2
-1            2           -1
-1            2            0
-1            2            1
0            1            1
0            2            0
```

and transposing two units to the right along the 3-axis and two units down along the 5-axis:

```       0           -1            1
0            0            0
1           -1            0
1           -1            1
1           -1            2
1            0           -1
1            0            0
1            0            1
2           -1            1
2            0            0

21/16
,'|
1/1-----------3/2-----------9/8
,' |  |
12/7  |  |
|  |
|  |
|  |
|  147/80
|  |.'
7/5---------|21/20----------63/40
|,'
6/5
```

In 22tET, this would be 0 2 4 6 9 11 13 15 17 20, the Static Minor mode of the symmetrical decatonic scale.

OK, I'm going to start being a little more concise here; hopefully you will be able to follow me. If not, re-read what we've done so far. Let's move on to a different set of unison vectors. We'll keep our smallest one, 64:63 or

```(-2 0 -1) = 27 cents
```

We'll replace the other two with 81:80 or

```( 4 -1  0) = 21.5 cents
```

and 126:125 or

```( 2 -3  1) = 13.8 cents.
```

Now how many notes would our periodicity block contain?

``` |-2  0 -1|
|        |
| 4 -1  0| = 2 + 0 + 12 - 2 - 0 - 0 = 12
|        |
| 2 -3  1|
```

Two examples:

``` 1.

-1     0     0
-1     1     0
-1     2     0
0    -1     0
0     0     0
0     1     0
1    -1     0
1     0     0
1     1     0
2    -1     0
2     0     0
2     1     0

25/24
|
|
|
|
|
|
|
5/3-----5/4----15/8----45/32
|       |       |       |
|       |       |       |
|       |       |       |
|       |       |       |
|       |       |       |
|       |       |       |
|       |       |       |
4/3-----1/1-----3/2-----9/8
|       |       |
|       |       |
|       |       |
|       |       |
|       |       |
|       |       |
|       |       |
8/5-----6/5-----9/5

2.

-2            1            0
-1            1            0
0           -1            1
0            0            0
0            0            1
0            1            0
1           -1            1
1            0            0
1            0            1
1            1            0
2           -1            1
3           -1            1

10/9-----5/3-----5/4----15/8
|       |
|       |
|       |
|       |
|       |
| 7/4----21/16
|.'|    |.'|
1/1-|---3/2 |
|       |
|       |
|       |
|       |
|       |
7/5----21/20---63/40--189/160
```

OK, anyone interested in pursuing this subject further should now have the tools to do so. I'll be happy to answer any questions on this subject and create further tutorials if necessary. Happy tuning!

. . . . . . . . .

Links to more from Paul Erlich on periodicity-blocks:

. . . . . . . . .

The tonalsoft.com website is almost entirely the work of one person: me, Joe Monzo. Please reward me for my knowledge and effort by choosing your preferred level of financial support. Thank you.

 support level donor: \$5 USD friend: \$25 USD patron: \$50 USD savior: \$100 USD angel of tuning: \$500 USD microtonal god: \$1000 USD