Aberrismic theory: Difference between revisions

From Xenharmonic Wiki
Jump to navigation Jump to search
Inthar (talk | contribs)
Inthar (talk | contribs)
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. -}
boundedEdosWithAberrismicScale :: Int -> Double -> Double -> Int -> Int -> Int -> [(Int, (Int, Int, Int))]
boundedEdosWithTernaryAberrismicScale :: Int -> Double -> Double -> Int -> Int -> Int -> [(Int, (Int, Int, Int))]
boundedEdosWithAberrismicScale edoBound aberLower aberUpper countL countM countS =  
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 ]
{-  
{-  
`boundedEdosWithAberrismicScale 53 20.0 60.0 5 2 3` returns:
`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:

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 ≤ rrk < 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.
Blackdye intervals in two temperaments
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

  1. 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))]`
-}