Fractal scale
A fractal scale is a scale obtained by dividing a starting interval in two or more parts, and then by dividing these parts recursively using the same ratio. In practice, the starting interval is generally used as the period of the scale, allowing to use fractal scales as periodic scales. Fractal scales come in three main types, associated respectively with frequencies, pitch and length: linear fractal scales, defined using a ratio of frequency ratios; logarithmic fractal scales, defined using a ratio of logarithmic ratios (e.g. cents); and inverse linear fractal scales, defined using a ratio of length ratios.
The order of a fractal scale is the number of iterations of the division process used to obtain the scale. An order-0 fractal scale contains only the starting interval. An order-1 fractal scale contains the original ratio only once. An order-N scale with M steps in its division contains MN steps.
A fractal scale can be uniquely identified by its order, its ratio and its type. For example, the order-5 1:2 linear fractal scale is a 32-tone octave-repeating scale
Fractal scales provides a certain form of symmetry which is very different in nature than that of other scale families, such as MOS scales or regularly tempered scales.
Examples
Linear fractal scales
Order | Number of steps | Chord |
---|---|---|
0 | 1 | 1:2 |
1 | 2 | 2:3:4 (2afdo) |
2 | 4 | 4:5:6:7:8 (4afdo) |
3 | 8 | 8:9:10:11:12:13:14:15:16 (8afdo) |
Order | Number of steps | Chord |
---|---|---|
0 | 1 | 1:2 |
1 | 2 | 3:4:6 |
2 | 4 | 9:10:12:14:18 |
3 | 8 | 27:28:30:32:36:38:42:46:54 |
Logarithmic fractal scales
A series of octave-repeating fractal scales can be created using the golden ratio (here treated as logarithmic phi) and the octave. Various edos approximate this series to a certain degree of precision. The example below uses the first nine terms of the Fibonacci sequence (1, 2, 3, 5, 8, 13, 21, 34, 55) to approximate golden fractal scales in 55edo.
Order | Number of steps | Step visualization | Step pattern (55edo) | Scale degrees (55edo) |
---|---|---|---|---|
0 | 1 | ├──────────────────────────────────────────────────────┤ | 55 | 55 |
1 | 2 | ├─────────────────────────────────┼────────────────────┤ | 34 21 | 34 55 |
2 | 4 | ├────────────────────┼────────────┼────────────┼───────┤ | 21 13 13 8 | 21 34 47 55 |
3 | 8 | ├────────────┼───────┼───────┼────┼───────┼────┼────┼──┤ | 13 8 8 5 8 5 5 3 | 13 21 29 34 42 47 52 55 |
4 | 16 | ├───────┼────┼────┼──┼────┼──┼──┼─┼────┼──┼──┼─┼──┼─┼─┼┤ | 8 5 5 3 5 3 3 2 5 3 3 2 3 2 2 1 | 8 13 18 21 26 29 32 34 39 42 45 47 50 52 54 55 |
R-4981 calls the order-4 [math]1:\frac{1-\sqrt{3}}{\sqrt{3}}[/math] fractal scale redbull.
The initial division may contain more than 2 intervals. Here is a simple example with 3 divisions.
Order | Number of steps | Step visualization | Step pattern (64edo) | Scale degrees (64edo) |
---|---|---|---|---|
0 | 1 | ├───────────────────────────────────────────────────────────────┤ | 64 | 64 |
1 | 3 | ├───────────────┼───────────────────────────────┼───────────────┤ | 16 32 16 | 16 48 64 |
2 | 9 | ├───┼───────┼───┼───────┼───────────────┼───────┼───┼───────┼───┤ | 4 8 4 8 16 8 4 8 4 | 4 12 16 24 40 48 52 60 64 |
3 | 27 | ├┼─┼┼─┼───┼─┼┼─┼┼─┼───┼─┼───┼───────┼───┼─┼───┼─┼┼─┼┼─┼───┼─┼┼─┼┤ | 1 2 1 2 4 2 1 2 1 2 4 2 4 8 4 2 4 2 1 2 1 2 4 2 1 2 1 | 1 3 4 6 10 12 13 15 16 18 22 24 28 36 40 42 46 48 49 51 52 54 58 60 61 63 64 |
Inverse linear fractal scales
Truncated fractal scales
Since the division is applied to every interval in each step, some intervals will become very small compared to others. For example, if we divide the octave logarithmically by the ratio [math]1:a[/math] with [math]1 \lt a[/math] (like the golden logarithmic fractal scale above), then after N steps, the largest scale step will have size [math]2^{aN}[/math] and the smallest scale step will have size [math]2^{(1-a)N}[/math]. The ratio between the two is [math]2^{(2a-1)N} \gt 2^N[/math] which grows exponentially as N grows linearly, so the scale will have very uneven steps.
If we wish to make the scale steps more even, then we can choose some smallest threshold interval ε in the linear case (or 1+ε in the logarithmic case). Here we consider the linear case. On each step, we divide an interval if it is larger than ε, otherwise we leave it untouched if it is smaller than ε. Since the divided intervals get smaller and smaller, we will eventually reach a point where the intervals become smaller than ε, so this process will terminate after a finite amount of steps (and hence the scale is also finite). Here is an example:
Order | Number of steps | Step visualization | Chord | Intervals > 1/16 |
---|---|---|---|---|
0 | 1 | ├───────────────────────────────────────────────────────────────┤ | 1:2 | 1 |
1 | 2 | ├────────────────────┼──────────────────────────────────────────┤ | 3:4:6 | 1/3 2/3 |
2 | 4 | ├──────┼─────────────┼─────────────┼────────────────────────────┤ | 9:10:12:14:18 | 1/9 2/9 4/9 |
3 | 8 | ├─┼────┼────┼────────┼────┼────────┼────────┼───────────────────┤ | 27:28:30:32:36:38:42:46:54 | 2/27 4/27 8/27 |
4 | 15 | ├─┼─┼──┼─┼──┼──┼─────┼─┼──┼──┼─────┼──┼─────┼─────┼─────────────┤ | 81:84:86:90:92:96:100:108:110:114:118:126:130:138:146:162 | 8/81 16/81 |
5 | 20 | ├─┼─┼──┼─┼──┼──┼─┼───┼─┼──┼──┼─┼───┼──┼─┼───┼─┼───┼───┼─────────┤ | 243:252:258:270:276:288:300:308:324:330:342:
354:362:378:390:398:414:422:438:454:486 |
16/243 32/243 |
6 | 26 | ├─┼─┼──┼─┼──┼──┼─┼┼──┼─┼──┼──┼─┼┼──┼──┼─┼┼──┼─┼┼──┼┼──┼──┼──────┤ | 729:756:774:810:828:864:900:924:940:972:990:1026:1062:1086:1102:
1134:1170:1194:1210:1242:1266:1282:1314:1330:1362:1394:1458 |
64/729 |
7 | 27 | ├─┼─┼──┼─┼──┼──┼─┼┼──┼─┼──┼──┼─┼┼──┼──┼─┼┼──┼─┼┼──┼┼──┼──┼─┼────┤ | 2187:2268:2322:2430:2484:2592:2700:2772:2820:2916:2970:3078:3186:3258:
3306:3402:3510:3582:3630:3726:3798:3846:3942:3990:4086:4182:4246:4374 |
none |
Alternatively, we can do pre-stopping -- we stop dividing the interval if any of the divided parts of the interval would be smaller than the threshold. The threshold now becomes a true lower bound for the size of the scale steps. Here is another example:
Order | Number of steps | Step visualization | Chord | Intervals > 1/16 |
---|---|---|---|---|
0 | 1 | ├───────────────────────────────────────────────────────────────┤ | 1:2 | 1 = 1/3 + 2/3 |
1 | 2 | ├────────────────────┼──────────────────────────────────────────┤ | 3:4:6 | 1/3 = 1/9 + 2/9
2/3 = 2/9 + 4/9 |
2 | 4 | ├──────┼─────────────┼─────────────┼────────────────────────────┤ | 9:10:12:14:18 | 2/9 = 2/27 + 4/27
4/9 = 4/27 + 8/27 |
3 | 7 | ├──────┼────┼────────┼────┼────────┼────────┼───────────────────┤ | 27:30:32:36:38:42:46:54 | 8/27 = 8/81 + 16/81 |
4 | 8 | ├──────┼────┼────────┼────┼────────┼────────┼─────┼─────────────┤ | 81:90:96:108:114:126:138:146:162 | 16/81 = 16/243 + 32/243 |
5 | 9 | ├──────┼────┼────────┼────┼────────┼────────┼─────┼────┼────────┤ | 243:270:288:324:342:378:414:438:454:486 | none |
Modes
It is possible for a fractal scale to have various modes. However, unlike MOS scales, the modes of a fractal scale are not ordinary rotations of a scale. Instead, modes correspond to the rotations of the ratio used to divide the scale. This results in M modes for each order-N fractal scale. For example, here are the modes of an order-2 logarithmic fractal scale with scale steps divided into 1:2:3:
Mode rotational order | Division pattern | FRACNAMS | Step pattern (36edo) | Scale degrees (36edo) |
---|---|---|---|---|
0 | 1:2:3 | Rock | 1 2 3 2 4 6 3 6 9 | 1 3 6 8 12 18 21 27 36 |
1 | 2:3:1 | Paper | 4 6 2 6 9 3 2 3 1 | 4 10 12 18 27 30 32 35 36 |
2 | 3:1:2 | Scissors | 9 3 6 3 1 2 6 2 4 | 9 12 18 21 22 24 30 32 36 |
Alternatively, it is possible to choose which rotation of the division pattern to use in the next step. This results in MN modes for an order-N fractal scale, which are as many modes are there are scale steps.
Here is the example for the order-3 golden ratio (φ) fractal scale:
Mode rotational order | Mode binary numbering | Division pattern | FRACNAMS | Step pattern (34edo) | Scale degrees (34edo) |
---|---|---|---|---|---|
0,0,0 | 0 | 1:φ, 1:φ, 1:φ | Brazilian | 8 5 5 3 5 3 3 2 | 8 13 18 21 26 29 32 34 |
0,0,1 | 1 | 1:φ, 1:φ, φ:1 | Carolina | 5 8 3 5 3 5 2 3 | 5 13 16 21 24 29 31 34 |
0,1,0 | 2 | 1:φ, φ:1, 1:φ | Georgia | 5 3 8 5 3 2 5 3 | 5 8 16 21 24 26 31 34 |
0,1,1 | 3 | 1:φ, φ:1, φ:1 | California | 3 5 5 8 2 3 3 5 | 3 8 13 21 23 26 29 34 |
1,0,0 | 4 | φ:1, 1:φ, 1:φ | Cariboo | 5 3 3 2 8 5 5 3 | 5 8 11 13 21 26 31 34 |
1,0,1 | 5 | φ:1, 1:φ, φ:1 | Montana | 3 5 2 3 5 8 3 5 | 3 8 10 13 18 26 29 34 |
1,1,0 | 6 | φ:1, φ:1, 1:φ | Bigbend | 3 2 5 3 5 3 8 5 | 3 5 10 13 18 21 29 34 |
1,1,1 | 7 | φ:1, φ:1, φ:1 | Omineca | 2 3 3 5 3 5 5 8 | 2 5 8 13 16 21 26 34 |
Formulas
Here is a Python script to calculate the steps and degrees of a logarithmic fractal scale, provided the order and the ratio.
from functools import reduce
order = 4
ratio = [1, 2]
# the "shape" of the ratio, only input integers please.
# [a, b] corresponds to the ratio a:b,
# [a, b, c] corresponds to the ratio a:b:c, etc.
c = ratio
if order == 0:
c = []
for i in range(0, order-1):
b = []
for j in c:
b.append([j * x for x in ratio])
c = [x for xs in b for x in xs]
a = reduce((lambda m, n: m + [m[-1] + n]), c[1:], c[0:1])
print("scale steps in", a[len(a)-1], "edo:", c)
print("scale degrees in", a[len(a)-1], "edo:", a)
Sample output:
scale steps in 81 edo: [1, 2, 2, 4, 2, 4, 4, 8, 2, 4, 4, 8, 4, 8, 8, 16]
scale degrees in 81 edo: [1, 3, 5, 9, 11, 15, 19, 27, 29, 33, 37, 45, 49, 57, 65, 81]