Kite's thoughts on pergens: Difference between revisions
→Addenda (Spring 2026): completed |
→PergenLister: update the screenshots |
||
| (One intermediate revision by the same user not shown) | |||
| Line 4,165: | Line 4,165: | ||
The first section (PERGEN and Per/Gen cents) describes each pergen without regard to notational issues. The period and generator's cents are given, assuming a 5th of 700¢ + c. The generator is reduced, e.g. (P8/2, P5) has a generator of 100¢ + c, not 700¢ + c. The next two sections show a possible notation for P and G. The last section shows the unreduced pergen, and for false doubles, a possible single-pair notation. Horizontal lines group the pergens into blocks (half-splits, third-splits, etc). Red indicates problems. Generators of 50¢ or less are in red. EUs of a 3rd or more are in red. | The first section (PERGEN and Per/Gen cents) describes each pergen without regard to notational issues. The period and generator's cents are given, assuming a 5th of 700¢ + c. The generator is reduced, e.g. (P8/2, P5) has a generator of 100¢ + c, not 700¢ + c. The next two sections show a possible notation for P and G. The last section shows the unreduced pergen, and for false doubles, a possible single-pair notation. Horizontal lines group the pergens into blocks (half-splits, third-splits, etc). Red indicates problems. Generators of 50¢ or less are in red. EUs of a 3rd or more are in red. | ||
Screenshots of the first | Screenshots of the first 170 pergens: | ||
[[File:alt-pergenLister_1.png| | [[File:alt-pergenLister_1.png|852x852px|alt-pergenLister 1.png]] | ||
[[File: | [[File:Alt-pergenLister 2a.png|frameless|852x852px]] | ||
[[File:Alt-pergenLister 3.png|frameless|854x854px]] | |||
The first 39 pergens supported by 12edo: | |||
[[File:alt- | [[File:alt-pergenLister_12edo.png|857x857px|alt-pergenLister 12edo.png]] | ||
Some of the pergens supported by 15edo. A red asterisk means partial support, e.g. (P8, P5) only uses a 5edo subset of 15edo. | |||
[[File:alt-pergenLister_15edo.png|854x854px|alt-pergenLister 15edo.png]] | |||
Pergens supported by 19edo. Edos that are a prime number support only 1 pergen per block. | Pergens supported by 19edo. Edos that are a prime number support only 1 pergen per block. | ||
[[File:alt-pergenLister_19edo.png| | [[File:alt-pergenLister_19edo.png|857x857px|alt-pergenLister 19edo.png]] | ||
The first 54 imperfect pergens: | |||
[[File:Imperfect pergens.png|frameless|863x863px]] | |||
Listing all valid pergens is not a trivial task, like listing all valid edos or all valid MOS scales. Not all combinations of octave fractions and multigen fractions make a valid pergen. The search for rank-2 pergens can be done by looping through all possible square mappings [(x, y), (0, z)], and using the formula (P8/x, (i·z - y, x) / xz). While x is always positive and z is always nonzero, y can take on any value. For any x and z, y can be constrained to produce a reasonable cents value for 3/1. Let T be the tempered twefth 3/1. The mapping says T = y·P + z·G = y·P8/x + z·G. Thus y = x·(T/P8 - z·G/P8). We adopt the convention that G is less than half an octave. We constrain T so that the 5th is between 600¢ and 800¢, which certainly includes anything that sounds like a 5th. Thus T is between 3/2 and 5/3 of an octave. We assume that if the octave is stretched, the ranges of T and G will be stretched along with it. The outer ranges of y can now be computed, using the floor function to round down to the nearest integer, and the ceiling function to round up: | Listing all valid pergens is not a trivial task, like listing all valid edos or all valid MOS scales. Not all combinations of octave fractions and multigen fractions make a valid pergen. The search for rank-2 pergens can be done by looping through all possible square mappings [(x, y), (0, z)], and using the formula (P8/x, (i·z - y, x) / xz). While x is always positive and z is always nonzero, y can take on any value. For any x and z, y can be constrained to produce a reasonable cents value for 3/1. Let T be the tempered twefth 3/1. The mapping says T = y·P + z·G = y·P8/x + z·G. Thus y = x·(T/P8 - z·G/P8). We adopt the convention that G is less than half an octave. We constrain T so that the 5th is between 600¢ and 800¢, which certainly includes anything that sounds like a 5th. Thus T is between 3/2 and 5/3 of an octave. We assume that if the octave is stretched, the ranges of T and G will be stretched along with it. The outer ranges of y can now be computed, using the floor function to round down to the nearest integer, and the ceiling function to round up: | ||
| Line 4,786: | Line 4,794: | ||
== Addenda (Spring 2026) == | == Addenda (Spring 2026) == | ||
=== Initial commas === | |||
As one stacks generators and octave-reduces, at some point one overshoots or undershoots the octave by an interval of about a quartertone or less. This small interval is the pergen's initial comma. For example, (P8, P5)'s initial comma is the pythagorean comma, its next comma is Mercator's comma, etc. Each comma has a certain genspan, here 12 and 53. The genspan of the initial comma limits the size of a scale one can construct, assuming one wants to avoid overly-small steps. Thus one can have a pythagorean scale of up to 12 notes, but a 13-note scale will have a very small step. Note that the genspan gives the maximum notes per period, not per octave. Assuming one also wants to avoid extreme L/s step ratios also limits the maximum notes per octave. | As one stacks generators and octave-reduces, at some point one overshoots or undershoots the octave by an interval of about a quartertone or less. This small interval is the pergen's initial comma. For example, (P8, P5)'s initial comma is the pythagorean comma, its next comma is Mercator's comma, etc. Each comma has a certain genspan, here 12 and 53. The genspan of the initial comma limits the size of a scale one can construct, assuming one wants to avoid overly-small steps. Thus one can have a pythagorean scale of up to 12 notes, but a 13-note scale will have a very small step. Note that the genspan gives the maximum notes per period, not per octave. Assuming one also wants to avoid extreme L/s step ratios also limits the maximum notes per octave. | ||
| Line 4,976: | Line 4,984: | ||
For example, pergen #25 (P8/4, P4/3) has a 33¢ step at 2G - P. Thus ^1 = 2G - P. Multiplying 2G by 3 gives us unsplit 4ths, and multiplying P by 4 gives us unsplit octaves. Thus we must multiply the up-arrow by 12 to get an unsplit 3-limit interval. 12 ups = 24G - 12P = 8P4 - 3P8 = dim 4th. Thus the EU is v<sup>12</sup>d4, and ^<sup>12</sup>C = Fb. But the pergenLister program lists the single-pair notation for this pergen as having an EU of ^<sup>12</sup>d<sup>9</sup>4. Thus the pergenLister algorithm missed a much simpler EU, and hence a much simpler notation. | For example, pergen #25 (P8/4, P4/3) has a 33¢ step at 2G - P. Thus ^1 = 2G - P. Multiplying 2G by 3 gives us unsplit 4ths, and multiplying P by 4 gives us unsplit octaves. Thus we must multiply the up-arrow by 12 to get an unsplit 3-limit interval. 12 ups = 24G - 12P = 8P4 - 3P8 = dim 4th. Thus the EU is v<sup>12</sup>d4, and ^<sup>12</sup>C = Fb. But the pergenLister program lists the single-pair notation for this pergen as having an EU of ^<sup>12</sup>d<sup>9</sup>4. Thus the pergenLister algorithm missed a much simpler EU, and hence a much simpler notation. | ||
Not all initial commas imply a valid notation. For pergen #66 (P8, P5/6), the initial comma is P - 10G = m2/3 = 33.3¢ - 1.67c. The implied EU is v<sup>3</sup>m2. But this notation is incomplete because it only notates 3 of the 6 fifthchains. There must be 6 arrows in the EU, not 3. Or else there must be a second EU with 2 arrows. | Not all initial commas imply a valid notation. For pergen #66 (P8, P5/6), the initial comma is P - 10G = m2/3 = 33.3¢ - 1.67c. The implied EU is v<sup>3</sup>m2. But this notation is incomplete because it only notates 3 of the 6 fifthchains. There must be 6 arrows in the EU, not 3. Or else there must be a second EU with 2 arrows. Fortunately, the next comma on the genchain is 21G - 2P = A1/2 = 50¢ - 3.5c, which implies a double-pair notation with EU' = \\A1. This is the notation found by pergenLister. | ||
True doubles require double-pair notation and thus require finding two commas. | True doubles require double-pair notation and thus require finding two commas. | ||