Godtone (talk | contribs)
m →Novation Launchpad Pro MK3 isomorphic keyboard code: cleanliness (replace transform(k) with midi_note where applicable)
Godtone (talk | contribs)
→My Python 3 code: account for cyclonic GSes and make "ags" synonymous with "gs"
Line 1,091: Line 1,091:
return (r[0]*k, r[1]*k)
return (r[0]*k, r[1]*k)


def ags(gs,n=0,ave=2):
def gs(gs,n=0,ave=2):
if n==0:
    if n==0:
n = len(gs)*2 + 1
            n = len(gs)*2 + 1
scale = [(1,1)]
    scale = [(1,1)]
gi = 0
    gi = 0
while len(scale) < n:
    while len(scale) < n:
scale.append(reduce(mul_iv( scale[-1], gs[gi] ),ave))
            new_iv = reduce(mul_iv( scale[-1], gs[gi] ),ave)
gi = (gi+1)%len(gs)
            gi = (gi+1)%len(gs)
scale.sort(key=lambda x: as_float(x))
            while new_iv in scale:
scale.append((ave,1))
                    new_iv = reduce(mul_iv( new_iv, gs[gi] ),ave)
return scale[1:]
                    gi = (gi+1)%len(gs)
            scale.append(new_iv)
    scale.sort(key=lambda x: as_float(x))
    scale.append((ave,1))
    return scale[1:]
ags = gs


# returns [] if cs or details of earliest counterexample if not;
# returns [] if cs or details of earliest counterexample if not;