Cents and ratios Ratios with factors Mean tone in cents Under / Over UO, non octave & scale tree Quintic Music and virtual flowers

Dan Stearns' Under Over scales - non octave

Introduction, Octave scale trees, Scale trees for repeat r/1, For repeat r/s, The algorithm, Optimal for et

See also simpler version of this form UO non oct with scale tree.

x Decimal places

Scale repeat (scale tree look up only programmed for integer repeat)

Scale degree Number of notes Value =

Rows for value searches notes and next rows

Cents values

n-et cents values

Max diff from e.t. scale cents

Max. number of decimal places to show for cents values

closest to equal temperament at x =

Neighbouring Scales rows rows


When x is r / (r-1) (with r = scale repeat) you get an undertone series. Click the -> u or o button to set x to this value.

When x is infinite you get an overtone series. Try x = 1e20 for the overtone series - this means x followed by 20 zeroes, which is large enough. In between, you get interesting rational scales that are in between an overtone and an undertone series.

When you set x to be (r + sqrt(r))/(r-1) you get closest to an equal temperament scale. In order to make the result rational you need to use an approximation to the square root of r. Use the Set optimal for et button to find a decimal approximation with the desired number of places.

The OU scales are the inversions of the UO scales

To search for a particular ratio in the tree, enter it in the Value = box, and then click Find UO value or Find OU value.


Octave scale trees

One really interesting thing about these scales is that for any particular value of x, all the ratios of the scale tree occur somewhere in the scales for that x, for soem number of notes. At least, the observations so far suggest this. What follows is experimental at present, but I'll try to prove it later.

The scale tree for r = 2 is:

1/1                                        2/1
         4/3                    5/3
    5/4       7/5         8/5         7/4
 6/5  9/7  11/8  10/7  11/7  13/8  12/7  9/5 

Usually one leaves out repeated values as in that figure, but if one puts them in it is easier perhaps to see how it works:

1/1                                        2/1
1/1                  3/2                   2/1
1/1      4/3         3/2        5/3        2/1
1/1  5/4 4/3   7/5   3/2   8/5  5/3   7/4  2/1

Each new number is obtained from the ones immediately above it to left and right in the previous row. It's done by adding the denominators and the demumerators, e.g. 7/5 = (4+3)/(3+2).

You find that each ratio occurs only once in the tree. (actually this is one half of the tree - for the complete tree see Stern-Brocot Tree)

Now, Dan discovered that his over under scales are intrinsically linked with the scale tree. To do this he makes an equal temperament related scale tree to index into them. I've called that the look up tree, because that is how it works here.

To make his ET scale trees, click the UO Look Up button.

For x = 3.5 and any integer scale repeat, his look up tree is

0/5                                                 7/7
         7/17                           14/19
    7/22         14/29           21/31         21/26
7/27   14/39 21/46    21/41   28/43 35/50   35/45 28/33  

Now, the idea is that 7/12 here means the 7th degree of 12-et, which is approximated (with accuracy depending on x) by the 12 note over / under scale.

So 7/12 here means the 7th degree of the 12 note scale in the list. Then the idea is that the corresponding ratio in the scale tree will occur in this position in his over / under scales. So 3/2 will be the 7th degree of the 12 note scale. Similarly, 4/3 will be the 7th ratio in the 22 note scale, and so on. You can check this by entering the scale degree and the number of notes into the form and clicking the Make UO scale button, and the value found at that location will then be shown in the Value = box.

Also observations suggest that you can multiply or divide the denumerator and denominator in the scale tree by any desired number. and still find the same ratio. For instance, you find the 13/8 at 35/50, and you can also find it at 7/10, so all the ratios in the look up tree get reduced in thsi way, apart from the first two that generate the tree, because you need to see those to know how to make it.

Then the question is, how do you find the ET scale tree for a particular value of x. No proof yet, but observations suggest that if x = (a+n)/a, then the 3/2 always occurs at (a+n)/(a+2n). E.g. if x = 3.5 = 7/5, then you'll find a 3/2 at 7/12, i.e. the 7th degree of the 12 note scale, which is where the 7/12 in the look up table comes from.

Then you look for a scale tree starting 0/v w/w where v and w need to be determined. We know the location of the 3/2 - at (a+n)/(a+2n), in this case 7/12. From the way the ET scale tree is constructed, this needs to equal w/(v+w). So we know w already - in the present case it is 7. So we can easily find v as well - in this case, 5. Then having got the first two ratios, we can construct the entire tree.


Scale trees for repeat r/1

You can make the tree starting with other numbers instead of 2/1, e.g. try 3/1.

1/1                                           3/1
          5/3                    7/3
    6/4        9/5         11/5       10/4
 7/5  11/7  14/8  13/7  15/7  18/8  17/7  13/5 

You get ratios such as 4/2 - leave those as they are while constructing the tree - but you can reduce them to 2/1 when you are finished.

1/1                                           3/1
          5/3                    7/3
    3/2        9/5         11/5       5/2
 7/5  11/7  14/8  13/7  15/7  18/8  17/7  13/5 

You can make these scale trees just by clicking the Scale Tree button.

Then to make the look up tree for scales repeating at r/1, we want to find the location of (r+1)/2 - then one can easily work back as before and find the locations for 1/1 and r/1. Observations suggest that you can use the same look up tree for r/1 as you use for 2/1 - the scale tree changes, so the ratios you are looking for change, but the ET look up tree you use to find them doesn't seem to depend on r at all.


Scale trees for repeat r/s

In this case, observations suggest that for x = (a+n)/a, you can find (r+1)/(s+1) at (sa+sn)/(sa+(s+1)n).

The look up trees you make with the Look Up button use this value.


The Under / Over scale generation algorithm

Initialising values:

x = whatever value it has (e.g. 3.4).
n = notes in scale (e.g. 5)
r = scale repeat


a = n*x
b = n*x

for degree = 0, incremented by 1 until you reach n
 scale value for this degree = a / b
 a = a + (r-1)*x - r
 b = b - 1

x = 4
n = 5
r = 3

a = 20
b = 20

(r-1)*x - r = 5

so a -> a + 5
b -> b - 1

scale is:
20/20 25/19 30/18 35/17 40/16 45/15
1/1 25/19 5/3 35/17 5/2 3/1

It works because nx + n((r-1)x - r) = n(rx - r) = r (nx - n)

For x = r / (r-1), a is constant, and b decreases by 1,
so you get an undertone series.

n = 5
r = 3
x = 3/2

a = 15/2
b = 15/2

scale is:
7.5/7.5 7.5/6.5 7.5/5.5 7.5/4.5 7.5/3.5 7.5/2.5
1/1 15/13 15/11 5/3 15/7 3/1

For x very large, a increases by x each time and
b is effectively constant as the 1 is small compared
with x, so you get the overtone series.

Closest under / over series scale to equal temperament

You get the closest to the equal temperament scale when it is symmetrical.

So lets do the calculation for this too.

In the case where n is even, you want the centre interval to be its own inversion.

Let n be even
n = 2m

and the centre interval is
(2mx + m((r-1)x - r)) / (2mx - m)

so you want
(2x + (r-1)x - r) / (2x-1) to be its own inversion in r

This means you want it to equal sqrt(r)

Let's write s for sqrt(r)

So you want ((r+1)x - r) / (2x-1) = s

(r+1)x - r = 2sx - s
(r+1-2s)x = r-s
x = (r-s) / (r+1-2s)

multiply top and bottom by (r+1+2s) to get

x = (r-s)(r+1+2s) / ((r+1)^2-4r)
  = (r^2+r + (r-1)s - 2r) / (r^2-2r+1)
  = (r^2 -r + (r-1)s) / (r-1)^2
  = (r-1)(r+s)/(r-1)^2
  = (r+s)/(r-1)

This only takes account of the even cases, but for n odd,
just consider 2n, which has the values for n as
every second entry in the scale.