Aberrismic theory: Difference between revisions
m →Code |
m →Code |
||
| Line 85: | Line 85: | ||
where the tuning's s step satisfies the bound `aberLower` <= s <= `aberUpper`. | where the tuning's s step satisfies the bound `aberLower` <= s <= `aberUpper`. | ||
Non-coprime step ratios are reduced. -} | Non-coprime step ratios are reduced. -} | ||
boundedEdosWithTernaryAberrismicScale :: Int -> Double -> Double -> Int -> Int -> Int -> [(Int, (Int, Int, Int))] | |||
boundedEdosWithTernaryAberrismicScale edoBound aberLower aberUpper countL countM countS = | |||
let | let | ||
sizesOfS = [1..edoBound] -- smallest s possible in n-edo is 1\n | sizesOfS = [1..edoBound] -- smallest s possible in n-edo is 1\n | ||
| Line 100: | Line 100: | ||
x > y && y > z && aberLower <= aberSize && aberSize <= aberUpper ] | x > y && y > z && aberLower <= aberSize && aberSize <= aberUpper ] | ||
{- | {- | ||
` | `boundedEdosWithTernaryAberrismicScale 53 20.0 60.0 5 2 3` returns: | ||
`[(22,(3,2,1)),(27,(4,2,1)),(29,(4,3,1)),(32,(5,2,1)),(34,(5,3,1)),(36,(5,4,1)),(37,(6,2,1)),(39,(6,3,1)),(41,(6,4,1)),(42,(6,3,2)),(42,(7,2,1)),(43,(6,5,1)),(44,(3,2,1)),(44,(7,3,1)),(46,(6,5,2)),(46,(7,4,1)),(47,(7,3,2)),(47,(8,2,1)),(48,(7,5,1)),(49,(7,4,2)),(49,(8,3,1)),(50,(7,6,1)),(51,(7,5,2)),(51,(8,4,1)),(52,(8,3,2)),(52,(9,2,1)),(53,(7,6,2)),(53,(8,5,1))]` | `[(22,(3,2,1)),(27,(4,2,1)),(29,(4,3,1)),(32,(5,2,1)),(34,(5,3,1)),(36,(5,4,1)),(37,(6,2,1)),(39,(6,3,1)),(41,(6,4,1)),(42,(6,3,2)),(42,(7,2,1)),(43,(6,5,1)),(44,(3,2,1)),(44,(7,3,1)),(46,(6,5,2)),(46,(7,4,1)),(47,(7,3,2)),(47,(8,2,1)),(48,(7,5,1)),(49,(7,4,2)),(49,(8,3,1)),(50,(7,6,1)),(51,(7,5,2)),(51,(8,4,1)),(52,(8,3,2)),(52,(9,2,1)),(53,(7,6,2)),(53,(8,5,1))]` | ||
-} | -} | ||
Revision as of 03:42, 19 February 2024
groundfault's aberrismic theory is a xen theoretical paradigm using aberrismas, a type of scale step which can be added to a scale pattern to turn it into a scale of one rank higher. The aberrisma is a new category of melodic steps that are smaller than the steps in the original scale, which prototypically are categorical "seconds" such as whole tones and semitones. The typical range for an aberrisma is 20 to 60 cents; groundfault holds the optimal melodic size for an aberrisma to be approximately 40 cents. Examples of ternary patterns that can be made by adding aberrismas to the 5L2s diatonic MOS are:
- pinedye (5L2m1s or 1s)
- diasem (5L2m2s or 2s)
- blackdye (5L2m3s or 3s)
- diamech (5L2m4s or 4s)
- (tentative name) diachromedye (5L2m5s or 5s)
Edos with quasi-diatonic aberrismic scales
All edos 20 and above have an aberrismic scale of the form 5L2mks. If n = 5p + 2q where p > q > 1 (n-edo is a diatonic edo with step ratio p:q), then (n + k)edo has a 5L2mks scale with step ratio p:q:1 for 1 ≤ k < q, and (n + rk)edo has a 5L2mks scale with step ratio p:q:r if 1 ≤ r ≤ rk < q.
Aberrismic theory and RTT
Certain scales with aberrismas may be endowed with JI interpretations via RTT temperaments, which may be used in suitable equal temperaments. Under groundfault's use of edos (usually patent vals) as RTT temperaments, the aberrisma tends to become a 81/80 in a 2.3.5 context and a 64/63 in a 2.3.7 context. Some scales such as 5L2m5s and 5L2m7s admit a more accurate 2.3.5.7 interpretation that tempers out neither 81/80 nor 64/63 but identifies the two commas, tempering out 5120/5103.
At times, a scale pattern has varying temperaments according to the tuning. For example, 5L2m3s may be given the temperament structure of either untempered 2.3.5 or Ultrapyth temperament.
Example: blackdye
The following table shows two different temperament interpretations for the same aberrismic scale pattern blackdye (sLmLsLmLsL), under untempered 2.3.5 and Ultrapyth respectively.
- Untempered does not mean that the final tuning must be the JI tuning, but simply that there exists a tuning with no deviation from JI, or that the temperament before applying the tuning map has the same rank as the JI subgroup. This also implies that there is only one JI ratio for each interval under such interpretations, unlike in temperaments that temper out commas.
- Ultrapyth, 2.3.5.7.11.13[32 & 37], is a diatonic temperament generated by a fifth even sharper than in Superpyth. 37edo provides a nearly optimal tuning. Note that we chose to regard the 3-step 2L + s as a 14/11 rather than as a 5/4, lest the interpretation merely be an extension of the untempered 2.3.5 one.
| Interval class | Sizes | Untempered 2.3.5 | Ultrapyth |
|---|---|---|---|
| 1-steps | s m L |
81/80 16/15 10/9 |
143/140 22/21 160/143 |
| 2-steps | L + s L + m |
9/8 32/27 |
8/7, 9/8 7/6 |
| 3-steps | L + 2s L + m + s 2L + s 2L + m |
729/640 6/5 5/4 320/243 |
7/6 13/11 14/11 13/10 |
| 4-steps | 2L + 2s 2L + m + s |
81/64 4/3 |
13/10 4/3 |
| 5-steps | 2L + m + 2s 2L + 2m + s 3L + 2s 3L + m + s |
27/20 64/45 45/32 40/27 |
66/49 11/8 16/11 49/33 |
| 6-steps | 3L + m + 2s 3L + 2m + s |
3/2 128/81 |
3/2 20/13 |
| 7-steps | 3L + m + 3s 3L + 2m + 2s 4L + m + 2s 4L + 2m + s |
243/160 8/5 5/3 1280/729 |
20/13 11/7 22/13 12/7 |
| 8-steps | 4L + m + 3s 4L + 2m + 2s |
27/16 16/9 |
12/7 7/4, 16/9 |
| 9-steps | 5L + 2m + s 5L + m + 2s 4L + 2m + 2s |
9/5 15/8 160/81 |
143/80 21/11 280/143 |
Musical open problems
- Investigate counterpoint in diatonic-based aberrismic scales.
Code
Haskell function for edo tunings of aberrismic scales:
import Data.List
-- `k`\`edo` in cents.
stepsOfEdoInCents :: Int -> Int -> Double
stepsOfEdoInCents k edo = 1200*fromIntegral k/fromIntegral edo
{- Return a list of (edo, step ratio) tuples for the `(countL)L(countM)M(countS)s` aberrismic scale where `edo <= edoBound`,
where the tuning's s step satisfies the bound `aberLower` <= s <= `aberUpper`.
Non-coprime step ratios are reduced. -}
boundedEdosWithTernaryAberrismicScale :: Int -> Double -> Double -> Int -> Int -> Int -> [(Int, (Int, Int, Int))]
boundedEdosWithTernaryAberrismicScale edoBound aberLower aberUpper countL countM countS =
let
sizesOfS = [1..edoBound] -- smallest s possible in n-edo is 1\n
sizesOfM = [2..edoBound] -- smallest m possible in n-edo is 2\n
sizesOfL = [3..edoBound] -- smallest L possible in n-edo is 3\n
in sortBy (\x y -> compare (fst x) (fst y)) -- sort the list, which is finite, by the edo
$ filter (\x -> (fst x) <= edoBound) -- filter edos that exceed `edoBound`
[ (edo, (x`div`d, y`div`d, z`div`d)) -- divide step sizes by gcd
| x <- sizesOfL, y <- sizesOfM, z <- sizesOfS,
let d = gcd x (gcd y z),
let edo = countL*x + countM*y + countS*z,
let aberSize = stepsOfEdoInCents z edo, -- compute aberrisma size in given tuning
x > y && y > z && aberLower <= aberSize && aberSize <= aberUpper ]
{-
`boundedEdosWithTernaryAberrismicScale 53 20.0 60.0 5 2 3` returns:
`[(22,(3,2,1)),(27,(4,2,1)),(29,(4,3,1)),(32,(5,2,1)),(34,(5,3,1)),(36,(5,4,1)),(37,(6,2,1)),(39,(6,3,1)),(41,(6,4,1)),(42,(6,3,2)),(42,(7,2,1)),(43,(6,5,1)),(44,(3,2,1)),(44,(7,3,1)),(46,(6,5,2)),(46,(7,4,1)),(47,(7,3,2)),(47,(8,2,1)),(48,(7,5,1)),(49,(7,4,2)),(49,(8,3,1)),(50,(7,6,1)),(51,(7,5,2)),(51,(8,4,1)),(52,(8,3,2)),(52,(9,2,1)),(53,(7,6,2)),(53,(8,5,1))]`
-}