I talked about recursive just intonation in the past, but I now realize that that’s just a specific instance of a more general type of adaptive tuningsystem I’ve discovered which I call “Recursive Tuning Systems” or just “Recursive Tuning”.
in this post you’ll be able to make a matrix of any two tuningsystems that are supported by my music21-rs library and see how they interact with each other and how they sound.
From One Table To Two
Recursive just intonation uses one table twice. The five-limit table picks the root of a chord, and the same table tunes every note above that root:
recursive_frequency(root, degree) =
C_frequency * J[root] * J[degree]Nothing in that formula needs the two lookups to use the same table, or needs either table to be just intonation:
frequency(root, degree) =
root_frequency * G[root] * L[degree]G is the global table. It places the roots, the way the C-based just
keyboard did. L is the local table. It tunes every note above a root. The
matrix below has one row per degree of G and one column per degree of L, so
it is the “12 pianos” table from the other post with any number of pianos of
any size.
Three pairs are already familiar:
GandLboth five-limit is recursive just intonation.G12-TET andLfive-limit is the hybrid at the end of the other post: piano roots with just chords built on them.GandLboth 12-TET is plain 12-TET. A step of an equal division above another step is the step of their sum,2^(a/12) * 2^(b/12) = 2^((a+b)/12), so recursing it moves nothing.
That last property belongs to equal divisions and to nothing else. If
T[a] * T[b] = T[a+b] for every pair of degrees, then T[n] = T[1]^n, which is
an equal division. So recursion changes every tuning except the equal ones.
Scales Of Different Sizes
The global and the local scale do not need the same number of notes or the
same period. Every row is as long as the local scale and repeats at the local
scale’s period, and there is one row for each degree of the global scale. A
7-note diatonic scale on 12-TET roots is 12 pianos with 7 keys each.
Bohlen-Pierce on five-limit roots is 12 pianos that repeat at 3/1 instead of
the octave.
When the sizes differ, a column is no longer the same note name in every row. The matrix then compares each note with the nearest note of the global scale, and the colours show the nearest 12-TET note.
Try It
made with rust compiled to wasm
Play it
A progression
The matrix
a row per root of the global scale, a column per step of the local scale. The small number in a cell is how far that note is from the global scale's own pitch for it. Click a cell to hear it.
How to play it:
- The digit row,
1to=, picks one of the first twelve roots of the global scale. Clicking a root, or the head of a row in the matrix, picks it too. - The three letter rows play the local scale over the chosen root, starting at
zand going up one degree per key. - Notes you are holding move to the new root when you pick another one. That is the keyboard from the end of the recursive JI post: one hand picks the context, the other plays notes that are retuned to it.
- The progression is the one from the recursive JI post. Under each chord is every note that sounds different from the global scale alone, and by how many cents. In a scale that is not 12-tone, each root and chord note is the degree nearest the 12-TET one.
Comments0
Nothing here yet. Select any part of the page to quote it, or just start writing.
Add a comment
Comments are files in the repository. Writing one here opens a pull request against float3/float3.github.io, and it appears on the page once that is merged
the issue this will open
Fork it first. Automatically forking the Repo on edit does not currently work (known issue according to support) and produces 'unknown error'.