[go: up one dir, main page]

login
A117577
Equal divisions of the octave with nondecreasing consistency levels.
3
1, 2, 3, 4, 5, 12, 19, 22, 26, 29, 41, 58, 72, 80, 94, 282, 311, 2554, 12348, 14842, 17461
OFFSET
1,2
COMMENTS
An equal temperament is consistent at level N (odd integer) if all the intervals in the N-limit tonality diamond (set of ratios with odd factors of numerator and denominator not exceeding N) are approximated consistently, i.e. the composition of the approximations is the closest approximation of the composition.
LINKS
Tonalsoft Encyclopedia of Microtonal Music Theory, Consistency
EXAMPLE
3-EDO is consistent through the 5 limit because 6/5, 5/4 and 4/3 map to 1 step and 3/2, 8/5 and 5/3 map to 2 steps and all the compositions work out, for example 6/5 * 5/4 = 3/2 and 1 step + 1 step = 2 steps. It is not consistent through the 7 limit because 8/7 and 7/6 both map to 1 step, but 8/7 * 7/6 = 4/3 also maps to 1 step.
MAPLE
with(padic, ordp): diamond := proc(n) # tonality diamond for odd integer n local i, j, s; s := {}; for i from 1 by 2 to n do for j from 1 by 2 to n do s := s union {r2d2(i/j)} od od; sort(convert(s, list)) end: r2d2 := proc(q) # octave reduction of rational number q 2^(-floor(evalf(ln(q)/ln(2))))*q end: plim := proc(q) # prime limit of rational number q local r, i, p; r := 1; i := 0; while not (r=q) do i := i+1; p := ithprime(i); r := r*p^ordp(q, p) od; i end: vai := proc(n, i) # mapping of i-th prime by patent val for n round(evalf(n*ln(ithprime(i))/ln(2))) end: via := proc(n, l) # the patent val for n of length l local i, v; for i from 1 to l do v[i] := vai(n, i) od; convert(convert(v, array), list) end: h := proc(n, q) # mapping of interval q by patent val n if q=1 then RETURN(0) fi; dotprod(vec(q), via(n, plim(q))) end: consis := proc(n, s) # consistency of edo n with respect to consonance set s local i; for i from 1 to nops(s) do if not h(n, s[i])=round(n*l2(s[i])) then RETURN(false) fi od; RETURN(true) end: consl := proc(n) # highest odd-limit consistency for edo n local c; c := 3; while consis(n, diamond(c)) do c := c+2 od; c-2 end:
CROSSREFS
KEYWORD
nonn
AUTHOR
Gene Ward Smith, Mar 29 2006
STATUS
approved