# Fractal scale

English Wikipedia has an article on:

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

1:1 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)
1:2 linear fractal scales
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.

Golden (1:φ) logarithmic fractal scales, as approximated by 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 $1:\frac{1-\sqrt{3}}{\sqrt{3}}$ fractal scale redbull.

The initial division may contain more than 2 intervals. Here is a simple example with 3 divisions.

1:2:1 logarithmic fractal scales, represented in 64edo
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

 Todo: add examples Create table with a simple example.

### 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 $1:a$ with $1 \lt a$ (like the golden logarithmic fractal scale above), then after N steps, the largest scale step will have size $2^{aN}$ and the smallest scale step will have size $2^{(1-a)N}$. The ratio between the two is $2^{(2a-1)N} \gt 2^N$ 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:

1:2 truncated linear fractal scales, threshold ε = 1/16
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:

Pre-stopped 1:2 truncated linear fractal scales, threshold ε = 1/16
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:

Modes of 1:2:3 logarithmic fractal scales in 36edo
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:

Modes of 1:φ logarithmic fractal scales in 34edo
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
 Todo: expand Add specific and detailed definitions.

## 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]