ISF Logo   IS Forum
Forum Index Register Members List Events Mark Forums Read Help

Go Back   International Skeptics Forum » General Topics » History, Literature, and the Arts
 


Welcome to the International Skeptics Forum, where we discuss skepticism, critical thinking, the paranormal and science in a friendly but lively way. You are currently viewing the forum as a guest, which means you are missing out on discussing matters that are of interest to you. Please consider registering so you can gain full use of the forum features and interact with other Members. Registration is simple, fast and free! Click here to register today.
Reply
Old 16th March 2016, 04:43 AM   #321
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
Having established that much, I'm backing up.

The idea of "balance" is about psychology, as always. The psychology of listening.

Now, I can't be bothered to come up with some well-researched, complete theory. I'd grow old and die before I'd figure it out, and I'd never make music.

So, instead, I need to sketch out some simple ad-hoc reasons why "balance" is important.

1) Expectations about the Usual and the Unusual:
a) Within the immediate context of a quarter-tone scale
b) Within the larger context of all the music you've heard

Here we are concerned only with expectations created by what has happened before, not by anything else.


2) Expectations created by a q-t tuning conceived as
-- a 1-dimensional chain of 5ths (or 3/2 ratios)
-- a 2-dimensional chain of 5ths and major thirds (3/2 and 5/4 ratios)


https://en.wikipedia.org/wiki/Lattice_(music)

Last edited by calebprime; 16th March 2016 at 05:30 AM.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 16th March 2016, 04:56 AM   #322
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
Well, all that was complicated enough, but can't we just simplify,
and have a rule that says,

when we want it

so many of

n times some-other-n notes,

and

so many of

the other notes, or the not-n-times etc. notes.



This will work for all EDOs that are not prime numbers.

So, for example, in 36EDO, we set our n*z value to 3, so that the program breaks the entire tuning down into three groups: 0,3,6,9,etc. 1,4,7,10, etc. 2,5,8,11,etc.

Then we could simply require that, if we wanted "balance", our scale must have so many of group1, so many of group2, and so many of group3.

Last edited by calebprime; 16th March 2016 at 05:00 AM.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 16th March 2016, 05:08 AM   #323
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
But, supposing we were trying to have the program work with scales in 41EDO.

http://xenharmonic.wikispaces.com/41edo

Those simple rules wouldn't work.

Well, it would always be possible to solve the problem like this:

-The user has the option to build any number of lists of notes, in the format of simple numbers. The numbers mean the pitches within that EDO.

-Each list can be called an "In" list or an "Out" list.

The "In" list within that EDO is whatever we deem the usual, the typical, the mundane, the jejune, the ordinary, the quotidian.

The "Out" list with that EDO is whatever we deem the piquant, the saucy, the unexpected, the "walk on the wild side", the weird, the "different", the "challenging".

Then, having built this list by hand, it's simply a matter of telling the program,

- a range of min to max of the "In"

- a range of min to max of the "Out"


That's my story, and I'm sticking to it.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 16th March 2016, 05:35 AM   #324
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
You Know You're In, You Know You're Out

A Memory:

Early in the career ladder, when the band consisted of maybe Greg Farson, Dale, Rab, and Me -- the young Mogi Yogi.

We had some gig out of town, in a town hall, or something.

The accomodations were rudimentary.

The crowd was bemused.

At some point, in despair, we sort of started walking around in a circle, chanting.

"You Know You're In, You Know You're Out!"

My memory fails regarding the follow-up. I don't know whether we were asked back, or not.

Oh, yes. And I remember, we didn't have enough songs, at first. Dale would turn around from doing his Mick Jagger impersonation, and make a stretching motion with his hands while I soloed. Meaning: Stretch out your solo, we only know 2 more tunes, and we have another half-hour to fill.

Last edited by calebprime; 16th March 2016 at 05:37 AM.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 16th March 2016, 05:39 AM   #325
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
U D Mensch, Dodge

> (load "Desktop/microtonal7.txt")
modulus: 24
length-min: 7
length-max: 7
wolves: (13 15)
wolf-max: 2
distance-2-min: 2
distance-3-min: 6
bad-notes: (1 13 15 23)
balanced: #t
multiple-spellings: #f

notes: (0 5 7 11 14 17 21)
intervals: (5 2 4 3 3 4 3 5 2 4 3 3 4 3)
0 5 7 11 | 2 5 9
(A B+ C+ D+ E F+ G+)

notes: (0 4 8 11 14 18 21)
intervals: (4 4 3 3 4 3 3 4 4 3 3 4 3 3)
0 4 8 11 | 2 6 9
(A B C# D+ E F# G+)

notes: (0 4 7 12 14 18 21)
intervals: (4 3 5 2 4 3 3 4 3 5 2 4 3 3)
0 4 7 | 0 2 6 9
(A B C+ D# E F# G+)

notes: (0 4 7 11 14 18 21)
intervals: (4 3 4 3 4 3 3 4 3 4 3 4 3 3)
0 4 7 11 | 2 6 9
(A B C+ D+ E F# G+)

notes: (0 4 7 11 14 17 21)
intervals: (4 3 4 3 3 4 3 4 3 4 3 3 4 3)
0 4 7 11 | 2 5 9
(A B C+ D+ E F+ G+)

notes: (0 4 7 10 14 18 21)
intervals: (4 3 3 4 4 3 3 4 3 3 4 4 3 3)
0 4 7 10 | 2 6 9
(A B C+ D E F# G+)

notes: (0 4 7 10 14 17 22)
intervals: (4 3 3 4 3 5 2 4 3 3 4 3 5 2)
0 4 7 10 | 2 5 10
(A B C+ D E F+ G#)

notes: (0 4 7 10 14 17 21)
intervals: (4 3 3 4 3 4 3 4 3 3 4 3 4 3)
0 4 7 10 | 2 5 9
(A B C+ D E F+ G+)

notes: (0 4 7 10 14 17 20)
intervals: (4 3 3 4 3 3 4 4 3 3 4 3 3 4)
0 4 7 10 | 2 5 8
(A B C+ D E F+ G)

notes: (0 4 7 10 14 16 21)
intervals: (4 3 3 4 2 5 3 4 3 3 4 2 5 3)
0 4 7 10 | 2 4 9
(A B C+ D E F G+)

notes: (0 4 6 11 14 18 21)
intervals: (4 2 5 3 4 3 3 4 2 5 3 4 3 3)
0 4 6 11 | 2 6 9
(A B C D+ E F# G+)

notes: (0 3 8 10 14 17 20)
intervals: (3 5 2 4 3 3 4 3 5 2 4 3 3 4)
0 3 8 10 | 2 5 8
(A B- C# D E F+ G)

notes: (0 3 7 11 14 17 21)
intervals: (3 4 4 3 3 4 3 3 4 4 3 3 4 3)
0 3 7 11 | 2 5 9
(A Bb+ C+ D+ E F+ G+)

notes: (0 3 7 10 14 17 21)
intervals: (3 4 3 4 3 4 3 3 4 3 4 3 4 3)
0 3 7 10 | 2 5 9
(A Bb+ C+ D E F+ G+)

notes: (0 3 7 10 14 17 20)
intervals: (3 4 3 4 3 3 4 3 4 3 4 3 3 4)
0 3 7 10 | 2 5 8
(A Bb+ C+ D E F+ G)

notes: (0 3 7 9 14 17 21)
intervals: (3 4 2 5 3 4 3 3 4 2 5 3 4 3)
0 3 7 9 | 2 5 9
(A Bb+ C+ Db+ E F+ G+)

notes: (0 3 6 10 14 17 20)
intervals: (3 3 4 4 3 3 4 3 3 4 4 3 3 4)
0 3 6 10 | 2 5 8
(A Bb+ C D E F+ G)

notes: (0 3 6 10 12 17 20)
intervals: (3 3 4 2 5 3 4 3 3 4 2 5 3 4)
0 3 6 10 | 0 5 8
(A Bb+ C D Eb F+ G)

notes: (0 2 7 10 14 17 20)
intervals: (2 5 3 4 3 3 4 2 5 3 4 3 3 4)
0 2 7 10 | 2 5 8
(A Bb C+ D E F+ G)

notes: (0 2 6 9 12 16 19)
intervals: (2 4 3 3 4 3 5 2 4 3 3 4 3 5)
0 2 6 9 | 0 4 7
(A Bb C Db+ Eb F Gb+)


number of scales found: 20
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 17th March 2016, 03:55 AM   #326
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
First go at "balance" (see above) and "completeness"

Quote:
They're done, but in a simple way that
might be slow if the modulus is high.

If that happens, let me know, and I'll
try to figure out a smarter way.

"Balance" is described above

"Completeness" is merely an option that prevents the program from printing tons of scales which are contained in more complete scales. (Also known as "subsets".)

With the "Completeness" setting on, I should be able to set the program to re-create -- in simplest form -- the list of all conventional 12-tone scales. Somewhat similar to The Lydian Chromatic Concept, for example.




; okay to change these

(define modulus 12)
(define length-min 6) ; minimum number of notes in scale
(define length-max 8) ; maximum number of notes in scale

; wolf intervals
(define wolves '())

(define wolf-max 2) ; this many wolves are ok, but no more

(define distance-2-min 1) ; minimum difference between any 2 consecutive notes in scale
(define distance-3-min 3) ; minimum difference between the lowest and highest notes
; of any 3 consecutive notes in scale
; never use these notes
(define bad-notes '())

; #t : don't display scale if it's contained in any other displayed scale
; #f : do
(define require-completeness #t)

; if you don't care about balance, set both balance-in-min and balance-out-min to 0
(define balance-notes '(0 2 4 6 8 10 12 14 16 18 20 22))
(define balance-in-min 0) ; at least this many notes in scale must come from balance-notes
(define balance-out-min 0) ; at least this many notes in scale must come from outside balance-notes

; #t : display multiple spellings if they're all equally good
; #f : never display more than one spelling
(define multiple-spellings #f)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;
; don't change stuff below

(define settings
'(
modulus
length-min
length-max
wolves
wolf-max
distance-2-min
distance-3-min
bad-notes
require-completeness
balance-notes
balance-in-min
balance-out-min
multiple-spellings))

(define (setting-length s)
(string-length (symbol->string s)))

(define (display-setting s len)
(display (make-string (- len (setting-length s)) #\space))
(display s)
(display ": ")
(display (eval s))
(newline))

(define (display-settings)
(let ((len (apply max (map setting-length settings))))
(for-each (lambda (s) (display-setting s len))
settings)))

; A note is represented as a nonnegative integer less than modulus.
; A scale is represented as a list of notes.

(define (interval a b)
(modulo (- b a) modulus))

(define (transpose-note n k)
(modulo (+ n k) modulus))

(define (apply-to-leaves f x)
(cond
((null? x) '())
((pair? x) (cons (apply-to-leaves f (car x))
(apply-to-leaves f (cdr x))))
(else (f x))))

(define (transpose x k)
(apply-to-leaves (lambda (n) (transpose-note n k))
x))

; assumption: x is no longer than y
; does x occur at the beginning of y?
(define (prefix? x y)
(or (null? x)
(and (equal? (car x) (car y))
(prefix? (cdr x) (cdr y)))))

; assumption: d is (- (length y) (length x))
; does x occur anywhere in y?
(define (sublist? x y d)
(and (>= d 0)
(or (prefix? x y)
(sublist? x (cdr y) (- d 1)))))

; ns is a non-empty list of notes
(define (notes->intervals ns)
(let ((first (car ns)))
(let recur ((n first)
(rest (cdr ns)))
(if (null? rest)
(list (interval n first))
(cons (interval n (car rest))
(recur (car rest) (cdr rest)))))))

(define (test-cell x y)
(if (not (= (length x) (length y)))
'different-lengths
(let ((xx (notes->intervals (list-sort < x)))
(yy (notes->intervals (list-sort < y)))
(d (length (cdr y))))
(let* ((y-forward (append (cdr yy) yy))
(y-backward (reverse y-forward)))
(if (or (sublist? xx y-forward d)
(sublist? xx y-backward d))
'same
'different)))))

; return a list of all size-k subsets of list xs
; n is (length xs)
(define (subsets xs n k)
(cond
((zero? k) '(()))
((> k n) '())
(else (append
(map (lambda (s) (cons (car xs) s))
(subsets (cdr xs) (- n 1) (- k 1)))
(subsets (cdr xs) (- n 1) k)))))

(define (display-2-12 s)
(let recur ((s s)
(b #t))
(when (pair? s)
(cond
((< (car s) 12) (display (car s)) (display " ") (recur (cdr s) #t))
(b (display "| ") (recur s #f))
(else (display (- (car s) 12)) (display " ") (recur (cdr s) #f))))))

(define (display-spellings s)
(let ((spellings (best-spellings s)))
(for-each (lambda (x) (display x) (newline))
(if multiple-spellings
spellings
(list (car spellings))))))

(define (display-scale s)
(display "notes: ")
(display s)
(newline)
(display "intervals: ")
(let ((x (notes->intervals s)))
(display (append x x)))
(newline)
(case modulus
((12) (display-spellings (map (lambda (n) (* n 2)) s)))
((24) (display-2-12 s) (newline)
(display-spellings s)))
(newline))

(define (display-scales ss)
(for-each display-scale ss))

(define (display-note n)
(display n)
(case modulus
((12) (display " ") (display (vector-ref note-names (* n 2))))
((24) (display " ") (display (vector-ref note-names n)))))

(define (print x)
(cond
((number? x) (display-note x))
((and (pair? x) (pair? (car x))) (display-scales x))
((pair? x) (display-scale x))))

(define scales '())

(define (found! scale)
(let ((s (reverse scale)))
(set! scales (cons s scales))
(display #\.)))


; notes is a list of allowable notes, in increasing order
; n-len is the length of notes
; scale is the scale so far, in decreasing order
; s-len is the length of scale
; wolf is the number of wolf intervals in scale
; b-notes is the number of notes in scale that are in balance-notes

; call found! for every scale that follows the rules and
; that can be made by adding to 'scale' any number (> 0)
; of notes from 'notes'
(define (find-scales notes n-len scale s-len wolf b-notes)
(when (and (positive? n-len)
(< s-len length-max)
(>= (+ s-len n-len) length-min))
(let ((n (car notes))
(notes (cdr notes))
(n-len (- n-len 1)))
(find-scales notes n-len scale s-len wolf b-notes)
(when (distances-ok? n scale s-len)
(let ((wolf (+ wolf (count-wolves n scale))))
(when (<= wolf wolf-max)
(let ((b-notes (+ b-notes (if (member n balance-notes) 1 0)))
(scale (cons n scale))
(s-len (+ 1 s-len)))
(find-scales notes n-len scale s-len wolf b-notes)
(when (and (>= s-len length-min)
(balance-ok? s-len b-notes)
(final-distances-ok? scale s-len))
(found! scale)))))))))

(define (distances-ok? n scale len)
(and (>= (interval (car scale) n) distance-2-min)
(or (<= len 1)
(and (>= (interval (cadr scale) n) distance-3-min)
(>= (interval n (list-ref scale (- len 2))) distance-3-min)))))

(define (final-distances-ok? scale len)
(and (>= (interval (car scale) 0) distance-2-min)
(>= (interval (cadr scale) 0) distance-3-min)))

(define (count-wolves n scale)
(fold-left (lambda (sum note)
(+ sum
(if (member (interval note n) wolves) 1 0)
(if (member (interval n note) wolves) 1 0)))
0 scale))

(define (balance-ok? s-len b-notes)
(<= balance-in-min b-notes (- s-len balance-out-min)))

(define note-names
'#(("A" ) ; 0
("A+" "A#-" "Bb-") ; 1
("A#" "Bb" ) ; 2
("A#+" "Bb+" "B-" ) ; 3
("B" ) ; 4
("B+" "C-" ) ; 5
("C" ) ; 6
("C+" "C#-" "Db-") ; 7
("C#" "Db" ) ; 8
("C#+" "Db+" "D-" ) ; 9
("D" ) ; 10
("D+" "D#-" "Eb-") ; 11
("D#" "Eb" ) ; 12
("D#+" "Eb+" "E-" ) ; 13
("E" ) ; 14
("E+" "F-" ) ; 15
("F" ) ; 16
("F+" "F#-" "Gb-") ; 17
("F#" "Gb" ) ; 18
("F#+" "Gb+" "G-" ) ; 19
("G" ) ; 20
("G+" "G#-" "Ab-") ; 21
("G#" "Ab" ) ; 22
("G#+" "Ab+" "A-" ) ; 23
))

; A name code represents, e.g., F#+, as
; a list of three numbers, one for the F,
; one for the # and one for the +.
;
; first number: A through G are 0 through 6, respectively.
; second number: b is -1, # is +1, none is 0.
; third number: - is -1, + is +1, none is 0.

(define code-values
'((#\A . 0)
(#\B . 1)
(#\C . 2)
(#\D . 3)
(#\E . 4)
(#\F . 5)
(#\G . 6)))

; assumes name is properly capitalized
; i.e., first letter is capital, rest aren't
(define (name->code name)
(let ((lst (string->list name)))
(let ((letter (car lst))
(accidentals (cdr lst)))
(list
(cdr (assoc letter code-values))
(cond
((member #\b accidentals) -1)
((member #\# accidentals) +1)
(else 0))
(cond
((member #\- accidentals) -1)
((member #\+ accidentals) +1)
(else 0))))))

(define (code->name code)
(let ((x (car code))
(y (cadr code))
(z (caddr code)))
(string-append
(string (car (list-ref code-values x)))
(case y
((-1) "b")
((+1) "#")
(else ""))
(case z
((-1) "-")
((+1) "+")
(else "")))))

; same structure as note-names, i.e. vector of lists,
; except with each name replaced by the corresponding code
(define name-codes
(vector-map (lambda (name-list) (map name->code name-list))
note-names))

(define note-values
'((#\A . 0)
(#\B . 4)
(#\C . 6)
(#\D . 10)
(#\E . 14)
(#\F . 16)
(#\G . 20)
(#\# . 2)
(#\b . -2)
(#\+ . 1)
(#\- . -1)))

(define (string->note s)
(apply +
(map (lambda (c) (cdr (assoc c note-values)))
(let ((cs (string->list s)))
(cons (char-upcase (car cs))
(map char-downcase (cdr cs)))))))

(define (cross-product . x)
(if (null? x)
'(())
(apply append
(map (lambda (a)
(map (lambda (b) (cons a b))
(apply cross-product (cdr x))))
(car x)))))

(define (vector-increment! v i)
(vector-set! v i (+ 1 (vector-ref v i))))

; measures the extent to which letters are repeated
(define (repetitiveness x) ; x: list of name codes
(let ((v (make-vector 7 0)))
(for-each (lambda (c) (vector-increment! v (car c)))
x)
(apply + (map (lambda (x) (* x x))
(vector->list v)))))

; # of flats or # of sharps, whichever is smaller
(define (inconsistency x) ; x: list of name codes
(let ((v (make-vector 3 0)))
(for-each (lambda (c) (vector-increment! v (+ 1 (cadr c))))
x)
(min (vector-ref v 0)
(vector-ref v 2))))

; returns list of those items x of lst for which (f x) is least
(define (min-scorers f lst)
(let* ((scored-lst (map (lambda (x) (cons (f x) x))
lst))
(min-score (fold-left (lambda (a x) (min a (car x)))
(caar scored-lst) (cdr scored-lst))))
(map cdr
(filter (lambda (x) (equal? (car x) min-score))
scored-lst))))

(define (best-spellings scale)
(let* ((all-spellings (apply cross-product
(map (lambda (n) (vector-ref name-codes n))
scale)))
(best (min-scorers inconsistency
(min-scorers repetitiveness all-spellings))))
(map (lambda (scale) (map code->name scale))
best)))

; x and y are lists of numbers, each in increasing order and containing no duplicates
(define (subset? x y)
(cond
((null? x) #t)
((null? y) #f)
((< (car x) (car y)) #f)
((> (car x) (car y)) (subset? x (cdr y)))
(else (subset? (cdr x) (cdr y)))))

(define (remove-subsets xs)
(remp (lambda (x)
(exists (lambda (x2)
(and (not (equal? x x2))
(subset? x x2)))
xs))
xs))

(define (go)
(set! scales '())
(display-settings)
(newline)
(display "working")
(let ((allowed-notes (remp (lambda (n) (member n bad-notes))
(cdr (iota modulus)))))
(find-scales allowed-notes (length allowed-notes) '(0) 1 0
(if (member 0 balance-notes) 1 0))
(when require-completeness
(set! scales (remove-subsets scales)))
(display "done")
(newline)
(newline)
(display-scales scales)
(newline)
(display "number of scales found: ")
(display (length scales))
(newline)))

(go)
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 17th March 2016, 04:15 AM   #327
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
And let's see what we ended up with.

I've added the names I typically call these scales, because
that's the most familiar way for me.


notes: (0 1 3 4 6 7 9 10)
intervals: (1 2 1 2 1 2 1 2 1 2 1 2 1 2 1 2) oct
(A Bb C C# D# E F# G)

notes: (0 1 3 4 6 8 9)
intervals: (1 2 1 2 2 1 3 1 2 1 2 2 1 3) Locrian b4 bb7
(A Bb C Db Eb F Gb)

notes: (0 1 3 4 6 8 10)
intervals: (1 2 1 2 2 2 2 1 2 1 2 2 2 2) Locrian b4
(A Bb C Db Eb F G)

notes: (0 1 3 4 7 8 10)
intervals: (1 2 1 3 1 2 2 1 2 1 3 1 2 2) Phryg. b4
(A Bb C Db E F G)

notes: (0 1 3 5 6 8 9)
intervals: (1 2 2 1 2 1 3 1 2 2 1 2 1 3) Locrian bb7
(A Bb C D Eb F Gb)

notes: (0 1 3 5 6 8 10)
intervals: (1 2 2 1 2 2 2 1 2 2 1 2 2 2) Locrian
(A Bb C D Eb F G)

notes: (0 1 3 5 6 9 10)
intervals: (1 2 2 1 3 1 2 1 2 2 1 3 1 2) Locrian Nat. 6
(A Bb C D Eb F# G)

notes: (0 1 3 5 7 8 10)
intervals: (1 2 2 2 1 2 2 1 2 2 2 1 2 2) Phryg.
(A Bb C D E F G)

notes: (0 1 3 5 7 9 10)
intervals: (1 2 2 2 2 1 2 1 2 2 2 2 1 2) Phryg. N. 6
(A Bb C D E F# G)

notes: (0 1 4 5 7 8 10)
intervals: (1 3 1 2 1 2 2 1 3 1 2 1 2 2) Phryg. N. 3
(A Bb C# D E F G)

notes: (0 1 4 5 7 9 10)
intervals: (1 3 1 2 2 1 2 1 3 1 2 2 1 2) Mixo. b2
(A Bb C# D E F# G)

notes: (0 1 4 5 8 9)
intervals: (1 3 1 3 1 3 1 3 1 3 1 3) Hex 1-3
(A Bb C# D F Gb)

notes: (0 2 3 5 6 8 9 11)
intervals: (2 1 2 1 2 1 2 1 2 1 2 1 2 1 2 1) Dim.
(A B C D Eb F Gb Ab)

notes: (0 2 3 5 6 8 10)
intervals: (2 1 2 1 2 2 2 2 1 2 1 2 2 2)
(A B C D Eb F G)

notes: (0 2 3 5 6 9 10)
intervals: (2 1 2 1 3 1 2 2 1 2 1 3 1 2)
(A B C D Eb F# G)

notes: (0 2 3 5 7 8 10)
intervals: (2 1 2 2 1 2 2 2 1 2 2 1 2 2)
(A B C D E F G)

notes: (0 2 3 5 7 8 11)
intervals: (2 1 2 2 1 3 1 2 1 2 2 1 3 1)
(A B C D E F G#)

notes: (0 2 3 5 7 9 10)
intervals: (2 1 2 2 2 1 2 2 1 2 2 2 1 2)
(A B C D E F# G)

notes: (0 2 3 5 7 9 11)
intervals: (2 1 2 2 2 2 1 2 1 2 2 2 2 1)
(A B C D E F# G#)

notes: (0 2 3 6 7 9 10)
intervals: (2 1 3 1 2 1 2 2 1 3 1 2 1 2)
(A B C D# E F# G)

notes: (0 2 3 6 7 9 11)
intervals: (2 1 3 1 2 2 1 2 1 3 1 2 2 1)
(A B C D# E F# G#)

notes: (0 2 4 5 7 8 10)
intervals: (2 2 1 2 1 2 2 2 2 1 2 1 2 2)
(A B C# D E F G)

notes: (0 2 4 5 7 8 11)
intervals: (2 2 1 2 1 3 1 2 2 1 2 1 3 1)
(A B C# D E F G#)

notes: (0 2 4 5 7 9 10)
intervals: (2 2 1 2 2 1 2 2 2 1 2 2 1 2)
(A B C# D E F# G)

notes: (0 2 4 5 7 9 11)
intervals: (2 2 1 2 2 2 1 2 2 1 2 2 2 1)
(A B C# D E F# G#)

notes: (0 2 4 5 8 9 11)
intervals: (2 2 1 3 1 2 1 2 2 1 3 1 2 1)
(A B C# D F F# G#)

notes: (0 2 4 6 7 9 10)
intervals: (2 2 2 1 2 1 2 2 2 2 1 2 1 2)
(A B C# D# E F# G)

notes: (0 2 4 6 7 9 11)
intervals: (2 2 2 1 2 2 1 2 2 2 1 2 2 1)
(A B C# D# E F# G#)

notes: (0 2 4 6 8 9 11)
intervals: (2 2 2 2 1 2 1 2 2 2 2 1 2 1)
(A B C# D# F F# G#)

notes: (0 2 4 6 8 10)
intervals: (2 2 2 2 2 2 2 2 2 2 2 2)
(A B C# D# F G)

notes: (0 3 4 6 7 9 11)
intervals: (3 1 2 1 2 2 1 3 1 2 1 2 2 1)
(A C C# D# E F# G#)

notes: (0 3 4 6 8 9 11)
intervals: (3 1 2 2 1 2 1 3 1 2 2 1 2 1) Lyd #5 #2
(A C Db Eb F Gb Ab)

notes: (0 3 4 7 8 11)
intervals: (3 1 3 1 3 1 3 1 3 1 3 1) Hex 3-1
(A C Db E F G#)


number of scales found: 33



I don't think I have to fill in the middle. It found 33 scales.

That's, um odd, because that's exactly the same number of scales listed in
The Conventional Scales:


The Usual (Conventional) Scales

Lydian
Ionian
Mixolydian
Dorian
Aeolian
Phrygian
Locrian

Lydian #5
Lydian b7
Ionian b3
Mixo b6
Dor. b2
Aeol b5
Locr. b4

Lydian #2 #5
Lydian b3
Ion. b6 or Har. major
Mixo. b2
Dor. b5
Phryg. b4
Locr. bb7

Lyd. #2
Dor. #4
Aeol. #7 (N7) Har minor
Phryg. b4
Locr. mj6 (N6)
Ion. #5
Locr. b4 bb7

whole-tone

hex -- minor third
hex -- half-step

Oct. -- dim
Oct. -- dom.


Last edited by calebprime; 17th March 2016 at 04:21 AM.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 17th March 2016, 09:59 AM   #328
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
Generators

This may require some back-and-forth with the Dodge, but you never know. He works in mysterious ways. Beneath the rust on the body and the dents, there's a 9.2 liter V8 crate engine. Weirdly, it's almost totally silent.

So, generators.

In the intervals list, any interval could be called a generator.

notes: (0 4 7 11 14 17 21)
intervals: (4 3 4 3 3 4 3 4 3 4 3 3 4 3)
0 4 7 11 | 2 5 9
(A B C+ D+ E F+ G+)

This has intervals 4 and 3, they could just as well be called generators of 4 and 3.

As we deal with bigger modulī, it can be useful to restrict the number of generating intervals. So, within mod17, for example, we might have a generator of 5.

We start from 0: 0,5,10,15,3,8,11,16,4

If the generator and the modulus are relatively prime (I think this is the right terminology, but I'm going to pretend I'm sure) the sequence of numbers will include all 17 possible values, and it will repeat. But that's not so important right now.

Let's say that the user has the option to choose either the process of creating scales the we already have, or a new one in which the scale is the result of restricting the generators. The user can choose any number of generators, listed simply as integers. Maybe in ascending order, maybe not.

In the generator option, maybe we could have a much larger limit to how many pitches we can have in our "scale".

And maybe -- I haven't thought this through, and I'm not sure if I'm smart enough to do so -- the user has the option to turn off or turn on the whole list of parameters we've already established. Or, maybe it you use Generators, the program defaults to the least restrictive parameters, unless you tell it otherwise, for each parameter.

So, example, Mod 17. I choose a 12-note "scale", and a generator of 9. Starting from 0, it generates: 0,9,1,10, 2,11,3,12, 4,13,5,14, which
when ordered becomes:

0,1,2,3,4,5,9,10,11,12,13,14.

The list of filter parameters we've already made eliminates some of the generated pitches, but the program generates enought pitches to match the required number of notes. If you specifty a "scale" of 12 notes, the program will keep going until it ends up with 12 notes, if possible.

If you've prohibited certain intervals and notes, the program eliminates those pitches, but still ends up with 12 pitches.

If there are interval restrictions (say, no 1's), the program continues to generate pitches until either it can't any more, or there are 12 (what we specified.)

I'm pretty tired, so I'm not sure if this is coherent. But we could use something like this, especially for larger moduli, I think.

Even before list sorting and harmony, I think.

eta: Add to this phase a simple limit on the number of scales generated

Last edited by calebprime; 17th March 2016 at 10:05 AM.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 17th March 2016, 10:10 AM   #329
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
Since this case reminded me of Franco, I'm just putting this here.


Update:

March 15, 2016 7:19 PM EDT

http://www.whdh.com/story/31478648/b...-charles-river

Quote:
Quote:
The body of 22-year-old Zachary Marr, who was reported missing several weeks ago, was found in the Charles River on Tuesday.

A passerby on a walkway spotted the body at around 5:45 p.m. near the Paul Revere Park.
It's slightly spooky to me that he was found when I felt I had finished my "story", but coincidences happen.

Last edited by calebprime; 17th March 2016 at 10:12 AM.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 18th March 2016, 04:20 AM   #330
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
After All

My father: It's a small world.
Maude Morgan: No, it's not. It's a big world.

> (load "Desktop/microtonal8.txt")

number of scales found: 258


modulus: 24
length-min: 6
length-max: 8
wolves: (13 15)
wolf-max: 2
distance-2-min: 2
distance-3-min: 5
bad-notes: (1 13 15 23)
require-completeness: #t
balance-notes: (0 2 4 6 8 10 12 14 16 18 20 22)
balance-in-min: 2
balance-out-min: 2
multiple-spellings: #f


notes: (0 2 5 7 10 12 16)
intervals: (2 3 2 3 2 4 8 2 3 2 3 2 4 8)
0 2 5 7 10 | 0 4
(A Bb B+ C+ D Eb F)

notes: (0 2 5 7 10 12 17 19)
intervals: (2 3 2 3 2 5 2 5 2 3 2 3 2 5 2 5)
0 2 5 7 10 | 0 5 7
(A Bb B+ C+ D Eb F+ Gb+)

notes: (0 2 5 7 10 12 18)
intervals: (2 3 2 3 2 6 6 2 3 2 3 2 6 6)
0 2 5 7 10 | 0 6
(A Bb B+ C+ D Eb Gb)

notes: (0 2 5 7 10 12 20)
intervals: (2 3 2 3 2 8 4 2 3 2 3 2 8 4)
0 2 5 7 10 | 0 8
(A Bb B+ C+ D Eb G)

notes: (0 2 5 7 10 12 21)
intervals: (2 3 2 3 2 9 3 2 3 2 3 2 9 3)
0 2 5 7 10 | 0 9
(A Bb B+ C+ D Eb G+)

notes: (0 2 5 7 10 14 17)
intervals: (2 3 2 3 4 3 7 2 3 2 3 4 3 7)
0 2 5 7 10 | 2 5
(A A# B+ C+ D E F+)

notes: (0 2 5 7 10 14 19)
intervals: (2 3 2 3 4 5 5 2 3 2 3 4 5 5)
0 2 5 7 10 | 2 7
(A A# B+ C+ D E F#+)

notes: (0 2 5 7 10 14 21)
intervals: (2 3 2 3 4 7 3 2 3 2 3 4 7 3)
0 2 5 7 10 | 2 9
(A A# B+ C+ D E G+)

notes: (0 2 5 7 10 17 21)
intervals: (2 3 2 3 7 4 3 2 3 2 3 7 4 3)
0 2 5 7 10 | 5 9
(A A# B+ C+ D F+ G+)

notes: (0 2 5 7 10 19 21)
intervals: (2 3 2 3 9 2 3 2 3 2 3 9 2 3)
0 2 5 7 10 | 7 9
(A A# B+ C+ D F#+ G+)

notes: (0 2 5 7 11 19 21)
intervals: (2 3 2 4 8 2 3 2 3 2 4 8 2 3)
0 2 5 7 11 | 7 9
(A Bb C- Db- Eb- F#+ G+)

notes: (0 2 5 7 12 14 17 19)
intervals: (2 3 2 5 2 3 2 5 2 3 2 5 2 3 2 5)
0 2 5 7 | 0 2 5 7
(A A# B+ C+ D# E F+ G-)

notes: (0 2 5 7 12 14 19 21)
intervals: (2 3 2 5 2 5 2 3 2 3 2 5 2 5 2 3)
0 2 5 7 | 0 2 7 9
(A A# B+ C+ D# E F#+ G+)

notes: (0 2 5 7 12 16 19)
intervals: (2 3 2 5 4 3 5 2 3 2 5 4 3 5)
0 2 5 7 | 0 4 7
(A Bb C- Db- Eb F Gb+)

notes: (0 2 5 7 12 17 21)
intervals: (2 3 2 5 5 4 3 2 3 2 5 5 4 3)
0 2 5 7 | 0 5 9
(A Bb C- Db- Eb F+ G+)

notes: (0 2 5 7 14 17 21)
intervals: (2 3 2 7 3 4 3 2 3 2 7 3 4 3)
0 2 5 7 | 2 5 9
(A Bb C- Db- E F+ G+)

notes: (0 2 5 7 16 19 21)
intervals: (2 3 2 9 3 2 3 2 3 2 9 3 2 3)
0 2 5 7 | 4 7 9
(A Bb C- Db- F Gb+ G+)

notes: (0 2 5 7 18 21)
intervals: (2 3 2 11 3 3 2 3 2 11 3 3)
0 2 5 7 | 6 9
(A Bb C- Db- F# G+)

notes: (0 2 5 8 10 17)
intervals: (2 3 3 2 7 7 2 3 3 2 7 7)
0 2 5 8 10 | 5
(A A# B+ C# D F+)

notes: (0 2 5 8 10 19)
intervals: (2 3 3 2 9 5 2 3 3 2 9 5)
0 2 5 8 10 | 7
(A A# B+ C# D F#+)

notes: (0 2 5 8 10 21)
intervals: (2 3 3 2 11 3 2 3 3 2 11 3)
0 2 5 8 10 | 9
(A A# B+ C# D G+)

notes: (0 2 5 8 12 14 19)
intervals: (2 3 3 4 2 5 5 2 3 3 4 2 5 5)
0 2 5 8 | 0 2 7
(A A# B+ C# D# E F#+)

notes: (0 2 5 8 12 16 19)
intervals: (2 3 3 4 4 3 5 2 3 3 4 4 3 5)
0 2 5 8 | 0 4 7
(A Bb C- Db Eb F Gb+)

notes: (0 2 5 8 12 17)
intervals: (2 3 3 4 5 7 2 3 3 4 5 7)
0 2 5 8 | 0 5
(A Bb C- Db Eb F+)

notes: (0 2 5 8 12 21)
intervals: (2 3 3 4 9 3 2 3 3 4 9 3)
0 2 5 8 | 0 9
(A Bb C- Db Eb G+)

notes: (0 2 5 8 14 21)
intervals: (2 3 3 6 7 3 2 3 3 6 7 3)
0 2 5 8 | 2 9
(A Bb C- Db E G+)

notes: (0 2 5 8 16 21)
intervals: (2 3 3 8 5 3 2 3 3 8 5 3)
0 2 5 8 | 4 9
(A Bb C- Db F G+)

notes: (0 2 5 8 18 21)
intervals: (2 3 3 10 3 3 2 3 3 10 3 3)
0 2 5 8 | 6 9
(A Bb C- Db F# G+)

notes: (0 2 5 8 19 21)
intervals: (2 3 3 11 2 3 2 3 3 11 2 3)
0 2 5 8 | 7 9
(A Bb C- Db F#+ G+)

notes: (0 2 5 9 12 14 19)
intervals: (2 3 4 3 2 5 5 2 3 4 3 2 5 5)
0 2 5 9 | 0 2 7
(A A# B+ C#+ D# E F#+)

notes: (0 2 5 9 12 16 19)
intervals: (2 3 4 3 4 3 5 2 3 4 3 4 3 5)
0 2 5 9 | 0 4 7
(A Bb C- Db+ Eb F Gb+)

notes: (0 2 5 9 12 17 19)
intervals: (2 3 4 3 5 2 5 2 3 4 3 5 2 5)
0 2 5 9 | 0 5 7
(A Bb C- Db+ Eb F+ Gb+)

notes: (0 2 5 9 12 19 21)
intervals: (2 3 4 3 7 2 3 2 3 4 3 7 2 3)
0 2 5 9 | 0 7 9
(A Bb C- Db+ Eb F#+ G+)

notes: (0 2 5 9 14 19 21)
intervals: (2 3 4 5 5 2 3 2 3 4 5 5 2 3)
0 2 5 9 | 2 7 9
(A Bb C- Db+ E F#+ G+)

notes: (0 2 5 9 16 19 21)
intervals: (2 3 4 7 3 2 3 2 3 4 7 3 2 3)
0 2 5 9 | 4 7 9
(A Bb C- Db+ F Gb+ G+)

notes: (0 2 5 9 17 21)
intervals: (2 3 4 8 4 3 2 3 4 8 4 3)
0 2 5 9 | 5 9
(A Bb C- Db+ F+ G+)

notes: (0 2 5 10 12 16 19)
intervals: (2 3 5 2 4 3 5 2 3 5 2 4 3 5)
0 2 5 10 | 0 4 7
(A Bb C- D Eb F Gb+)

notes: (0 2 5 10 12 17 20)
intervals: (2 3 5 2 5 3 4 2 3 5 2 5 3 4)
0 2 5 10 | 0 5 8
(A Bb C- D Eb F+ G)

notes: (0 2 5 10 16 21)
intervals: (2 3 5 6 5 3 2 3 5 6 5 3)
0 2 5 10 | 4 9
(A Bb C- D F G+)

notes: (0 2 5 10 18 21)
intervals: (2 3 5 8 3 3 2 3 5 8 3 3)
0 2 5 10 | 6 9
(A Bb C- D F# G+)

notes: (0 2 5 12 16 19 21)
intervals: (2 3 7 4 3 2 3 2 3 7 4 3 2 3)
0 2 5 | 0 4 7 9
(A Bb C- Eb F Gb+ G+)

notes: (0 2 5 12 18 21)
intervals: (2 3 7 6 3 3 2 3 7 6 3 3)
0 2 5 | 0 6 9
(A Bb C- D# F# G+)

notes: (0 2 5 14 16 19 21)
intervals: (2 3 9 2 3 2 3 2 3 9 2 3 2 3)
0 2 5 | 2 4 7 9
(A Bb C- E F Gb+ G+)

notes: (0 2 5 14 18 21)
intervals: (2 3 9 4 3 3 2 3 9 4 3 3)
0 2 5 | 2 6 9
(A Bb C- E F# G+)

notes: (0 2 5 16 18 21)
intervals: (2 3 11 2 3 3 2 3 11 2 3 3)
0 2 5 | 4 6 9
(A Bb C- F Gb G+)

notes: (0 2 6 9 12 14 19)
intervals: (2 4 3 3 2 5 5 2 4 3 3 2 5 5)
0 2 6 9 | 0 2 7
(A Bb C Db+ Eb E Gb+)

notes: (0 2 6 9 12 16 19)
intervals: (2 4 3 3 4 3 5 2 4 3 3 4 3 5)
0 2 6 9 | 0 4 7
(A Bb C Db+ Eb F Gb+)

notes: (0 2 6 9 14 16 19)
intervals: (2 4 3 5 2 3 5 2 4 3 5 2 3 5)
0 2 6 9 | 2 4 7
(A Bb C Db+ E F Gb+)

notes: (0 2 6 9 14 16 21)
intervals: (2 4 3 5 2 5 3 2 4 3 5 2 5 3)
0 2 6 9 | 2 4 9
(A Bb C Db+ E F G+)

notes: (0 2 6 14 16 19 21)
intervals: (2 4 8 2 3 2 3 2 4 8 2 3 2 3)
0 2 6 | 2 4 7 9
(A Bb C E F Gb+ G+)

notes: (0 2 7 9 12 14 17 19)
intervals: (2 5 2 3 2 3 2 5 2 5 2 3 2 3 2 5)
0 2 7 9 | 0 2 5 7
(A Bb C+ Db+ Eb E F+ Gb+)

notes: (0 2 7 9 12 14 19 21)
intervals: (2 5 2 3 2 5 2 3 2 5 2 3 2 5 2 3)
0 2 7 9 | 0 2 7 9
(A Bb C+ C#+ D# E F#+ G+)

notes: (0 2 7 9 12 16 19)
intervals: (2 5 2 3 4 3 5 2 5 2 3 4 3 5)
0 2 7 9 | 0 4 7
(A Bb C+ Db+ Eb F Gb+)

notes: (0 2 7 9 14 16 19 21)
intervals: (2 5 2 5 2 3 2 3 2 5 2 5 2 3 2 3)
0 2 7 9 | 2 4 7 9
(A Bb C+ Db+ E F Gb+ G+)

notes: (0 2 7 9 14 17 21)
intervals: (2 5 2 5 3 4 3 2 5 2 5 3 4 3)
0 2 7 9 | 2 5 9
(A Bb C+ Db+ E F+ G+)

notes: (0 2 7 10 12 16 19)
intervals: (2 5 3 2 4 3 5 2 5 3 2 4 3 5)
0 2 7 10 | 0 4 7
(A Bb C+ D Eb F Gb+)

notes: (0 2 7 10 12 17 20)
intervals: (2 5 3 2 5 3 4 2 5 3 2 5 3 4)
0 2 7 10 | 0 5 8
(A Bb C+ D Eb F+ G)

notes: (0 2 7 10 14 16 19)
intervals: (2 5 3 4 2 3 5 2 5 3 4 2 3 5)
0 2 7 10 | 2 4 7
(A Bb C+ D E F Gb+)

notes: (0 2 7 10 14 16 21)
intervals: (2 5 3 4 2 5 3 2 5 3 4 2 5 3)
0 2 7 10 | 2 4 9
(A Bb C+ D E F G+)

notes: (0 2 7 10 14 17 19)
intervals: (2 5 3 4 3 2 5 2 5 3 4 3 2 5)
0 2 7 10 | 2 5 7
(A Bb C+ D E F+ Gb+)

notes: (0 2 7 10 14 17 20)
intervals: (2 5 3 4 3 3 4 2 5 3 4 3 3 4)
0 2 7 10 | 2 5 8
(A Bb C+ D E F+ G)

notes: (0 2 7 10 14 17 21)
intervals: (2 5 3 4 3 4 3 2 5 3 4 3 4 3)
0 2 7 10 | 2 5 9
(A Bb C+ D E F+ G+)

notes: (0 2 7 10 14 18 21)
intervals: (2 5 3 4 4 3 3 2 5 3 4 4 3 3)
0 2 7 10 | 2 6 9
(A Bb C+ D E F# G+)

notes: (0 2 7 10 14 19 21)
intervals: (2 5 3 4 5 2 3 2 5 3 4 5 2 3)
0 2 7 10 | 2 7 9
(A Bb C+ D E F#+ G+)

notes: (0 2 7 11 14 19 21)
intervals: (2 5 4 3 5 2 3 2 5 4 3 5 2 3)
0 2 7 11 | 2 7 9
(A Bb C+ D+ E F#+ G+)

notes: (0 2 7 12 14 17 20)
intervals: (2 5 5 2 3 3 4 2 5 5 2 3 3 4)
0 2 7 | 0 2 5 8
(A Bb C+ D# E F+ G)

notes: (0 2 7 12 14 17 21)
intervals: (2 5 5 2 3 4 3 2 5 5 2 3 4 3)
0 2 7 | 0 2 5 9
(A Bb C+ D# E F+ G+)

notes: (0 2 7 12 14 18 21)
intervals: (2 5 5 2 4 3 3 2 5 5 2 4 3 3)
0 2 7 | 0 2 6 9
(A Bb C+ D# E F# G+)

notes: (0 2 7 12 16 19 21)
intervals: (2 5 5 4 3 2 3 2 5 5 4 3 2 3)
0 2 7 | 0 4 7 9
(A Bb C+ Eb F Gb+ G+)

notes: (0 2 7 16 18 21)
intervals: (2 5 9 2 3 3 2 5 9 2 3 3)
0 2 7 | 4 6 9
(A Bb C+ F Gb G+)

notes: (0 2 8 14 16 19 21)
intervals: (2 6 6 2 3 2 3 2 6 6 2 3 2 3)
0 2 8 | 2 4 7 9
(A Bb Db E F Gb+ G+)

notes: (0 2 9 12 16 19 21)
intervals: (2 7 3 4 3 2 3 2 7 3 4 3 2 3)
0 2 9 | 0 4 7 9
(A Bb Db+ Eb F Gb+ G+)

notes: (0 2 9 14 18 21)
intervals: (2 7 5 4 3 3 2 7 5 4 3 3)
0 2 9 | 2 6 9
(A Bb C#+ E F# G+)

notes: (0 2 9 16 18 21)
intervals: (2 7 7 2 3 3 2 7 7 2 3 3)
0 2 9 | 4 6 9
(A Bb Db+ F Gb G+)

notes: (0 2 10 14 16 19 21)
intervals: (2 8 4 2 3 2 3 2 8 4 2 3 2 3)
0 2 10 | 2 4 7 9
(A Bb D E F Gb+ G+)

notes: (0 2 11 14 16 19 21)
intervals: (2 9 3 2 3 2 3 2 9 3 2 3 2 3)
0 2 11 | 2 4 7 9
(A Bb D+ E F Gb+ G+)

notes: (0 2 11 14 18 21)
intervals: (2 9 3 4 3 3 2 9 3 4 3 3)
0 2 11 | 2 6 9
(A Bb D+ E F# G+)

notes: (0 2 11 16 18 21)
intervals: (2 9 5 2 3 3 2 9 5 2 3 3)
0 2 11 | 4 6 9
(A Bb D+ F Gb G+)

notes: (0 3 5 8 10 14 22)
intervals: (3 2 3 2 4 8 2 3 2 3 2 4 8 2)
0 3 5 8 10 | 2 10
(A A#+ B+ C# D E G#)

notes: (0 3 5 8 10 16 22)
intervals: (3 2 3 2 6 6 2 3 2 3 2 6 6 2)
0 3 5 8 10 | 4 10
(A A#+ B+ C# D F G#)

notes: (0 3 5 8 10 17 20)
intervals: (3 2 3 2 7 3 4 3 2 3 2 7 3 4)
0 3 5 8 10 | 5 8
(A A#+ B+ C# D F+ G)

notes: (0 3 5 8 10 17 22)
intervals: (3 2 3 2 7 5 2 3 2 3 2 7 5 2)
0 3 5 8 10 | 5 10
(A A#+ B+ C# D F+ G#)

notes: (0 3 5 8 10 18 22)
intervals: (3 2 3 2 8 4 2 3 2 3 2 8 4 2)
0 3 5 8 10 | 6 10
(A A#+ B+ C# D F# G#)

notes: (0 3 5 8 10 19 22)
intervals: (3 2 3 2 9 3 2 3 2 3 2 9 3 2)
0 3 5 8 10 | 7 10
(A A#+ B+ C# D F#+ G#)

notes: (0 3 5 8 10 21)
intervals: (3 2 3 2 11 3 3 2 3 2 11 3)
0 3 5 8 10 | 9
(A A#+ B+ C# D G+)

notes: (0 3 5 8 11 17)
intervals: (3 2 3 3 6 7 3 2 3 3 6 7)
0 3 5 8 11 | 5
(A Bb+ C- Db Eb- F+)

notes: (0 3 5 8 11 19)
intervals: (3 2 3 3 8 5 3 2 3 3 8 5)
0 3 5 8 11 | 7
(A Bb+ C- Db Eb- Gb+)

notes: (0 3 5 8 11 21)
intervals: (3 2 3 3 10 3 3 2 3 3 10 3)
0 3 5 8 11 | 9
(A Bb+ C- Db Eb- G+)

notes: (0 3 5 8 11 22)
intervals: (3 2 3 3 11 2 3 2 3 3 11 2)
0 3 5 8 11 | 10
(A Bb+ C- Db Eb- G#)

notes: (0 3 5 8 12 17 22)
intervals: (3 2 3 4 5 5 2 3 2 3 4 5 5 2)
0 3 5 8 | 0 5 10
(A Bb+ C- Db Eb F+ G#)

notes: (0 3 5 8 12 19 22)
intervals: (3 2 3 4 7 3 2 3 2 3 4 7 3 2)
0 3 5 8 | 0 7 10
(A Bb+ C- Db Eb F#+ G#)

notes: (0 3 5 8 12 20)
intervals: (3 2 3 4 8 4 3 2 3 4 8 4)
0 3 5 8 | 0 8
(A Bb+ C- Db Eb G)

notes: (0 3 5 8 17 19 22)
intervals: (3 2 3 9 2 3 2 3 2 3 9 2 3 2)
0 3 5 8 | 5 7 10
(A Bb+ C- Db F+ Gb+ Ab)

notes: (0 3 5 8 17 21)
intervals: (3 2 3 9 4 3 3 2 3 9 4 3)
0 3 5 8 | 5 9
(A Bb+ C- Db F+ G+)

notes: (0 3 5 8 19 21)
intervals: (3 2 3 11 2 3 3 2 3 11 2 3)
0 3 5 8 | 7 9
(A Bb+ C- Db F#+ G+)

notes: (0 3 5 9 12 17 19)
intervals: (3 2 4 3 5 2 5 3 2 4 3 5 2 5)
0 3 5 9 | 0 5 7
(A Bb+ C- Db+ Eb F+ Gb+)

notes: (0 3 5 9 17 19 22)
intervals: (3 2 4 8 2 3 2 3 2 4 8 2 3 2)
0 3 5 9 | 5 7 10
(A Bb+ C- Db+ F+ Gb+ Ab)

notes: (0 3 5 10 12 17 19 22)
intervals: (3 2 5 2 5 2 3 2 3 2 5 2 5 2 3 2)
0 3 5 10 | 0 5 7 10
(A Bb+ C- D Eb F+ Gb+ Ab)

notes: (0 3 5 10 12 17 20)
intervals: (3 2 5 2 5 3 4 3 2 5 2 5 3 4)
0 3 5 10 | 0 5 8
(A Bb+ C- D Eb F+ G)

notes: (0 3 5 10 14 17 22)
intervals: (3 2 5 4 3 5 2 3 2 5 4 3 5 2)
0 3 5 10 | 2 5 10
(A B- C- D E F+ G#)

notes: (0 3 5 10 17 21)
intervals: (3 2 5 7 4 3 3 2 5 7 4 3)
0 3 5 10 | 5 9
(A Bb+ C- D F+ G+)

notes: (0 3 5 10 19 21)
intervals: (3 2 5 9 2 3 3 2 5 9 2 3)
0 3 5 10 | 7 9
(A B- C- D F#+ G+)

notes: (0 3 5 11 17 19 22)
intervals: (3 2 6 6 2 3 2 3 2 6 6 2 3 2)
0 3 5 11 | 5 7 10
(A Bb+ C- D+ F+ Gb+ Ab)

notes: (0 3 5 12 17 21)
intervals: (3 2 7 5 4 3 3 2 7 5 4 3)
0 3 5 | 0 5 9
(A Bb+ C- Eb F+ G+)

notes: (0 3 5 12 19 21)
intervals: (3 2 7 7 2 3 3 2 7 7 2 3)
0 3 5 | 0 7 9
(A B- C- D# F#+ G+)

notes: (0 3 5 14 17 19 22)
intervals: (3 2 9 3 2 3 2 3 2 9 3 2 3 2)
0 3 5 | 2 5 7 10
(A Bb+ C- E F+ Gb+ Ab)

notes: (0 3 5 14 17 21)
intervals: (3 2 9 3 4 3 3 2 9 3 4 3)
0 3 5 | 2 5 9
(A Bb+ C- E F+ G+)

notes: (0 3 5 14 19 21)
intervals: (3 2 9 5 2 3 3 2 9 5 2 3)
0 3 5 | 2 7 9
(A B- C- E F#+ G+)

notes: (0 3 5 16 19 21)
intervals: (3 2 11 3 2 3 3 2 11 3 2 3)
0 3 5 | 4 7 9
(A Bb+ C- F Gb+ G+)

notes: (0 3 5 16 19 22)
intervals: (3 2 11 3 3 2 3 2 11 3 3 2)
0 3 5 | 4 7 10
(A Bb+ C- F Gb+ Ab)

notes: (0 3 6 8 11 14)
intervals: (3 3 2 3 3 10 3 3 2 3 3 10)
0 3 6 8 11 | 2
(A Bb+ C Db D+ E)

notes: (0 3 6 8 11 16)
intervals: (3 3 2 3 5 8 3 3 2 3 5 8)
0 3 6 8 11 | 4
(A Bb+ C Db Eb- F)

notes: (0 3 6 8 11 18)
intervals: (3 3 2 3 7 6 3 3 2 3 7 6)
0 3 6 8 11 | 6
(A Bb+ C Db Eb- Gb)

notes: (0 3 6 8 11 20)
intervals: (3 3 2 3 9 4 3 3 2 3 9 4)
0 3 6 8 11 | 8
(A Bb+ C Db Eb- G)

notes: (0 3 6 8 11 22)
intervals: (3 3 2 3 11 2 3 3 2 3 11 2)
0 3 6 8 11 | 10
(A Bb+ C Db Eb- G#)

notes: (0 3 6 8 17 20)
intervals: (3 3 2 9 3 4 3 3 2 9 3 4)
0 3 6 8 | 5 8
(A Bb+ C Db F+ G)

notes: (0 3 6 8 17 22)
intervals: (3 3 2 9 5 2 3 3 2 9 5 2)
0 3 6 8 | 5 10
(A Bb+ C Db F+ G#)

notes: (0 3 6 8 19 22)
intervals: (3 3 2 11 3 2 3 3 2 11 3 2)
0 3 6 8 | 7 10
(A B- C Db F#+ G#)

notes: (0 3 6 10 12 17 20)
intervals: (3 3 4 2 5 3 4 3 3 4 2 5 3 4)
0 3 6 10 | 0 5 8
(A Bb+ C D Eb F+ G)

notes: (0 3 6 10 12 17 22)
intervals: (3 3 4 2 5 5 2 3 3 4 2 5 5 2)
0 3 6 10 | 0 5 10
(A Bb+ C D Eb F+ G#)

notes: (0 3 6 10 14 17 20)
intervals: (3 3 4 4 3 3 4 3 3 4 4 3 3 4)
0 3 6 10 | 2 5 8
(A Bb+ C D E F+ G)

notes: (0 3 6 10 14 17 22)
intervals: (3 3 4 4 3 5 2 3 3 4 4 3 5 2)
0 3 6 10 | 2 5 10
(A B- C D E F+ G#)

notes: (0 3 6 10 19 22)
intervals: (3 3 4 9 3 2 3 3 4 9 3 2)
0 3 6 10 | 7 10
(A B- C D F#+ G#)

notes: (0 3 6 12 19 22)
intervals: (3 3 6 7 3 2 3 3 6 7 3 2)
0 3 6 | 0 7 10
(A B- C D# F#+ G#)

notes: (0 3 6 14 19 22)
intervals: (3 3 8 5 3 2 3 3 8 5 3 2)
0 3 6 | 2 7 10
(A B- C E F#+ G#)

notes: (0 3 6 16 19 22)
intervals: (3 3 10 3 3 2 3 3 10 3 3 2)
0 3 6 | 4 7 10
(A Bb+ C F Gb+ Ab)

notes: (0 3 6 17 19 22)
intervals: (3 3 11 2 3 2 3 3 11 2 3 2)
0 3 6 | 5 7 10
(A Bb+ C F+ Gb+ Ab)

notes: (0 3 7 9 12 17 19)
intervals: (3 4 2 3 5 2 5 3 4 2 3 5 2 5)
0 3 7 9 | 0 5 7
(A Bb+ C+ Db+ Eb F+ Gb+)

notes: (0 3 7 9 14 17 19)
intervals: (3 4 2 5 3 2 5 3 4 2 5 3 2 5)
0 3 7 9 | 2 5 7
(A Bb+ C+ Db+ E F+ Gb+)

notes: (0 3 7 9 14 17 21)
intervals: (3 4 2 5 3 4 3 3 4 2 5 3 4 3)
0 3 7 9 | 2 5 9
(A Bb+ C+ Db+ E F+ G+)

notes: (0 3 7 9 14 19 21)
intervals: (3 4 2 5 5 2 3 3 4 2 5 5 2 3)
0 3 7 9 | 2 7 9
(A B- C+ D- E F#+ G+)

notes: (0 3 7 10 12 17 19)
intervals: (3 4 3 2 5 2 5 3 4 3 2 5 2 5)
0 3 7 10 | 0 5 7
(A Bb+ C+ D Eb F+ Gb+)

notes: (0 3 7 10 12 17 20)
intervals: (3 4 3 2 5 3 4 3 4 3 2 5 3 4)
0 3 7 10 | 0 5 8
(A Bb+ C+ D Eb F+ G)

notes: (0 3 7 10 12 17 22)
intervals: (3 4 3 2 5 5 2 3 4 3 2 5 5 2)
0 3 7 10 | 0 5 10
(A Bb+ C+ D Eb F+ G#)

notes: (0 3 7 10 14 17 19)
intervals: (3 4 3 4 3 2 5 3 4 3 4 3 2 5)
0 3 7 10 | 2 5 7
(A Bb+ C+ D E F+ Gb+)

notes: (0 3 7 10 14 17 20)
intervals: (3 4 3 4 3 3 4 3 4 3 4 3 3 4)
0 3 7 10 | 2 5 8
(A Bb+ C+ D E F+ G)

notes: (0 3 7 10 14 17 21)
intervals: (3 4 3 4 3 4 3 3 4 3 4 3 4 3)
0 3 7 10 | 2 5 9
(A Bb+ C+ D E F+ G+)

notes: (0 3 7 10 14 17 22)
intervals: (3 4 3 4 3 5 2 3 4 3 4 3 5 2)
0 3 7 10 | 2 5 10
(A B- C+ D E F+ G#)

notes: (0 3 7 10 17 19 22)
intervals: (3 4 3 7 2 3 2 3 4 3 7 2 3 2)
0 3 7 10 | 5 7 10
(A Bb+ C+ D F+ Gb+ Ab)

notes: (0 3 7 10 19 21)
intervals: (3 4 3 9 2 3 3 4 3 9 2 3)
0 3 7 10 | 7 9
(A B- C+ D F#+ G+)

notes: (0 3 7 11 14 17 19)
intervals: (3 4 4 3 3 2 5 3 4 4 3 3 2 5)
0 3 7 11 | 2 5 7
(A Bb+ C+ D+ E F+ Gb+)

notes: (0 3 7 11 14 17 21)
intervals: (3 4 4 3 3 4 3 3 4 4 3 3 4 3)
0 3 7 11 | 2 5 9
(A Bb+ C+ D+ E F+ G+)

notes: (0 3 7 11 14 19 21)
intervals: (3 4 4 3 5 2 3 3 4 4 3 5 2 3)
0 3 7 11 | 2 7 9
(A B- C+ D+ E F#+ G+)

notes: (0 3 7 12 14 17 19)
intervals: (3 4 5 2 3 2 5 3 4 5 2 3 2 5)
0 3 7 | 0 2 5 7
(A B- C+ D# E F+ G-)

notes: (0 3 7 12 17 19 22)
intervals: (3 4 5 5 2 3 2 3 4 5 5 2 3 2)
0 3 7 | 0 5 7 10
(A Bb+ C+ Eb F+ Gb+ Ab)

notes: (0 3 7 12 17 21)
intervals: (3 4 5 5 4 3 3 4 5 5 4 3)
0 3 7 | 0 5 9
(A Bb+ C+ Eb F+ G+)

notes: (0 3 7 12 19 21)
intervals: (3 4 5 7 2 3 3 4 5 7 2 3)
0 3 7 | 0 7 9
(A B- C+ D# F#+ G+)

notes: (0 3 7 14 17 19 22)
intervals: (3 4 7 3 2 3 2 3 4 7 3 2 3 2)
0 3 7 | 2 5 7 10
(A Bb+ C+ E F+ Gb+ Ab)

notes: (0 3 7 16 19 21)
intervals: (3 4 9 3 2 3 3 4 9 3 2 3)
0 3 7 | 4 7 9
(A Bb+ C+ F Gb+ G+)

notes: (0 3 8 10 14 17 20)
intervals: (3 5 2 4 3 3 4 3 5 2 4 3 3 4)
0 3 8 10 | 2 5 8
(A B- C# D E F+ G)

notes: (0 3 8 10 14 17 22)
intervals: (3 5 2 4 3 5 2 3 5 2 4 3 5 2)
0 3 8 10 | 2 5 10
(A B- C# D E F+ G#)

notes: (0 3 8 12 17 20)
intervals: (3 5 4 5 3 4 3 5 4 5 3 4)
0 3 8 | 0 5 8
(A Bb+ Db Eb F+ G)

notes: (0 3 8 14 19 22)
intervals: (3 5 6 5 3 2 3 5 6 5 3 2)
0 3 8 | 2 7 10
(A B- C# E F#+ G#)

notes: (0 3 8 16 19 22)
intervals: (3 5 8 3 3 2 3 5 8 3 3 2)
0 3 8 | 4 7 10
(A Bb+ Db F Gb+ Ab)

notes: (0 3 9 16 19 21)
intervals: (3 6 7 3 2 3 3 6 7 3 2 3)
0 3 9 | 4 7 9
(A Bb+ Db+ F Gb+ G+)

notes: (0 3 10 14 17 19 22)
intervals: (3 7 4 3 2 3 2 3 7 4 3 2 3 2)
0 3 10 | 2 5 7 10
(A Bb+ D E F+ Gb+ Ab)

notes: (0 3 10 16 19 22)
intervals: (3 7 6 3 3 2 3 7 6 3 3 2)
0 3 10 | 4 7 10
(A Bb+ D F Gb+ Ab)

notes: (0 3 11 16 19 21)
intervals: (3 8 5 3 2 3 3 8 5 3 2 3)
0 3 11 | 4 7 9
(A Bb+ D+ F Gb+ G+)

notes: (0 3 12 14 17 19 22)
intervals: (3 9 2 3 2 3 2 3 9 2 3 2 3 2)
0 3 | 0 2 5 7 10
(A B- D# E F+ F#+ G#)

notes: (0 3 12 14 17 20)
intervals: (3 9 2 3 3 4 3 9 2 3 3 4)
0 3 | 0 2 5 8
(A B- D# E F+ G)

notes: (0 3 12 16 19 22)
intervals: (3 9 4 3 3 2 3 9 4 3 3 2)
0 3 | 0 4 7 10
(A Bb+ Eb F Gb+ Ab)

notes: (0 3 14 16 19 21)
intervals: (3 11 2 3 2 3 3 11 2 3 2 3)
0 3 | 2 4 7 9
(A Bb+ E F Gb+ G+)

notes: (0 3 14 16 19 22)
intervals: (3 11 2 3 3 2 3 11 2 3 3 2)
0 3 | 2 4 7 10
(A Bb+ E F Gb+ Ab)

notes: (0 4 6 9 11 14 16)
intervals: (4 2 3 2 3 2 8 4 2 3 2 3 2 8)
0 4 6 9 11 | 2 4
(A B C C#+ D+ E F)

notes: (0 4 6 9 14 16 21)
intervals: (4 2 3 5 2 5 3 4 2 3 5 2 5 3)
0 4 6 9 | 2 4 9
(A B C Db+ E F G+)

notes: (0 4 6 11 14 16 21)
intervals: (4 2 5 3 2 5 3 4 2 5 3 2 5 3)
0 4 6 11 | 2 4 9
(A B C D+ E F G+)

notes: (0 4 6 11 14 18 21)
intervals: (4 2 5 3 4 3 3 4 2 5 3 4 3 3)
0 4 6 11 | 2 6 9
(A B C D+ E F# G+)

notes: (0 4 6 11 16 18 21)
intervals: (4 2 5 5 2 3 3 4 2 5 5 2 3 3)
0 4 6 11 | 4 6 9
(A B C D+ F F# G+)

notes: (0 4 7 9 12 14 17)
intervals: (4 3 2 3 2 3 7 4 3 2 3 2 3 7)
0 4 7 9 | 0 2 5
(A B C+ C#+ D# E F+)

notes: (0 4 7 9 12 14 19)
intervals: (4 3 2 3 2 5 5 4 3 2 3 2 5 5)
0 4 7 9 | 0 2 7
(A B C+ C#+ D# E F#+)

notes: (0 4 7 9 12 14 21)
intervals: (4 3 2 3 2 7 3 4 3 2 3 2 7 3)
0 4 7 9 | 0 2 9
(A B C+ C#+ D# E G+)

notes: (0 4 7 9 12 16)
intervals: (4 3 2 3 4 8 4 3 2 3 4 8)
0 4 7 9 | 0 4
(A B C+ Db+ Eb F)

notes: (0 4 7 9 14 16 21)
intervals: (4 3 2 5 2 5 3 4 3 2 5 2 5 3)
0 4 7 9 | 2 4 9
(A B C+ Db+ E F G+)

notes: (0 4 7 9 14 17 21)
intervals: (4 3 2 5 3 4 3 4 3 2 5 3 4 3)
0 4 7 9 | 2 5 9
(A B C+ Db+ E F+ G+)

notes: (0 4 7 9 14 19 21)
intervals: (4 3 2 5 5 2 3 4 3 2 5 5 2 3)
0 4 7 9 | 2 7 9
(A B C+ D- E F#+ G+)

notes: (0 4 7 10 12 17 20)
intervals: (4 3 3 2 5 3 4 4 3 3 2 5 3 4)
0 4 7 10 | 0 5 8
(A B C+ D Eb F+ G)

notes: (0 4 7 10 12 17 22)
intervals: (4 3 3 2 5 5 2 4 3 3 2 5 5 2)
0 4 7 10 | 0 5 10
(A B C+ D Eb F+ G#)

notes: (0 4 7 10 12 19)
intervals: (4 3 3 2 7 5 4 3 3 2 7 5)
0 4 7 10 | 0 7
(A B C+ D Eb Gb+)

notes: (0 4 7 10 12 21)
intervals: (4 3 3 2 9 3 4 3 3 2 9 3)
0 4 7 10 | 0 9
(A B C+ D Eb G+)

notes: (0 4 7 10 14 16 21)
intervals: (4 3 3 4 2 5 3 4 3 3 4 2 5 3)
0 4 7 10 | 2 4 9
(A B C+ D E F G+)

notes: (0 4 7 10 14 17 20)
intervals: (4 3 3 4 3 3 4 4 3 3 4 3 3 4)
0 4 7 10 | 2 5 8
(A B C+ D E F+ G)

notes: (0 4 7 10 14 17 21)
intervals: (4 3 3 4 3 4 3 4 3 3 4 3 4 3)
0 4 7 10 | 2 5 9
(A B C+ D E F+ G+)

notes: (0 4 7 10 14 17 22)
intervals: (4 3 3 4 3 5 2 4 3 3 4 3 5 2)
0 4 7 10 | 2 5 10
(A B C+ D E F+ G#)

notes: (0 4 7 10 14 18 21)
intervals: (4 3 3 4 4 3 3 4 3 3 4 4 3 3)
0 4 7 10 | 2 6 9
(A B C+ D E F# G+)

notes: (0 4 7 10 14 19)
intervals: (4 3 3 4 5 5 4 3 3 4 5 5)
0 4 7 10 | 2 7
(A B C+ D E F#+)

notes: (0 4 7 11 14 16 21)
intervals: (4 3 4 3 2 5 3 4 3 4 3 2 5 3)
0 4 7 11 | 2 4 9
(A B C+ D+ E F G+)

notes: (0 4 7 11 14 17 21)
intervals: (4 3 4 3 3 4 3 4 3 4 3 3 4 3)
0 4 7 11 | 2 5 9
(A B C+ D+ E F+ G+)

notes: (0 4 7 11 14 18 21)
intervals: (4 3 4 3 4 3 3 4 3 4 3 4 3 3)
0 4 7 11 | 2 6 9
(A B C+ D+ E F# G+)

notes: (0 4 7 11 14 19 21)
intervals: (4 3 4 3 5 2 3 4 3 4 3 5 2 3)
0 4 7 11 | 2 7 9
(A B C+ D+ E F#+ G+)

notes: (0 4 7 12 14 17 19)
intervals: (4 3 5 2 3 2 5 4 3 5 2 3 2 5)
0 4 7 | 0 2 5 7
(A B C+ D# E F+ G-)

notes: (0 4 7 12 14 17 20)
intervals: (4 3 5 2 3 3 4 4 3 5 2 3 3 4)
0 4 7 | 0 2 5 8
(A B C+ D# E F+ G)

notes: (0 4 7 12 14 17 21)
intervals: (4 3 5 2 3 4 3 4 3 5 2 3 4 3)
0 4 7 | 0 2 5 9
(A B C+ D# E F+ G+)

notes: (0 4 7 12 14 17 22)
intervals: (4 3 5 2 3 5 2 4 3 5 2 3 5 2)
0 4 7 | 0 2 5 10
(A B C+ D# E F+ G#)

notes: (0 4 7 12 14 18 21)
intervals: (4 3 5 2 4 3 3 4 3 5 2 4 3 3)
0 4 7 | 0 2 6 9
(A B C+ D# E F# G+)

notes: (0 4 7 12 14 19 21)
intervals: (4 3 5 2 5 2 3 4 3 5 2 5 2 3)
0 4 7 | 0 2 7 9
(A B C+ D# E F#+ G+)

notes: (0 4 7 12 14 19 22)
intervals: (4 3 5 2 5 3 2 4 3 5 2 5 3 2)
0 4 7 | 0 2 7 10
(A B C+ D# E F#+ G#)

notes: (0 4 7 12 16 19)
intervals: (4 3 5 4 3 5 4 3 5 4 3 5)
0 4 7 | 0 4 7
(A B C+ D# F G-)

notes: (0 4 7 12 16 21)
intervals: (4 3 5 4 5 3 4 3 5 4 5 3)
0 4 7 | 0 4 9
(A B C+ D# F G+)

notes: (0 4 7 14 16 19 21)
intervals: (4 3 7 2 3 2 3 4 3 7 2 3 2 3)
0 4 7 | 2 4 7 9
(A B C+ E F F#+ G+)

notes: (0 4 7 16 18 21)
intervals: (4 3 9 2 3 3 4 3 9 2 3 3)
0 4 7 | 4 6 9
(A B C+ F F# G+)

notes: (0 4 8 11 14 16 21)
intervals: (4 4 3 3 2 5 3 4 4 3 3 2 5 3)
0 4 8 11 | 2 4 9
(A B C# D+ E F G+)

notes: (0 4 8 11 14 18 21)
intervals: (4 4 3 3 4 3 3 4 4 3 3 4 3 3)
0 4 8 11 | 2 6 9
(A B C# D+ E F# G+)

notes: (0 4 8 11 16 18 21)
intervals: (4 4 3 5 2 3 3 4 4 3 5 2 3 3)
0 4 8 11 | 4 6 9
(A B C# D+ F F# G+)

notes: (0 4 9 11 14 16 21)
intervals: (4 5 2 3 2 5 3 4 5 2 3 2 5 3)
0 4 9 11 | 2 4 9
(A B C#+ D+ E F G+)

notes: (0 4 9 12 16 19)
intervals: (4 5 3 4 3 5 4 5 3 4 3 5)
0 4 9 | 0 4 7
(A B C#+ D# F G-)

notes: (0 4 9 12 16 21)
intervals: (4 5 3 4 5 3 4 5 3 4 5 3)
0 4 9 | 0 4 9
(A B C#+ D# F G+)

notes: (0 4 9 14 16 19 21)
intervals: (4 5 5 2 3 2 3 4 5 5 2 3 2 3)
0 4 9 | 2 4 7 9
(A B C#+ E F F#+ G+)

notes: (0 4 9 14 18 21)
intervals: (4 5 5 4 3 3 4 5 5 4 3 3)
0 4 9 | 2 6 9
(A B C#+ E F# G+)

notes: (0 4 9 16 18 21)
intervals: (4 5 7 2 3 3 4 5 7 2 3 3)
0 4 9 | 4 6 9
(A B C#+ F F# G+)

notes: (0 4 11 14 16 19 21)
intervals: (4 7 3 2 3 2 3 4 7 3 2 3 2 3)
0 4 11 | 2 4 7 9
(A B D+ E F F#+ G+)

notes: (0 4 12 14 17 19 22)
intervals: (4 8 2 3 2 3 2 4 8 2 3 2 3 2)
0 4 | 0 2 5 7 10
(A B D# E F+ F#+ G#)

notes: (0 4 12 16 19 21)
intervals: (4 8 4 3 2 3 4 8 4 3 2 3)
0 4 | 0 4 7 9
(A B D# F F#+ G+)

notes: (0 5 7 10 12 17 19 22)
intervals: (5 2 3 2 5 2 3 2 5 2 3 2 5 2 3 2)
0 5 7 10 | 0 5 7 10
(A B+ C+ D Eb F+ Gb+ Ab)

notes: (0 5 7 10 12 17 20)
intervals: (5 2 3 2 5 3 4 5 2 3 2 5 3 4)
0 5 7 10 | 0 5 8
(A B+ C+ D Eb F+ G)

notes: (0 5 7 10 12 17 21)
intervals: (5 2 3 2 5 4 3 5 2 3 2 5 4 3)
0 5 7 10 | 0 5 9
(A B+ C+ D Eb F+ G+)

notes: (0 5 7 10 14 17 19)
intervals: (5 2 3 4 3 2 5 5 2 3 4 3 2 5)
0 5 7 10 | 2 5 7
(A B+ C+ D E F+ Gb+)

notes: (0 5 7 10 14 17 21)
intervals: (5 2 3 4 3 4 3 5 2 3 4 3 4 3)
0 5 7 10 | 2 5 9
(A B+ C+ D E F+ G+)

notes: (0 5 7 10 14 17 22)
intervals: (5 2 3 4 3 5 2 5 2 3 4 3 5 2)
0 5 7 10 | 2 5 10
(A B+ C+ D E F+ G#)

notes: (0 5 7 11 14 17 19)
intervals: (5 2 4 3 3 2 5 5 2 4 3 3 2 5)
0 5 7 11 | 2 5 7
(A B+ C+ D+ E F+ Gb+)

notes: (0 5 7 11 14 17 21)
intervals: (5 2 4 3 3 4 3 5 2 4 3 3 4 3)
0 5 7 11 | 2 5 9
(A B+ C+ D+ E F+ G+)

notes: (0 5 7 11 14 19 21)
intervals: (5 2 4 3 5 2 3 5 2 4 3 5 2 3)
0 5 7 11 | 2 7 9
(A B+ C+ D+ E F#+ G+)

notes: (0 5 7 12 14 17 19 22)
intervals: (5 2 5 2 3 2 3 2 5 2 5 2 3 2 3 2)
0 5 7 | 0 2 5 7 10
(A B+ C+ D# E F+ F#+ G#)

notes: (0 5 7 12 14 17 21)
intervals: (5 2 5 2 3 4 3 5 2 5 2 3 4 3)
0 5 7 | 0 2 5 9
(A B+ C+ D# E F+ G+)

notes: (0 5 8 10 14 17 22)
intervals: (5 3 2 4 3 5 2 5 3 2 4 3 5 2)
0 5 8 10 | 2 5 10
(A B+ C# D E F+ G#)

notes: (0 5 8 12 14 17 22)
intervals: (5 3 4 2 3 5 2 5 3 4 2 3 5 2)
0 5 8 | 0 2 5 10
(A B+ C# D# E F+ G#)

notes: (0 5 8 12 14 19 22)
intervals: (5 3 4 2 5 3 2 5 3 4 2 5 3 2)
0 5 8 | 0 2 7 10
(A B+ C# D# E F#+ G#)

notes: (0 5 8 12 16 19 22)
intervals: (5 3 4 4 3 3 2 5 3 4 4 3 3 2)
0 5 8 | 0 4 7 10
(A B+ C# D# F F#+ G#)

notes: (0 5 8 12 17 19 22)
intervals: (5 3 4 5 2 3 2 5 3 4 5 2 3 2)
0 5 8 | 0 5 7 10
(A B+ C# D# F+ F#+ G#)

notes: (0 5 8 12 17 20)
intervals: (5 3 4 5 3 4 5 3 4 5 3 4)
0 5 8 | 0 5 8
(A B+ C# D# F+ G)

notes: (0 5 9 12 14 17 19)
intervals: (5 4 3 2 3 2 5 5 4 3 2 3 2 5)
0 5 9 | 0 2 5 7
(A B+ C#+ D# E F+ G-)

notes: (0 5 9 12 17 19 22)
intervals: (5 4 3 5 2 3 2 5 4 3 5 2 3 2)
0 5 9 | 0 5 7 10
(A B+ C#+ D# F+ F#+ G#)

notes: (0 5 9 12 17 21)
intervals: (5 4 3 5 4 3 5 4 3 5 4 3)
0 5 9 | 0 5 9
(A B+ C#+ D# F+ G+)

notes: (0 5 9 14 17 21)
intervals: (5 4 5 3 4 3 5 4 5 3 4 3)
0 5 9 | 2 5 9
(A B+ C#+ E F+ G+)

notes: (0 5 10 12 16 19 22)
intervals: (5 5 2 4 3 3 2 5 5 2 4 3 3 2)
0 5 10 | 0 4 7 10
(A B+ D Eb F Gb+ Ab)

notes: (0 5 10 14 17 19 22)
intervals: (5 5 4 3 2 3 2 5 5 4 3 2 3 2)
0 5 10 | 2 5 7 10
(A B+ D E F+ F#+ G#)

notes: (0 5 10 14 17 20)
intervals: (5 5 4 3 3 4 5 5 4 3 3 4)
0 5 10 | 2 5 8
(A B+ D E F+ G)

notes: (0 5 11 16 19 21)
intervals: (5 6 5 3 2 3 5 6 5 3 2 3)
0 5 11 | 4 7 9
(A B+ D+ F F#+ G+)

notes: (0 5 12 14 17 20)
intervals: (5 7 2 3 3 4 5 7 2 3 3 4)
0 5 | 0 2 5 8
(A B+ D# E F+ G)

notes: (0 5 14 16 19 22)
intervals: (5 9 2 3 3 2 5 9 2 3 3 2)
0 5 | 2 4 7 10
(A B+ E F F#+ G#)

notes: (0 6 9 12 14 17)
intervals: (6 3 3 2 3 7 6 3 3 2 3 7)
0 6 9 | 0 2 5
(A C C#+ D# E F+)

notes: (0 6 11 14 16 19)
intervals: (6 5 3 2 3 5 6 5 3 2 3 5)
0 6 11 | 2 4 7
(A C D+ E F Gb+)

notes: (0 6 12 14 17 19 22)
intervals: (6 6 2 3 2 3 2 6 6 2 3 2 3 2)
0 6 | 0 2 5 7 10
(A C D# E F+ F#+ G#)

notes: (0 7 9 12 14 17 21)
intervals: (7 2 3 2 3 4 3 7 2 3 2 3 4 3)
0 7 9 | 0 2 5 9
(A C+ C#+ D# E F+ G+)

notes: (0 7 10 14 17 19 22)
intervals: (7 3 4 3 2 3 2 7 3 4 3 2 3 2)
0 7 10 | 2 5 7 10
(A C+ D E F+ F#+ G#)

notes: (0 7 11 14 16 19 21)
intervals: (7 4 3 2 3 2 3 7 4 3 2 3 2 3)
0 7 11 | 2 4 7 9
(A C+ D+ E F F#+ G+)

notes: (0 7 12 16 19 22)
intervals: (7 5 4 3 3 2 7 5 4 3 3 2)
0 7 | 0 4 7 10
(A C+ D# F F#+ G#)

notes: (0 7 14 16 19 22)
intervals: (7 7 2 3 3 2 7 7 2 3 3 2)
0 7 | 2 4 7 10
(A C+ E F F#+ G#)

notes: (0 8 11 14 16 19)
intervals: (8 3 3 2 3 5 8 3 3 2 3 5)
0 8 11 | 2 4 7
(A C# D+ E F G-)

notes: (0 8 12 14 17 19 22)
intervals: (8 4 2 3 2 3 2 8 4 2 3 2 3 2)
0 8 | 0 2 5 7 10
(A C# D# E F+ F#+ G#)

notes: (0 9 11 14 16 19 21)
intervals: (9 2 3 2 3 2 3 9 2 3 2 3 2 3)
0 9 11 | 2 4 7 9
(A C#+ D+ E F F#+ G+)

notes: (0 9 11 14 17 19)
intervals: (9 2 3 3 2 5 9 2 3 3 2 5)
0 9 11 | 2 5 7
(A C#+ D+ E F+ G-)

notes: (0 9 11 14 17 21)
intervals: (9 2 3 3 4 3 9 2 3 3 4 3)
0 9 11 | 2 5 9
(A C#+ D+ E F+ G+)

notes: (0 9 12 14 17 19 22)
intervals: (9 3 2 3 2 3 2 9 3 2 3 2 3 2)
0 9 | 0 2 5 7 10
(A C#+ D# E F+ F#+ G#)

notes: (0 9 12 14 17 20)
intervals: (9 3 2 3 3 4 9 3 2 3 3 4)
0 9 | 0 2 5 8
(A C#+ D# E F+ G)

notes: (0 9 12 16 19 22)
intervals: (9 3 4 3 3 2 9 3 4 3 3 2)
0 9 | 0 4 7 10
(A C#+ D# F F#+ G#)

notes: (0 9 14 16 19 22)
intervals: (9 5 2 3 3 2 9 5 2 3 3 2)
0 9 | 2 4 7 10
(A C#+ E F F#+ G#)

notes: (0 11 14 16 19 22)
intervals: (11 3 2 3 3 2 11 3 2 3 3 2)
0 11 | 2 4 7 10
(A D+ E F F#+ G#)

notes: (0 11 14 17 19 22)
intervals: (11 3 3 2 3 2 11 3 3 2 3 2)
0 11 | 2 5 7 10
(A D+ E F+ F#+ G#)



It looks like I've set the distance between 3 consecutive notes (" distance-3-min: 5 " ) to be too small, so I'll raise it by one each time.

Last edited by calebprime; 18th March 2016 at 04:22 AM.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 18th March 2016, 04:28 AM   #331
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
Now we're talking. Or rather, now we can shut up

> (load "Desktop/microtonal8.txt")


number of scales found: 96



modulus: 24
length-min: 6
length-max: 8
wolves: (13 15)
wolf-max: 2
distance-2-min: 2
distance-3-min: 6
bad-notes: (1 13 15 23)
require-completeness: #t
balance-notes: (0 2 4 6 8 10 12 14 16 18 20 22)
balance-in-min: 2
balance-out-min: 2
multiple-spellings: #f

working........................................... .................................................. .................................................. .........................done





notes: (0 2 6 9 12 16 19)
intervals: (2 4 3 3 4 3 5 2 4 3 3 4 3 5)
0 2 6 9 | 0 4 7
(A Bb C Db+ Eb F Gb+)

notes: (0 2 6 9 14 19)
intervals: (2 4 3 5 5 5 2 4 3 5 5 5)
0 2 6 9 | 2 7
(A Bb C Db+ E Gb+)

notes: (0 2 7 9 14 16)
intervals: (2 5 2 5 2 8 2 5 2 5 2 8)
0 2 7 9 | 2 4
(A Bb C+ Db+ E F)

notes: (0 2 7 9 14 17)
intervals: (2 5 2 5 3 7 2 5 2 5 3 7)
0 2 7 9 | 2 5
(A Bb C+ Db+ E F+)

notes: (0 2 7 9 14 19)
intervals: (2 5 2 5 5 5 2 5 2 5 5 5)
0 2 7 9 | 2 7
(A Bb C+ Db+ E Gb+)

notes: (0 2 7 9 16 19)
intervals: (2 5 2 7 3 5 2 5 2 7 3 5)
0 2 7 9 | 4 7
(A Bb C+ Db+ F Gb+)

notes: (0 2 7 9 17 19)
intervals: (2 5 2 8 2 5 2 5 2 8 2 5)
0 2 7 9 | 5 7
(A Bb C+ Db+ F+ Gb+)

notes: (0 2 7 10 14 17 20)
intervals: (2 5 3 4 3 3 4 2 5 3 4 3 3 4)
0 2 7 10 | 2 5 8
(A Bb C+ D E F+ G)

notes: (0 2 7 10 14 19)
intervals: (2 5 3 4 5 5 2 5 3 4 5 5)
0 2 7 10 | 2 7
(A Bb C+ D E Gb+)

notes: (0 2 7 10 16 19)
intervals: (2 5 3 6 3 5 2 5 3 6 3 5)
0 2 7 10 | 4 7
(A Bb C+ D F Gb+)

notes: (0 2 7 10 17 19)
intervals: (2 5 3 7 2 5 2 5 3 7 2 5)
0 2 7 10 | 5 7
(A Bb C+ D F+ Gb+)

notes: (0 2 7 11 14 19)
intervals: (2 5 4 3 5 5 2 5 4 3 5 5)
0 2 7 11 | 2 7
(A Bb C+ D+ E Gb+)

notes: (0 2 7 12 14 19)
intervals: (2 5 5 2 5 5 2 5 5 2 5 5)
0 2 7 | 0 2 7
(A Bb C+ D# E F#+)

notes: (0 2 7 12 16 19)
intervals: (2 5 5 4 3 5 2 5 5 4 3 5)
0 2 7 | 0 4 7
(A Bb C+ Eb F Gb+)

notes: (0 2 7 12 17 19)
intervals: (2 5 5 5 2 5 2 5 5 5 2 5)
0 2 7 | 0 5 7
(A Bb C+ Eb F+ Gb+)

notes: (0 2 7 12 17 20)
intervals: (2 5 5 5 3 4 2 5 5 5 3 4)
0 2 7 | 0 5 8
(A Bb C+ Eb F+ G)

notes: (0 2 9 12 17 19)
intervals: (2 7 3 5 2 5 2 7 3 5 2 5)
0 2 9 | 0 5 7
(A Bb Db+ Eb F+ Gb+)

notes: (0 2 10 12 17 19)
intervals: (2 8 2 5 2 5 2 8 2 5 2 5)
0 2 10 | 0 5 7
(A Bb D Eb F+ Gb+)

notes: (0 3 6 10 12 17 20)
intervals: (3 3 4 2 5 3 4 3 3 4 2 5 3 4)
0 3 6 10 | 0 5 8
(A Bb+ C D Eb F+ G)

notes: (0 3 6 10 14 17 20)
intervals: (3 3 4 4 3 3 4 3 3 4 4 3 3 4)
0 3 6 10 | 2 5 8
(A Bb+ C D E F+ G)

notes: (0 3 7 9 14 17 21)
intervals: (3 4 2 5 3 4 3 3 4 2 5 3 4 3)
0 3 7 9 | 2 5 9
(A Bb+ C+ Db+ E F+ G+)

notes: (0 3 7 9 14 19)
intervals: (3 4 2 5 5 5 3 4 2 5 5 5)
0 3 7 9 | 2 7
(A Bb+ C+ Db+ E Gb+)

notes: (0 3 7 10 14 17 20)
intervals: (3 4 3 4 3 3 4 3 4 3 4 3 3 4)
0 3 7 10 | 2 5 8
(A Bb+ C+ D E F+ G)

notes: (0 3 7 10 14 17 21)
intervals: (3 4 3 4 3 4 3 3 4 3 4 3 4 3)
0 3 7 10 | 2 5 9
(A Bb+ C+ D E F+ G+)

notes: (0 3 7 10 14 19)
intervals: (3 4 3 4 5 5 3 4 3 4 5 5)
0 3 7 10 | 2 7
(A Bb+ C+ D E Gb+)

notes: (0 3 7 10 17 19)
intervals: (3 4 3 7 2 5 3 4 3 7 2 5)
0 3 7 10 | 5 7
(A Bb+ C+ D F+ Gb+)

notes: (0 3 7 11 14 17 21)
intervals: (3 4 4 3 3 4 3 3 4 4 3 3 4 3)
0 3 7 11 | 2 5 9
(A Bb+ C+ D+ E F+ G+)

notes: (0 3 7 11 14 19)
intervals: (3 4 4 3 5 5 3 4 4 3 5 5)
0 3 7 11 | 2 7
(A Bb+ C+ D+ E Gb+)

notes: (0 3 7 12 14 19)
intervals: (3 4 5 2 5 5 3 4 5 2 5 5)
0 3 7 | 0 2 7
(A B- C+ D# E F#+)

notes: (0 3 7 12 17 19)
intervals: (3 4 5 5 2 5 3 4 5 5 2 5)
0 3 7 | 0 5 7
(A Bb+ C+ Eb F+ Gb+)

notes: (0 3 7 12 17 20)
intervals: (3 4 5 5 3 4 3 4 5 5 3 4)
0 3 7 | 0 5 8
(A Bb+ C+ Eb F+ G)

notes: (0 3 7 12 17 21)
intervals: (3 4 5 5 4 3 3 4 5 5 4 3)
0 3 7 | 0 5 9
(A Bb+ C+ Eb F+ G+)

notes: (0 3 8 10 14 17 20)
intervals: (3 5 2 4 3 3 4 3 5 2 4 3 3 4)
0 3 8 10 | 2 5 8
(A B- C# D E F+ G)

notes: (0 3 8 12 17 20)
intervals: (3 5 4 5 3 4 3 5 4 5 3 4)
0 3 8 | 0 5 8
(A Bb+ Db Eb F+ G)

notes: (0 3 9 12 17 19)
intervals: (3 6 3 5 2 5 3 6 3 5 2 5)
0 3 9 | 0 5 7
(A Bb+ Db+ Eb F+ Gb+)

notes: (0 3 10 12 17 19)
intervals: (3 7 2 5 2 5 3 7 2 5 2 5)
0 3 10 | 0 5 7
(A Bb+ D Eb F+ Gb+)

notes: (0 4 6 11 14 18 21)
intervals: (4 2 5 3 4 3 3 4 2 5 3 4 3 3)
0 4 6 11 | 2 6 9
(A B C D+ E F# G+)

notes: (0 4 6 11 16 21)
intervals: (4 2 5 5 5 3 4 2 5 5 5 3)
0 4 6 11 | 4 9
(A B C D+ F G+)

notes: (0 4 7 10 14 16 21)
intervals: (4 3 3 4 2 5 3 4 3 3 4 2 5 3)
0 4 7 10 | 2 4 9
(A B C+ D E F G+)

notes: (0 4 7 10 14 17 20)
intervals: (4 3 3 4 3 3 4 4 3 3 4 3 3 4)
0 4 7 10 | 2 5 8
(A B C+ D E F+ G)

notes: (0 4 7 10 14 17 21)
intervals: (4 3 3 4 3 4 3 4 3 3 4 3 4 3)
0 4 7 10 | 2 5 9
(A B C+ D E F+ G+)

notes: (0 4 7 10 14 17 22)
intervals: (4 3 3 4 3 5 2 4 3 3 4 3 5 2)
0 4 7 10 | 2 5 10
(A B C+ D E F+ G#)

notes: (0 4 7 10 14 18 21)
intervals: (4 3 3 4 4 3 3 4 3 3 4 4 3 3)
0 4 7 10 | 2 6 9
(A B C+ D E F# G+)

notes: (0 4 7 10 14 19)
intervals: (4 3 3 4 5 5 4 3 3 4 5 5)
0 4 7 10 | 2 7
(A B C+ D E F#+)

notes: (0 4 7 11 14 17 21)
intervals: (4 3 4 3 3 4 3 4 3 4 3 3 4 3)
0 4 7 11 | 2 5 9
(A B C+ D+ E F+ G+)

notes: (0 4 7 11 14 18 21)
intervals: (4 3 4 3 4 3 3 4 3 4 3 4 3 3)
0 4 7 11 | 2 6 9
(A B C+ D+ E F# G+)

notes: (0 4 7 11 14 19)
intervals: (4 3 4 3 5 5 4 3 4 3 5 5)
0 4 7 11 | 2 7
(A B C+ D+ E F#+)

notes: (0 4 7 11 16 21)
intervals: (4 3 4 5 5 3 4 3 4 5 5 3)
0 4 7 11 | 4 9
(A B C+ D+ F G+)

notes: (0 4 7 12 14 18 21)
intervals: (4 3 5 2 4 3 3 4 3 5 2 4 3 3)
0 4 7 | 0 2 6 9
(A B C+ D# E F# G+)

notes: (0 4 7 12 14 19)
intervals: (4 3 5 2 5 5 4 3 5 2 5 5)
0 4 7 | 0 2 7
(A B C+ D# E F#+)

notes: (0 4 7 12 16 19)
intervals: (4 3 5 4 3 5 4 3 5 4 3 5)
0 4 7 | 0 4 7
(A B C+ D# F G-)

notes: (0 4 7 12 16 21)
intervals: (4 3 5 4 5 3 4 3 5 4 5 3)
0 4 7 | 0 4 9
(A B C+ D# F G+)

notes: (0 4 7 12 17 19)
intervals: (4 3 5 5 2 5 4 3 5 5 2 5)
0 4 7 | 0 5 7
(A B C+ D# F+ G-)

notes: (0 4 7 12 17 20)
intervals: (4 3 5 5 3 4 4 3 5 5 3 4)
0 4 7 | 0 5 8
(A B C+ D# F+ G)

notes: (0 4 7 12 17 21)
intervals: (4 3 5 5 4 3 4 3 5 5 4 3)
0 4 7 | 0 5 9
(A B C+ D# F+ G+)

notes: (0 4 7 12 17 22)
intervals: (4 3 5 5 5 2 4 3 5 5 5 2)
0 4 7 | 0 5 10
(A B C+ D# F+ G#)

notes: (0 4 8 11 14 18 21)
intervals: (4 4 3 3 4 3 3 4 4 3 3 4 3 3)
0 4 8 11 | 2 6 9
(A B C# D+ E F# G+)

notes: (0 4 8 11 16 21)
intervals: (4 4 3 5 5 3 4 4 3 5 5 3)
0 4 8 11 | 4 9
(A B C# D+ F G+)

notes: (0 4 9 11 16 21)
intervals: (4 5 2 5 5 3 4 5 2 5 5 3)
0 4 9 11 | 4 9
(A B C#+ D+ F G+)

notes: (0 4 9 12 16 19)
intervals: (4 5 3 4 3 5 4 5 3 4 3 5)
0 4 9 | 0 4 7
(A B C#+ D# F G-)

notes: (0 4 9 12 16 21)
intervals: (4 5 3 4 5 3 4 5 3 4 5 3)
0 4 9 | 0 4 9
(A B C#+ D# F G+)

notes: (0 4 9 14 16 21)
intervals: (4 5 5 2 5 3 4 5 5 2 5 3)
0 4 9 | 2 4 9
(A B C#+ E F G+)

notes: (0 4 9 14 17 21)
intervals: (4 5 5 3 4 3 4 5 5 3 4 3)
0 4 9 | 2 5 9
(A B C#+ E F+ G+)

notes: (0 4 9 14 18 21)
intervals: (4 5 5 4 3 3 4 5 5 4 3 3)
0 4 9 | 2 6 9
(A B C#+ E F# G+)

notes: (0 5 7 11 14 17 21)
intervals: (5 2 4 3 3 4 3 5 2 4 3 3 4 3)
0 5 7 11 | 2 5 9
(A B+ C+ D+ E F+ G+)

notes: (0 5 7 11 14 19)
intervals: (5 2 4 3 5 5 5 2 4 3 5 5)
0 5 7 11 | 2 7
(A B+ C+ D+ E F#+)

notes: (0 5 7 12 14 19)
intervals: (5 2 5 2 5 5 5 2 5 2 5 5)
0 5 7 | 0 2 7
(A B+ C+ D# E F#+)

notes: (0 5 7 12 14 21)
intervals: (5 2 5 2 7 3 5 2 5 2 7 3)
0 5 7 | 0 2 9
(A B+ C+ D# E G+)

notes: (0 5 7 12 14 22)
intervals: (5 2 5 2 8 2 5 2 5 2 8 2)
0 5 7 | 0 2 10
(A B+ C+ D# E G#)

notes: (0 5 7 12 16 19)
intervals: (5 2 5 4 3 5 5 2 5 4 3 5)
0 5 7 | 0 4 7
(A B+ C+ D# F G-)

notes: (0 5 7 12 17 19)
intervals: (5 2 5 5 2 5 5 2 5 5 2 5)
0 5 7 | 0 5 7
(A B+ C+ D# F+ G-)

notes: (0 5 7 12 17 20)
intervals: (5 2 5 5 3 4 5 2 5 5 3 4)
0 5 7 | 0 5 8
(A B+ C+ D# F+ G)

notes: (0 5 7 12 17 21)
intervals: (5 2 5 5 4 3 5 2 5 5 4 3)
0 5 7 | 0 5 9
(A B+ C+ D# F+ G+)

notes: (0 5 7 12 17 22)
intervals: (5 2 5 5 5 2 5 2 5 5 5 2)
0 5 7 | 0 5 10
(A B+ C+ D# F+ G#)

notes: (0 5 7 14 17 22)
intervals: (5 2 7 3 5 2 5 2 7 3 5 2)
0 5 7 | 2 5 10
(A B+ C+ E F+ G#)

notes: (0 5 8 12 14 19)
intervals: (5 3 4 2 5 5 5 3 4 2 5 5)
0 5 8 | 0 2 7
(A B+ C# D# E F#+)

notes: (0 5 8 12 16 19)
intervals: (5 3 4 4 3 5 5 3 4 4 3 5)
0 5 8 | 0 4 7
(A B+ C# D# F G-)

notes: (0 5 8 12 17 19)
intervals: (5 3 4 5 2 5 5 3 4 5 2 5)
0 5 8 | 0 5 7
(A B+ C# D# F+ G-)

notes: (0 5 8 12 17 20)
intervals: (5 3 4 5 3 4 5 3 4 5 3 4)
0 5 8 | 0 5 8
(A B+ C# D# F+ G)

notes: (0 5 8 12 17 22)
intervals: (5 3 4 5 5 2 5 3 4 5 5 2)
0 5 8 | 0 5 10
(A B+ C# D# F+ G#)

notes: (0 5 8 14 17 22)
intervals: (5 3 6 3 5 2 5 3 6 3 5 2)
0 5 8 | 2 5 10
(A B+ C# E F+ G#)

notes: (0 5 9 12 16 19)
intervals: (5 4 3 4 3 5 5 4 3 4 3 5)
0 5 9 | 0 4 7
(A B+ C#+ D# F G-)

notes: (0 5 9 12 17 19)
intervals: (5 4 3 5 2 5 5 4 3 5 2 5)
0 5 9 | 0 5 7
(A B+ C#+ D# F+ G-)

notes: (0 5 9 12 17 21)
intervals: (5 4 3 5 4 3 5 4 3 5 4 3)
0 5 9 | 0 5 9
(A B+ C#+ D# F+ G+)

notes: (0 5 9 12 17 22)
intervals: (5 4 3 5 5 2 5 4 3 5 5 2)
0 5 9 | 0 5 10
(A B+ C#+ D# F+ G#)

notes: (0 5 9 14 17 21)
intervals: (5 4 5 3 4 3 5 4 5 3 4 3)
0 5 9 | 2 5 9
(A B+ C#+ E F+ G+)

notes: (0 5 10 12 16 19)
intervals: (5 5 2 4 3 5 5 5 2 4 3 5)
0 5 10 | 0 4 7
(A B+ D Eb F Gb+)

notes: (0 5 10 12 17 19)
intervals: (5 5 2 5 2 5 5 5 2 5 2 5)
0 5 10 | 0 5 7
(A B+ D Eb F+ Gb+)

notes: (0 5 10 12 17 20)
intervals: (5 5 2 5 3 4 5 5 2 5 3 4)
0 5 10 | 0 5 8
(A B+ D Eb F+ G)

notes: (0 5 10 12 17 21)
intervals: (5 5 2 5 4 3 5 5 2 5 4 3)
0 5 10 | 0 5 9
(A B+ D Eb F+ G+)

notes: (0 5 10 12 17 22)
intervals: (5 5 2 5 5 2 5 5 2 5 5 2)
0 5 10 | 0 5 10
(A B+ D Eb F+ G#)

notes: (0 5 10 14 17 20)
intervals: (5 5 4 3 3 4 5 5 4 3 3 4)
0 5 10 | 2 5 8
(A B+ D E F+ G)

notes: (0 5 10 14 17 21)
intervals: (5 5 4 3 4 3 5 5 4 3 4 3)
0 5 10 | 2 5 9
(A B+ D E F+ G+)

notes: (0 5 10 14 17 22)
intervals: (5 5 4 3 5 2 5 5 4 3 5 2)
0 5 10 | 2 5 10
(A B+ D E F+ G#)

notes: (0 6 9 14 16 21)
intervals: (6 3 5 2 5 3 6 3 5 2 5 3)
0 6 9 | 2 4 9
(A C Db+ E F G+)

notes: (0 7 9 14 16 21)
intervals: (7 2 5 2 5 3 7 2 5 2 5 3)
0 7 9 | 2 4 9
(A C+ Db+ E F G+)




Looks like I picked the wrong time to quit smoking cannabis!

I mean: With a crisp, accurate list of scales like this, one would like to revel in it, to put one's frontal lobes on hold, and just jam, baby.

Some musicians require no help to indulge in shameless revelry. They can do it sober. I envy them. Chick, what can you teach me?

Last edited by calebprime; 18th March 2016 at 04:32 AM.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 18th March 2016, 05:34 AM   #332
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
RIP Peter Maxwell Davies

http://www.nytimes.com/2016/03/15/ar...t-81.html?_r=0

Quote:
Sir Peter Maxwell Davies, the prolific English composer long known as an anti-establishment anti-monarchist avant-gardist enfant terrible — but whose work was so renowned that he was named Queen Elizabeth II’s official music master anyway — died on Monday at his home in the Orkney Islands of Scotland. He was 81.

https://app.box.com/s/11ibkzjq0c6uh5xpbfvi
"Wife and Garden"

Here's a piece of mine, which samples a BBC interview with Peter Maxwell Davies, and adds it to clips from a film about Glenn Gould, and also uses Electric Ladyland, by Jimi Hendrix.

Davies goes South, Gould goes North, Hendrix goes under. Caleb stays home with his wife and garden. Hence the name: Wife and Garden.

Davies goes down, Gould goes up, Jimi goes under, Caleb stays put. Moses does not go down..

That makes Hendrix the Ubermensch, I guess.

It was partly Andy Fox's vivid and witty descriptions of attending a lecture by Davies that got me going on this one.

There were a few technical victories. The opening audio is from a student-led tour of the basement of the St. Botolph St. building: The studio was next to the Opera Department. Slightly ironic.

To record them, I stuck some SM57's in a few lamps, and positioned them pointing out the door of the computer lab. Amazingly, in about 1 hour I had exactly what I wanted.

The layer of slow background is provided by, iirc, the Sea Symphony,of Vaughan Williams.
I wrote 12-tone row lines, cleverly tonal, on top.

https://en.wikipedia.org/wiki/A_Sea_Symphony

Today's Globe has an article in the Metro section: "Police board fishing vessels at sea in bid to halt drug use." What's slighly off about this: The Department of Homeland Security assisted. That's a lot of manpower to arrest a half-dozen fishermen, who barely make a living anyway. Doesn't Homeland Security have enough to do? Is this make-work?

Last edited by calebprime; 18th March 2016 at 05:41 AM.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 18th March 2016, 09:53 AM   #333
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
There are 35 from the above that are balanced 3 and 3.



modulus: 24
length-min: 6
length-max: 8
wolves: (13 15)
wolf-max: 2
distance-2-min: 2
distance-3-min: 6
bad-notes: (1 13 15 23)
require-completeness: #t
balance-notes: (0 2 4 6 8 10 12 14 16 18 20 22)
balance-in-min: 3
balance-out-min: 3
multiple-spellings: #f

working........................................... .....done


> (load "Desktop/microtonal8.txt")

notes: (0 2 7 9 14 17)
intervals: (2 5 2 5 3 7 2 5 2 5 3 7)
0 2 7 9 | 2 5
(A Bb C+ Db+ E F+)

notes: (0 2 7 9 14 19)
intervals: (2 5 2 5 5 5 2 5 2 5 5 5)
0 2 7 9 | 2 7
(A Bb C+ Db+ E Gb+)

notes: (0 2 7 9 16 19)
intervals: (2 5 2 7 3 5 2 5 2 7 3 5)
0 2 7 9 | 4 7
(A Bb C+ Db+ F Gb+)

notes: (0 2 7 10 17 19)
intervals: (2 5 3 7 2 5 2 5 3 7 2 5)
0 2 7 10 | 5 7
(A Bb C+ D F+ Gb+)

notes: (0 2 7 11 14 19)
intervals: (2 5 4 3 5 5 2 5 4 3 5 5)
0 2 7 11 | 2 7
(A Bb C+ D+ E Gb+)

notes: (0 2 7 12 17 19)
intervals: (2 5 5 5 2 5 2 5 5 5 2 5)
0 2 7 | 0 5 7
(A Bb C+ Eb F+ Gb+)

notes: (0 2 9 12 17 19)
intervals: (2 7 3 5 2 5 2 7 3 5 2 5)
0 2 9 | 0 5 7
(A Bb Db+ Eb F+ Gb+)

notes: (0 3 7 10 14 17 20)
intervals: (3 4 3 4 3 3 4 3 4 3 4 3 3 4)
0 3 7 10 | 2 5 8
(A Bb+ C+ D E F+ G)

notes: (0 3 7 10 14 17 21)
intervals: (3 4 3 4 3 4 3 3 4 3 4 3 4 3)
0 3 7 10 | 2 5 9
(A Bb+ C+ D E F+ G+)

notes: (0 3 7 10 14 19)
intervals: (3 4 3 4 5 5 3 4 3 4 5 5)
0 3 7 10 | 2 7
(A Bb+ C+ D E Gb+)

notes: (0 3 7 12 14 19)
intervals: (3 4 5 2 5 5 3 4 5 2 5 5)
0 3 7 | 0 2 7
(A B- C+ D# E F#+)

notes: (0 3 7 12 17 20)
intervals: (3 4 5 5 3 4 3 4 5 5 3 4)
0 3 7 | 0 5 8
(A Bb+ C+ Eb F+ G)

notes: (0 3 10 12 17 19)
intervals: (3 7 2 5 2 5 3 7 2 5 2 5)
0 3 10 | 0 5 7
(A Bb+ D Eb F+ Gb+)

notes: (0 4 7 10 14 17 21)
intervals: (4 3 3 4 3 4 3 4 3 3 4 3 4 3)
0 4 7 10 | 2 5 9
(A B C+ D E F+ G+)

notes: (0 4 7 11 14 17 21)
intervals: (4 3 4 3 3 4 3 4 3 4 3 3 4 3)
0 4 7 11 | 2 5 9
(A B C+ D+ E F+ G+)

notes: (0 4 7 11 14 18 21)
intervals: (4 3 4 3 4 3 3 4 3 4 3 4 3 3)
0 4 7 11 | 2 6 9
(A B C+ D+ E F# G+)

notes: (0 4 7 11 14 19)
intervals: (4 3 4 3 5 5 4 3 4 3 5 5)
0 4 7 11 | 2 7
(A B C+ D+ E F#+)

notes: (0 4 7 11 16 21)
intervals: (4 3 4 5 5 3 4 3 4 5 5 3)
0 4 7 11 | 4 9
(A B C+ D+ F G+)

notes: (0 4 7 12 17 19)
intervals: (4 3 5 5 2 5 4 3 5 5 2 5)
0 4 7 | 0 5 7
(A B C+ D# F+ G-)

notes: (0 4 7 12 17 21)
intervals: (4 3 5 5 4 3 4 3 5 5 4 3)
0 4 7 | 0 5 9
(A B C+ D# F+ G+)

notes: (0 4 9 11 16 21)
intervals: (4 5 2 5 5 3 4 5 2 5 5 3)
0 4 9 11 | 4 9
(A B C#+ D+ F G+)

notes: (0 4 9 14 17 21)
intervals: (4 5 5 3 4 3 4 5 5 3 4 3)
0 4 9 | 2 5 9
(A B C#+ E F+ G+)

notes: (0 5 7 12 14 19)
intervals: (5 2 5 2 5 5 5 2 5 2 5 5)
0 5 7 | 0 2 7
(A B+ C+ D# E F#+)

notes: (0 5 7 12 14 21)
intervals: (5 2 5 2 7 3 5 2 5 2 7 3)
0 5 7 | 0 2 9
(A B+ C+ D# E G+)

notes: (0 5 7 12 16 19)
intervals: (5 2 5 4 3 5 5 2 5 4 3 5)
0 5 7 | 0 4 7
(A B+ C+ D# F G-)

notes: (0 5 7 12 17 20)
intervals: (5 2 5 5 3 4 5 2 5 5 3 4)
0 5 7 | 0 5 8
(A B+ C+ D# F+ G)

notes: (0 5 7 12 17 22)
intervals: (5 2 5 5 5 2 5 2 5 5 5 2)
0 5 7 | 0 5 10
(A B+ C+ D# F+ G#)

notes: (0 5 7 14 17 22)
intervals: (5 2 7 3 5 2 5 2 7 3 5 2)
0 5 7 | 2 5 10
(A B+ C+ E F+ G#)

notes: (0 5 8 12 17 19)
intervals: (5 3 4 5 2 5 5 3 4 5 2 5)
0 5 8 | 0 5 7
(A B+ C# D# F+ G-)

notes: (0 5 9 12 16 19)
intervals: (5 4 3 4 3 5 5 4 3 4 3 5)
0 5 9 | 0 4 7
(A B+ C#+ D# F G-)

notes: (0 5 9 12 17 22)
intervals: (5 4 3 5 5 2 5 4 3 5 5 2)
0 5 9 | 0 5 10
(A B+ C#+ D# F+ G#)

notes: (0 5 10 12 17 19)
intervals: (5 5 2 5 2 5 5 5 2 5 2 5)
0 5 10 | 0 5 7
(A B+ D Eb F+ Gb+)

notes: (0 5 10 12 17 21)
intervals: (5 5 2 5 4 3 5 5 2 5 4 3)
0 5 10 | 0 5 9
(A B+ D Eb F+ G+)

notes: (0 5 10 14 17 21)
intervals: (5 5 4 3 4 3 5 5 4 3 4 3)
0 5 10 | 2 5 9
(A B+ D E F+ G+)

notes: (0 7 9 14 16 21)
intervals: (7 2 5 2 5 3 7 2 5 2 5 3)
0 7 9 | 2 4 9
(A C+ Db+ E F G+)


number of scales found: 35
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 18th March 2016, 12:02 PM   #334
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
nice

-
nice
.

number of scales found: 35
> (load "Desktop/microtonal8.txt")
modulus: 24
length-min: 7
length-max: 9
wolves: (13 15)
wolf-max: 5
distance-2-min: 2
distance-3-min: 5
bad-notes: (1 13 15 23)
require-completeness: #t
balance-notes: (0 2 4 6 8 10 12 14 16 18 20 22)
balance-in-min: 2
balance-out-min: 4
multiple-spellings: #f

working........................................... .................................................. .................................................. .................................................. .................................................. .................................................. .................................................. .................................................. .................................................. ......................................done

notes: (0 2 5 7 10 12 16 19 21)
intervals: (2 3 2 3 2 4 3 2 3 2 3 2 3 2 4 3 2 3)
0 2 5 7 10 | 0 4 7 9
(A Bb B+ C+ D Eb F Gb+ G+)

notes: (0 2 5 7 10 12 17 19)
intervals: (2 3 2 3 2 5 2 5 2 3 2 3 2 5 2 5)
0 2 5 7 10 | 0 5 7
(A Bb B+ C+ D Eb F+ Gb+)

notes: (0 2 5 7 10 12 17 21)
intervals: (2 3 2 3 2 5 4 3 2 3 2 3 2 5 4 3)
0 2 5 7 10 | 0 5 9
(A Bb B+ C+ D Eb F+ G+)

notes: (0 2 5 7 10 14 16 19 21)
intervals: (2 3 2 3 4 2 3 2 3 2 3 2 3 4 2 3 2 3)
0 2 5 7 10 | 2 4 7 9
(A A# B+ C+ D E F F#+ G+)

notes: (0 2 5 7 10 14 17 19)
intervals: (2 3 2 3 4 3 2 5 2 3 2 3 4 3 2 5)
0 2 5 7 10 | 2 5 7
(A A# B+ C+ D E F+ G-)

notes: (0 2 5 7 10 14 17 21)
intervals: (2 3 2 3 4 3 4 3 2 3 2 3 4 3 4 3)
0 2 5 7 10 | 2 5 9
(A A# B+ C+ D E F+ G+)

notes: (0 2 5 7 11 14 16 19 21)
intervals: (2 3 2 4 3 2 3 2 3 2 3 2 4 3 2 3 2 3)
0 2 5 7 11 | 2 4 7 9
(A A# B+ C+ D+ E F F#+ G+)

notes: (0 2 5 7 11 14 17 19)
intervals: (2 3 2 4 3 3 2 5 2 3 2 4 3 3 2 5)
0 2 5 7 11 | 2 5 7
(A A# B+ C+ D+ E F+ G-)

notes: (0 2 5 7 11 14 17 21)
intervals: (2 3 2 4 3 3 4 3 2 3 2 4 3 3 4 3)
0 2 5 7 11 | 2 5 9
(A A# B+ C+ D+ E F+ G+)

notes: (0 2 5 7 11 14 18 21)
intervals: (2 3 2 4 3 4 3 3 2 3 2 4 3 4 3 3)
0 2 5 7 11 | 2 6 9
(A A# B+ C+ D+ E F# G+)

notes: (0 2 5 7 12 14 17 19)
intervals: (2 3 2 5 2 3 2 5 2 3 2 5 2 3 2 5)
0 2 5 7 | 0 2 5 7
(A A# B+ C+ D# E F+ G-)

notes: (0 2 5 7 12 14 17 21)
intervals: (2 3 2 5 2 3 4 3 2 3 2 5 2 3 4 3)
0 2 5 7 | 0 2 5 9
(A A# B+ C+ D# E F+ G+)

notes: (0 2 5 7 12 14 19 21)
intervals: (2 3 2 5 2 5 2 3 2 3 2 5 2 5 2 3)
0 2 5 7 | 0 2 7 9
(A A# B+ C+ D# E F#+ G+)

notes: (0 2 5 8 11 14 19 21)
intervals: (2 3 3 3 3 5 2 3 2 3 3 3 3 5 2 3)
0 2 5 8 11 | 2 7 9
(A A# B+ C# D+ E F#+ G+)

notes: (0 2 5 8 11 16 19 21)
intervals: (2 3 3 3 5 3 2 3 2 3 3 3 5 3 2 3)
0 2 5 8 11 | 4 7 9
(A Bb C- Db Eb- F Gb+ G+)

notes: (0 2 5 8 11 17 19)
intervals: (2 3 3 3 6 2 5 2 3 3 3 6 2 5)
0 2 5 8 11 | 5 7
(A Bb C- Db Eb- F+ Gb+)

notes: (0 2 5 8 11 17 21)
intervals: (2 3 3 3 6 4 3 2 3 3 3 6 4 3)
0 2 5 8 11 | 5 9
(A Bb C- Db Eb- F+ G+)

notes: (0 2 5 9 11 14 16 19 21)
intervals: (2 3 4 2 3 2 3 2 3 2 3 4 2 3 2 3 2 3)
0 2 5 9 11 | 2 4 7 9
(A A# B+ C#+ D+ E F F#+ G+)

notes: (0 2 5 9 11 14 17 19)
intervals: (2 3 4 2 3 3 2 5 2 3 4 2 3 3 2 5)
0 2 5 9 11 | 2 5 7
(A A# B+ C#+ D+ E F+ G-)

notes: (0 2 5 9 11 14 17 21)
intervals: (2 3 4 2 3 3 4 3 2 3 4 2 3 3 4 3)
0 2 5 9 11 | 2 5 9
(A A# B+ C#+ D+ E F+ G+)

notes: (0 2 5 9 11 18 21)
intervals: (2 3 4 2 7 3 3 2 3 4 2 7 3 3)
0 2 5 9 11 | 6 9
(A Bb C- Db+ Eb- F# G+)

notes: (0 2 5 9 12 14 17 19)
intervals: (2 3 4 3 2 3 2 5 2 3 4 3 2 3 2 5)
0 2 5 9 | 0 2 5 7
(A A# B+ C#+ D# E F+ G-)

notes: (0 2 5 9 12 14 17 21)
intervals: (2 3 4 3 2 3 4 3 2 3 4 3 2 3 4 3)
0 2 5 9 | 0 2 5 9
(A A# B+ C#+ D# E F+ G+)

notes: (0 2 5 9 12 14 19 21)
intervals: (2 3 4 3 2 5 2 3 2 3 4 3 2 5 2 3)
0 2 5 9 | 0 2 7 9
(A A# B+ C#+ D# E F#+ G+)

notes: (0 2 5 9 12 16 19 21)
intervals: (2 3 4 3 4 3 2 3 2 3 4 3 4 3 2 3)
0 2 5 9 | 0 4 7 9
(A Bb C- Db+ Eb F Gb+ G+)

notes: (0 2 6 9 11 14 16 19 21)
intervals: (2 4 3 2 3 2 3 2 3 2 4 3 2 3 2 3 2 3)
0 2 6 9 11 | 2 4 7 9
(A Bb C Db+ D+ E F Gb+ G+)

notes: (0 2 7 9 12 14 17 19)
intervals: (2 5 2 3 2 3 2 5 2 5 2 3 2 3 2 5)
0 2 7 9 | 0 2 5 7
(A Bb C+ Db+ Eb E F+ Gb+)

notes: (0 2 7 9 12 14 17 21)
intervals: (2 5 2 3 2 3 4 3 2 5 2 3 2 3 4 3)
0 2 7 9 | 0 2 5 9
(A Bb C+ Db+ Eb E F+ G+)

notes: (0 2 7 9 12 14 19 21)
intervals: (2 5 2 3 2 5 2 3 2 5 2 3 2 5 2 3)
0 2 7 9 | 0 2 7 9
(A Bb C+ C#+ D# E F#+ G+)

notes: (0 2 7 9 12 16 19 21)
intervals: (2 5 2 3 4 3 2 3 2 5 2 3 4 3 2 3)
0 2 7 9 | 0 4 7 9
(A Bb C+ Db+ Eb F Gb+ G+)

notes: (0 2 7 9 14 16 19 21)
intervals: (2 5 2 5 2 3 2 3 2 5 2 5 2 3 2 3)
0 2 7 9 | 2 4 7 9
(A Bb C+ Db+ E F Gb+ G+)

notes: (0 3 5 8 10 14 17 19 22)
intervals: (3 2 3 2 4 3 2 3 2 3 2 3 2 4 3 2 3 2)
0 3 5 8 10 | 2 5 7 10
(A A#+ B+ C# D E F+ F#+ G#)

notes: (0 3 5 8 10 14 17 21)
intervals: (3 2 3 2 4 3 4 3 3 2 3 2 4 3 4 3)
0 3 5 8 10 | 2 5 9
(A A#+ B+ C# D E F+ G+)

notes: (0 3 5 8 10 19 21)
intervals: (3 2 3 2 9 2 3 3 2 3 2 9 2 3)
0 3 5 8 10 | 7 9
(A A#+ B+ C# D F#+ G+)

notes: (0 3 5 8 11 14 17 19)
intervals: (3 2 3 3 3 3 2 5 3 2 3 3 3 3 2 5)
0 3 5 8 11 | 2 5 7
(A A#+ B+ C# D+ E F+ G-)

notes: (0 3 5 8 11 14 17 21)
intervals: (3 2 3 3 3 3 4 3 3 2 3 3 3 3 4 3)
0 3 5 8 11 | 2 5 9
(A A#+ B+ C# D+ E F+ G+)

notes: (0 3 5 8 11 14 17 22)
intervals: (3 2 3 3 3 3 5 2 3 2 3 3 3 3 5 2)
0 3 5 8 11 | 2 5 10
(A A#+ B+ C# D+ E F+ G#)

notes: (0 3 5 8 11 14 19 21)
intervals: (3 2 3 3 3 5 2 3 3 2 3 3 3 5 2 3)
0 3 5 8 11 | 2 7 9
(A A#+ B+ C# D+ E F#+ G+)

notes: (0 3 5 8 11 14 19 22)
intervals: (3 2 3 3 3 5 3 2 3 2 3 3 3 5 3 2)
0 3 5 8 11 | 2 7 10
(A A#+ B+ C# D+ E F#+ G#)

notes: (0 3 5 8 11 16 19 21)
intervals: (3 2 3 3 5 3 2 3 3 2 3 3 5 3 2 3)
0 3 5 8 11 | 4 7 9
(A Bb+ C- Db Eb- F Gb+ G+)

notes: (0 3 5 8 11 16 19 22)
intervals: (3 2 3 3 5 3 3 2 3 2 3 3 5 3 3 2)
0 3 5 8 11 | 4 7 10
(A Bb+ C- Db Eb- F Gb+ Ab)

notes: (0 3 5 8 11 17 19 22)
intervals: (3 2 3 3 6 2 3 2 3 2 3 3 6 2 3 2)
0 3 5 8 11 | 5 7 10
(A Bb+ C- Db Eb- F+ Gb+ Ab)

notes: (0 3 5 8 11 17 20)
intervals: (3 2 3 3 6 3 4 3 2 3 3 6 3 4)
0 3 5 8 11 | 5 8
(A Bb+ C- Db Eb- F+ G)

notes: (0 3 5 8 11 18 21)
intervals: (3 2 3 3 7 3 3 3 2 3 3 7 3 3)
0 3 5 8 11 | 6 9
(A Bb+ C- Db Eb- F# G+)

notes: (0 3 5 8 12 14 17 19 22)
intervals: (3 2 3 4 2 3 2 3 2 3 2 3 4 2 3 2 3 2)
0 3 5 8 | 0 2 5 7 10
(A A#+ B+ C# D# E F+ F#+ G#)

notes: (0 3 5 8 12 17 21)
intervals: (3 2 3 4 5 4 3 3 2 3 4 5 4 3)
0 3 5 8 | 0 5 9
(A Bb+ C- Db Eb F+ G+)

notes: (0 3 5 8 12 19 21)
intervals: (3 2 3 4 7 2 3 3 2 3 4 7 2 3)
0 3 5 8 | 0 7 9
(A Bb+ C- Db Eb F#+ G+)

notes: (0 3 5 9 11 14 17 19)
intervals: (3 2 4 2 3 3 2 5 3 2 4 2 3 3 2 5)
0 3 5 9 11 | 2 5 7
(A A#+ B+ C#+ D+ E F+ G-)

notes: (0 3 5 9 11 14 17 21)
intervals: (3 2 4 2 3 3 4 3 3 2 4 2 3 3 4 3)
0 3 5 9 11 | 2 5 9
(A A#+ B+ C#+ D+ E F+ G+)

notes: (0 3 5 9 11 14 19 21)
intervals: (3 2 4 2 3 5 2 3 3 2 4 2 3 5 2 3)
0 3 5 9 11 | 2 7 9
(A A#+ B+ C#+ D+ E F#+ G+)

notes: (0 3 5 9 11 16 19 21)
intervals: (3 2 4 2 5 3 2 3 3 2 4 2 5 3 2 3)
0 3 5 9 11 | 4 7 9
(A Bb+ C- Db+ Eb- F Gb+ G+)

notes: (0 3 5 9 11 17 19 22)
intervals: (3 2 4 2 6 2 3 2 3 2 4 2 6 2 3 2)
0 3 5 9 11 | 5 7 10
(A Bb+ C- Db+ Eb- F+ Gb+ Ab)

notes: (0 3 5 9 11 17 20)
intervals: (3 2 4 2 6 3 4 3 2 4 2 6 3 4)
0 3 5 9 11 | 5 8
(A Bb+ C- Db+ Eb- F+ G)

notes: (0 3 5 9 11 18 21)
intervals: (3 2 4 2 7 3 3 3 2 4 2 7 3 3)
0 3 5 9 11 | 6 9
(A Bb+ C- Db+ Eb- F# G+)

notes: (0 3 5 9 12 14 17 19 22)
intervals: (3 2 4 3 2 3 2 3 2 3 2 4 3 2 3 2 3 2)
0 3 5 9 | 0 2 5 7 10
(A A#+ B+ C#+ D# E F+ F#+ G#)

notes: (0 3 5 9 12 14 17 21)
intervals: (3 2 4 3 2 3 4 3 3 2 4 3 2 3 4 3)
0 3 5 9 | 0 2 5 9
(A A#+ B+ C#+ D# E F+ G+)

notes: (0 3 5 9 12 14 19 21)
intervals: (3 2 4 3 2 5 2 3 3 2 4 3 2 5 2 3)
0 3 5 9 | 0 2 7 9
(A A#+ B+ C#+ D# E F#+ G+)

notes: (0 3 5 9 12 16 19 21)
intervals: (3 2 4 3 4 3 2 3 3 2 4 3 4 3 2 3)
0 3 5 9 | 0 4 7 9
(A Bb+ C- Db+ Eb F Gb+ G+)

notes: (0 3 5 9 12 16 19 22)
intervals: (3 2 4 3 4 3 3 2 3 2 4 3 4 3 3 2)
0 3 5 9 | 0 4 7 10
(A Bb+ C- Db+ Eb F Gb+ Ab)

notes: (0 3 5 9 12 17 20)
intervals: (3 2 4 3 5 3 4 3 2 4 3 5 3 4)
0 3 5 9 | 0 5 8
(A Bb+ C- Db+ Eb F+ G)

notes: (0 3 5 9 14 16 19 21)
intervals: (3 2 4 5 2 3 2 3 3 2 4 5 2 3 2 3)
0 3 5 9 | 2 4 7 9
(A Bb+ C- Db+ E F Gb+ G+)

notes: (0 3 5 9 14 17 20)
intervals: (3 2 4 5 3 3 4 3 2 4 5 3 3 4)
0 3 5 9 | 2 5 8
(A Bb+ C- Db+ E F+ G)

notes: (0 3 5 10 12 17 19 22)
intervals: (3 2 5 2 5 2 3 2 3 2 5 2 5 2 3 2)
0 3 5 10 | 0 5 7 10
(A Bb+ C- D Eb F+ Gb+ Ab)

notes: (0 3 5 10 12 17 21)
intervals: (3 2 5 2 5 4 3 3 2 5 2 5 4 3)
0 3 5 10 | 0 5 9
(A Bb+ C- D Eb F+ G+)

notes: (0 3 5 10 12 19 21)
intervals: (3 2 5 2 7 2 3 3 2 5 2 7 2 3)
0 3 5 10 | 0 7 9
(A Bb+ C- D Eb F#+ G+)

notes: (0 3 5 10 14 19 21)
intervals: (3 2 5 4 5 2 3 3 2 5 4 5 2 3)
0 3 5 10 | 2 7 9
(A B- C- D E F#+ G+)

notes: (0 3 5 10 16 19 21)
intervals: (3 2 5 6 3 2 3 3 2 5 6 3 2 3)
0 3 5 10 | 4 7 9
(A Bb+ C- D F Gb+ G+)

notes: (0 3 5 11 14 16 19 21)
intervals: (3 2 6 3 2 3 2 3 3 2 6 3 2 3 2 3)
0 3 5 11 | 2 4 7 9
(A Bb+ C- D+ E F Gb+ G+)

notes: (0 3 5 11 14 17 19 22)
intervals: (3 2 6 3 3 2 3 2 3 2 6 3 3 2 3 2)
0 3 5 11 | 2 5 7 10
(A Bb+ C- D+ E F+ Gb+ Ab)

notes: (0 3 5 11 14 17 20)
intervals: (3 2 6 3 3 3 4 3 2 6 3 3 3 4)
0 3 5 11 | 2 5 8
(A Bb+ C- D+ E F+ G)

notes: (0 3 5 11 14 18 21)
intervals: (3 2 6 3 4 3 3 3 2 6 3 4 3 3)
0 3 5 11 | 2 6 9
(A B- C- D+ E F# G+)

notes: (0 3 5 11 16 18 21)
intervals: (3 2 6 5 2 3 3 3 2 6 5 2 3 3)
0 3 5 11 | 4 6 9
(A Bb+ C- D+ F Gb G+)

notes: (0 3 6 8 11 17 19)
intervals: (3 3 2 3 6 2 5 3 3 2 3 6 2 5)
0 3 6 8 11 | 5 7
(A Bb+ C Db Eb- F+ Gb+)

notes: (0 3 6 8 11 17 21)
intervals: (3 3 2 3 6 4 3 3 3 2 3 6 4 3)
0 3 6 8 11 | 5 9
(A Bb+ C Db Eb- F+ G+)

notes: (0 3 6 8 11 19 21)
intervals: (3 3 2 3 8 2 3 3 3 2 3 8 2 3)
0 3 6 8 11 | 7 9
(A Bb+ C Db Eb- F#+ G+)

notes: (0 3 6 9 11 14 16 19)
intervals: (3 3 3 2 3 2 3 5 3 3 3 2 3 2 3 5)
0 3 6 9 11 | 2 4 7
(A Bb+ C Db+ D+ E F Gb+)

notes: (0 3 6 9 11 14 16 21)
intervals: (3 3 3 2 3 2 5 3 3 3 3 2 3 2 5 3)
0 3 6 9 11 | 2 4 9
(A Bb+ C Db+ D+ E F G+)

notes: (0 3 6 9 11 14 17 19)
intervals: (3 3 3 2 3 3 2 5 3 3 3 2 3 3 2 5)
0 3 6 9 11 | 2 5 7
(A Bb+ C Db+ D+ E F+ Gb+)

notes: (0 3 6 9 11 14 17 21)
intervals: (3 3 3 2 3 3 4 3 3 3 3 2 3 3 4 3)
0 3 6 9 11 | 2 5 9
(A Bb+ C Db+ D+ E F+ G+)

notes: (0 3 6 9 11 14 19 21)
intervals: (3 3 3 2 3 5 2 3 3 3 3 2 3 5 2 3)
0 3 6 9 11 | 2 7 9
(A B- C C#+ D+ E F#+ G+)

notes: (0 3 6 9 11 16 19 21)
intervals: (3 3 3 2 5 3 2 3 3 3 3 2 5 3 2 3)
0 3 6 9 11 | 4 7 9
(A Bb+ C Db+ Eb- F Gb+ G+)

notes: (0 3 6 9 11 17 20)
intervals: (3 3 3 2 6 3 4 3 3 3 2 6 3 4)
0 3 6 9 11 | 5 8
(A Bb+ C Db+ Eb- F+ G)

notes: (0 3 6 9 11 17 22)
intervals: (3 3 3 2 6 5 2 3 3 3 2 6 5 2)
0 3 6 9 11 | 5 10
(A Bb+ C Db+ Eb- F+ G#)

notes: (0 3 6 9 11 18 21)
intervals: (3 3 3 2 7 3 3 3 3 3 2 7 3 3)
0 3 6 9 11 | 6 9
(A Bb+ C Db+ Eb- F# G+)

notes: (0 3 6 9 11 19 22)
intervals: (3 3 3 2 8 3 2 3 3 3 2 8 3 2)
0 3 6 9 11 | 7 10
(A B- C D- Eb- F#+ G#)

notes: (0 3 6 9 12 14 17 19)
intervals: (3 3 3 3 2 3 2 5 3 3 3 3 2 3 2 5)
0 3 6 9 | 0 2 5 7
(A Bb+ C Db+ Eb E F+ Gb+)

notes: (0 3 6 9 12 17 19 22)
intervals: (3 3 3 3 5 2 3 2 3 3 3 3 5 2 3 2)
0 3 6 9 | 0 5 7 10
(A Bb+ C Db+ Eb F+ Gb+ Ab)

notes: (0 3 6 9 12 17 21)
intervals: (3 3 3 3 5 4 3 3 3 3 3 5 4 3)
0 3 6 9 | 0 5 9
(A Bb+ C Db+ Eb F+ G+)

notes: (0 3 6 9 12 19 21)
intervals: (3 3 3 3 7 2 3 3 3 3 3 7 2 3)
0 3 6 9 | 0 7 9
(A Bb+ C Db+ Eb F#+ G+)

notes: (0 3 6 9 14 16 19 21)
intervals: (3 3 3 5 2 3 2 3 3 3 3 5 2 3 2 3)
0 3 6 9 | 2 4 7 9
(A Bb+ C Db+ E F Gb+ G+)

notes: (0 3 6 9 14 17 19 22)
intervals: (3 3 3 5 3 2 3 2 3 3 3 5 3 2 3 2)
0 3 6 9 | 2 5 7 10
(A Bb+ C Db+ E F+ Gb+ Ab)

notes: (0 3 6 11 14 16 19 21)
intervals: (3 3 5 3 2 3 2 3 3 3 5 3 2 3 2 3)
0 3 6 11 | 2 4 7 9
(A Bb+ C D+ E F Gb+ G+)

notes: (0 3 6 11 14 17 19 22)
intervals: (3 3 5 3 3 2 3 2 3 3 5 3 3 2 3 2)
0 3 6 11 | 2 5 7 10
(A Bb+ C D+ E F+ Gb+ Ab)

notes: (0 3 7 9 12 14 17 19 22)
intervals: (3 4 2 3 2 3 2 3 2 3 4 2 3 2 3 2 3 2)
0 3 7 9 | 0 2 5 7 10
(A Bb+ C+ Db+ Eb E F+ Gb+ Ab)

notes: (0 3 7 9 12 14 17 20)
intervals: (3 4 2 3 2 3 3 4 3 4 2 3 2 3 3 4)
0 3 7 9 | 0 2 5 8
(A Bb+ C+ Db+ Eb E F+ G)

notes: (0 3 7 9 12 14 17 21)
intervals: (3 4 2 3 2 3 4 3 3 4 2 3 2 3 4 3)
0 3 7 9 | 0 2 5 9
(A Bb+ C+ Db+ Eb E F+ G+)

notes: (0 3 7 9 12 14 19 21)
intervals: (3 4 2 3 2 5 2 3 3 4 2 3 2 5 2 3)
0 3 7 9 | 0 2 7 9
(A B- C+ C#+ D# E F#+ G+)

notes: (0 3 7 9 12 16 19 21)
intervals: (3 4 2 3 4 3 2 3 3 4 2 3 4 3 2 3)
0 3 7 9 | 0 4 7 9
(A Bb+ C+ Db+ Eb F Gb+ G+)

notes: (0 3 7 9 14 16 19 21)
intervals: (3 4 2 5 2 3 2 3 3 4 2 5 2 3 2 3)
0 3 7 9 | 2 4 7 9
(A Bb+ C+ Db+ E F Gb+ G+)

notes: (0 3 7 9 14 18 21)
intervals: (3 4 2 5 4 3 3 3 4 2 5 4 3 3)
0 3 7 9 | 2 6 9
(A B- C+ D- E F# G+)

notes: (0 3 7 9 16 19 22)
intervals: (3 4 2 7 3 3 2 3 4 2 7 3 3 2)
0 3 7 9 | 4 7 10
(A Bb+ C+ Db+ F Gb+ Ab)

notes: (0 3 7 10 12 17 19 22)
intervals: (3 4 3 2 5 2 3 2 3 4 3 2 5 2 3 2)
0 3 7 10 | 0 5 7 10
(A Bb+ C+ D Eb F+ Gb+ Ab)

notes: (0 3 7 10 12 17 21)
intervals: (3 4 3 2 5 4 3 3 4 3 2 5 4 3)
0 3 7 10 | 0 5 9
(A Bb+ C+ D Eb F+ G+)

notes: (0 3 7 10 12 19 21)
intervals: (3 4 3 2 7 2 3 3 4 3 2 7 2 3)
0 3 7 10 | 0 7 9
(A Bb+ C+ D Eb F#+ G+)

notes: (0 3 7 10 14 16 19 21)
intervals: (3 4 3 4 2 3 2 3 3 4 3 4 2 3 2 3)
0 3 7 10 | 2 4 7 9
(A Bb+ C+ D E F Gb+ G+)

notes: (0 3 7 10 14 17 19 22)
intervals: (3 4 3 4 3 2 3 2 3 4 3 4 3 2 3 2)
0 3 7 10 | 2 5 7 10
(A Bb+ C+ D E F+ Gb+ Ab)

notes: (0 3 7 10 14 17 21)
intervals: (3 4 3 4 3 4 3 3 4 3 4 3 4 3)
0 3 7 10 | 2 5 9
(A Bb+ C+ D E F+ G+)

notes: (0 3 7 11 14 16 19 21)
intervals: (3 4 4 3 2 3 2 3 3 4 4 3 2 3 2 3)
0 3 7 11 | 2 4 7 9
(A Bb+ C+ D+ E F Gb+ G+)

notes: (0 3 7 11 14 17 19 22)
intervals: (3 4 4 3 3 2 3 2 3 4 4 3 3 2 3 2)
0 3 7 11 | 2 5 7 10
(A Bb+ C+ D+ E F+ Gb+ Ab)

notes: (0 3 7 11 14 17 20)
intervals: (3 4 4 3 3 3 4 3 4 4 3 3 3 4)
0 3 7 11 | 2 5 8
(A Bb+ C+ D+ E F+ G)

notes: (0 3 7 11 14 17 21)
intervals: (3 4 4 3 3 4 3 3 4 4 3 3 4 3)
0 3 7 11 | 2 5 9
(A Bb+ C+ D+ E F+ G+)

notes: (0 3 7 11 14 18 21)
intervals: (3 4 4 3 4 3 3 3 4 4 3 4 3 3)
0 3 7 11 | 2 6 9
(A B- C+ D+ E F# G+)

notes: (0 3 7 11 16 18 21)
intervals: (3 4 4 5 2 3 3 3 4 4 5 2 3 3)
0 3 7 11 | 4 6 9
(A Bb+ C+ D+ F Gb G+)

notes: (0 3 7 11 16 19 22)
intervals: (3 4 4 5 3 3 2 3 4 4 5 3 3 2)
0 3 7 11 | 4 7 10
(A Bb+ C+ D+ F Gb+ Ab)

notes: (0 3 8 11 14 16 19 21)
intervals: (3 5 3 3 2 3 2 3 3 5 3 3 2 3 2 3)
0 3 8 11 | 2 4 7 9
(A B- C# D+ E F F#+ G+)

notes: (0 3 8 11 14 17 19 22)
intervals: (3 5 3 3 3 2 3 2 3 5 3 3 3 2 3 2)
0 3 8 11 | 2 5 7 10
(A B- C# D+ E F+ F#+ G#)

notes: (0 3 9 11 14 16 19 21)
intervals: (3 6 2 3 2 3 2 3 3 6 2 3 2 3 2 3)
0 3 9 11 | 2 4 7 9
(A B- C#+ D+ E F F#+ G+)

notes: (0 3 9 11 14 17 19 22)
intervals: (3 6 2 3 3 2 3 2 3 6 2 3 3 2 3 2)
0 3 9 11 | 2 5 7 10
(A B- C#+ D+ E F+ F#+ G#)

notes: (0 3 9 11 14 17 20)
intervals: (3 6 2 3 3 3 4 3 6 2 3 3 3 4)
0 3 9 11 | 2 5 8
(A B- C#+ D+ E F+ G)

notes: (0 3 9 11 14 18 21)
intervals: (3 6 2 3 4 3 3 3 6 2 3 4 3 3)
0 3 9 11 | 2 6 9
(A B- C#+ D+ E F# G+)

notes: (0 3 9 11 16 18 21)
intervals: (3 6 2 5 2 3 3 3 6 2 5 2 3 3)
0 3 9 11 | 4 6 9
(A Bb+ Db+ Eb- F Gb G+)

notes: (0 3 9 11 16 19 22)
intervals: (3 6 2 5 3 3 2 3 6 2 5 3 3 2)
0 3 9 11 | 4 7 10
(A Bb+ Db+ Eb- F Gb+ Ab)

notes: (0 4 6 9 11 14 16 19 21)
intervals: (4 2 3 2 3 2 3 2 3 4 2 3 2 3 2 3 2 3)
0 4 6 9 11 | 2 4 7 9
(A B C C#+ D+ E F F#+ G+)

notes: (0 4 6 9 11 14 17 21)
intervals: (4 2 3 2 3 3 4 3 4 2 3 2 3 3 4 3)
0 4 6 9 11 | 2 5 9
(A B C C#+ D+ E F+ G+)

notes: (0 4 7 9 12 14 17 19 22)
intervals: (4 3 2 3 2 3 2 3 2 4 3 2 3 2 3 2 3 2)
0 4 7 9 | 0 2 5 7 10
(A B C+ C#+ D# E F+ F#+ G#)

notes: (0 4 7 9 12 14 17 21)
intervals: (4 3 2 3 2 3 4 3 4 3 2 3 2 3 4 3)
0 4 7 9 | 0 2 5 9
(A B C+ C#+ D# E F+ G+)

notes: (0 4 7 9 12 14 19 21)
intervals: (4 3 2 3 2 5 2 3 4 3 2 3 2 5 2 3)
0 4 7 9 | 0 2 7 9
(A B C+ C#+ D# E F#+ G+)

notes: (0 4 7 9 12 16 19 21)
intervals: (4 3 2 3 4 3 2 3 4 3 2 3 4 3 2 3)
0 4 7 9 | 0 4 7 9
(A B C+ Db+ Eb F Gb+ G+)

notes: (0 4 7 9 14 16 19 21)
intervals: (4 3 2 5 2 3 2 3 4 3 2 5 2 3 2 3)
0 4 7 9 | 2 4 7 9
(A B C+ Db+ E F Gb+ G+)

notes: (0 4 7 11 14 16 19 21)
intervals: (4 3 4 3 2 3 2 3 4 3 4 3 2 3 2 3)
0 4 7 11 | 2 4 7 9
(A B C+ D+ E F F#+ G+)

notes: (0 4 7 11 14 17 19 22)
intervals: (4 3 4 3 3 2 3 2 4 3 4 3 3 2 3 2)
0 4 7 11 | 2 5 7 10
(A B C+ D+ E F+ F#+ G#)

notes: (0 4 7 11 14 17 21)
intervals: (4 3 4 3 3 4 3 4 3 4 3 3 4 3)
0 4 7 11 | 2 5 9
(A B C+ D+ E F+ G+)

notes: (0 4 9 11 14 17 19)
intervals: (4 5 2 3 3 2 5 4 5 2 3 3 2 5)
0 4 9 11 | 2 5 7
(A B C#+ D+ E F+ G-)

notes: (0 5 7 10 12 17 19 22)
intervals: (5 2 3 2 5 2 3 2 5 2 3 2 5 2 3 2)
0 5 7 10 | 0 5 7 10
(A B+ C+ D Eb F+ Gb+ Ab)

notes: (0 5 7 10 14 17 19 22)
intervals: (5 2 3 4 3 2 3 2 5 2 3 4 3 2 3 2)
0 5 7 10 | 2 5 7 10
(A B+ C+ D E F+ F#+ G#)

notes: (0 5 7 11 14 17 19 22)
intervals: (5 2 4 3 3 2 3 2 5 2 4 3 3 2 3 2)
0 5 7 11 | 2 5 7 10
(A B+ C+ D+ E F+ F#+ G#)

notes: (0 5 7 11 14 17 20)
intervals: (5 2 4 3 3 3 4 5 2 4 3 3 3 4)
0 5 7 11 | 2 5 8
(A B+ C+ D+ E F+ G)

notes: (0 5 7 11 16 18 21)
intervals: (5 2 4 5 2 3 3 5 2 4 5 2 3 3)
0 5 7 11 | 4 6 9
(A B+ C+ D+ F F# G+)

notes: (0 5 7 11 16 19 22)
intervals: (5 2 4 5 3 3 2 5 2 4 5 3 3 2)
0 5 7 11 | 4 7 10
(A B+ C+ D+ F F#+ G#)

notes: (0 5 7 12 14 17 19 22)
intervals: (5 2 5 2 3 2 3 2 5 2 5 2 3 2 3 2)
0 5 7 | 0 2 5 7 10
(A B+ C+ D# E F+ F#+ G#)

notes: (0 5 8 11 14 16 19 21)
intervals: (5 3 3 3 2 3 2 3 5 3 3 3 2 3 2 3)
0 5 8 11 | 2 4 7 9
(A B+ C# D+ E F F#+ G+)

notes: (0 5 8 11 14 17 19 22)
intervals: (5 3 3 3 3 2 3 2 5 3 3 3 3 2 3 2)
0 5 8 11 | 2 5 7 10
(A B+ C# D+ E F+ F#+ G#)

notes: (0 5 9 11 14 17 19 22)
intervals: (5 4 2 3 3 2 3 2 5 4 2 3 3 2 3 2)
0 5 9 11 | 2 5 7 10
(A B+ C#+ D+ E F+ F#+ G#)

notes: (0 5 9 11 14 18 21)
intervals: (5 4 2 3 4 3 3 5 4 2 3 4 3 3)
0 5 9 11 | 2 6 9
(A B+ C#+ D+ E F# G+)

notes: (0 5 9 11 16 18 21)
intervals: (5 4 2 5 2 3 3 5 4 2 5 2 3 3)
0 5 9 11 | 4 6 9
(A B+ C#+ D+ F F# G+)

notes: (0 5 9 11 16 19 22)
intervals: (5 4 2 5 3 3 2 5 4 2 5 3 3 2)
0 5 9 11 | 4 7 10
(A B+ C#+ D+ F F#+ G#)


number of scales found: 146
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 18th March 2016, 12:12 PM   #335
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
and then there's

> (load "Desktop/microtonal8.txt")
modulus: 24
length-min: 7
length-max: 8
wolves: (13 15)
wolf-max: 4
distance-2-min: 2
distance-3-min: 5
bad-notes: (1 13 15 23)
require-completeness: #t
balance-notes: (0 2 4 6 8 10 12 14 16 18 20 22)
balance-in-min: 2
balance-out-min: 4
multiple-spellings: #f

working........................................... .................................................. .................................................. .................................................. .................................................. .................................................. .................................................. ..................done

notes: (0 2 5 7 10 12 17 19)
intervals: (2 3 2 3 2 5 2 5 2 3 2 3 2 5 2 5)
0 2 5 7 10 | 0 5 7
(A Bb B+ C+ D Eb F+ Gb+)

notes: (0 2 5 7 10 12 17 21)
intervals: (2 3 2 3 2 5 4 3 2 3 2 3 2 5 4 3)
0 2 5 7 10 | 0 5 9
(A Bb B+ C+ D Eb F+ G+)

notes: (0 2 5 7 10 12 19 21)
intervals: (2 3 2 3 2 7 2 3 2 3 2 3 2 7 2 3)
0 2 5 7 10 | 0 7 9
(A A# B+ C+ D Eb F#+ G+)

notes: (0 2 5 7 10 14 17 19)
intervals: (2 3 2 3 4 3 2 5 2 3 2 3 4 3 2 5)
0 2 5 7 10 | 2 5 7
(A A# B+ C+ D E F+ G-)

notes: (0 2 5 7 10 14 17 21)
intervals: (2 3 2 3 4 3 4 3 2 3 2 3 4 3 4 3)
0 2 5 7 10 | 2 5 9
(A A# B+ C+ D E F+ G+)

notes: (0 2 5 7 10 14 19 21)
intervals: (2 3 2 3 4 5 2 3 2 3 2 3 4 5 2 3)
0 2 5 7 10 | 2 7 9
(A A# B+ C+ D E F#+ G+)

notes: (0 2 5 7 10 16 19 21)
intervals: (2 3 2 3 6 3 2 3 2 3 2 3 6 3 2 3)
0 2 5 7 10 | 4 7 9
(A A# B+ C+ D F F#+ G+)

notes: (0 2 5 7 11 14 17 19)
intervals: (2 3 2 4 3 3 2 5 2 3 2 4 3 3 2 5)
0 2 5 7 11 | 2 5 7
(A A# B+ C+ D+ E F+ G-)

notes: (0 2 5 7 11 14 17 21)
intervals: (2 3 2 4 3 3 4 3 2 3 2 4 3 3 4 3)
0 2 5 7 11 | 2 5 9
(A A# B+ C+ D+ E F+ G+)

notes: (0 2 5 7 11 14 19 21)
intervals: (2 3 2 4 3 5 2 3 2 3 2 4 3 5 2 3)
0 2 5 7 11 | 2 7 9
(A A# B+ C+ D+ E F#+ G+)

notes: (0 2 5 7 11 16 19 21)
intervals: (2 3 2 4 5 3 2 3 2 3 2 4 5 3 2 3)
0 2 5 7 11 | 4 7 9
(A Bb C- Db- Eb- F Gb+ G+)

notes: (0 2 5 7 11 18 21)
intervals: (2 3 2 4 7 3 3 2 3 2 4 7 3 3)
0 2 5 7 11 | 6 9
(A Bb C- Db- Eb- F# G+)

notes: (0 2 5 7 12 14 17 19)
intervals: (2 3 2 5 2 3 2 5 2 3 2 5 2 3 2 5)
0 2 5 7 | 0 2 5 7
(A A# B+ C+ D# E F+ G-)

notes: (0 2 5 7 12 14 17 21)
intervals: (2 3 2 5 2 3 4 3 2 3 2 5 2 3 4 3)
0 2 5 7 | 0 2 5 9
(A A# B+ C+ D# E F+ G+)

notes: (0 2 5 7 12 14 19 21)
intervals: (2 3 2 5 2 5 2 3 2 3 2 5 2 5 2 3)
0 2 5 7 | 0 2 7 9
(A A# B+ C+ D# E F#+ G+)

notes: (0 2 5 7 12 16 19 21)
intervals: (2 3 2 5 4 3 2 3 2 3 2 5 4 3 2 3)
0 2 5 7 | 0 4 7 9
(A Bb C- Db- Eb F Gb+ G+)

notes: (0 2 5 7 14 16 19 21)
intervals: (2 3 2 7 2 3 2 3 2 3 2 7 2 3 2 3)
0 2 5 7 | 2 4 7 9
(A Bb C- Db- E F Gb+ G+)

notes: (0 2 5 8 11 19 21)
intervals: (2 3 3 3 8 2 3 2 3 3 3 8 2 3)
0 2 5 8 11 | 7 9
(A Bb C- Db Eb- F#+ G+)

notes: (0 2 5 9 11 14 19 21)
intervals: (2 3 4 2 3 5 2 3 2 3 4 2 3 5 2 3)
0 2 5 9 11 | 2 7 9
(A A# B+ C#+ D+ E F#+ G+)

notes: (0 2 5 9 11 16 19 21)
intervals: (2 3 4 2 5 3 2 3 2 3 4 2 5 3 2 3)
0 2 5 9 11 | 4 7 9
(A Bb C- Db+ Eb- F Gb+ G+)

notes: (0 2 5 9 11 17 19)
intervals: (2 3 4 2 6 2 5 2 3 4 2 6 2 5)
0 2 5 9 11 | 5 7
(A Bb C- Db+ Eb- F+ Gb+)

notes: (0 2 5 9 11 17 21)
intervals: (2 3 4 2 6 4 3 2 3 4 2 6 4 3)
0 2 5 9 11 | 5 9
(A Bb C- Db+ Eb- F+ G+)

notes: (0 2 5 9 12 14 17 19)
intervals: (2 3 4 3 2 3 2 5 2 3 4 3 2 3 2 5)
0 2 5 9 | 0 2 5 7
(A A# B+ C#+ D# E F+ G-)

notes: (0 2 5 9 12 14 17 21)
intervals: (2 3 4 3 2 3 4 3 2 3 4 3 2 3 4 3)
0 2 5 9 | 0 2 5 9
(A A# B+ C#+ D# E F+ G+)

notes: (0 2 5 9 12 14 19 21)
intervals: (2 3 4 3 2 5 2 3 2 3 4 3 2 5 2 3)
0 2 5 9 | 0 2 7 9
(A A# B+ C#+ D# E F#+ G+)

notes: (0 2 5 9 12 16 19 21)
intervals: (2 3 4 3 4 3 2 3 2 3 4 3 4 3 2 3)
0 2 5 9 | 0 4 7 9
(A Bb C- Db+ Eb F Gb+ G+)

notes: (0 2 5 9 14 16 19 21)
intervals: (2 3 4 5 2 3 2 3 2 3 4 5 2 3 2 3)
0 2 5 9 | 2 4 7 9
(A Bb C- Db+ E F Gb+ G+)

notes: (0 2 5 11 14 16 19 21)
intervals: (2 3 6 3 2 3 2 3 2 3 6 3 2 3 2 3)
0 2 5 11 | 2 4 7 9
(A Bb C- D+ E F Gb+ G+)

notes: (0 2 7 9 12 14 17 19)
intervals: (2 5 2 3 2 3 2 5 2 5 2 3 2 3 2 5)
0 2 7 9 | 0 2 5 7
(A Bb C+ Db+ Eb E F+ Gb+)

notes: (0 2 7 9 12 14 17 21)
intervals: (2 5 2 3 2 3 4 3 2 5 2 3 2 3 4 3)
0 2 7 9 | 0 2 5 9
(A Bb C+ Db+ Eb E F+ G+)

notes: (0 2 7 9 12 14 19 21)
intervals: (2 5 2 3 2 5 2 3 2 5 2 3 2 5 2 3)
0 2 7 9 | 0 2 7 9
(A Bb C+ C#+ D# E F#+ G+)

notes: (0 2 7 9 12 16 19 21)
intervals: (2 5 2 3 4 3 2 3 2 5 2 3 4 3 2 3)
0 2 7 9 | 0 4 7 9
(A Bb C+ Db+ Eb F Gb+ G+)

notes: (0 2 7 9 14 16 19 21)
intervals: (2 5 2 5 2 3 2 3 2 5 2 5 2 3 2 3)
0 2 7 9 | 2 4 7 9
(A Bb C+ Db+ E F Gb+ G+)

notes: (0 2 7 11 14 16 19 21)
intervals: (2 5 4 3 2 3 2 3 2 5 4 3 2 3 2 3)
0 2 7 11 | 2 4 7 9
(A Bb C+ D+ E F Gb+ G+)

notes: (0 2 9 11 14 16 19 21)
intervals: (2 7 2 3 2 3 2 3 2 7 2 3 2 3 2 3)
0 2 9 11 | 2 4 7 9
(A Bb C#+ D+ E F F#+ G+)

notes: (0 2 9 11 14 17 19)
intervals: (2 7 2 3 3 2 5 2 7 2 3 3 2 5)
0 2 9 11 | 2 5 7
(A Bb C#+ D+ E F+ Gb+)

notes: (0 2 9 11 14 17 21)
intervals: (2 7 2 3 3 4 3 2 7 2 3 3 4 3)
0 2 9 11 | 2 5 9
(A Bb C#+ D+ E F+ G+)

notes: (0 3 5 8 10 17 19 22)
intervals: (3 2 3 2 7 2 3 2 3 2 3 2 7 2 3 2)
0 3 5 8 10 | 5 7 10
(A A#+ B+ C# D F+ F#+ G#)

notes: (0 3 5 8 10 17 21)
intervals: (3 2 3 2 7 4 3 3 2 3 2 7 4 3)
0 3 5 8 10 | 5 9
(A A#+ B+ C# D F+ G+)

notes: (0 3 5 8 10 19 21)
intervals: (3 2 3 2 9 2 3 3 2 3 2 9 2 3)
0 3 5 8 10 | 7 9
(A A#+ B+ C# D F#+ G+)

notes: (0 3 5 8 11 14 17)
intervals: (3 2 3 3 3 3 7 3 2 3 3 3 3 7)
0 3 5 8 11 | 2 5
(A A#+ B+ C# D+ E F+)

notes: (0 3 5 8 11 14 19)
intervals: (3 2 3 3 3 5 5 3 2 3 3 3 5 5)
0 3 5 8 11 | 2 7
(A A#+ B+ C# D+ E F#+)

notes: (0 3 5 8 11 14 21)
intervals: (3 2 3 3 3 7 3 3 2 3 3 3 7 3)
0 3 5 8 11 | 2 9
(A A#+ B+ C# D+ E G+)

notes: (0 3 5 8 11 16 19)
intervals: (3 2 3 3 5 3 5 3 2 3 3 5 3 5)
0 3 5 8 11 | 4 7
(A Bb+ C- Db Eb- F Gb+)

notes: (0 3 5 8 11 16 21)
intervals: (3 2 3 3 5 5 3 3 2 3 3 5 5 3)
0 3 5 8 11 | 4 9
(A Bb+ C- Db Eb- F G+)

notes: (0 3 5 8 11 17 19 22)
intervals: (3 2 3 3 6 2 3 2 3 2 3 3 6 2 3 2)
0 3 5 8 11 | 5 7 10
(A Bb+ C- Db Eb- F+ Gb+ Ab)

notes: (0 3 5 8 11 17 20)
intervals: (3 2 3 3 6 3 4 3 2 3 3 6 3 4)
0 3 5 8 11 | 5 8
(A Bb+ C- Db Eb- F+ G)

notes: (0 3 5 8 11 17 21)
intervals: (3 2 3 3 6 4 3 3 2 3 3 6 4 3)
0 3 5 8 11 | 5 9
(A Bb+ C- Db Eb- F+ G+)

notes: (0 3 5 8 11 18 21)
intervals: (3 2 3 3 7 3 3 3 2 3 3 7 3 3)
0 3 5 8 11 | 6 9
(A Bb+ C- Db Eb- F# G+)

notes: (0 3 5 8 11 19 21)
intervals: (3 2 3 3 8 2 3 3 2 3 3 8 2 3)
0 3 5 8 11 | 7 9
(A Bb+ C- Db Eb- F#+ G+)

notes: (0 3 5 8 12 17 19 22)
intervals: (3 2 3 4 5 2 3 2 3 2 3 4 5 2 3 2)
0 3 5 8 | 0 5 7 10
(A Bb+ C- Db Eb F+ Gb+ Ab)

notes: (0 3 5 8 12 17 21)
intervals: (3 2 3 4 5 4 3 3 2 3 4 5 4 3)
0 3 5 8 | 0 5 9
(A Bb+ C- Db Eb F+ G+)

notes: (0 3 5 8 12 19 21)
intervals: (3 2 3 4 7 2 3 3 2 3 4 7 2 3)
0 3 5 8 | 0 7 9
(A Bb+ C- Db Eb F#+ G+)

notes: (0 3 5 8 14 17 19 22)
intervals: (3 2 3 6 3 2 3 2 3 2 3 6 3 2 3 2)
0 3 5 8 | 2 5 7 10
(A Bb+ C- Db E F+ Gb+ Ab)

notes: (0 3 5 8 14 17 21)
intervals: (3 2 3 6 3 4 3 3 2 3 6 3 4 3)
0 3 5 8 | 2 5 9
(A Bb+ C- Db E F+ G+)

notes: (0 3 5 8 14 19 21)
intervals: (3 2 3 6 5 2 3 3 2 3 6 5 2 3)
0 3 5 8 | 2 7 9
(A Bb+ C- Db E F#+ G+)

notes: (0 3 5 8 16 19 21)
intervals: (3 2 3 8 3 2 3 3 2 3 8 3 2 3)
0 3 5 8 | 4 7 9
(A Bb+ C- Db F Gb+ G+)

notes: (0 3 5 9 11 14 17 19)
intervals: (3 2 4 2 3 3 2 5 3 2 4 2 3 3 2 5)
0 3 5 9 11 | 2 5 7
(A A#+ B+ C#+ D+ E F+ G-)

notes: (0 3 5 9 11 14 17 21)
intervals: (3 2 4 2 3 3 4 3 3 2 4 2 3 3 4 3)
0 3 5 9 11 | 2 5 9
(A A#+ B+ C#+ D+ E F+ G+)

notes: (0 3 5 9 11 14 19 21)
intervals: (3 2 4 2 3 5 2 3 3 2 4 2 3 5 2 3)
0 3 5 9 11 | 2 7 9
(A A#+ B+ C#+ D+ E F#+ G+)

notes: (0 3 5 9 11 16 19 21)
intervals: (3 2 4 2 5 3 2 3 3 2 4 2 5 3 2 3)
0 3 5 9 11 | 4 7 9
(A Bb+ C- Db+ Eb- F Gb+ G+)

notes: (0 3 5 9 11 17 19 22)
intervals: (3 2 4 2 6 2 3 2 3 2 4 2 6 2 3 2)
0 3 5 9 11 | 5 7 10
(A Bb+ C- Db+ Eb- F+ Gb+ Ab)

notes: (0 3 5 9 12 14 17 19)
intervals: (3 2 4 3 2 3 2 5 3 2 4 3 2 3 2 5)
0 3 5 9 | 0 2 5 7
(A A#+ B+ C#+ D# E F+ G-)

notes: (0 3 5 9 12 16 19)
intervals: (3 2 4 3 4 3 5 3 2 4 3 4 3 5)
0 3 5 9 | 0 4 7
(A Bb+ C- Db+ Eb F Gb+)

notes: (0 3 5 9 12 17 19 22)
intervals: (3 2 4 3 5 2 3 2 3 2 4 3 5 2 3 2)
0 3 5 9 | 0 5 7 10
(A Bb+ C- Db+ Eb F+ Gb+ Ab)

notes: (0 3 5 9 12 17 20)
intervals: (3 2 4 3 5 3 4 3 2 4 3 5 3 4)
0 3 5 9 | 0 5 8
(A Bb+ C- Db+ Eb F+ G)

notes: (0 3 5 9 12 17 21)
intervals: (3 2 4 3 5 4 3 3 2 4 3 5 4 3)
0 3 5 9 | 0 5 9
(A Bb+ C- Db+ Eb F+ G+)

notes: (0 3 5 9 12 19 21)
intervals: (3 2 4 3 7 2 3 3 2 4 3 7 2 3)
0 3 5 9 | 0 7 9
(A Bb+ C- Db+ Eb F#+ G+)

notes: (0 3 5 9 14 17 19 22)
intervals: (3 2 4 5 3 2 3 2 3 2 4 5 3 2 3 2)
0 3 5 9 | 2 5 7 10
(A Bb+ C- Db+ E F+ Gb+ Ab)

notes: (0 3 5 9 16 19 22)
intervals: (3 2 4 7 3 3 2 3 2 4 7 3 3 2)
0 3 5 9 | 4 7 10
(A Bb+ C- Db+ F Gb+ Ab)

notes: (0 3 5 10 12 17 19 22)
intervals: (3 2 5 2 5 2 3 2 3 2 5 2 5 2 3 2)
0 3 5 10 | 0 5 7 10
(A Bb+ C- D Eb F+ Gb+ Ab)

notes: (0 3 5 10 12 17 21)
intervals: (3 2 5 2 5 4 3 3 2 5 2 5 4 3)
0 3 5 10 | 0 5 9
(A Bb+ C- D Eb F+ G+)

notes: (0 3 5 10 12 19 21)
intervals: (3 2 5 2 7 2 3 3 2 5 2 7 2 3)
0 3 5 10 | 0 7 9
(A Bb+ C- D Eb F#+ G+)

notes: (0 3 5 10 14 17 19 22)
intervals: (3 2 5 4 3 2 3 2 3 2 5 4 3 2 3 2)
0 3 5 10 | 2 5 7 10
(A Bb+ C- D E F+ Gb+ Ab)

notes: (0 3 5 10 14 17 21)
intervals: (3 2 5 4 3 4 3 3 2 5 4 3 4 3)
0 3 5 10 | 2 5 9
(A Bb+ C- D E F+ G+)

notes: (0 3 5 10 14 19 21)
intervals: (3 2 5 4 5 2 3 3 2 5 4 5 2 3)
0 3 5 10 | 2 7 9
(A B- C- D E F#+ G+)

notes: (0 3 5 10 16 19 21)
intervals: (3 2 5 6 3 2 3 3 2 5 6 3 2 3)
0 3 5 10 | 4 7 9
(A Bb+ C- D F Gb+ G+)

notes: (0 3 5 11 14 17 19 22)
intervals: (3 2 6 3 3 2 3 2 3 2 6 3 3 2 3 2)
0 3 5 11 | 2 5 7 10
(A Bb+ C- D+ E F+ Gb+ Ab)

notes: (0 3 5 11 16 19 22)
intervals: (3 2 6 5 3 3 2 3 2 6 5 3 3 2)
0 3 5 11 | 4 7 10
(A Bb+ C- D+ F Gb+ Ab)

notes: (0 3 5 12 14 17 19 22)
intervals: (3 2 7 2 3 2 3 2 3 2 7 2 3 2 3 2)
0 3 5 | 0 2 5 7 10
(A B- C- D# E F+ F#+ G#)

notes: (0 3 5 12 14 17 21)
intervals: (3 2 7 2 3 4 3 3 2 7 2 3 4 3)
0 3 5 | 0 2 5 9
(A B- C- D# E F+ G+)

notes: (0 3 5 12 14 19 21)
intervals: (3 2 7 2 5 2 3 3 2 7 2 5 2 3)
0 3 5 | 0 2 7 9
(A B- C- D# E F#+ G+)

notes: (0 3 5 12 16 19 21)
intervals: (3 2 7 4 3 2 3 3 2 7 4 3 2 3)
0 3 5 | 0 4 7 9
(A Bb+ C- Eb F Gb+ G+)

notes: (0 3 5 14 16 19 21)
intervals: (3 2 9 2 3 2 3 3 2 9 2 3 2 3)
0 3 5 | 2 4 7 9
(A Bb+ C- E F Gb+ G+)

notes: (0 3 6 9 11 14 17)
intervals: (3 3 3 2 3 3 7 3 3 3 2 3 3 7)
0 3 6 9 11 | 2 5
(A Bb+ C Db+ D+ E F+)

notes: (0 3 6 9 11 14 19)
intervals: (3 3 3 2 3 5 5 3 3 3 2 3 5 5)
0 3 6 9 11 | 2 7
(A Bb+ C Db+ D+ E Gb+)

notes: (0 3 6 9 11 14 21)
intervals: (3 3 3 2 3 7 3 3 3 3 2 3 7 3)
0 3 6 9 11 | 2 9
(A Bb+ C Db+ D+ E G+)

notes: (0 3 6 9 11 16 19)
intervals: (3 3 3 2 5 3 5 3 3 3 2 5 3 5)
0 3 6 9 11 | 4 7
(A Bb+ C Db+ Eb- F Gb+)

notes: (0 3 6 9 11 16 21)
intervals: (3 3 3 2 5 5 3 3 3 3 2 5 5 3)
0 3 6 9 11 | 4 9
(A Bb+ C Db+ Eb- F G+)

notes: (0 3 6 9 11 17 19)
intervals: (3 3 3 2 6 2 5 3 3 3 2 6 2 5)
0 3 6 9 11 | 5 7
(A Bb+ C Db+ Eb- F+ Gb+)

notes: (0 3 6 9 11 17 21)
intervals: (3 3 3 2 6 4 3 3 3 3 2 6 4 3)
0 3 6 9 11 | 5 9
(A Bb+ C Db+ Eb- F+ G+)

notes: (0 3 6 9 11 19 21)
intervals: (3 3 3 2 8 2 3 3 3 3 2 8 2 3)
0 3 6 9 11 | 7 9
(A Bb+ C Db+ Eb- F#+ G+)

notes: (0 3 6 9 12 17 19)
intervals: (3 3 3 3 5 2 5 3 3 3 3 5 2 5)
0 3 6 9 | 0 5 7
(A Bb+ C Db+ Eb F+ Gb+)

notes: (0 3 6 9 14 17 19)
intervals: (3 3 3 5 3 2 5 3 3 3 5 3 2 5)
0 3 6 9 | 2 5 7
(A Bb+ C Db+ E F+ Gb+)

notes: (0 3 6 9 14 17 21)
intervals: (3 3 3 5 3 4 3 3 3 3 5 3 4 3)
0 3 6 9 | 2 5 9
(A Bb+ C Db+ E F+ G+)

notes: (0 3 6 9 14 19 21)
intervals: (3 3 3 5 5 2 3 3 3 3 5 5 2 3)
0 3 6 9 | 2 7 9
(A B- C D- E F#+ G+)

notes: (0 3 6 9 16 19 21)
intervals: (3 3 3 7 3 2 3 3 3 3 7 3 2 3)
0 3 6 9 | 4 7 9
(A Bb+ C Db+ F Gb+ G+)

notes: (0 3 6 9 17 19 22)
intervals: (3 3 3 8 2 3 2 3 3 3 8 2 3 2)
0 3 6 9 | 5 7 10
(A Bb+ C Db+ F+ Gb+ Ab)

notes: (0 3 6 11 14 17 19)
intervals: (3 3 5 3 3 2 5 3 3 5 3 3 2 5)
0 3 6 11 | 2 5 7
(A Bb+ C D+ E F+ Gb+)

notes: (0 3 6 11 14 17 21)
intervals: (3 3 5 3 3 4 3 3 3 5 3 3 4 3)
0 3 6 11 | 2 5 9
(A Bb+ C D+ E F+ G+)

notes: (0 3 6 11 14 19 21)
intervals: (3 3 5 3 5 2 3 3 3 5 3 5 2 3)
0 3 6 11 | 2 7 9
(A B- C D+ E F#+ G+)

notes: (0 3 6 11 16 19 21)
intervals: (3 3 5 5 3 2 3 3 3 5 5 3 2 3)
0 3 6 11 | 4 7 9
(A Bb+ C D+ F Gb+ G+)

notes: (0 3 6 11 17 19 22)
intervals: (3 3 5 6 2 3 2 3 3 5 6 2 3 2)
0 3 6 11 | 5 7 10
(A Bb+ C D+ F+ Gb+ Ab)

notes: (0 3 7 9 12 14 17 19)
intervals: (3 4 2 3 2 3 2 5 3 4 2 3 2 3 2 5)
0 3 7 9 | 0 2 5 7
(A Bb+ C+ Db+ Eb E F+ Gb+)

notes: (0 3 7 9 12 14 17 21)
intervals: (3 4 2 3 2 3 4 3 3 4 2 3 2 3 4 3)
0 3 7 9 | 0 2 5 9
(A Bb+ C+ Db+ Eb E F+ G+)

notes: (0 3 7 9 12 14 19 21)
intervals: (3 4 2 3 2 5 2 3 3 4 2 3 2 5 2 3)
0 3 7 9 | 0 2 7 9
(A B- C+ C#+ D# E F#+ G+)

notes: (0 3 7 9 12 16 19)
intervals: (3 4 2 3 4 3 5 3 4 2 3 4 3 5)
0 3 7 9 | 0 4 7
(A Bb+ C+ Db+ Eb F Gb+)

notes: (0 3 7 9 12 17 19 22)
intervals: (3 4 2 3 5 2 3 2 3 4 2 3 5 2 3 2)
0 3 7 9 | 0 5 7 10
(A Bb+ C+ Db+ Eb F+ Gb+ Ab)

notes: (0 3 7 9 12 17 20)
intervals: (3 4 2 3 5 3 4 3 4 2 3 5 3 4)
0 3 7 9 | 0 5 8
(A Bb+ C+ Db+ Eb F+ G)

notes: (0 3 7 9 14 16 19 21)
intervals: (3 4 2 5 2 3 2 3 3 4 2 5 2 3 2 3)
0 3 7 9 | 2 4 7 9
(A Bb+ C+ Db+ E F Gb+ G+)

notes: (0 3 7 9 14 17 19 22)
intervals: (3 4 2 5 3 2 3 2 3 4 2 5 3 2 3 2)
0 3 7 9 | 2 5 7 10
(A Bb+ C+ Db+ E F+ Gb+ Ab)

notes: (0 3 7 9 14 17 20)
intervals: (3 4 2 5 3 3 4 3 4 2 5 3 3 4)
0 3 7 9 | 2 5 8
(A Bb+ C+ Db+ E F+ G)

notes: (0 3 7 10 12 17 19 22)
intervals: (3 4 3 2 5 2 3 2 3 4 3 2 5 2 3 2)
0 3 7 10 | 0 5 7 10
(A Bb+ C+ D Eb F+ Gb+ Ab)

notes: (0 3 7 10 12 17 21)
intervals: (3 4 3 2 5 4 3 3 4 3 2 5 4 3)
0 3 7 10 | 0 5 9
(A Bb+ C+ D Eb F+ G+)

notes: (0 3 7 10 12 19 21)
intervals: (3 4 3 2 7 2 3 3 4 3 2 7 2 3)
0 3 7 10 | 0 7 9
(A Bb+ C+ D Eb F#+ G+)

notes: (0 3 7 10 14 17 19 22)
intervals: (3 4 3 4 3 2 3 2 3 4 3 4 3 2 3 2)
0 3 7 10 | 2 5 7 10
(A Bb+ C+ D E F+ Gb+ Ab)

notes: (0 3 7 10 14 17 21)
intervals: (3 4 3 4 3 4 3 3 4 3 4 3 4 3)
0 3 7 10 | 2 5 9
(A Bb+ C+ D E F+ G+)

notes: (0 3 7 10 14 19 21)
intervals: (3 4 3 4 5 2 3 3 4 3 4 5 2 3)
0 3 7 10 | 2 7 9
(A B- C+ D E F#+ G+)

notes: (0 3 7 10 16 19 21)
intervals: (3 4 3 6 3 2 3 3 4 3 6 3 2 3)
0 3 7 10 | 4 7 9
(A Bb+ C+ D F Gb+ G+)

notes: (0 3 7 11 14 16 19 21)
intervals: (3 4 4 3 2 3 2 3 3 4 4 3 2 3 2 3)
0 3 7 11 | 2 4 7 9
(A Bb+ C+ D+ E F Gb+ G+)

notes: (0 3 7 11 14 17 19 22)
intervals: (3 4 4 3 3 2 3 2 3 4 4 3 3 2 3 2)
0 3 7 11 | 2 5 7 10
(A Bb+ C+ D+ E F+ Gb+ Ab)

notes: (0 3 7 11 14 17 20)
intervals: (3 4 4 3 3 3 4 3 4 4 3 3 3 4)
0 3 7 11 | 2 5 8
(A Bb+ C+ D+ E F+ G)

notes: (0 3 7 11 14 17 21)
intervals: (3 4 4 3 3 4 3 3 4 4 3 3 4 3)
0 3 7 11 | 2 5 9
(A Bb+ C+ D+ E F+ G+)

notes: (0 3 7 11 14 18 21)
intervals: (3 4 4 3 4 3 3 3 4 4 3 4 3 3)
0 3 7 11 | 2 6 9
(A B- C+ D+ E F# G+)

notes: (0 3 7 12 14 17 19 22)
intervals: (3 4 5 2 3 2 3 2 3 4 5 2 3 2 3 2)
0 3 7 | 0 2 5 7 10
(A B- C+ D# E F+ F#+ G#)

notes: (0 3 7 12 16 19 21)
intervals: (3 4 5 4 3 2 3 3 4 5 4 3 2 3)
0 3 7 | 0 4 7 9
(A Bb+ C+ Eb F Gb+ G+)

notes: (0 3 8 11 14 17 19)
intervals: (3 5 3 3 3 2 5 3 5 3 3 3 2 5)
0 3 8 11 | 2 5 7
(A B- C# D+ E F+ G-)

notes: (0 3 8 11 14 17 21)
intervals: (3 5 3 3 3 4 3 3 5 3 3 3 4 3)
0 3 8 11 | 2 5 9
(A B- C# D+ E F+ G+)

notes: (0 3 8 11 14 19 21)
intervals: (3 5 3 3 5 2 3 3 5 3 3 5 2 3)
0 3 8 11 | 2 7 9
(A B- C# D+ E F#+ G+)

notes: (0 3 8 11 16 19 21)
intervals: (3 5 3 5 3 2 3 3 5 3 5 3 2 3)
0 3 8 11 | 4 7 9
(A Bb+ Db Eb- F Gb+ G+)

notes: (0 3 9 11 14 16 19 21)
intervals: (3 6 2 3 2 3 2 3 3 6 2 3 2 3 2 3)
0 3 9 11 | 2 4 7 9
(A B- C#+ D+ E F F#+ G+)

notes: (0 3 9 12 14 17 19 22)
intervals: (3 6 3 2 3 2 3 2 3 6 3 2 3 2 3 2)
0 3 9 | 0 2 5 7 10
(A B- C#+ D# E F+ F#+ G#)

notes: (0 3 9 12 16 19 21)
intervals: (3 6 3 4 3 2 3 3 6 3 4 3 2 3)
0 3 9 | 0 4 7 9
(A Bb+ Db+ Eb F Gb+ G+)

notes: (0 4 7 9 12 14 17 19)
intervals: (4 3 2 3 2 3 2 5 4 3 2 3 2 3 2 5)
0 4 7 9 | 0 2 5 7
(A B C+ C#+ D# E F+ G-)

notes: (0 4 7 9 12 14 17 21)
intervals: (4 3 2 3 2 3 4 3 4 3 2 3 2 3 4 3)
0 4 7 9 | 0 2 5 9
(A B C+ C#+ D# E F+ G+)

notes: (0 4 7 9 12 14 19 21)
intervals: (4 3 2 3 2 5 2 3 4 3 2 3 2 5 2 3)
0 4 7 9 | 0 2 7 9
(A B C+ C#+ D# E F#+ G+)

notes: (0 4 7 9 12 16 19 21)
intervals: (4 3 2 3 4 3 2 3 4 3 2 3 4 3 2 3)
0 4 7 9 | 0 4 7 9
(A B C+ Db+ Eb F Gb+ G+)

notes: (0 4 7 9 14 16 19 21)
intervals: (4 3 2 5 2 3 2 3 4 3 2 5 2 3 2 3)
0 4 7 9 | 2 4 7 9
(A B C+ Db+ E F Gb+ G+)

notes: (0 4 7 11 14 16 19 21)
intervals: (4 3 4 3 2 3 2 3 4 3 4 3 2 3 2 3)
0 4 7 11 | 2 4 7 9
(A B C+ D+ E F F#+ G+)

notes: (0 4 7 11 14 17 19)
intervals: (4 3 4 3 3 2 5 4 3 4 3 3 2 5)
0 4 7 11 | 2 5 7
(A B C+ D+ E F+ Gb+)

notes: (0 4 7 11 14 17 21)
intervals: (4 3 4 3 3 4 3 4 3 4 3 3 4 3)
0 4 7 11 | 2 5 9
(A B C+ D+ E F+ G+)

notes: (0 4 9 11 14 16 19 21)
intervals: (4 5 2 3 2 3 2 3 4 5 2 3 2 3 2 3)
0 4 9 11 | 2 4 7 9
(A B C#+ D+ E F F#+ G+)

notes: (0 4 9 11 14 17 19)
intervals: (4 5 2 3 3 2 5 4 5 2 3 3 2 5)
0 4 9 11 | 2 5 7
(A B C#+ D+ E F+ G-)

notes: (0 4 9 11 14 17 21)
intervals: (4 5 2 3 3 4 3 4 5 2 3 3 4 3)
0 4 9 11 | 2 5 9
(A B C#+ D+ E F+ G+)

notes: (0 5 7 10 12 17 19 22)
intervals: (5 2 3 2 5 2 3 2 5 2 3 2 5 2 3 2)
0 5 7 10 | 0 5 7 10
(A B+ C+ D Eb F+ Gb+ Ab)

notes: (0 5 7 10 14 17 19 22)
intervals: (5 2 3 4 3 2 3 2 5 2 3 4 3 2 3 2)
0 5 7 10 | 2 5 7 10
(A B+ C+ D E F+ F#+ G#)

notes: (0 5 7 11 14 16 19 21)
intervals: (5 2 4 3 2 3 2 3 5 2 4 3 2 3 2 3)
0 5 7 11 | 2 4 7 9
(A B+ C+ D+ E F F#+ G+)

notes: (0 5 7 11 14 17 19 22)
intervals: (5 2 4 3 3 2 3 2 5 2 4 3 3 2 3 2)
0 5 7 11 | 2 5 7 10
(A B+ C+ D+ E F+ F#+ G#)

notes: (0 5 7 11 14 18 21)
intervals: (5 2 4 3 4 3 3 5 2 4 3 4 3 3)
0 5 7 11 | 2 6 9
(A B+ C+ D+ E F# G+)

notes: (0 5 7 12 14 17 19 22)
intervals: (5 2 5 2 3 2 3 2 5 2 5 2 3 2 3 2)
0 5 7 | 0 2 5 7 10
(A B+ C+ D# E F+ F#+ G#)

notes: (0 5 8 11 14 17 19)
intervals: (5 3 3 3 3 2 5 5 3 3 3 3 2 5)
0 5 8 11 | 2 5 7
(A B+ C# D+ E F+ G-)

notes: (0 5 8 11 14 17 21)
intervals: (5 3 3 3 3 4 3 5 3 3 3 3 4 3)
0 5 8 11 | 2 5 9
(A B+ C# D+ E F+ G+)

notes: (0 5 8 11 14 19 21)
intervals: (5 3 3 3 5 2 3 5 3 3 3 5 2 3)
0 5 8 11 | 2 7 9
(A B+ C# D+ E F#+ G+)

notes: (0 5 8 11 16 19 21)
intervals: (5 3 3 5 3 2 3 5 3 3 5 3 2 3)
0 5 8 11 | 4 7 9
(A B+ C# D+ F F#+ G+)

notes: (0 5 9 11 14 16 19 21)
intervals: (5 4 2 3 2 3 2 3 5 4 2 3 2 3 2 3)
0 5 9 11 | 2 4 7 9
(A B+ C#+ D+ E F F#+ G+)

notes: (0 5 9 12 14 17 19 22)
intervals: (5 4 3 2 3 2 3 2 5 4 3 2 3 2 3 2)
0 5 9 | 0 2 5 7 10
(A B+ C#+ D# E F+ F#+ G#)

notes: (0 6 9 11 14 16 19 21)
intervals: (6 3 2 3 2 3 2 3 6 3 2 3 2 3 2 3)
0 6 9 11 | 2 4 7 9
(A C C#+ D+ E F F#+ G+)

notes: (0 6 9 11 14 17 19)
intervals: (6 3 2 3 3 2 5 6 3 2 3 3 2 5)
0 6 9 11 | 2 5 7
(A C C#+ D+ E F+ G-)

notes: (0 6 9 11 14 17 21)
intervals: (6 3 2 3 3 4 3 6 3 2 3 3 4 3)
0 6 9 11 | 2 5 9
(A C C#+ D+ E F+ G+)

notes: (0 7 9 12 14 17 19 22)
intervals: (7 2 3 2 3 2 3 2 7 2 3 2 3 2 3 2)
0 7 9 | 0 2 5 7 10
(A C+ C#+ D# E F+ F#+ G#)

notes: (0 9 11 14 17 19 22)
intervals: (9 2 3 3 2 3 2 9 2 3 3 2 3 2)
0 9 11 | 2 5 7 10
(A C#+ D+ E F+ F#+ G#)


number of scales found: 161
>



How can Chick Corea be such an amazing piano player and composer in
Triilogy
but also be a Scie.?

What a great player, in the trios.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 18th March 2016, 12:53 PM   #336
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
The 44 Laws of Power


number of scales found: 44

> (load "Desktop/microtonal8.txt")
modulus: 24
length-min: 8
length-max: 8
wolves: (13 15)
wolf-max: 3
distance-2-min: 2
distance-3-min: 5
bad-notes: (1 13 15 23)
require-completeness: #t
balance-notes: (0 2 4 6 8 10 12 14 16 18 20 22)
balance-in-min: 2
balance-out-min: 4
multiple-spellings: #f

working........................................... .done

notes: (0 2 5 7 10 12 17 19)
intervals: (2 3 2 3 2 5 2 5 2 3 2 3 2 5 2 5)
0 2 5 7 10 | 0 5 7
(A Bb B+ C+ D Eb F+ Gb+)

notes: (0 2 5 7 10 12 17 21)
intervals: (2 3 2 3 2 5 4 3 2 3 2 3 2 5 4 3)
0 2 5 7 10 | 0 5 9
(A Bb B+ C+ D Eb F+ G+)

notes: (0 2 5 7 10 12 19 21)
intervals: (2 3 2 3 2 7 2 3 2 3 2 3 2 7 2 3)
0 2 5 7 10 | 0 7 9
(A A# B+ C+ D Eb F#+ G+)

notes: (0 2 5 7 10 14 17 19)
intervals: (2 3 2 3 4 3 2 5 2 3 2 3 4 3 2 5)
0 2 5 7 10 | 2 5 7
(A A# B+ C+ D E F+ G-)

notes: (0 2 5 7 10 14 17 21)
intervals: (2 3 2 3 4 3 4 3 2 3 2 3 4 3 4 3)
0 2 5 7 10 | 2 5 9
(A A# B+ C+ D E F+ G+)

notes: (0 2 5 7 10 14 19 21)
intervals: (2 3 2 3 4 5 2 3 2 3 2 3 4 5 2 3)
0 2 5 7 10 | 2 7 9
(A A# B+ C+ D E F#+ G+)

notes: (0 2 5 7 11 14 19 21)
intervals: (2 3 2 4 3 5 2 3 2 3 2 4 3 5 2 3)
0 2 5 7 11 | 2 7 9
(A A# B+ C+ D+ E F#+ G+)

notes: (0 2 5 7 12 14 17 19)
intervals: (2 3 2 5 2 3 2 5 2 3 2 5 2 3 2 5)
0 2 5 7 | 0 2 5 7
(A A# B+ C+ D# E F+ G-)

notes: (0 2 5 7 12 14 17 21)
intervals: (2 3 2 5 2 3 4 3 2 3 2 5 2 3 4 3)
0 2 5 7 | 0 2 5 9
(A A# B+ C+ D# E F+ G+)

notes: (0 2 5 7 12 14 19 21)
intervals: (2 3 2 5 2 5 2 3 2 3 2 5 2 5 2 3)
0 2 5 7 | 0 2 7 9
(A A# B+ C+ D# E F#+ G+)

notes: (0 2 5 7 12 16 19 21)
intervals: (2 3 2 5 4 3 2 3 2 3 2 5 4 3 2 3)
0 2 5 7 | 0 4 7 9
(A Bb C- Db- Eb F Gb+ G+)

notes: (0 2 5 7 14 16 19 21)
intervals: (2 3 2 7 2 3 2 3 2 3 2 7 2 3 2 3)
0 2 5 7 | 2 4 7 9
(A Bb C- Db- E F Gb+ G+)

notes: (0 2 5 9 12 14 17 19)
intervals: (2 3 4 3 2 3 2 5 2 3 4 3 2 3 2 5)
0 2 5 9 | 0 2 5 7
(A A# B+ C#+ D# E F+ G-)

notes: (0 2 5 9 12 14 19 21)
intervals: (2 3 4 3 2 5 2 3 2 3 4 3 2 5 2 3)
0 2 5 9 | 0 2 7 9
(A A# B+ C#+ D# E F#+ G+)

notes: (0 2 5 9 12 16 19 21)
intervals: (2 3 4 3 4 3 2 3 2 3 4 3 4 3 2 3)
0 2 5 9 | 0 4 7 9
(A Bb C- Db+ Eb F Gb+ G+)

notes: (0 2 5 9 14 16 19 21)
intervals: (2 3 4 5 2 3 2 3 2 3 4 5 2 3 2 3)
0 2 5 9 | 2 4 7 9
(A Bb C- Db+ E F Gb+ G+)

notes: (0 2 7 9 12 14 17 19)
intervals: (2 5 2 3 2 3 2 5 2 5 2 3 2 3 2 5)
0 2 7 9 | 0 2 5 7
(A Bb C+ Db+ Eb E F+ Gb+)

notes: (0 2 7 9 12 14 17 21)
intervals: (2 5 2 3 2 3 4 3 2 5 2 3 2 3 4 3)
0 2 7 9 | 0 2 5 9
(A Bb C+ Db+ Eb E F+ G+)

notes: (0 2 7 9 12 14 19 21)
intervals: (2 5 2 3 2 5 2 3 2 5 2 3 2 5 2 3)
0 2 7 9 | 0 2 7 9
(A Bb C+ C#+ D# E F#+ G+)

notes: (0 2 7 9 12 16 19 21)
intervals: (2 5 2 3 4 3 2 3 2 5 2 3 4 3 2 3)
0 2 7 9 | 0 4 7 9
(A Bb C+ Db+ Eb F Gb+ G+)

notes: (0 2 7 9 14 16 19 21)
intervals: (2 5 2 5 2 3 2 3 2 5 2 5 2 3 2 3)
0 2 7 9 | 2 4 7 9
(A Bb C+ Db+ E F Gb+ G+)

notes: (0 2 7 11 14 16 19 21)
intervals: (2 5 4 3 2 3 2 3 2 5 4 3 2 3 2 3)
0 2 7 11 | 2 4 7 9
(A Bb C+ D+ E F Gb+ G+)

notes: (0 2 9 11 14 16 19 21)
intervals: (2 7 2 3 2 3 2 3 2 7 2 3 2 3 2 3)
0 2 9 11 | 2 4 7 9
(A Bb C#+ D+ E F F#+ G+)

notes: (0 3 5 8 10 17 19 22)
intervals: (3 2 3 2 7 2 3 2 3 2 3 2 7 2 3 2)
0 3 5 8 10 | 5 7 10
(A A#+ B+ C# D F+ F#+ G#)

notes: (0 3 5 8 12 17 19 22)
intervals: (3 2 3 4 5 2 3 2 3 2 3 4 5 2 3 2)
0 3 5 8 | 0 5 7 10
(A Bb+ C- Db Eb F+ Gb+ Ab)

notes: (0 3 5 9 12 17 19 22)
intervals: (3 2 4 3 5 2 3 2 3 2 4 3 5 2 3 2)
0 3 5 9 | 0 5 7 10
(A Bb+ C- Db+ Eb F+ Gb+ Ab)

notes: (0 3 5 10 12 17 19 22)
intervals: (3 2 5 2 5 2 3 2 3 2 5 2 5 2 3 2)
0 3 5 10 | 0 5 7 10
(A Bb+ C- D Eb F+ Gb+ Ab)

notes: (0 3 5 10 14 17 19 22)
intervals: (3 2 5 4 3 2 3 2 3 2 5 4 3 2 3 2)
0 3 5 10 | 2 5 7 10
(A Bb+ C- D E F+ Gb+ Ab)

notes: (0 3 5 12 14 17 19 22)
intervals: (3 2 7 2 3 2 3 2 3 2 7 2 3 2 3 2)
0 3 5 | 0 2 5 7 10
(A B- C- D# E F+ F#+ G#)

notes: (0 3 7 9 12 14 17 19)
intervals: (3 4 2 3 2 3 2 5 3 4 2 3 2 3 2 5)
0 3 7 9 | 0 2 5 7
(A Bb+ C+ Db+ Eb E F+ Gb+)

notes: (0 3 7 10 12 17 19 22)
intervals: (3 4 3 2 5 2 3 2 3 4 3 2 5 2 3 2)
0 3 7 10 | 0 5 7 10
(A Bb+ C+ D Eb F+ Gb+ Ab)

notes: (0 3 7 10 14 17 19 22)
intervals: (3 4 3 4 3 2 3 2 3 4 3 4 3 2 3 2)
0 3 7 10 | 2 5 7 10
(A Bb+ C+ D E F+ Gb+ Ab)

notes: (0 3 7 12 14 17 19 22)
intervals: (3 4 5 2 3 2 3 2 3 4 5 2 3 2 3 2)
0 3 7 | 0 2 5 7 10
(A B- C+ D# E F+ F#+ G#)

notes: (0 4 7 9 12 14 17 19)
intervals: (4 3 2 3 2 3 2 5 4 3 2 3 2 3 2 5)
0 4 7 9 | 0 2 5 7
(A B C+ C#+ D# E F+ G-)

notes: (0 4 7 9 12 14 17 21)
intervals: (4 3 2 3 2 3 4 3 4 3 2 3 2 3 4 3)
0 4 7 9 | 0 2 5 9
(A B C+ C#+ D# E F+ G+)

notes: (0 4 7 9 12 14 19 21)
intervals: (4 3 2 3 2 5 2 3 4 3 2 3 2 5 2 3)
0 4 7 9 | 0 2 7 9
(A B C+ C#+ D# E F#+ G+)

notes: (0 4 7 9 14 16 19 21)
intervals: (4 3 2 5 2 3 2 3 4 3 2 5 2 3 2 3)
0 4 7 9 | 2 4 7 9
(A B C+ Db+ E F Gb+ G+)

notes: (0 4 7 11 14 16 19 21)
intervals: (4 3 4 3 2 3 2 3 4 3 4 3 2 3 2 3)
0 4 7 11 | 2 4 7 9
(A B C+ D+ E F F#+ G+)

notes: (0 4 9 11 14 16 19 21)
intervals: (4 5 2 3 2 3 2 3 4 5 2 3 2 3 2 3)
0 4 9 11 | 2 4 7 9
(A B C#+ D+ E F F#+ G+)

notes: (0 5 7 10 12 17 19 22)
intervals: (5 2 3 2 5 2 3 2 5 2 3 2 5 2 3 2)
0 5 7 10 | 0 5 7 10
(A B+ C+ D Eb F+ Gb+ Ab)

notes: (0 5 7 10 14 17 19 22)
intervals: (5 2 3 4 3 2 3 2 5 2 3 4 3 2 3 2)
0 5 7 10 | 2 5 7 10
(A B+ C+ D E F+ F#+ G#)

notes: (0 5 7 12 14 17 19 22)
intervals: (5 2 5 2 3 2 3 2 5 2 5 2 3 2 3 2)
0 5 7 | 0 2 5 7 10
(A B+ C+ D# E F+ F#+ G#)

notes: (0 5 9 12 14 17 19 22)
intervals: (5 4 3 2 3 2 3 2 5 4 3 2 3 2 3 2)
0 5 9 | 0 2 5 7 10
(A B+ C#+ D# E F+ F#+ G#)

notes: (0 7 9 12 14 17 19 22)
intervals: (7 2 3 2 3 2 3 2 7 2 3 2 3 2 3 2)
0 7 9 | 0 2 5 7 10
(A C+ C#+ D# E F+ F#+ G#)



>


calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 18th March 2016, 12:59 PM   #337
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
The 9 8-note scales again

> (load "Desktop/microtonal8.txt")
modulus: 24
length-min: 8
length-max: 8
wolves: (13 15)
wolf-max: 2
distance-2-min: 2
distance-3-min: 5
bad-notes: (1 13 15 23)
require-completeness: #t
balance-notes: (0 2 4 6 8 10 12 14 16 18 20 22)
balance-in-min: 2
balance-out-min: 4
multiple-spellings: #f

working.........done

notes: (0 2 5 7 10 12 17 19)
intervals: (2 3 2 3 2 5 2 5 2 3 2 3 2 5 2 5)
0 2 5 7 10 | 0 5 7
(A Bb B+ C+ D Eb F+ Gb+)

notes: (0 2 5 7 12 14 17 19)
intervals: (2 3 2 5 2 3 2 5 2 3 2 5 2 3 2 5)
0 2 5 7 | 0 2 5 7
(A A# B+ C+ D# E F+ G-)

notes: (0 2 5 7 12 14 19 21)
intervals: (2 3 2 5 2 5 2 3 2 3 2 5 2 5 2 3)
0 2 5 7 | 0 2 7 9
(A A# B+ C+ D# E F#+ G+)

notes: (0 2 7 9 12 14 17 19)
intervals: (2 5 2 3 2 3 2 5 2 5 2 3 2 3 2 5)
0 2 7 9 | 0 2 5 7
(A Bb C+ Db+ Eb E F+ Gb+)

notes: (0 2 7 9 12 14 19 21)
intervals: (2 5 2 3 2 5 2 3 2 5 2 3 2 5 2 3)
0 2 7 9 | 0 2 7 9
(A Bb C+ C#+ D# E F#+ G+)

notes: (0 2 7 9 14 16 19 21)
intervals: (2 5 2 5 2 3 2 3 2 5 2 5 2 3 2 3)
0 2 7 9 | 2 4 7 9
(A Bb C+ Db+ E F Gb+ G+)

notes: (0 3 5 10 12 17 19 22)
intervals: (3 2 5 2 5 2 3 2 3 2 5 2 5 2 3 2)
0 3 5 10 | 0 5 7 10
(A Bb+ C- D Eb F+ Gb+ Ab)

notes: (0 5 7 10 12 17 19 22)
intervals: (5 2 3 2 5 2 3 2 5 2 3 2 5 2 3 2)
0 5 7 10 | 0 5 7 10
(A B+ C+ D Eb F+ Gb+ Ab)

notes: (0 5 7 12 14 17 19 22)
intervals: (5 2 5 2 3 2 3 2 5 2 5 2 3 2 3 2)
0 5 7 | 0 2 5 7 10
(A B+ C+ D# E F+ F#+ G#)


number of scales found: 9
>

Last edited by calebprime; 18th March 2016 at 01:02 PM.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 18th March 2016, 01:06 PM   #338
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
A different 9: some of these only have 6 notes

> (load "Desktop/microtonal8.txt")
modulus: 24
length-min: 6
length-max: 8
wolves: (13 15)
wolf-max: 2
distance-2-min: 3
distance-3-min: 6
bad-notes: (1 13 15 23)
require-completeness: #t
balance-notes: (0 2 4 6 8 10 12 14 16 18 20 22)
balance-in-min: 2
balance-out-min: 4
multiple-spellings: #f

working................done

notes: (0 3 7 10 14 17 21)
intervals: (3 4 3 4 3 4 3 3 4 3 4 3 4 3)
0 3 7 10 | 2 5 9
(A Bb+ C+ D E F+ G+)

notes: (0 3 7 11 14 17 21)
intervals: (3 4 4 3 3 4 3 3 4 4 3 3 4 3)
0 3 7 11 | 2 5 9
(A Bb+ C+ D+ E F+ G+)

notes: (0 3 7 11 14 19)
intervals: (3 4 4 3 5 5 3 4 4 3 5 5)
0 3 7 11 | 2 7
(A Bb+ C+ D+ E Gb+)

notes: (0 3 7 12 17 21)
intervals: (3 4 5 5 4 3 3 4 5 5 4 3)
0 3 7 | 0 5 9
(A Bb+ C+ Eb F+ G+)

notes: (0 3 9 14 17 21)
intervals: (3 6 5 3 4 3 3 6 5 3 4 3)
0 3 9 | 2 5 9
(A Bb+ Db+ E F+ G+)

notes: (0 4 7 11 14 17 21)
intervals: (4 3 4 3 3 4 3 4 3 4 3 3 4 3)
0 4 7 11 | 2 5 9
(A B C+ D+ E F+ G+)

notes: (0 5 9 12 17 21)
intervals: (5 4 3 5 4 3 5 4 3 5 4 3)
0 5 9 | 0 5 9
(A B+ C#+ D# F+ G+)

notes: (0 5 9 14 17 21)
intervals: (5 4 5 3 4 3 5 4 5 3 4 3)
0 5 9 | 2 5 9
(A B+ C#+ E F+ G+)

notes: (0 5 11 14 17 21)
intervals: (5 6 3 3 4 3 5 6 3 3 4 3)
0 5 11 | 2 5 9
(A B+ D+ E F+ G+)


number of scales found: 9
>
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 18th March 2016, 01:10 PM   #339
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
The Six Scales that Bring Proptious Happiness

> (load "Desktop/microtonal8.txt")
modulus: 24
length-min: 5
length-max: 9
wolves: (13 15)
wolf-max: 3
distance-2-min: 3
distance-3-min: 7
bad-notes: (1 13 15 23)
require-completeness: #t
balance-notes: (0 2 4 6 8 10 12 14 16 18 20 22)
balance-in-min: 2
balance-out-min: 4
multiple-spellings: #f

working......done

notes: (0 3 7 11 14 19)
intervals: (3 4 4 3 5 5 3 4 4 3 5 5)
0 3 7 11 | 2 7
(A Bb+ C+ D+ E Gb+)

notes: (0 3 7 11 16 19)
intervals: (3 4 4 5 3 5 3 4 4 5 3 5)
0 3 7 11 | 4 7
(A Bb+ C+ D+ F Gb+)

notes: (0 3 7 11 17 20)
intervals: (3 4 4 6 3 4 3 4 4 6 3 4)
0 3 7 11 | 5 8
(A Bb+ C+ D+ F+ G)

notes: (0 4 7 11 17 21)
intervals: (4 3 4 6 4 3 4 3 4 6 4 3)
0 4 7 11 | 5 9
(A B C+ D+ F+ G+)

notes: (0 5 9 12 17 21)
intervals: (5 4 3 5 4 3 5 4 3 5 4 3)
0 5 9 | 0 5 9
(A B+ C#+ D# F+ G+)

notes: (0 5 9 14 17 21)
intervals: (5 4 5 3 4 3 5 4 5 3 4 3)
0 5 9 | 2 5 9
(A B+ C#+ E F+ G+)


number of scales found: 6
>
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 18th March 2016, 01:21 PM   #340
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
Slippin' it in for the fifth time, as Julian Bream used to say.

> (load "Desktop/microtonal8.txt")
modulus: 24
length-min: 4
length-max: 9
wolves: (13 15)
wolf-max: 11
distance-2-min: 3
distance-3-min: 4
bad-notes: (1 13 15 23)
require-completeness: #t
balance-notes: (0 2 4 6 8 10 12 14 16 18 20 22)
balance-in-min: 2
balance-out-min: 4
multiple-spellings: #f

working................................done

notes: (0 3 6 9 12 17 21)
intervals: (3 3 3 3 5 4 3 3 3 3 3 5 4 3)
0 3 6 9 | 0 5 9
(A Bb+ C Db+ Eb F+ G+)

notes: (0 3 6 9 14 17 21)
intervals: (3 3 3 5 3 4 3 3 3 3 5 3 4 3)
0 3 6 9 | 2 5 9
(A Bb+ C Db+ E F+ G+)

notes: (0 3 6 11 14 17 21)
intervals: (3 3 5 3 3 4 3 3 3 5 3 3 4 3)
0 3 6 11 | 2 5 9
(A Bb+ C D+ E F+ G+)

notes: (0 3 7 10 14 17 21)
intervals: (3 4 3 4 3 4 3 3 4 3 4 3 4 3)
0 3 7 10 | 2 5 9
(A Bb+ C+ D E F+ G+)

notes: (0 3 7 11 14 17 20)
intervals: (3 4 4 3 3 3 4 3 4 4 3 3 3 4)
0 3 7 11 | 2 5 8
(A Bb+ C+ D+ E F+ G)

notes: (0 3 7 11 14 17 21)
intervals: (3 4 4 3 3 4 3 3 4 4 3 3 4 3)
0 3 7 11 | 2 5 9
(A Bb+ C+ D+ E F+ G+)

notes: (0 3 7 11 14 18 21)
intervals: (3 4 4 3 4 3 3 3 4 4 3 4 3 3)
0 3 7 11 | 2 6 9
(A B- C+ D+ E F# G+)

notes: (0 3 7 11 14 19)
intervals: (3 4 4 3 5 5 3 4 4 3 5 5)
0 3 7 11 | 2 7
(A Bb+ C+ D+ E Gb+)

notes: (0 3 7 11 16 19)
intervals: (3 4 4 5 3 5 3 4 4 5 3 5)
0 3 7 11 | 4 7
(A Bb+ C+ D+ F Gb+)

notes: (0 3 7 11 16 21)
intervals: (3 4 4 5 5 3 3 4 4 5 5 3)
0 3 7 11 | 4 9
(A Bb+ C+ D+ F G+)

notes: (0 3 7 12 17 21)
intervals: (3 4 5 5 4 3 3 4 5 5 4 3)
0 3 7 | 0 5 9
(A Bb+ C+ Eb F+ G+)

notes: (0 3 8 11 14 17 21)
intervals: (3 5 3 3 3 4 3 3 5 3 3 3 4 3)
0 3 8 11 | 2 5 9
(A B- C# D+ E F+ G+)

notes: (0 4 7 11 14 17 21)
intervals: (4 3 4 3 3 4 3 4 3 4 3 3 4 3)
0 4 7 11 | 2 5 9
(A B C+ D+ E F+ G+)

notes: (0 5 8 11 14 17 21)
intervals: (5 3 3 3 3 4 3 5 3 3 3 3 4 3)
0 5 8 11 | 2 5 9
(A B+ C# D+ E F+ G+)

notes: (0 5 9 12 17 21)
intervals: (5 4 3 5 4 3 5 4 3 5 4 3)
0 5 9 | 0 5 9
(A B+ C#+ D# F+ G+)

notes: (0 5 9 14 17 21)
intervals: (5 4 5 3 4 3 5 4 5 3 4 3)
0 5 9 | 2 5 9
(A B+ C#+ E F+ G+)


number of scales found: 16
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 18th March 2016, 01:51 PM   #341
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
There are actually 89 Laws of Power, if you really think about it


number of scales found: 89
> (load "Desktop/microtonal8.txt")
modulus: 24
length-min: 5
length-max: 7
wolves: (13 15)
wolf-max: 1
distance-2-min: 2
distance-3-min: 3
bad-notes: (1 13 23)
require-completeness: #t
balance-notes: (0 2 4 6 8 10 12 14 16 18 20 22)
balance-in-min: 1
balance-out-min: 3
multiple-spellings: #f

working........................................... .................................................. .................................................. .................................................. .................................................. .................................................. .................................................. .................................................. .................................................. .............................................done

notes: (0 2 4 7 9 14 21)
intervals: (2 2 3 2 5 7 3 2 2 3 2 5 7 3)
0 2 4 7 9 | 2 9
(A A# B C+ D- E G+)

notes: (0 2 4 7 14 19 21)
intervals: (2 2 3 7 5 2 3 2 2 3 7 5 2 3)
0 2 4 7 | 2 7 9
(A A# B C+ E F#+ G+)

notes: (0 2 5 7 9 12 19)
intervals: (2 3 2 2 3 7 5 2 3 2 2 3 7 5)
0 2 5 7 9 | 0 7
(A Bb B+ C+ Db+ Eb Gb+)

notes: (0 2 5 7 9 19 21)
intervals: (2 3 2 2 10 2 3 2 3 2 2 10 2 3)
0 2 5 7 9 | 7 9
(A A# B+ C+ D- F#+ G+)

notes: (0 2 5 7 10 12 17)
intervals: (2 3 2 3 2 5 7 2 3 2 3 2 5 7)
0 2 5 7 10 | 0 5
(A Bb B+ C+ D Eb F+)

notes: (0 2 5 7 10 12 19)
intervals: (2 3 2 3 2 7 5 2 3 2 3 2 7 5)
0 2 5 7 10 | 0 7
(A Bb B+ C+ D Eb Gb+)

notes: (0 2 5 7 10 21)
intervals: (2 3 2 3 11 3 2 3 2 3 11 3)
0 2 5 7 10 | 9
(A A# B+ C+ D G+)

notes: (0 2 5 7 12 14 19)
intervals: (2 3 2 5 2 5 5 2 3 2 5 2 5 5)
0 2 5 7 | 0 2 7
(A A# B+ C+ D# E F#+)

notes: (0 2 5 7 12 17 19)
intervals: (2 3 2 5 5 2 5 2 3 2 5 5 2 5)
0 2 5 7 | 0 5 7
(A Bb C- Db- Eb F+ Gb+)

notes: (0 2 5 7 12 19 21)
intervals: (2 3 2 5 7 2 3 2 3 2 5 7 2 3)
0 2 5 7 | 0 7 9
(A Bb C- Db- Eb F#+ G+)

notes: (0 2 5 7 12 19 22)
intervals: (2 3 2 5 7 3 2 2 3 2 5 7 3 2)
0 2 5 7 | 0 7 10
(A Bb C- Db- Eb F#+ G#)

notes: (0 2 5 7 14 19 21)
intervals: (2 3 2 7 5 2 3 2 3 2 7 5 2 3)
0 2 5 7 | 2 7 9
(A Bb C- Db- E F#+ G+)

notes: (0 2 5 7 17 19 21)
intervals: (2 3 2 10 2 2 3 2 3 2 10 2 2 3)
0 2 5 7 | 5 7 9
(A Bb C- Db- F+ Gb+ G+)

notes: (0 2 5 12 17 19 22)
intervals: (2 3 7 5 2 3 2 2 3 7 5 2 3 2)
0 2 5 | 0 5 7 10
(A Bb C- Eb F+ Gb+ Ab)

notes: (0 2 5 16 19 21)
intervals: (2 3 11 3 2 3 2 3 11 3 2 3)
0 2 5 | 4 7 9
(A Bb C- F Gb+ G+)

notes: (0 2 7 9 12 14 19)
intervals: (2 5 2 3 2 5 5 2 5 2 3 2 5 5)
0 2 7 9 | 0 2 7
(A Bb C+ Db+ Eb E Gb+)

notes: (0 2 7 9 14 19 21)
intervals: (2 5 2 5 5 2 3 2 5 2 5 5 2 3)
0 2 7 9 | 2 7 9
(A Bb C+ Db+ E F#+ G+)

notes: (0 2 7 12 14 17 19)
intervals: (2 5 5 2 3 2 5 2 5 5 2 3 2 5)
0 2 7 | 0 2 5 7
(A Bb C+ D# E F+ Gb+)

notes: (0 2 7 12 14 19 21)
intervals: (2 5 5 2 5 2 3 2 5 5 2 5 2 3)
0 2 7 | 0 2 7 9
(A Bb C+ D# E F#+ G+)

notes: (0 2 7 14 16 19 21)
intervals: (2 5 7 2 3 2 3 2 5 7 2 3 2 3)
0 2 7 | 2 4 7 9
(A Bb C+ E F Gb+ G+)

notes: (0 2 7 14 17 19 21)
intervals: (2 5 7 3 2 2 3 2 5 7 3 2 2 3)
0 2 7 | 2 5 7 9
(A Bb C+ E F+ Gb+ G+)

notes: (0 2 9 14 16 19 21)
intervals: (2 7 5 2 3 2 3 2 7 5 2 3 2 3)
0 2 9 | 2 4 7 9
(A Bb Db+ E F Gb+ G+)

notes: (0 3 5 7 9 17 19)
intervals: (3 2 2 2 8 2 5 3 2 2 2 8 2 5)
0 3 5 7 9 | 5 7
(A A#+ B+ C+ D- F+ G-)

notes: (0 3 5 7 9 17 21)
intervals: (3 2 2 2 8 4 3 3 2 2 2 8 4 3)
0 3 5 7 9 | 5 9
(A A#+ B+ C+ D- F+ G+)

notes: (0 3 5 7 9 19 21)
intervals: (3 2 2 2 10 2 3 3 2 2 2 10 2 3)
0 3 5 7 9 | 7 9
(A A#+ B+ C+ D- F#+ G+)

notes: (0 3 5 7 10 12 17)
intervals: (3 2 2 3 2 5 7 3 2 2 3 2 5 7)
0 3 5 7 10 | 0 5
(A Bb+ B+ C+ D Eb F+)

notes: (0 3 5 7 10 15 17)
intervals: (3 2 2 3 5 2 7 3 2 2 3 5 2 7)
0 3 5 7 10 | 3 5
(A A#+ B+ C+ D E+ F+)

notes: (0 3 5 7 10 17 19)
intervals: (3 2 2 3 7 2 5 3 2 2 3 7 2 5)
0 3 5 7 10 | 5 7
(A A#+ B+ C+ D F+ G-)

notes: (0 3 5 7 10 17 21)
intervals: (3 2 2 3 7 4 3 3 2 2 3 7 4 3)
0 3 5 7 10 | 5 9
(A A#+ B+ C+ D F+ G+)

notes: (0 3 5 7 10 17 22)
intervals: (3 2 2 3 7 5 2 3 2 2 3 7 5 2)
0 3 5 7 10 | 5 10
(A A#+ B+ C+ D F+ G#)

notes: (0 3 5 7 11 17 19)
intervals: (3 2 2 4 6 2 5 3 2 2 4 6 2 5)
0 3 5 7 11 | 5 7
(A Bb+ C- Db- Eb- F+ Gb+)

notes: (0 3 5 7 11 17 21)
intervals: (3 2 2 4 6 4 3 3 2 2 4 6 4 3)
0 3 5 7 11 | 5 9
(A Bb+ C- Db- Eb- F+ G+)

notes: (0 3 5 7 11 19 21)
intervals: (3 2 2 4 8 2 3 3 2 2 4 8 2 3)
0 3 5 7 11 | 7 9
(A Bb+ C- Db- Eb- F#+ G+)

notes: (0 3 5 7 12 17 19)
intervals: (3 2 2 5 5 2 5 3 2 2 5 5 2 5)
0 3 5 7 | 0 5 7
(A Bb+ C- Db- Eb F+ Gb+)

notes: (0 3 5 7 15 17 19)
intervals: (3 2 2 8 2 2 5 3 2 2 8 2 2 5)
0 3 5 7 | 3 5 7
(A Bb+ C- Db- E+ F+ Gb+)

notes: (0 3 5 7 15 17 21)
intervals: (3 2 2 8 2 4 3 3 2 2 8 2 4 3)
0 3 5 7 | 3 5 9
(A Bb+ C- Db- E+ F+ G+)

notes: (0 3 5 7 15 19 21)
intervals: (3 2 2 8 4 2 3 3 2 2 8 4 2 3)
0 3 5 7 | 3 7 9
(A Bb+ C- Db- E+ F#+ G+)

notes: (0 3 5 7 17 19 21)
intervals: (3 2 2 10 2 2 3 3 2 2 10 2 2 3)
0 3 5 7 | 5 7 9
(A Bb+ C- Db- F+ Gb+ G+)

notes: (0 3 5 7 17 19 22)
intervals: (3 2 2 10 2 3 2 3 2 2 10 2 3 2)
0 3 5 7 | 5 7 10
(A Bb+ C- Db- F+ Gb+ Ab)

notes: (0 3 5 8 10 15 22)
intervals: (3 2 3 2 5 7 2 3 2 3 2 5 7 2)
0 3 5 8 10 | 3 10
(A A#+ B+ C# D E+ G#)

notes: (0 3 5 8 10 17 22)
intervals: (3 2 3 2 7 5 2 3 2 3 2 7 5 2)
0 3 5 8 10 | 5 10
(A A#+ B+ C# D F+ G#)

notes: (0 3 5 8 11)
intervals: (3 2 3 3 13 3 2 3 3 13)
0 3 5 8 11
(A Bb+ C- Db Eb-)

notes: (0 3 5 8 19 22)
intervals: (3 2 3 11 3 2 3 2 3 11 3 2)
0 3 5 8 | 7 10
(A B- C- Db F#+ G#)

notes: (0 3 5 8 21)
intervals: (3 2 3 13 3 3 2 3 13 3)
0 3 5 8 | 9
(A Bb+ C- Db G+)

notes: (0 3 5 9 17 19 21)
intervals: (3 2 4 8 2 2 3 3 2 4 8 2 2 3)
0 3 5 9 | 5 7 9
(A Bb+ C- Db+ F+ Gb+ G+)

notes: (0 3 5 10 12 17 22)
intervals: (3 2 5 2 5 5 2 3 2 5 2 5 5 2)
0 3 5 10 | 0 5 10
(A Bb+ C- D Eb F+ G#)

notes: (0 3 5 10 15 17 22)
intervals: (3 2 5 5 2 5 2 3 2 5 5 2 5 2)
0 3 5 10 | 3 5 10
(A B- C- D E+ F+ G#)

notes: (0 3 5 10 17 19 22)
intervals: (3 2 5 7 2 3 2 3 2 5 7 2 3 2)
0 3 5 10 | 5 7 10
(A Bb+ C- D F+ Gb+ Ab)

notes: (0 3 5 10 17 20 22)
intervals: (3 2 5 7 3 2 2 3 2 5 7 3 2 2)
0 3 5 10 | 5 8 10
(A Bb+ C- D F+ G Ab)

notes: (0 3 5 11 17 19 21)
intervals: (3 2 6 6 2 2 3 3 2 6 6 2 2 3)
0 3 5 11 | 5 7 9
(A Bb+ C- D+ F+ Gb+ G+)

notes: (0 3 5 12 17 19 22)
intervals: (3 2 7 5 2 3 2 3 2 7 5 2 3 2)
0 3 5 | 0 5 7 10
(A Bb+ C- Eb F+ Gb+ Ab)

notes: (0 3 5 15 17 19 21)
intervals: (3 2 10 2 2 2 3 3 2 10 2 2 2 3)
0 3 5 | 3 5 7 9
(A Bb+ C- E+ F+ Gb+ G+)

notes: (0 3 5 15 17 19 22)
intervals: (3 2 10 2 2 3 2 3 2 10 2 2 3 2)
0 3 5 | 3 5 7 10
(A Bb+ C- E+ F+ Gb+ Ab)

notes: (0 3 7 9 17 19 21)
intervals: (3 4 2 8 2 2 3 3 4 2 8 2 2 3)
0 3 7 9 | 5 7 9
(A Bb+ C+ Db+ F+ Gb+ G+)

notes: (0 3 7 10 14 17)
intervals: (3 4 3 4 3 7 3 4 3 4 3 7)
0 3 7 10 | 2 5
(A Bb+ C+ D E F+)

notes: (0 3 7 10 17 20)
intervals: (3 4 3 7 3 4 3 4 3 7 3 4)
0 3 7 10 | 5 8
(A Bb+ C+ D F+ G)

notes: (0 3 7 11 17 19 21)
intervals: (3 4 4 6 2 2 3 3 4 4 6 2 2 3)
0 3 7 11 | 5 7 9
(A Bb+ C+ D+ F+ Gb+ G+)

notes: (0 3 7 14 17 19 21)
intervals: (3 4 7 3 2 2 3 3 4 7 3 2 2 3)
0 3 7 | 2 5 7 9
(A Bb+ C+ E F+ Gb+ G+)

notes: (0 3 7 15 17 19 21)
intervals: (3 4 8 2 2 2 3 3 4 8 2 2 2 3)
0 3 7 | 3 5 7 9
(A Bb+ C+ E+ F+ Gb+ G+)

notes: (0 3 10 15 17 20 22)
intervals: (3 7 5 2 3 2 2 3 7 5 2 3 2 2)
0 3 10 | 3 5 8 10
(A Bb+ D E+ F+ G Ab)

notes: (0 3 14 17 19 22)
intervals: (3 11 3 2 3 2 3 11 3 2 3 2)
0 3 | 2 5 7 10
(A Bb+ E F+ Gb+ Ab)

notes: (0 3 16 19 21)
intervals: (3 13 3 2 3 3 13 3 2 3)
0 3 | 4 7 9
(A Bb+ F Gb+ G+)

notes: (0 4 7 11 14 21)
intervals: (4 3 4 3 7 3 4 3 4 3 7 3)
0 4 7 11 | 2 9
(A B C+ D+ E G+)

notes: (0 4 7 14 17 21)
intervals: (4 3 7 3 4 3 4 3 7 3 4 3)
0 4 7 | 2 5 9
(A B C+ E F+ G+)

notes: (0 5 7 9 12 17 19)
intervals: (5 2 2 3 5 2 5 5 2 2 3 5 2 5)
0 5 7 9 | 0 5 7
(A B+ C+ Db+ Eb F+ Gb+)

notes: (0 5 7 9 17 19 21)
intervals: (5 2 2 8 2 2 3 5 2 2 8 2 2 3)
0 5 7 9 | 5 7 9
(A B+ C+ Db+ F+ Gb+ G+)

notes: (0 5 7 10 12 14 17)
intervals: (5 2 3 2 2 3 7 5 2 3 2 2 3 7)
0 5 7 10 | 0 2 5
(A B+ C+ D D# E F+)

notes: (0 5 7 10 12 15 17)
intervals: (5 2 3 2 3 2 7 5 2 3 2 3 2 7)
0 5 7 10 | 0 3 5
(A B+ C+ D Eb F- Gb-)

notes: (0 5 7 10 12 17 19)
intervals: (5 2 3 2 5 2 5 5 2 3 2 5 2 5)
0 5 7 10 | 0 5 7
(A B+ C+ D Eb F+ Gb+)

notes: (0 5 7 10 12 17 22)
intervals: (5 2 3 2 5 5 2 5 2 3 2 5 5 2)
0 5 7 10 | 0 5 10
(A B+ C+ D Eb F+ G#)

notes: (0 5 7 11 17 19 21)
intervals: (5 2 4 6 2 2 3 5 2 4 6 2 2 3)
0 5 7 11 | 5 7 9
(A B+ C+ D+ F+ F#+ G+)

notes: (0 5 7 12 14 17 19)
intervals: (5 2 5 2 3 2 5 5 2 5 2 3 2 5)
0 5 7 | 0 2 5 7
(A B+ C+ D# E F+ G-)

notes: (0 5 7 12 15 17 19)
intervals: (5 2 5 3 2 2 5 5 2 5 3 2 2 5)
0 5 7 | 0 3 5 7
(A B+ C+ D# E+ F+ G-)

notes: (0 5 7 12 17 19 21)
intervals: (5 2 5 5 2 2 3 5 2 5 5 2 2 3)
0 5 7 | 0 5 7 9
(A B+ C+ D# F+ F#+ G+)

notes: (0 5 7 12 17 19 22)
intervals: (5 2 5 5 2 3 2 5 2 5 5 2 3 2)
0 5 7 | 0 5 7 10
(A B+ C+ D# F+ F#+ G#)

notes: (0 5 7 14 17 19 21)
intervals: (5 2 7 3 2 2 3 5 2 7 3 2 2 3)
0 5 7 | 2 5 7 9
(A B+ C+ E F+ F#+ G+)

notes: (0 5 7 15 17 19 21)
intervals: (5 2 8 2 2 2 3 5 2 8 2 2 2 3)
0 5 7 | 3 5 7 9
(A B+ C+ E+ F+ F#+ G+)

notes: (0 5 10 12 15 17 22)
intervals: (5 5 2 3 2 5 2 5 5 2 3 2 5 2)
0 5 10 | 0 3 5 10
(A B+ D D# E+ F+ G#)

notes: (0 5 10 12 17 19 22)
intervals: (5 5 2 5 2 3 2 5 5 2 5 2 3 2)
0 5 10 | 0 5 7 10
(A B+ D Eb F+ Gb+ Ab)

notes: (0 5 12 14 17 19 22)
intervals: (5 7 2 3 2 3 2 5 7 2 3 2 3 2)
0 5 | 0 2 5 7 10
(A B+ D# E F+ F#+ G#)

notes: (0 5 12 15 17 19 22)
intervals: (5 7 3 2 2 3 2 5 7 3 2 2 3 2)
0 5 | 0 3 5 7 10
(A B+ D# E+ F+ F#+ G#)

notes: (0 7 9 12 14 17 19)
intervals: (7 2 3 2 3 2 5 7 2 3 2 3 2 5)
0 7 9 | 0 2 5 7
(A C+ C#+ D# E F+ G-)

notes: (0 7 9 14 17 19 21)
intervals: (7 2 5 3 2 2 3 7 2 5 3 2 2 3)
0 7 9 | 2 5 7 9
(A C+ Db+ E F+ Gb+ G+)

notes: (0 7 10 12 14 17 19)
intervals: (7 3 2 2 3 2 5 7 3 2 2 3 2 5)
0 7 10 | 0 2 5 7
(A C+ D D# E F+ G-)

notes: (0 7 10 14 17 21)
intervals: (7 3 4 3 4 3 7 3 4 3 4 3)
0 7 10 | 2 5 9
(A C+ D E F+ G+)

notes: (0 7 11 14 17 19 21)
intervals: (7 4 3 3 2 2 3 7 4 3 3 2 2 3)
0 7 11 | 2 5 7 9
(A C+ D+ E F+ F#+ G+)

notes: (0 7 12 14 17 19 21)
intervals: (7 5 2 3 2 2 3 7 5 2 3 2 2 3)
0 7 | 0 2 5 7 9
(A C+ D# E F+ F#+ G+)

notes: (0 7 12 14 17 19 22)
intervals: (7 5 2 3 2 3 2 7 5 2 3 2 3 2)
0 7 | 0 2 5 7 10
(A C+ D# E F+ F#+ G#)

notes: (0 11 14 16 19 21)
intervals: (11 3 2 3 2 3 11 3 2 3 2 3)
0 11 | 2 4 7 9
(A D+ E F F#+ G+)


calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 18th March 2016, 01:56 PM   #342
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
12 with no wolves at all



number of scales found: 12
>



> (load "Desktop/microtonal8.txt")
modulus: 24
length-min: 5
length-max: 7
wolves: (13 15)
wolf-max: 0
distance-2-min: 2
distance-3-min: 3
bad-notes: (1 13 23)
require-completeness: #t
balance-notes: (0 2 4 6 8 10 12 14 16 18 20 22)
balance-in-min: 1
balance-out-min: 3
multiple-spellings: #f

working........................................... ..........done

notes: (0 2 5 7 12 19)
intervals: (2 3 2 5 7 5 2 3 2 5 7 5)
0 2 5 7 | 0 7
(A Bb C- Db- Eb Gb+)

notes: (0 2 5 7 19 21)
intervals: (2 3 2 12 2 3 2 3 2 12 2 3)
0 2 5 7 | 7 9
(A Bb C- Db- F#+ G+)

notes: (0 2 7 14 19 21)
intervals: (2 5 7 5 2 3 2 5 7 5 2 3)
0 2 7 | 2 7 9
(A Bb C+ E F#+ G+)

notes: (0 3 5 7 10 17)
intervals: (3 2 2 3 7 7 3 2 2 3 7 7)
0 3 5 7 10 | 5
(A A#+ B+ C+ D F+)

notes: (0 3 5 7 17 19 21)
intervals: (3 2 2 10 2 2 3 3 2 2 10 2 2 3)
0 3 5 7 | 5 7 9
(A Bb+ C- Db- F+ Gb+ G+)

notes: (0 3 5 10 17 22)
intervals: (3 2 5 7 5 2 3 2 5 7 5 2)
0 3 5 10 | 5 10
(A B- C- D F+ G#)

notes: (0 3 5 17 19 22)
intervals: (3 2 12 2 3 2 3 2 12 2 3 2)
0 3 5 | 5 7 10
(A Bb+ C- F+ Gb+ Ab)

notes: (0 5 7 10 12 17)
intervals: (5 2 3 2 5 7 5 2 3 2 5 7)
0 5 7 10 | 0 5
(A B+ C+ D Eb F+)

notes: (0 5 7 12 17 19)
intervals: (5 2 5 5 2 5 5 2 5 5 2 5)
0 5 7 | 0 5 7
(A B+ C+ D# F+ G-)

notes: (0 5 12 17 19 22)
intervals: (5 7 5 2 3 2 5 7 5 2 3 2)
0 5 | 0 5 7 10
(A B+ D# F+ F#+ G#)

notes: (0 7 12 14 17 19)
intervals: (7 5 2 3 2 5 7 5 2 3 2 5)
0 7 | 0 2 5 7
(A C+ D# E F+ G-)

notes: (0 7 14 17 19 21)
intervals: (7 7 3 2 2 3 7 7 3 2 2 3)
0 7 | 2 5 7 9
(A C+ E F+ F#+ G+)


number of scales found: 12
>
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 18th March 2016, 02:03 PM   #343
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
Hello, Future Self 36 EDO

A leap into mod36. It seemed to work right away!

Future self, enjoy these!

I've already practiced a lot of 36-note per octave, but it wasn't equal

Here's the 141 scales with no wolves, I think. I did this fairly quickly.

These are 36 EDO scales, with no wolves, I think.




number of scales found: 12
> (load "Desktop/microtonal8.txt")
modulus: 36
length-min: 5
length-max: 7
wolves: (20 22)
wolf-max: 0
distance-2-min: 3
distance-3-min: 9
bad-notes: (1 2 34 35)
require-completeness: #t
balance-notes: (0 3 6 9 12 15 18 21 24 27 30)
balance-in-min: 3
balance-out-min: 3
multiple-spellings: #f

working........................................... .................................................. .................................................. .........done

notes: (0 3 10 13 21 28)
intervals: (3 7 3 8 7 8 3 7 3 8 7 8)

notes: (0 3 11 18 26 29)
intervals: (3 8 7 8 3 7 3 8 7 8 3 7)

notes: (0 4 9 13 19 30)
intervals: (4 5 4 6 11 6 4 5 4 6 11 6)

notes: (0 4 9 13 21 28)
intervals: (4 5 4 8 7 8 4 5 4 8 7 8)

notes: (0 4 9 15 19 28)
intervals: (4 5 6 4 9 8 4 5 6 4 9 8)

notes: (0 4 9 17 21 28)
intervals: (4 5 8 4 7 8 4 5 8 4 7 8)

notes: (0 4 10 15 19 27)
intervals: (4 6 5 4 8 9 4 6 5 4 8 9)

notes: (0 4 10 15 21 25)
intervals: (4 6 5 6 4 11 4 6 5 6 4 11)

notes: (0 4 10 15 21 28)
intervals: (4 6 5 6 7 8 4 6 5 6 7 8)

notes: (0 4 10 15 23 27)
intervals: (4 6 5 8 4 9 4 6 5 8 4 9)

notes: (0 4 10 17 21 27)
intervals: (4 6 7 4 6 9 4 6 7 4 6 9)

notes: (0 4 10 21 27 31)
intervals: (4 6 11 6 4 5 4 6 11 6 4 5)

notes: (0 4 11 15 21 28)
intervals: (4 7 4 6 7 8 4 7 4 6 7 8)

notes: (0 4 11 15 23 30)
intervals: (4 7 4 8 7 6 4 7 4 8 7 6)

notes: (0 4 11 17 21 30)
intervals: (4 7 6 4 9 6 4 7 6 4 9 6)

notes: (0 4 12 17 21 29)
intervals: (4 8 5 4 8 7 4 8 5 4 8 7)

notes: (0 4 12 17 23 27)
intervals: (4 8 5 6 4 9 4 8 5 6 4 9)

notes: (0 4 12 17 23 30)
intervals: (4 8 5 6 7 6 4 8 5 6 7 6)

notes: (0 4 12 17 25 30)
intervals: (4 8 5 8 5 6 4 8 5 8 5 6)

notes: (0 4 12 19 23 30)
intervals: (4 8 7 4 7 6 4 8 7 4 7 6)

notes: (0 4 12 19 25 30)
intervals: (4 8 7 6 5 6 4 8 7 6 5 6)

notes: (0 4 12 19 27 31)
intervals: (4 8 7 8 4 5 4 8 7 8 4 5)

notes: (0 4 12 21 25 31)
intervals: (4 8 9 4 6 5 4 8 9 4 6 5)

notes: (0 4 13 21 25 30)
intervals: (4 9 8 4 5 6 4 9 8 4 5 6)

notes: (0 4 15 19 25 30)
intervals: (4 11 4 6 5 6 4 11 4 6 5 6)

notes: (0 5 9 15 26 32)
intervals: (5 4 6 11 6 4 5 4 6 11 6 4)

notes: (0 5 9 17 24 28)
intervals: (5 4 8 7 4 8 5 4 8 7 4 8)

notes: (0 5 9 17 24 32)
intervals: (5 4 8 7 8 4 5 4 8 7 8 4)

notes: (0 5 9 17 26 30)
intervals: (5 4 8 9 4 6 5 4 8 9 4 6)

notes: (0 5 11 15 23 30)
intervals: (5 6 4 8 7 6 5 6 4 8 7 6)

notes: (0 5 11 15 24 28)
intervals: (5 6 4 9 4 8 5 6 4 9 4 8)

notes: (0 5 11 15 24 32)
intervals: (5 6 4 9 8 4 5 6 4 9 8 4)

notes: (0 5 11 15 26 30)
intervals: (5 6 4 11 4 6 5 6 4 11 4 6)

notes: (0 5 11 17 24 30)
intervals: (5 6 6 7 6 6 5 6 6 7 6 6)

notes: (0 5 11 18 23 30)
intervals: (5 6 7 5 7 6 5 6 7 5 7 6)

notes: (0 5 11 18 24 28)
intervals: (5 6 7 6 4 8 5 6 7 6 4 8)

notes: (0 5 11 18 24 29)
intervals: (5 6 7 6 5 7 5 6 7 6 5 7)

notes: (0 5 11 18 26 30)
intervals: (5 6 7 8 4 6 5 6 7 8 4 6)

notes: (0 5 12 17 23 30)
intervals: (5 7 5 6 7 6 5 7 5 6 7 6)

notes: (0 5 12 17 24 29)
intervals: (5 7 5 7 5 7 5 7 5 7 5 7)

notes: (0 5 12 18 23 29)
intervals: (5 7 6 5 6 7 5 7 6 5 6 7)

notes: (0 5 12 18 23 31)
intervals: (5 7 6 5 8 5 5 7 6 5 8 5)

notes: (0 5 13 17 24 30)
intervals: (5 8 4 7 6 6 5 8 4 7 6 6)

notes: (0 5 13 18 23 30)
intervals: (5 8 5 5 7 6 5 8 5 5 7 6)

notes: (0 5 13 18 24 28)
intervals: (5 8 5 6 4 8 5 8 5 6 4 8)

notes: (0 5 13 18 24 31)
intervals: (5 8 5 6 7 5 5 8 5 6 7 5)

notes: (0 5 13 18 26 30)
intervals: (5 8 5 8 4 6 5 8 5 8 4 6)

notes: (0 6 10 15 19 25)
intervals: (6 4 5 4 6 11 6 4 5 4 6 11)

notes: (0 6 10 15 21 25 33)
intervals: (6 4 5 6 4 8 3 6 4 5 6 4 8 3)

notes: (0 6 10 15 23 27 33)
intervals: (6 4 5 8 4 6 3 6 4 5 8 4 6 3)

notes: (0 6 10 17 21 29)
intervals: (6 4 7 4 8 7 6 4 7 4 8 7)

notes: (0 6 10 17 23 27)
intervals: (6 4 7 6 4 9 6 4 7 6 4 9)

notes: (0 6 10 18 23 27 33)
intervals: (6 4 8 5 4 6 3 6 4 8 5 4 6 3)

notes: (0 6 10 18 23 29)
intervals: (6 4 8 5 6 7 6 4 8 5 6 7)

notes: (0 6 10 18 23 31)
intervals: (6 4 8 5 8 5 6 4 8 5 8 5)

notes: (0 6 10 18 25 29)
intervals: (6 4 8 7 4 7 6 4 8 7 4 7)

notes: (0 6 10 18 25 31)
intervals: (6 4 8 7 6 5 6 4 8 7 6 5)

notes: (0 6 10 18 25 33)
intervals: (6 4 8 7 8 3 6 4 8 7 8 3)

notes: (0 6 10 19 27 31)
intervals: (6 4 9 8 4 5 6 4 9 8 4 5)

notes: (0 6 10 21 25 31)
intervals: (6 4 11 4 6 5 6 4 11 4 6 5)

notes: (0 6 11 15 23 32)
intervals: (6 5 4 8 9 4 6 5 4 8 9 4)

notes: (0 6 11 17 21 29)
intervals: (6 5 6 4 8 7 6 5 6 4 8 7)

notes: (0 6 11 17 21 32)
intervals: (6 5 6 4 11 4 6 5 6 4 11 4)

notes: (0 6 11 17 23 30)
intervals: (6 5 6 6 7 6 6 5 6 6 7 6)

notes: (0 6 11 17 24 29)
intervals: (6 5 6 7 5 7 6 5 6 7 5 7)

notes: (0 6 11 17 24 32)
intervals: (6 5 6 7 8 4 6 5 6 7 8 4)

notes: (0 6 11 18 23 29)
intervals: (6 5 7 5 6 7 6 5 7 5 6 7)

notes: (0 6 11 19 23 30)
intervals: (6 5 8 4 7 6 6 5 8 4 7 6)

notes: (0 6 11 19 24 29)
intervals: (6 5 8 5 5 7 6 5 8 5 5 7)

notes: (0 6 11 19 24 32)
intervals: (6 5 8 5 8 4 6 5 8 5 8 4)

notes: (0 6 12 17 23 29)
intervals: (6 6 5 6 6 7 6 6 5 6 6 7)

notes: (0 6 12 17 25 29)
intervals: (6 6 5 8 4 7 6 6 5 8 4 7)

notes: (0 6 12 19 23 29)
intervals: (6 6 7 4 6 7 6 6 7 4 6 7)

notes: (0 6 12 19 23 31)
intervals: (6 6 7 4 8 5 6 6 7 4 8 5)

notes: (0 6 12 19 25 29)
intervals: (6 6 7 6 4 7 6 6 7 6 4 7)

notes: (0 6 12 19 25 31)
intervals: (6 6 7 6 6 5 6 6 7 6 6 5)

notes: (0 6 13 17 23 30)
intervals: (6 7 4 6 7 6 6 7 4 6 7 6)

notes: (0 6 13 17 24 32)
intervals: (6 7 4 7 8 4 6 7 4 7 8 4)

notes: (0 6 13 17 25 30)
intervals: (6 7 4 8 5 6 6 7 4 8 5 6)

notes: (0 6 13 18 23 31)
intervals: (6 7 5 5 8 5 6 7 5 5 8 5)

notes: (0 6 13 18 25 31)
intervals: (6 7 5 7 6 5 6 7 5 7 6 5)

notes: (0 6 13 19 23 30)
intervals: (6 7 6 4 7 6 6 7 6 4 7 6)

notes: (0 6 13 19 24 31)
intervals: (6 7 6 5 7 5 6 7 6 5 7 5)

notes: (0 6 13 19 24 32)
intervals: (6 7 6 5 8 4 6 7 6 5 8 4)

notes: (0 6 13 19 25 30)
intervals: (6 7 6 6 5 6 6 7 6 6 5 6)

notes: (0 6 13 21 25 31)
intervals: (6 7 8 4 6 5 6 7 8 4 6 5)

notes: (0 6 13 21 25 32)
intervals: (6 7 8 4 7 4 6 7 8 4 7 4)

notes: (0 6 15 19 25 32)
intervals: (6 9 4 6 7 4 6 9 4 6 7 4)

notes: (0 6 17 23 27 32)
intervals: (6 11 6 4 5 4 6 11 6 4 5 4)

notes: (0 7 11 17 24 30)
intervals: (7 4 6 7 6 6 7 4 6 7 6 6)

notes: (0 7 11 18 24 28)
intervals: (7 4 7 6 4 8 7 4 7 6 4 8)

notes: (0 7 11 18 26 30)
intervals: (7 4 7 8 4 6 7 4 7 8 4 6)

notes: (0 7 11 19 24 30)
intervals: (7 4 8 5 6 6 7 4 8 5 6 6)

notes: (0 7 12 17 25 30)
intervals: (7 5 5 8 5 6 7 5 5 8 5 6)

notes: (0 7 12 18 25 31)
intervals: (7 5 6 7 6 5 7 5 6 7 6 5)

notes: (0 7 12 18 25 33)
intervals: (7 5 6 7 8 3 7 5 6 7 8 3)

notes: (0 7 12 19 24 31)
intervals: (7 5 7 5 7 5 7 5 7 5 7 5)

notes: (0 7 12 19 25 30)
intervals: (7 5 7 6 5 6 7 5 7 6 5 6)

notes: (0 7 13 17 24 30)
intervals: (7 6 4 7 6 6 7 6 4 7 6 6)

notes: (0 7 13 18 24 28)
intervals: (7 6 5 6 4 8 7 6 5 6 4 8)

notes: (0 7 13 18 24 31)
intervals: (7 6 5 6 7 5 7 6 5 6 7 5)

notes: (0 7 13 18 25 30)
intervals: (7 6 5 7 5 6 7 6 5 7 5 6)

notes: (0 7 13 18 26 30)
intervals: (7 6 5 8 4 6 7 6 5 8 4 6)

notes: (0 7 13 19 24 30)
intervals: (7 6 6 5 6 6 7 6 6 5 6 6)

notes: (0 7 15 18 25 28)
intervals: (7 8 3 7 3 8 7 8 3 7 3 8)

notes: (0 7 15 18 25 33)
intervals: (7 8 3 7 8 3 7 8 3 7 8 3)

notes: (0 7 15 18 26 33)
intervals: (7 8 3 8 7 3 7 8 3 8 7 3)

notes: (0 7 15 19 24 28)
intervals: (7 8 4 5 4 8 7 8 4 5 4 8)

notes: (0 7 15 19 24 32)
intervals: (7 8 4 5 8 4 7 8 4 5 8 4)

notes: (0 7 15 19 25 30)
intervals: (7 8 4 6 5 6 7 8 4 6 5 6)

notes: (0 7 15 19 26 30)
intervals: (7 8 4 7 4 6 7 8 4 7 4 6)

notes: (0 8 11 18 21 29)
intervals: (8 3 7 3 8 7 8 3 7 3 8 7)

notes: (0 8 12 17 21 29)
intervals: (8 4 5 4 8 7 8 4 5 4 8 7)

notes: (0 8 12 17 23 27)
intervals: (8 4 5 6 4 9 8 4 5 6 4 9)

notes: (0 8 12 18 23 27 33)
intervals: (8 4 6 5 4 6 3 8 4 6 5 4 6 3)

notes: (0 8 12 18 23 29)
intervals: (8 4 6 5 6 7 8 4 6 5 6 7)

notes: (0 8 12 18 23 31)
intervals: (8 4 6 5 8 5 8 4 6 5 8 5)

notes: (0 8 12 18 25 29)
intervals: (8 4 6 7 4 7 8 4 6 7 4 7)

notes: (0 8 12 18 25 31)
intervals: (8 4 6 7 6 5 8 4 6 7 6 5)

notes: (0 8 12 18 25 33)
intervals: (8 4 6 7 8 3 8 4 6 7 8 3)

notes: (0 8 12 19 27 31)
intervals: (8 4 7 8 4 5 8 4 7 8 4 5)

notes: (0 8 12 21 25 31)
intervals: (8 4 9 4 6 5 8 4 9 4 6 5)

notes: (0 8 12 21 25 33)
intervals: (8 4 9 4 8 3 8 4 9 4 8 3)

notes: (0 8 15 18 25 33)
intervals: (8 7 3 7 8 3 8 7 3 7 8 3)

notes: (0 8 15 18 26 33)
intervals: (8 7 3 8 7 3 8 7 3 8 7 3)

notes: (0 8 15 19 27 32)
intervals: (8 7 4 8 5 4 8 7 4 8 5 4)

notes: (0 8 15 21 25 32)
intervals: (8 7 6 4 7 4 8 7 6 4 7 4)

notes: (0 8 15 21 25 33)
intervals: (8 7 6 4 8 3 8 7 6 4 8 3)

notes: (0 8 15 21 26 32)
intervals: (8 7 6 5 6 4 8 7 6 5 6 4)

notes: (0 8 15 21 26 33)
intervals: (8 7 6 5 7 3 8 7 6 5 7 3)

notes: (0 8 15 23 27 32)
intervals: (8 7 8 4 5 4 8 7 8 4 5 4)

notes: (0 8 15 23 27 33)
intervals: (8 7 8 4 6 3 8 7 8 4 6 3)

notes: (0 8 17 21 27 32)
intervals: (8 9 4 6 5 4 8 9 4 6 5 4)

notes: (0 9 13 19 24 28)
intervals: (9 4 6 5 4 8 9 4 6 5 4 8)

notes: (0 9 13 19 24 32)
intervals: (9 4 6 5 8 4 9 4 6 5 8 4)

notes: (0 9 13 19 26 30)
intervals: (9 4 6 7 4 6 9 4 6 7 4 6)

notes: (0 9 13 21 26 32)
intervals: (9 4 8 5 6 4 9 4 8 5 6 4)

notes: (0 9 15 19 26 32)
intervals: (9 6 4 7 6 4 9 6 4 7 6 4)

notes: (0 9 17 21 26 32)
intervals: (9 8 4 5 6 4 9 8 4 5 6 4)

notes: (0 11 15 21 26 32)
intervals: (11 4 6 5 6 4 11 4 6 5 6 4)

notes: (0 11 17 21 26 30)
intervals: (11 6 4 5 4 6 11 6 4 5 4 6)


number of scales found: 141


calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 18th March 2016, 02:07 PM   #344
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
We need a new feature, but it should be easy enough.

notes: (0 3 10 13 21 28)
intervals: (3 7 3 8 7 8 3 7 3 8 7 8)

notes: (0 3 11 18 26 29)
intervals: (3 8 7 8 3 7 3 8 7 8 3 7)

notes: (0 4 9 13 19 30)
intervals: (4 5 4 6 11 6 4 5 4 6 11 6)


I'm practicing any given modulus, here, on a mod12 (conventional) keyboard.

So, I always want a little mod12 reduction, with little | posts where the modulus "resets" , just like in 24EDO.

last entry example: 0 4 9 | 1 7 | 6
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 18th March 2016, 02:35 PM   #345
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
Oh yeah, in harmony includes, we should have a minimum number param.

Easy Peasy.

Having said 014 as a harmony include within a range of 3,
we can also say, inc minimum 3, meaning the scale has to have at least
3 014's.

The harmony minimum number of instances parameter here is calculated from all the possible instances of the cell, so that:

0,1,4,5,7,8,

Has 0,1,4
1,4,5
4,5,7
5.7.8.
7,8,0,
8,0,1

all as 014's. So this has 6 014's.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 18th March 2016, 11:51 PM   #346
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
now displays |'s whenever modulus is greater than 12

eta: caleb changed one line so that comment was after define:

(define wolves '()) ; wolf intervals

let's see if that fixes little problem


; ; okay to change these

(define modulus 12)
(define length-min 6) ; minimum number of notes in scale
(define length-max 8) ; maximum number of notes in scale


(define wolves '()) ; wolf intervals

(define wolf-max 2) ; this many wolves are ok, but no more

(define distance-2-min 1) ; minimum difference between any 2 consecutive notes in scale
(define distance-3-min 3) ; minimum difference between the lowest and highest notes
; of any 3 consecutive notes in scale
; never use these notes
(define bad-notes '())

; #t : don't display scale if it's contained in any other displayed scale
; #f : do
(define require-completeness #t)

; if you don't care about balance, set both balance-in-min and balance-out-min to 0
(define balance-notes '(0 2 4 6 8 10 12 14 16 18 20 22))
(define balance-in-min 0) ; at least this many notes in scale must come from balance-notes
(define balance-out-min 0) ; at least this many notes in scale must come from outside balance-notes

; #t : display multiple spellings if they're all equally good
; #f : never display more than one spelling
(define multiple-spellings #f)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;
; don't change stuff below

(define settings
'(
modulus
length-min
length-max
wolves
wolf-max
distance-2-min
distance-3-min
bad-notes
require-completeness
balance-notes
balance-in-min
balance-out-min
multiple-spellings))

(define (setting-length s)
(string-length (symbol->string s)))

(define (display-setting s len)
(display (make-string (- len (setting-length s)) #\space))
(display s)
(display ": ")
(display (eval s))
(newline))

(define (display-settings)
(let ((len (apply max (map setting-length settings))))
(for-each (lambda (s) (display-setting s len))
settings)))

; A note is represented as a nonnegative integer less than modulus.
; A scale is represented as a list of notes.

(define (interval a b)
(modulo (- b a) modulus))

(define (transpose-note n k)
(modulo (+ n k) modulus))

(define (apply-to-leaves f x)
(cond
((null? x) '())
((pair? x) (cons (apply-to-leaves f (car x))
(apply-to-leaves f (cdr x))))
(else (f x))))

(define (transpose x k)
(apply-to-leaves (lambda (n) (transpose-note n k))
x))

; assumption: x is no longer than y
; does x occur at the beginning of y?
(define (prefix? x y)
(or (null? x)
(and (equal? (car x) (car y))
(prefix? (cdr x) (cdr y)))))

; assumption: d is (- (length y) (length x))
; does x occur anywhere in y?
(define (sublist? x y d)
(and (>= d 0)
(or (prefix? x y)
(sublist? x (cdr y) (- d 1)))))

; ns is a non-empty list of notes
(define (notes->intervals ns)
(let ((first (car ns)))
(let recur ((n first)
(rest (cdr ns)))
(if (null? rest)
(list (interval n first))
(cons (interval n (car rest))
(recur (car rest) (cdr rest)))))))

(define (test-cell x y)
(if (not (= (length x) (length y)))
'different-lengths
(let ((xx (notes->intervals (list-sort < x)))
(yy (notes->intervals (list-sort < y)))
(d (length (cdr y))))
(let* ((y-forward (append (cdr yy) yy))
(y-backward (reverse y-forward)))
(if (or (sublist? xx y-forward d)
(sublist? xx y-backward d))
'same
'different)))))

; return a list of all size-k subsets of list xs
; n is (length xs)
(define (subsets xs n k)
(cond
((zero? k) '(()))
((> k n) '())
(else (append
(map (lambda (s) (cons (car xs) s))
(subsets (cdr xs) (- n 1) (- k 1)))
(subsets (cdr xs) (- n 1) k)))))

(define (display-multiple-12 s)
(let recur ((s s)
(k 0))
(when (pair? s)
(let ((n (- (car s) k)))
(if (< n 12)
(begin (display n) (display " ") (recur (cdr s) k))
(begin (display "| ") (recur s (+ k 12))))))))

(define (display-spellings s)
(let ((spellings (best-spellings s)))
(for-each (lambda (x) (display x) (newline))
(if multiple-spellings
spellings
(list (car spellings))))))

(define (display-scale s)
(display "notes: ")
(display s)
(newline)
(display "intervals: ")
(let ((x (notes->intervals s)))
(display (append x x)))
(newline)
(case modulus
((12) (display-spellings (map (lambda (n) (* n 2)) s)))
((24) (display-spellings s)))
(when (> modulus 12)
(display-multiple-12 s))
(newline))

(define (display-scales ss)
(for-each display-scale ss))

(define (display-note n)
(display n)
(case modulus
((12) (display " ") (display (vector-ref note-names (* n 2))))
((24) (display " ") (display (vector-ref note-names n)))))

(define (print x)
(cond
((number? x) (display-note x))
((and (pair? x) (pair? (car x))) (display-scales x))
((pair? x) (display-scale x))))

(define scales '())

(define (found! scale)
(let ((s (reverse scale)))
(set! scales (cons s scales))
(display #\.)))


; notes is a list of allowable notes, in increasing order
; n-len is the length of notes
; scale is the scale so far, in decreasing order
; s-len is the length of scale
; wolf is the number of wolf intervals in scale
; b-notes is the number of notes in scale that are in balance-notes

; call found! for every scale that follows the rules and
; that can be made by adding to 'scale' any number (> 0)
; of notes from 'notes'
(define (find-scales notes n-len scale s-len wolf b-notes)
(when (and (positive? n-len)
(< s-len length-max)
(>= (+ s-len n-len) length-min))
(let ((n (car notes))
(notes (cdr notes))
(n-len (- n-len 1)))
(find-scales notes n-len scale s-len wolf b-notes)
(when (distances-ok? n scale s-len)
(let ((wolf (+ wolf (count-wolves n scale))))
(when (<= wolf wolf-max)
(let ((b-notes (+ b-notes (if (member n balance-notes) 1 0)))
(scale (cons n scale))
(s-len (+ 1 s-len)))
(find-scales notes n-len scale s-len wolf b-notes)
(when (and (>= s-len length-min)
(balance-ok? s-len b-notes)
(final-distances-ok? scale s-len))
(found! scale)))))))))

(define (distances-ok? n scale len)
(and (>= (interval (car scale) n) distance-2-min)
(or (<= len 1)
(and (>= (interval (cadr scale) n) distance-3-min)
(>= (interval n (list-ref scale (- len 2))) distance-3-min)))))

(define (final-distances-ok? scale len)
(and (>= (interval (car scale) 0) distance-2-min)
(>= (interval (cadr scale) 0) distance-3-min)))

(define (count-wolves n scale)
(fold-left (lambda (sum note)
(+ sum
(if (member (interval note n) wolves) 1 0)
(if (member (interval n note) wolves) 1 0)))
0 scale))

(define (balance-ok? s-len b-notes)
(<= balance-in-min b-notes (- s-len balance-out-min)))

(define note-names
'#(("A" ) ; 0
("A+" "A#-" "Bb-") ; 1
("A#" "Bb" ) ; 2
("A#+" "Bb+" "B-" ) ; 3
("B" ) ; 4
("B+" "C-" ) ; 5
("C" ) ; 6
("C+" "C#-" "Db-") ; 7
("C#" "Db" ) ; 8
("C#+" "Db+" "D-" ) ; 9
("D" ) ; 10
("D+" "D#-" "Eb-") ; 11
("D#" "Eb" ) ; 12
("D#+" "Eb+" "E-" ) ; 13
("E" ) ; 14
("E+" "F-" ) ; 15
("F" ) ; 16
("F+" "F#-" "Gb-") ; 17
("F#" "Gb" ) ; 18
("F#+" "Gb+" "G-" ) ; 19
("G" ) ; 20
("G+" "G#-" "Ab-") ; 21
("G#" "Ab" ) ; 22
("G#+" "Ab+" "A-" ) ; 23
))

; A name code represents, e.g., F#+, as
; a list of three numbers, one for the F,
; one for the # and one for the +.
;
; first number: A through G are 0 through 6, respectively.
; second number: b is -1, # is +1, none is 0.
; third number: - is -1, + is +1, none is 0.

(define code-values
'((#\A . 0)
(#\B . 1)
(#\C . 2)
(#\D . 3)
(#\E . 4)
(#\F . 5)
(#\G . 6)))

; assumes name is properly capitalized
; i.e., first letter is capital, rest aren't
(define (name->code name)
(let ((lst (string->list name)))
(let ((letter (car lst))
(accidentals (cdr lst)))
(list
(cdr (assoc letter code-values))
(cond
((member #\b accidentals) -1)
((member #\# accidentals) +1)
(else 0))
(cond
((member #\- accidentals) -1)
((member #\+ accidentals) +1)
(else 0))))))

(define (code->name code)
(let ((x (car code))
(y (cadr code))
(z (caddr code)))
(string-append
(string (car (list-ref code-values x)))
(case y
((-1) "b")
((+1) "#")
(else ""))
(case z
((-1) "-")
((+1) "+")
(else "")))))

; same structure as note-names, i.e. vector of lists,
; except with each name replaced by the corresponding code
(define name-codes
(vector-map (lambda (name-list) (map name->code name-list))
note-names))

(define note-values
'((#\A . 0)
(#\B . 4)
(#\C . 6)
(#\D . 10)
(#\E . 14)
(#\F . 16)
(#\G . 20)
(#\# . 2)
(#\b . -2)
(#\+ . 1)
(#\- . -1)))

(define (string->note s)
(apply +
(map (lambda (c) (cdr (assoc c note-values)))
(let ((cs (string->list s)))
(cons (char-upcase (car cs))
(map char-downcase (cdr cs)))))))

(define (cross-product . x)
(if (null? x)
'(())
(apply append
(map (lambda (a)
(map (lambda (b) (cons a b))
(apply cross-product (cdr x))))
(car x)))))

(define (vector-increment! v i)
(vector-set! v i (+ 1 (vector-ref v i))))

; measures the extent to which letters are repeated
(define (repetitiveness x) ; x: list of name codes
(let ((v (make-vector 7 0)))
(for-each (lambda (c) (vector-increment! v (car c)))
x)
(apply + (map (lambda (x) (* x x))
(vector->list v)))))

; # of flats or # of sharps, whichever is smaller
(define (inconsistency x) ; x: list of name codes
(let ((v (make-vector 3 0)))
(for-each (lambda (c) (vector-increment! v (+ 1 (cadr c))))
x)
(min (vector-ref v 0)
(vector-ref v 2))))

; returns list of those items x of lst for which (f x) is least
(define (min-scorers f lst)
(let* ((scored-lst (map (lambda (x) (cons (f x) x))
lst))
(min-score (fold-left (lambda (a x) (min a (car x)))
(caar scored-lst) (cdr scored-lst))))
(map cdr
(filter (lambda (x) (equal? (car x) min-score))
scored-lst))))

(define (best-spellings scale)
(let* ((all-spellings (apply cross-product
(map (lambda (n) (vector-ref name-codes n))
scale)))
(best (min-scorers inconsistency
(min-scorers repetitiveness all-spellings))))
(map (lambda (scale) (map code->name scale))
best)))

; x and y are lists of numbers, each in increasing order and containing no duplicates
(define (subset? x y)
(cond
((null? x) #t)
((null? y) #f)
((< (car x) (car y)) #f)
((> (car x) (car y)) (subset? x (cdr y)))
(else (subset? (cdr x) (cdr y)))))

(define (remove-subsets xs)
(remp (lambda (x)
(exists (lambda (x2)
(and (not (equal? x x2))
(subset? x x2)))
xs))
xs))

(define (go)
(set! scales '())
(display-settings)
(newline)
(display "working")
(let ((allowed-notes (remp (lambda (n) (member n bad-notes))
(cdr (iota modulus)))))
(find-scales allowed-notes (length allowed-notes) '(0) 1 0
(if (member 0 balance-notes) 1 0))
(when require-completeness
(set! scales (remove-subsets scales)))
(display "done")
(newline)
(newline)
(display-scales scales)
(newline)
(display "number of scales found: ")
(display (length scales))
(newline)))

(go)



eta2: yep, that was the little problem, just a matter of a little carriage return


number of scales found: 33
> (load "Desktop/microtonal9o.txt")
modulus: 36
length-min: 5
length-max: 7
wolves: (20 22)
wolf-max: 0
distance-2-min: 3
distance-3-min: 9
bad-notes: (1 2 34 35)
require-completeness: #t
balance-notes: (0 3 6 9 12 15 18 21 24 27 30)
balance-in-min: 3
balance-out-min: 3
multiple-spellings: #f

working........................................... .................................................. .................................................. .........done



number of scales found: 141
>



notes: (0 3 10 13 21 28)
intervals: (3 7 3 8 7 8 3 7 3 8 7 8)
0 3 10 | 1 9 | 4
notes: (0 3 11 18 26 29)
intervals: (3 8 7 8 3 7 3 8 7 8 3 7)
0 3 11 | 6 | 2 5
notes: (0 4 9 13 19 30)
intervals: (4 5 4 6 11 6 4 5 4 6 11 6)
0 4 9 | 1 7 | 6
notes: (0 4 9 13 21 28)
intervals: (4 5 4 8 7 8 4 5 4 8 7 8)
0 4 9 | 1 9 | 4
notes: (0 4 9 15 19 28)
intervals: (4 5 6 4 9 8 4 5 6 4 9 8)
0 4 9 | 3 7 | 4
notes: (0 4 9 17 21 28)
intervals: (4 5 8 4 7 8 4 5 8 4 7 8)
0 4 9 | 5 9 | 4
notes: (0 4 10 15 19 27)
intervals: (4 6 5 4 8 9 4 6 5 4 8 9)
0 4 10 | 3 7 | 3
notes: (0 4 10 15 21 25)
intervals: (4 6 5 6 4 11 4 6 5 6 4 11)
0 4 10 | 3 9 | 1
notes: (0 4 10 15 21 28)
intervals: (4 6 5 6 7 8 4 6 5 6 7 8)
0 4 10 | 3 9 | 4
notes: (0 4 10 15 23 27)
intervals: (4 6 5 8 4 9 4 6 5 8 4 9)
0 4 10 | 3 11 | 3
notes: (0 4 10 17 21 27)
intervals: (4 6 7 4 6 9 4 6 7 4 6 9)
0 4 10 | 5 9 | 3
notes: (0 4 10 21 27 31)
intervals: (4 6 11 6 4 5 4 6 11 6 4 5)
0 4 10 | 9 | 3 7
notes: (0 4 11 15 21 28)
intervals: (4 7 4 6 7 8 4 7 4 6 7 8)
0 4 11 | 3 9 | 4
notes: (0 4 11 15 23 30)
intervals: (4 7 4 8 7 6 4 7 4 8 7 6)
0 4 11 | 3 11 | 6
notes: (0 4 11 17 21 30)
intervals: (4 7 6 4 9 6 4 7 6 4 9 6)
0 4 11 | 5 9 | 6
notes: (0 4 12 17 21 29)
intervals: (4 8 5 4 8 7 4 8 5 4 8 7)
0 4 | 0 5 9 | 5
notes: (0 4 12 17 23 27)
intervals: (4 8 5 6 4 9 4 8 5 6 4 9)
0 4 | 0 5 11 | 3
notes: (0 4 12 17 23 30)
intervals: (4 8 5 6 7 6 4 8 5 6 7 6)
0 4 | 0 5 11 | 6
notes: (0 4 12 17 25 30)
intervals: (4 8 5 8 5 6 4 8 5 8 5 6)
0 4 | 0 5 | 1 6
notes: (0 4 12 19 23 30)
intervals: (4 8 7 4 7 6 4 8 7 4 7 6)
0 4 | 0 7 11 | 6
notes: (0 4 12 19 25 30)
intervals: (4 8 7 6 5 6 4 8 7 6 5 6)
0 4 | 0 7 | 1 6
notes: (0 4 12 19 27 31)
intervals: (4 8 7 8 4 5 4 8 7 8 4 5)
0 4 | 0 7 | 3 7
notes: (0 4 12 21 25 31)
intervals: (4 8 9 4 6 5 4 8 9 4 6 5)
0 4 | 0 9 | 1 7
notes: (0 4 13 21 25 30)
intervals: (4 9 8 4 5 6 4 9 8 4 5 6)
0 4 | 1 9 | 1 6
notes: (0 4 15 19 25 30)
intervals: (4 11 4 6 5 6 4 11 4 6 5 6)
0 4 | 3 7 | 1 6
notes: (0 5 9 15 26 32)
intervals: (5 4 6 11 6 4 5 4 6 11 6 4)
0 5 9 | 3 | 2 8
notes: (0 5 9 17 24 28)
intervals: (5 4 8 7 4 8 5 4 8 7 4 8)
0 5 9 | 5 | 0 4
notes: (0 5 9 17 24 32)
intervals: (5 4 8 7 8 4 5 4 8 7 8 4)
0 5 9 | 5 | 0 8
notes: (0 5 9 17 26 30)
intervals: (5 4 8 9 4 6 5 4 8 9 4 6)
0 5 9 | 5 | 2 6
notes: (0 5 11 15 23 30)
intervals: (5 6 4 8 7 6 5 6 4 8 7 6)
0 5 11 | 3 11 | 6
notes: (0 5 11 15 24 28)
intervals: (5 6 4 9 4 8 5 6 4 9 4 8)
0 5 11 | 3 | 0 4
notes: (0 5 11 15 24 32)
intervals: (5 6 4 9 8 4 5 6 4 9 8 4)
0 5 11 | 3 | 0 8
notes: (0 5 11 15 26 30)
intervals: (5 6 4 11 4 6 5 6 4 11 4 6)
0 5 11 | 3 | 2 6
notes: (0 5 11 17 24 30)
intervals: (5 6 6 7 6 6 5 6 6 7 6 6)
0 5 11 | 5 | 0 6
notes: (0 5 11 18 23 30)
intervals: (5 6 7 5 7 6 5 6 7 5 7 6)
0 5 11 | 6 11 | 6
notes: (0 5 11 18 24 28)
intervals: (5 6 7 6 4 8 5 6 7 6 4 8)
0 5 11 | 6 | 0 4
notes: (0 5 11 18 24 29)
intervals: (5 6 7 6 5 7 5 6 7 6 5 7)
0 5 11 | 6 | 0 5
notes: (0 5 11 18 26 30)
intervals: (5 6 7 8 4 6 5 6 7 8 4 6)
0 5 11 | 6 | 2 6
notes: (0 5 12 17 23 30)
intervals: (5 7 5 6 7 6 5 7 5 6 7 6)
0 5 | 0 5 11 | 6
notes: (0 5 12 17 24 29)
intervals: (5 7 5 7 5 7 5 7 5 7 5 7)
0 5 | 0 5 | 0 5
notes: (0 5 12 18 23 29)
intervals: (5 7 6 5 6 7 5 7 6 5 6 7)
0 5 | 0 6 11 | 5
notes: (0 5 12 18 23 31)
intervals: (5 7 6 5 8 5 5 7 6 5 8 5)
0 5 | 0 6 11 | 7
notes: (0 5 13 17 24 30)
intervals: (5 8 4 7 6 6 5 8 4 7 6 6)
0 5 | 1 5 | 0 6
notes: (0 5 13 18 23 30)
intervals: (5 8 5 5 7 6 5 8 5 5 7 6)
0 5 | 1 6 11 | 6
notes: (0 5 13 18 24 28)
intervals: (5 8 5 6 4 8 5 8 5 6 4 8)
0 5 | 1 6 | 0 4
notes: (0 5 13 18 24 31)
intervals: (5 8 5 6 7 5 5 8 5 6 7 5)
0 5 | 1 6 | 0 7
notes: (0 5 13 18 26 30)
intervals: (5 8 5 8 4 6 5 8 5 8 4 6)
0 5 | 1 6 | 2 6
notes: (0 6 10 15 19 25)
intervals: (6 4 5 4 6 11 6 4 5 4 6 11)
0 6 10 | 3 7 | 1
notes: (0 6 10 15 21 25 33)
intervals: (6 4 5 6 4 8 3 6 4 5 6 4 8 3)
0 6 10 | 3 9 | 1 9
notes: (0 6 10 15 23 27 33)
intervals: (6 4 5 8 4 6 3 6 4 5 8 4 6 3)
0 6 10 | 3 11 | 3 9
notes: (0 6 10 17 21 29)
intervals: (6 4 7 4 8 7 6 4 7 4 8 7)
0 6 10 | 5 9 | 5
notes: (0 6 10 17 23 27)
intervals: (6 4 7 6 4 9 6 4 7 6 4 9)
0 6 10 | 5 11 | 3
notes: (0 6 10 18 23 27 33)
intervals: (6 4 8 5 4 6 3 6 4 8 5 4 6 3)
0 6 10 | 6 11 | 3 9
notes: (0 6 10 18 23 29)
intervals: (6 4 8 5 6 7 6 4 8 5 6 7)
0 6 10 | 6 11 | 5
notes: (0 6 10 18 23 31)
intervals: (6 4 8 5 8 5 6 4 8 5 8 5)
0 6 10 | 6 11 | 7
notes: (0 6 10 18 25 29)
intervals: (6 4 8 7 4 7 6 4 8 7 4 7)
0 6 10 | 6 | 1 5
notes: (0 6 10 18 25 31)
intervals: (6 4 8 7 6 5 6 4 8 7 6 5)
0 6 10 | 6 | 1 7
notes: (0 6 10 18 25 33)
intervals: (6 4 8 7 8 3 6 4 8 7 8 3)
0 6 10 | 6 | 1 9
notes: (0 6 10 19 27 31)
intervals: (6 4 9 8 4 5 6 4 9 8 4 5)
0 6 10 | 7 | 3 7
notes: (0 6 10 21 25 31)
intervals: (6 4 11 4 6 5 6 4 11 4 6 5)
0 6 10 | 9 | 1 7
notes: (0 6 11 15 23 32)
intervals: (6 5 4 8 9 4 6 5 4 8 9 4)
0 6 11 | 3 11 | 8
notes: (0 6 11 17 21 29)
intervals: (6 5 6 4 8 7 6 5 6 4 8 7)
0 6 11 | 5 9 | 5
notes: (0 6 11 17 21 32)
intervals: (6 5 6 4 11 4 6 5 6 4 11 4)
0 6 11 | 5 9 | 8
notes: (0 6 11 17 23 30)
intervals: (6 5 6 6 7 6 6 5 6 6 7 6)
0 6 11 | 5 11 | 6
notes: (0 6 11 17 24 29)
intervals: (6 5 6 7 5 7 6 5 6 7 5 7)
0 6 11 | 5 | 0 5
notes: (0 6 11 17 24 32)
intervals: (6 5 6 7 8 4 6 5 6 7 8 4)
0 6 11 | 5 | 0 8
notes: (0 6 11 18 23 29)
intervals: (6 5 7 5 6 7 6 5 7 5 6 7)
0 6 11 | 6 11 | 5
notes: (0 6 11 19 23 30)
intervals: (6 5 8 4 7 6 6 5 8 4 7 6)
0 6 11 | 7 11 | 6
notes: (0 6 11 19 24 29)
intervals: (6 5 8 5 5 7 6 5 8 5 5 7)
0 6 11 | 7 | 0 5
notes: (0 6 11 19 24 32)
intervals: (6 5 8 5 8 4 6 5 8 5 8 4)
0 6 11 | 7 | 0 8
notes: (0 6 12 17 23 29)
intervals: (6 6 5 6 6 7 6 6 5 6 6 7)
0 6 | 0 5 11 | 5
notes: (0 6 12 17 25 29)
intervals: (6 6 5 8 4 7 6 6 5 8 4 7)
0 6 | 0 5 | 1 5
notes: (0 6 12 19 23 29)
intervals: (6 6 7 4 6 7 6 6 7 4 6 7)
0 6 | 0 7 11 | 5
notes: (0 6 12 19 23 31)
intervals: (6 6 7 4 8 5 6 6 7 4 8 5)
0 6 | 0 7 11 | 7
notes: (0 6 12 19 25 29)
intervals: (6 6 7 6 4 7 6 6 7 6 4 7)
0 6 | 0 7 | 1 5
notes: (0 6 12 19 25 31)
intervals: (6 6 7 6 6 5 6 6 7 6 6 5)
0 6 | 0 7 | 1 7
notes: (0 6 13 17 23 30)
intervals: (6 7 4 6 7 6 6 7 4 6 7 6)
0 6 | 1 5 11 | 6
notes: (0 6 13 17 24 32)
intervals: (6 7 4 7 8 4 6 7 4 7 8 4)
0 6 | 1 5 | 0 8
notes: (0 6 13 17 25 30)
intervals: (6 7 4 8 5 6 6 7 4 8 5 6)
0 6 | 1 5 | 1 6
notes: (0 6 13 18 23 31)
intervals: (6 7 5 5 8 5 6 7 5 5 8 5)
0 6 | 1 6 11 | 7
notes: (0 6 13 18 25 31)
intervals: (6 7 5 7 6 5 6 7 5 7 6 5)
0 6 | 1 6 | 1 7
notes: (0 6 13 19 23 30)
intervals: (6 7 6 4 7 6 6 7 6 4 7 6)
0 6 | 1 7 11 | 6
notes: (0 6 13 19 24 31)
intervals: (6 7 6 5 7 5 6 7 6 5 7 5)
0 6 | 1 7 | 0 7
notes: (0 6 13 19 24 32)
intervals: (6 7 6 5 8 4 6 7 6 5 8 4)
0 6 | 1 7 | 0 8
notes: (0 6 13 19 25 30)
intervals: (6 7 6 6 5 6 6 7 6 6 5 6)
0 6 | 1 7 | 1 6
notes: (0 6 13 21 25 31)
intervals: (6 7 8 4 6 5 6 7 8 4 6 5)
0 6 | 1 9 | 1 7
notes: (0 6 13 21 25 32)
intervals: (6 7 8 4 7 4 6 7 8 4 7 4)
0 6 | 1 9 | 1 8
notes: (0 6 15 19 25 32)
intervals: (6 9 4 6 7 4 6 9 4 6 7 4)
0 6 | 3 7 | 1 8
notes: (0 6 17 23 27 32)
intervals: (6 11 6 4 5 4 6 11 6 4 5 4)
0 6 | 5 11 | 3 8
notes: (0 7 11 17 24 30)
intervals: (7 4 6 7 6 6 7 4 6 7 6 6)
0 7 11 | 5 | 0 6
notes: (0 7 11 18 24 28)
intervals: (7 4 7 6 4 8 7 4 7 6 4 8)
0 7 11 | 6 | 0 4
notes: (0 7 11 18 26 30)
intervals: (7 4 7 8 4 6 7 4 7 8 4 6)
0 7 11 | 6 | 2 6
notes: (0 7 11 19 24 30)
intervals: (7 4 8 5 6 6 7 4 8 5 6 6)
0 7 11 | 7 | 0 6
notes: (0 7 12 17 25 30)
intervals: (7 5 5 8 5 6 7 5 5 8 5 6)
0 7 | 0 5 | 1 6
notes: (0 7 12 18 25 31)
intervals: (7 5 6 7 6 5 7 5 6 7 6 5)
0 7 | 0 6 | 1 7
notes: (0 7 12 18 25 33)
intervals: (7 5 6 7 8 3 7 5 6 7 8 3)
0 7 | 0 6 | 1 9
notes: (0 7 12 19 24 31)
intervals: (7 5 7 5 7 5 7 5 7 5 7 5)
0 7 | 0 7 | 0 7
notes: (0 7 12 19 25 30)
intervals: (7 5 7 6 5 6 7 5 7 6 5 6)
0 7 | 0 7 | 1 6
notes: (0 7 13 17 24 30)
intervals: (7 6 4 7 6 6 7 6 4 7 6 6)
0 7 | 1 5 | 0 6
notes: (0 7 13 18 24 28)
intervals: (7 6 5 6 4 8 7 6 5 6 4 8)
0 7 | 1 6 | 0 4
notes: (0 7 13 18 24 31)
intervals: (7 6 5 6 7 5 7 6 5 6 7 5)
0 7 | 1 6 | 0 7
notes: (0 7 13 18 25 30)
intervals: (7 6 5 7 5 6 7 6 5 7 5 6)
0 7 | 1 6 | 1 6
notes: (0 7 13 18 26 30)
intervals: (7 6 5 8 4 6 7 6 5 8 4 6)
0 7 | 1 6 | 2 6
notes: (0 7 13 19 24 30)
intervals: (7 6 6 5 6 6 7 6 6 5 6 6)
0 7 | 1 7 | 0 6
notes: (0 7 15 18 25 28)
intervals: (7 8 3 7 3 8 7 8 3 7 3 8)
0 7 | 3 6 | 1 4
notes: (0 7 15 18 25 33)
intervals: (7 8 3 7 8 3 7 8 3 7 8 3)
0 7 | 3 6 | 1 9
notes: (0 7 15 18 26 33)
intervals: (7 8 3 8 7 3 7 8 3 8 7 3)
0 7 | 3 6 | 2 9
notes: (0 7 15 19 24 28)
intervals: (7 8 4 5 4 8 7 8 4 5 4 8)
0 7 | 3 7 | 0 4
notes: (0 7 15 19 24 32)
intervals: (7 8 4 5 8 4 7 8 4 5 8 4)
0 7 | 3 7 | 0 8
notes: (0 7 15 19 25 30)
intervals: (7 8 4 6 5 6 7 8 4 6 5 6)
0 7 | 3 7 | 1 6
notes: (0 7 15 19 26 30)
intervals: (7 8 4 7 4 6 7 8 4 7 4 6)
0 7 | 3 7 | 2 6
notes: (0 8 11 18 21 29)
intervals: (8 3 7 3 8 7 8 3 7 3 8 7)
0 8 11 | 6 9 | 5
notes: (0 8 12 17 21 29)
intervals: (8 4 5 4 8 7 8 4 5 4 8 7)
0 8 | 0 5 9 | 5
notes: (0 8 12 17 23 27)
intervals: (8 4 5 6 4 9 8 4 5 6 4 9)
0 8 | 0 5 11 | 3
notes: (0 8 12 18 23 27 33)
intervals: (8 4 6 5 4 6 3 8 4 6 5 4 6 3)
0 8 | 0 6 11 | 3 9
notes: (0 8 12 18 23 29)
intervals: (8 4 6 5 6 7 8 4 6 5 6 7)
0 8 | 0 6 11 | 5
notes: (0 8 12 18 23 31)
intervals: (8 4 6 5 8 5 8 4 6 5 8 5)
0 8 | 0 6 11 | 7
notes: (0 8 12 18 25 29)
intervals: (8 4 6 7 4 7 8 4 6 7 4 7)
0 8 | 0 6 | 1 5
notes: (0 8 12 18 25 31)
intervals: (8 4 6 7 6 5 8 4 6 7 6 5)
0 8 | 0 6 | 1 7
notes: (0 8 12 18 25 33)
intervals: (8 4 6 7 8 3 8 4 6 7 8 3)
0 8 | 0 6 | 1 9
notes: (0 8 12 19 27 31)
intervals: (8 4 7 8 4 5 8 4 7 8 4 5)
0 8 | 0 7 | 3 7
notes: (0 8 12 21 25 31)
intervals: (8 4 9 4 6 5 8 4 9 4 6 5)
0 8 | 0 9 | 1 7
notes: (0 8 12 21 25 33)
intervals: (8 4 9 4 8 3 8 4 9 4 8 3)
0 8 | 0 9 | 1 9
notes: (0 8 15 18 25 33)
intervals: (8 7 3 7 8 3 8 7 3 7 8 3)
0 8 | 3 6 | 1 9
notes: (0 8 15 18 26 33)
intervals: (8 7 3 8 7 3 8 7 3 8 7 3)
0 8 | 3 6 | 2 9
notes: (0 8 15 19 27 32)
intervals: (8 7 4 8 5 4 8 7 4 8 5 4)
0 8 | 3 7 | 3 8
notes: (0 8 15 21 25 32)
intervals: (8 7 6 4 7 4 8 7 6 4 7 4)
0 8 | 3 9 | 1 8
notes: (0 8 15 21 25 33)
intervals: (8 7 6 4 8 3 8 7 6 4 8 3)
0 8 | 3 9 | 1 9
notes: (0 8 15 21 26 32)
intervals: (8 7 6 5 6 4 8 7 6 5 6 4)
0 8 | 3 9 | 2 8
notes: (0 8 15 21 26 33)
intervals: (8 7 6 5 7 3 8 7 6 5 7 3)
0 8 | 3 9 | 2 9
notes: (0 8 15 23 27 32)
intervals: (8 7 8 4 5 4 8 7 8 4 5 4)
0 8 | 3 11 | 3 8
notes: (0 8 15 23 27 33)
intervals: (8 7 8 4 6 3 8 7 8 4 6 3)
0 8 | 3 11 | 3 9
notes: (0 8 17 21 27 32)
intervals: (8 9 4 6 5 4 8 9 4 6 5 4)
0 8 | 5 9 | 3 8
notes: (0 9 13 19 24 28)
intervals: (9 4 6 5 4 8 9 4 6 5 4 8)
0 9 | 1 7 | 0 4
notes: (0 9 13 19 24 32)
intervals: (9 4 6 5 8 4 9 4 6 5 8 4)
0 9 | 1 7 | 0 8
notes: (0 9 13 19 26 30)
intervals: (9 4 6 7 4 6 9 4 6 7 4 6)
0 9 | 1 7 | 2 6
notes: (0 9 13 21 26 32)
intervals: (9 4 8 5 6 4 9 4 8 5 6 4)
0 9 | 1 9 | 2 8
notes: (0 9 15 19 26 32)
intervals: (9 6 4 7 6 4 9 6 4 7 6 4)
0 9 | 3 7 | 2 8
notes: (0 9 17 21 26 32)
intervals: (9 8 4 5 6 4 9 8 4 5 6 4)
0 9 | 5 9 | 2 8
notes: (0 11 15 21 26 32)
intervals: (11 4 6 5 6 4 11 4 6 5 6 4)
0 11 | 3 9 | 2 8
notes: (0 11 17 21 26 30)
intervals: (11 6 4 5 4 6 11 6 4 5 4 6)
0 11 | 5 9 | 2 6


Last edited by calebprime; 19th March 2016 at 12:33 AM.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 19th March 2016, 02:32 AM   #347
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
We'll call the version with the | modular notation for practicing,
um, we'll call that version 9b.

This also fixes little spacing problem.

; okay to change these

(define modulus 36)
(define length-min 5) ; minimum number of notes in scale
(define length-max 7) ; maximum number of notes in scale

; wolf intervals
(define wolves '(20 22))

(define wolf-max 0) ; this many wolves are ok, but no more

(define distance-2-min 3) ; minimum difference between any 2 consecutive notes in scale
(define distance-3-min 9) ; minimum difference between the lowest and highest notes
; of any 3 consecutive notes in scale
; never use these notes
(define bad-notes '(1 2 34 35))

; #t : don't display scale if it's contained in any other displayed scale
; #f : do
(define require-completeness #t)

; if you don't care about balance, set both balance-in-min and balance-out-min to 0
(define balance-notes '(0 3 6 9 12 15 18 21 24 27 30))
(define balance-in-min 3) ; at least this many notes in scale must come from balance-notes
(define balance-out-min 3) ; at least this many notes in scale must come from outside balance-notes

; #t : display multiple spellings if they're all equally good
; #f : never display more than one spelling
(define multiple-spellings #f)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;
; don't change stuff below

(define settings
'(
modulus
length-min
length-max
wolves
wolf-max
distance-2-min
distance-3-min
bad-notes
require-completeness
balance-notes
balance-in-min
balance-out-min
multiple-spellings))

(define (setting-length s)
(string-length (symbol->string s)))

(define (display-setting s len)
(display (make-string (- len (setting-length s)) #\space))
(display s)
(display ": ")
(display (eval s))
(newline))

(define (display-settings)
(let ((len (apply max (map setting-length settings))))
(for-each (lambda (s) (display-setting s len))
settings)))

; A note is represented as a nonnegative integer less than modulus.
; A scale is represented as a list of notes.

(define (interval a b)
(modulo (- b a) modulus))

(define (transpose-note n k)
(modulo (+ n k) modulus))

(define (apply-to-leaves f x)
(cond
((null? x) '())
((pair? x) (cons (apply-to-leaves f (car x))
(apply-to-leaves f (cdr x))))
(else (f x))))

(define (transpose x k)
(apply-to-leaves (lambda (n) (transpose-note n k))
x))

; assumption: x is no longer than y
; does x occur at the beginning of y?
(define (prefix? x y)
(or (null? x)
(and (equal? (car x) (car y))
(prefix? (cdr x) (cdr y)))))

; assumption: d is (- (length y) (length x))
; does x occur anywhere in y?
(define (sublist? x y d)
(and (>= d 0)
(or (prefix? x y)
(sublist? x (cdr y) (- d 1)))))

; ns is a non-empty list of notes
(define (notes->intervals ns)
(let ((first (car ns)))
(let recur ((n first)
(rest (cdr ns)))
(if (null? rest)
(list (interval n first))
(cons (interval n (car rest))
(recur (car rest) (cdr rest)))))))

(define (test-cell x y)
(if (not (= (length x) (length y)))
'different-lengths
(let ((xx (notes->intervals (list-sort < x)))
(yy (notes->intervals (list-sort < y)))
(d (length (cdr y))))
(let* ((y-forward (append (cdr yy) yy))
(y-backward (reverse y-forward)))
(if (or (sublist? xx y-forward d)
(sublist? xx y-backward d))
'same
'different)))))

; return a list of all size-k subsets of list xs
; n is (length xs)
(define (subsets xs n k)
(cond
((zero? k) '(()))
((> k n) '())
(else (append
(map (lambda (s) (cons (car xs) s))
(subsets (cdr xs) (- n 1) (- k 1)))
(subsets (cdr xs) (- n 1) k)))))

(define (display-multiple-12 s)
(let recur ((s s)
(k 0))
(when (pair? s)
(let ((n (- (car s) k)))
(if (< n 12)
(begin (display n) (display " ") (recur (cdr s) k))
(begin (display "| ") (recur s (+ k 12))))))))

(define (display-spellings s)
(let ((spellings (best-spellings s)))
(for-each (lambda (x) (display x) (newline))
(if multiple-spellings
spellings
(list (car spellings))))))

(define (display-scale s)
(display "notes: ")
(display s)
(newline)
(display "intervals: ")
(let ((x (notes->intervals s)))
(display (append x x)))
(newline)
(case modulus
((12) (display-spellings (map (lambda (n) (* n 2)) s)))
((24) (display-spellings s)))
(when (> modulus 12)
(display-multiple-12 s)
(newline))
(newline))

(define (display-scales ss)
(for-each display-scale ss))

(define (display-note n)
(display n)
(case modulus
((12) (display " ") (display (vector-ref note-names (* n 2))))
((24) (display " ") (display (vector-ref note-names n)))))

(define (print x)
(cond
((number? x) (display-note x))
((and (pair? x) (pair? (car x))) (display-scales x))
((pair? x) (display-scale x))))

(define scales '())

(define (found! scale)
(let ((s (reverse scale)))
(set! scales (cons s scales))
(display #\.)))


; notes is a list of allowable notes, in increasing order
; n-len is the length of notes
; scale is the scale so far, in decreasing order
; s-len is the length of scale
; wolf is the number of wolf intervals in scale
; b-notes is the number of notes in scale that are in balance-notes

; call found! for every scale that follows the rules and
; that can be made by adding to 'scale' any number (> 0)
; of notes from 'notes'
(define (find-scales notes n-len scale s-len wolf b-notes)
(when (and (positive? n-len)
(< s-len length-max)
(>= (+ s-len n-len) length-min))
(let ((n (car notes))
(notes (cdr notes))
(n-len (- n-len 1)))
(find-scales notes n-len scale s-len wolf b-notes)
(when (distances-ok? n scale s-len)
(let ((wolf (+ wolf (count-wolves n scale))))
(when (<= wolf wolf-max)
(let ((b-notes (+ b-notes (if (member n balance-notes) 1 0)))
(scale (cons n scale))
(s-len (+ 1 s-len)))
(find-scales notes n-len scale s-len wolf b-notes)
(when (and (>= s-len length-min)
(balance-ok? s-len b-notes)
(final-distances-ok? scale s-len))
(found! scale)))))))))

(define (distances-ok? n scale len)
(and (>= (interval (car scale) n) distance-2-min)
(or (<= len 1)
(and (>= (interval (cadr scale) n) distance-3-min)
(>= (interval n (list-ref scale (- len 2))) distance-3-min)))))

(define (final-distances-ok? scale len)
(and (>= (interval (car scale) 0) distance-2-min)
(>= (interval (cadr scale) 0) distance-3-min)))

(define (count-wolves n scale)
(fold-left (lambda (sum note)
(+ sum
(if (member (interval note n) wolves) 1 0)
(if (member (interval n note) wolves) 1 0)))
0 scale))

(define (balance-ok? s-len b-notes)
(<= balance-in-min b-notes (- s-len balance-out-min)))

(define note-names
'#(("A" ) ; 0
("A+" "A#-" "Bb-") ; 1
("A#" "Bb" ) ; 2
("A#+" "Bb+" "B-" ) ; 3
("B" ) ; 4
("B+" "C-" ) ; 5
("C" ) ; 6
("C+" "C#-" "Db-") ; 7
("C#" "Db" ) ; 8
("C#+" "Db+" "D-" ) ; 9
("D" ) ; 10
("D+" "D#-" "Eb-") ; 11
("D#" "Eb" ) ; 12
("D#+" "Eb+" "E-" ) ; 13
("E" ) ; 14
("E+" "F-" ) ; 15
("F" ) ; 16
("F+" "F#-" "Gb-") ; 17
("F#" "Gb" ) ; 18
("F#+" "Gb+" "G-" ) ; 19
("G" ) ; 20
("G+" "G#-" "Ab-") ; 21
("G#" "Ab" ) ; 22
("G#+" "Ab+" "A-" ) ; 23
))

; A name code represents, e.g., F#+, as
; a list of three numbers, one for the F,
; one for the # and one for the +.
;
; first number: A through G are 0 through 6, respectively.
; second number: b is -1, # is +1, none is 0.
; third number: - is -1, + is +1, none is 0.

(define code-values
'((#\A . 0)
(#\B . 1)
(#\C . 2)
(#\D . 3)
(#\E . 4)
(#\F . 5)
(#\G . 6)))

; assumes name is properly capitalized
; i.e., first letter is capital, rest aren't
(define (name->code name)
(let ((lst (string->list name)))
(let ((letter (car lst))
(accidentals (cdr lst)))
(list
(cdr (assoc letter code-values))
(cond
((member #\b accidentals) -1)
((member #\# accidentals) +1)
(else 0))
(cond
((member #\- accidentals) -1)
((member #\+ accidentals) +1)
(else 0))))))

(define (code->name code)
(let ((x (car code))
(y (cadr code))
(z (caddr code)))
(string-append
(string (car (list-ref code-values x)))
(case y
((-1) "b")
((+1) "#")
(else ""))
(case z
((-1) "-")
((+1) "+")
(else "")))))

; same structure as note-names, i.e. vector of lists,
; except with each name replaced by the corresponding code
(define name-codes
(vector-map (lambda (name-list) (map name->code name-list))
note-names))

(define note-values
'((#\A . 0)
(#\B . 4)
(#\C . 6)
(#\D . 10)
(#\E . 14)
(#\F . 16)
(#\G . 20)
(#\# . 2)
(#\b . -2)
(#\+ . 1)
(#\- . -1)))

(define (string->note s)
(apply +
(map (lambda (c) (cdr (assoc c note-values)))
(let ((cs (string->list s)))
(cons (char-upcase (car cs))
(map char-downcase (cdr cs)))))))

(define (cross-product . x)
(if (null? x)
'(())
(apply append
(map (lambda (a)
(map (lambda (b) (cons a b))
(apply cross-product (cdr x))))
(car x)))))

(define (vector-increment! v i)
(vector-set! v i (+ 1 (vector-ref v i))))

; measures the extent to which letters are repeated
(define (repetitiveness x) ; x: list of name codes
(let ((v (make-vector 7 0)))
(for-each (lambda (c) (vector-increment! v (car c)))
x)
(apply + (map (lambda (x) (* x x))
(vector->list v)))))

; # of flats or # of sharps, whichever is smaller
(define (inconsistency x) ; x: list of name codes
(let ((v (make-vector 3 0)))
(for-each (lambda (c) (vector-increment! v (+ 1 (cadr c))))
x)
(min (vector-ref v 0)
(vector-ref v 2))))

; returns list of those items x of lst for which (f x) is least
(define (min-scorers f lst)
(let* ((scored-lst (map (lambda (x) (cons (f x) x))
lst))
(min-score (fold-left (lambda (a x) (min a (car x)))
(caar scored-lst) (cdr scored-lst))))
(map cdr
(filter (lambda (x) (equal? (car x) min-score))
scored-lst))))

(define (best-spellings scale)
(let* ((all-spellings (apply cross-product
(map (lambda (n) (vector-ref name-codes n))
scale)))
(best (min-scorers inconsistency
(min-scorers repetitiveness all-spellings))))
(map (lambda (scale) (map code->name scale))
best)))

; x and y are lists of numbers, each in increasing order and containing no duplicates
(define (subset? x y)
(cond
((null? x) #t)
((null? y) #f)
((< (car x) (car y)) #f)
((> (car x) (car y)) (subset? x (cdr y)))
(else (subset? (cdr x) (cdr y)))))

(define (remove-subsets xs)
(remp (lambda (x)
(exists (lambda (x2)
(and (not (equal? x x2))
(subset? x x2)))
xs))
xs))

(define (go)
(set! scales '())
(display-settings)
(newline)
(display "working")
(let ((allowed-notes (remp (lambda (n) (member n bad-notes))
(cdr (iota modulus)))))
(find-scales allowed-notes (length allowed-notes) '(0) 1 0
(if (member 0 balance-notes) 1 0))
(when require-completeness
(set! scales (remove-subsets scales)))
(display "done")
(newline)
(newline)
(display-scales scales)
(newline)
(display "number of scales found: ")
(display (length scales))
(newline)))

(go)
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 20th March 2016, 04:18 AM   #348
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
Version 10:

It was removing incomplete scales,
which was very slow.

Now it's much faster.

Also I got rid of the dots. I can
put them back if you like them.

; okay to change these

(define modulus 24)
(define length-min 5) ; minimum number of notes in scale
(define length-max 8) ; maximum number of notes in scale

; wolf intervals
(define wolves '(13 15))

(define wolf-max 5) ; this many wolves are ok, but no more

(define distance-2-min 1) ; minimum difference between any 2 consecutive notes in scale
(define distance-3-min 3) ; minimum difference between the lowest and highest notes
; of any 3 consecutive notes in scale
; never use these notes
(define bad-notes '(1 13 15 23))

; #t : don't display scale if it's contained in any other displayed scale
; #f : do
(define require-completeness #t)

; if you don't care about balance, set both balance-in-min and balance-out-min to 0
(define balance-notes '(0 2 4 6 8 10 12 14 16 18 20 22))
(define balance-in-min 1) ; at least this many notes in scale must come from balance-notes
(define balance-out-min 3) ; at least this many notes in scale must come from outside balance-notes

; #t : display multiple spellings if they're all equally good
; #f : never display more than one spelling
(define multiple-spellings #f)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;
; don't change stuff below

(define settings
'(
modulus
length-min
length-max
wolves
wolf-max
distance-2-min
distance-3-min
bad-notes
require-completeness
balance-notes
balance-in-min
balance-out-min
multiple-spellings))

(define (setting-length s)
(string-length (symbol->string s)))

(define (display-setting s len)
(display (make-string (- len (setting-length s)) #\space))
(display s)
(display ": ")
(display (eval s))
(newline))

(define (display-settings)
(let ((len (apply max (map setting-length settings))))
(for-each (lambda (s) (display-setting s len))
settings)))

; A note is represented as a nonnegative integer less than modulus.
; A scale is represented as a list of notes.

(define (interval a b)
(modulo (- b a) modulus))

(define (transpose-note n k)
(modulo (+ n k) modulus))

(define (apply-to-leaves f x)
(cond
((null? x) '())
((pair? x) (cons (apply-to-leaves f (car x))
(apply-to-leaves f (cdr x))))
(else (f x))))

(define (transpose x k)
(apply-to-leaves (lambda (n) (transpose-note n k))
x))

; assumption: x is no longer than y
; does x occur at the beginning of y?
(define (prefix? x y)
(or (null? x)
(and (equal? (car x) (car y))
(prefix? (cdr x) (cdr y)))))

; assumption: d is (- (length y) (length x))
; does x occur anywhere in y?
(define (sublist? x y d)
(and (>= d 0)
(or (prefix? x y)
(sublist? x (cdr y) (- d 1)))))

; ns is a non-empty list of notes
(define (notes->intervals ns)
(let ((first (car ns)))
(let recur ((n first)
(rest (cdr ns)))
(if (null? rest)
(list (interval n first))
(cons (interval n (car rest))
(recur (car rest) (cdr rest)))))))

(define (test-cell x y)
(if (not (= (length x) (length y)))
'different-lengths
(let ((xx (notes->intervals (list-sort < x)))
(yy (notes->intervals (list-sort < y)))
(d (length (cdr y))))
(let* ((y-forward (append (cdr yy) yy))
(y-backward (reverse y-forward)))
(if (or (sublist? xx y-forward d)
(sublist? xx y-backward d))
'same
'different)))))

; return a list of all size-k subsets of list xs
; n is (length xs)
(define (subsets xs n k)
(cond
((zero? k) '(()))
((> k n) '())
(else (append
(map (lambda (s) (cons (car xs) s))
(subsets (cdr xs) (- n 1) (- k 1)))
(subsets (cdr xs) (- n 1) k)))))

(define (display-multiple-12 s)
(let recur ((s s)
(k 0))
(when (pair? s)
(let ((n (- (car s) k)))
(if (< n 12)
(begin (display n) (display " ") (recur (cdr s) k))
(begin (display "| ") (recur s (+ k 12))))))))

(define (display-spellings s)
(let ((spellings (best-spellings s)))
(for-each (lambda (x) (display x) (newline))
(if multiple-spellings
spellings
(list (car spellings))))))

(define (display-scale s)
(display "notes: ")
(display s)
(newline)
(display "intervals: ")
(let ((x (notes->intervals s)))
(display (append x x)))
(newline)
(case modulus
((12) (display-spellings (map (lambda (n) (* n 2)) s)))
((24) (display-spellings s)))
(when (> modulus 12)
(display-multiple-12 s)
(newline))
(newline))

(define (display-scales ss)
(for-each display-scale ss))

(define (display-note n)
(display n)
(case modulus
((12) (display " ") (display (vector-ref note-names (* n 2))))
((24) (display " ") (display (vector-ref note-names n)))))

(define (print x)
(cond
((number? x) (display-note x))
((and (pair? x) (pair? (car x))) (display-scales x))
((pair? x) (display-scale x))))

(define scales)
(define allowed-notes)

(define (found! scale)
(set! scales (cons scale scales)))


; notes is a list of allowable notes, in increasing order
; n-len is the length of notes
; scale is the scale so far, in decreasing order
; s-len is the length of scale
; wolf is the number of wolf intervals in scale
; b-notes is the number of notes in scale that are in balance-notes

; call found! for every scale that follows the rules and
; that can be made by adding to 'scale' any number (> 0)
; of notes from 'notes'
(define (find-scales notes n-len scale s-len wolf b-notes)
(when (and (positive? n-len)
(< s-len length-max)
(>= (+ s-len n-len) length-min))
(let ((n (car notes))
(notes (cdr notes))
(n-len (- n-len 1)))
(find-scales notes n-len scale s-len wolf b-notes)
(when (distances-ok? n scale s-len)
(let ((wolf (+ wolf (count-wolves n scale))))
(when (<= wolf wolf-max)
(let ((b-notes (+ b-notes (if (member n balance-notes) 1 0)))
(scale (cons n scale))
(s-len (+ 1 s-len)))
(find-scales notes n-len scale s-len wolf b-notes)
(when (and (>= s-len length-min)
(balance-ok? s-len b-notes)
(final-distances-ok? scale s-len))
(found! (reverse scale))))))))))

(define (distances-ok? n scale len)
(and (>= (interval (car scale) n) distance-2-min)
(or (<= len 1)
(and (>= (interval (cadr scale) n) distance-3-min)
(>= (interval n (list-ref scale (- len 2))) distance-3-min)))))

(define (final-distances-ok? scale len)
(and (>= (interval (car scale) 0) distance-2-min)
(>= (interval (cadr scale) 0) distance-3-min)))

(define (count-wolves n scale)
(fold-left (lambda (sum note)
(+ sum
(if (member (interval note n) wolves) 1 0)
(if (member (interval n note) wolves) 1 0)))
0 scale))

(define (balance-ok? s-len b-notes)
(<= balance-in-min b-notes (- s-len balance-out-min)))

(define note-names
'#(("A" ) ; 0
("A+" "A#-" "Bb-") ; 1
("A#" "Bb" ) ; 2
("A#+" "Bb+" "B-" ) ; 3
("B" ) ; 4
("B+" "C-" ) ; 5
("C" ) ; 6
("C+" "C#-" "Db-") ; 7
("C#" "Db" ) ; 8
("C#+" "Db+" "D-" ) ; 9
("D" ) ; 10
("D+" "D#-" "Eb-") ; 11
("D#" "Eb" ) ; 12
("D#+" "Eb+" "E-" ) ; 13
("E" ) ; 14
("E+" "F-" ) ; 15
("F" ) ; 16
("F+" "F#-" "Gb-") ; 17
("F#" "Gb" ) ; 18
("F#+" "Gb+" "G-" ) ; 19
("G" ) ; 20
("G+" "G#-" "Ab-") ; 21
("G#" "Ab" ) ; 22
("G#+" "Ab+" "A-" ) ; 23
))

; A name code represents, e.g., F#+, as
; a list of three numbers, one for the F,
; one for the # and one for the +.
;
; first number: A through G are 0 through 6, respectively.
; second number: b is -1, # is +1, none is 0.
; third number: - is -1, + is +1, none is 0.

(define code-values
'((#\A . 0)
(#\B . 1)
(#\C . 2)
(#\D . 3)
(#\E . 4)
(#\F . 5)
(#\G . 6)))

; assumes name is properly capitalized
; i.e., first letter is capital, rest aren't
(define (name->code name)
(let ((lst (string->list name)))
(let ((letter (car lst))
(accidentals (cdr lst)))
(list
(cdr (assoc letter code-values))
(cond
((member #\b accidentals) -1)
((member #\# accidentals) +1)
(else 0))
(cond
((member #\- accidentals) -1)
((member #\+ accidentals) +1)
(else 0))))))

(define (code->name code)
(let ((x (car code))
(y (cadr code))
(z (caddr code)))
(string-append
(string (car (list-ref code-values x)))
(case y
((-1) "b")
((+1) "#")
(else ""))
(case z
((-1) "-")
((+1) "+")
(else "")))))

; same structure as note-names, i.e. vector of lists,
; except with each name replaced by the corresponding code
(define name-codes
(vector-map (lambda (name-list) (map name->code name-list))
note-names))

(define note-values
'((#\A . 0)
(#\B . 4)
(#\C . 6)
(#\D . 10)
(#\E . 14)
(#\F . 16)
(#\G . 20)
(#\# . 2)
(#\b . -2)
(#\+ . 1)
(#\- . -1)))

(define (string->note s)
(apply +
(map (lambda (c) (cdr (assoc c note-values)))
(let ((cs (string->list s)))
(cons (char-upcase (car cs))
(map char-downcase (cdr cs)))))))

(define (cross-product . x)
(if (null? x)
'(())
(apply append
(map (lambda (a)
(map (lambda (b) (cons a b))
(apply cross-product (cdr x))))
(car x)))))

(define (vector-increment! v i)
(vector-set! v i (+ 1 (vector-ref v i))))

; measures the extent to which letters are repeated
(define (repetitiveness x) ; x: list of name codes
(let ((v (make-vector 7 0)))
(for-each (lambda (c) (vector-increment! v (car c)))
x)
(apply + (map (lambda (x) (* x x))
(vector->list v)))))

; # of flats or # of sharps, whichever is smaller
(define (inconsistency x) ; x: list of name codes
(let ((v (make-vector 3 0)))
(for-each (lambda (c) (vector-increment! v (+ 1 (cadr c))))
x)
(min (vector-ref v 0)
(vector-ref v 2))))

; returns list of those items x of lst for which (f x) is least
(define (min-scorers f lst)
(let* ((scored-lst (map (lambda (x) (cons (f x) x))
lst))
(min-score (fold-left (lambda (a x) (min a (car x)))
(caar scored-lst) (cdr scored-lst))))
(map cdr
(filter (lambda (x) (equal? (car x) min-score))
scored-lst))))

(define (best-spellings scale)
(let* ((all-spellings (apply cross-product
(map (lambda (n) (vector-ref name-codes n))
scale)))
(best (min-scorers inconsistency
(min-scorers repetitiveness all-spellings))))
(map (lambda (scale) (map code->name scale))
best)))

(define (scale-hashtable scales)
(let ((ht (make-hashtable equal-hash equal? (length scales))))
(let recur ((s scales))
(when (pair? s)
(hashtable-set! ht (car s) 0)
(recur (cdr s))))
ht))

; list of scales each of which is 'scale' plus one allowed note
(define (with-extra-note scale)
(map (lambda (n)
(sort < (cons n scale)))
allowed-notes))

(define (scale-complete? scale ht)
(not (exists (lambda (s)
(hashtable-contains? ht s))
(with-extra-note scale))))

(define (remove-incompletes scales)
(let ((ht (scale-hashtable scales)))
(filter (lambda (s)
(scale-complete? s ht))
scales)))

(define (display-now x)
(display x)
(flush-output-port (current-output-port)))

(define (go)
(set! scales '())
(display-settings)
(newline)
(display-now "finding scales...")
(set! allowed-notes (remp (lambda (n) (member n bad-notes))
(cdr (iota modulus))))
(find-scales allowed-notes (length allowed-notes) '(0) 1 0 (if (member 0 balance-notes) 1 0))
(display "done")
(newline)
(when require-completeness
(display-now "removing incomplete scales...")
(set! scales (remove-incompletes scales))
(display "done")
(newline))
(newline)
(display-scales scales)
(newline)
(display "number of scales found: ")
(display (length scales))
(newline))

(go)



Version 11: Restores dots, puts scales-found-count at top of search

; okay to change these

(define modulus 24)
(define length-min 5) ; minimum number of notes in scale
(define length-max 8) ; maximum number of notes in scale

; wolf intervals
(define wolves '(13 15))

(define wolf-max 5) ; this many wolves are ok, but no more

(define distance-2-min 1) ; minimum difference between any 2 consecutive notes in scale
(define distance-3-min 3) ; minimum difference between the lowest and highest notes
; of any 3 consecutive notes in scale
; never use these notes
(define bad-notes '(1 13 23))

; #t : don't display scale if it's contained in any other displayed scale
; #f : do
(define require-completeness #t)

; if you don't care about balance, set both balance-in-min and balance-out-min to 0
(define balance-notes '(0 2 4 6 8 10 12 14 16 18 20 22))
(define balance-in-min 1) ; at least this many notes in scale must come from balance-notes
(define balance-out-min 3) ; at least this many notes in scale must come from outside balance-notes

; #t : display multiple spellings if they're all equally good
; #f : never display more than one spelling
(define multiple-spellings #f)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;
; don't change stuff below

(define settings
'(
modulus
length-min
length-max
wolves
wolf-max
distance-2-min
distance-3-min
bad-notes
require-completeness
balance-notes
balance-in-min
balance-out-min
multiple-spellings))

(define (setting-length s)
(string-length (symbol->string s)))

(define (display-setting s len)
(display (make-string (- len (setting-length s)) #\space))
(display s)
(display ": ")
(display (eval s))
(newline))

(define (display-settings)
(let ((len (apply max (map setting-length settings))))
(for-each (lambda (s) (display-setting s len))
settings)))

; A note is represented as a nonnegative integer less than modulus.
; A scale is represented as a list of notes.

(define (interval a b)
(modulo (- b a) modulus))

(define (transpose-note n k)
(modulo (+ n k) modulus))

(define (apply-to-leaves f x)
(cond
((null? x) '())
((pair? x) (cons (apply-to-leaves f (car x))
(apply-to-leaves f (cdr x))))
(else (f x))))

(define (transpose x k)
(apply-to-leaves (lambda (n) (transpose-note n k))
x))

; assumption: x is no longer than y
; does x occur at the beginning of y?
(define (prefix? x y)
(or (null? x)
(and (equal? (car x) (car y))
(prefix? (cdr x) (cdr y)))))

; assumption: d is (- (length y) (length x))
; does x occur anywhere in y?
(define (sublist? x y d)
(and (>= d 0)
(or (prefix? x y)
(sublist? x (cdr y) (- d 1)))))

; ns is a non-empty list of notes
(define (notes->intervals ns)
(let ((first (car ns)))
(let recur ((n first)
(rest (cdr ns)))
(if (null? rest)
(list (interval n first))
(cons (interval n (car rest))
(recur (car rest) (cdr rest)))))))

(define (test-cell x y)
(if (not (= (length x) (length y)))
'different-lengths
(let ((xx (notes->intervals (list-sort < x)))
(yy (notes->intervals (list-sort < y)))
(d (length (cdr y))))
(let* ((y-forward (append (cdr yy) yy))
(y-backward (reverse y-forward)))
(if (or (sublist? xx y-forward d)
(sublist? xx y-backward d))
'same
'different)))))

; return a list of all size-k subsets of list xs
; n is (length xs)
(define (subsets xs n k)
(cond
((zero? k) '(()))
((> k n) '())
(else (append
(map (lambda (s) (cons (car xs) s))
(subsets (cdr xs) (- n 1) (- k 1)))
(subsets (cdr xs) (- n 1) k)))))

(define (display-multiple-12 s)
(let recur ((s s)
(k 0))
(when (pair? s)
(let ((n (- (car s) k)))
(if (< n 12)
(begin (display n) (display " ") (recur (cdr s) k))
(begin (display "| ") (recur s (+ k 12))))))))

(define (display-spellings s)
(let ((spellings (best-spellings s)))
(for-each (lambda (x) (display x) (newline))
(if multiple-spellings
spellings
(list (car spellings))))))

(define (display-scale s)
(display "notes: ")
(display s)
(newline)
(display "intervals: ")
(let ((x (notes->intervals s)))
(display (append x x)))
(newline)
(case modulus
((12) (display-spellings (map (lambda (n) (* n 2)) s)))
((24) (display-spellings s)))
(when (> modulus 12)
(display-multiple-12 s)
(newline))
(newline))

(define (display-scales ss)
(for-each display-scale ss))

(define (display-note n)
(display n)
(case modulus
((12) (display " ") (display (vector-ref note-names (* n 2))))
((24) (display " ") (display (vector-ref note-names n)))))

(define (print x)
(cond
((number? x) (display-note x))
((and (pair? x) (pair? (car x))) (display-scales x))
((pair? x) (display-scale x))))

(define scales)
(define allowed-notes)

(define (found! scale)
(set! scales (cons scale scales))
(display #\.))


; notes is a list of allowable notes, in increasing order
; n-len is the length of notes
; scale is the scale so far, in decreasing order
; s-len is the length of scale
; wolf is the number of wolf intervals in scale
; b-notes is the number of notes in scale that are in balance-notes

; call found! for every scale that follows the rules and
; that can be made by adding to 'scale' any number (> 0)
; of notes from 'notes'
(define (find-scales notes n-len scale s-len wolf b-notes)
(when (and (positive? n-len)
(< s-len length-max)
(>= (+ s-len n-len) length-min))
(let ((n (car notes))
(notes (cdr notes))
(n-len (- n-len 1)))
(find-scales notes n-len scale s-len wolf b-notes)
(when (distances-ok? n scale s-len)
(let ((wolf (+ wolf (count-wolves n scale))))
(when (<= wolf wolf-max)
(let ((b-notes (+ b-notes (if (member n balance-notes) 1 0)))
(scale (cons n scale))
(s-len (+ 1 s-len)))
(find-scales notes n-len scale s-len wolf b-notes)
(when (and (>= s-len length-min)
(balance-ok? s-len b-notes)
(final-distances-ok? scale s-len))
(found! (reverse scale))))))))))

(define (distances-ok? n scale len)
(and (>= (interval (car scale) n) distance-2-min)
(or (<= len 1)
(and (>= (interval (cadr scale) n) distance-3-min)
(>= (interval n (list-ref scale (- len 2))) distance-3-min)))))

(define (final-distances-ok? scale len)
(and (>= (interval (car scale) 0) distance-2-min)
(>= (interval (cadr scale) 0) distance-3-min)))

(define (count-wolves n scale)
(fold-left (lambda (sum note)
(+ sum
(if (member (interval note n) wolves) 1 0)
(if (member (interval n note) wolves) 1 0)))
0 scale))

(define (balance-ok? s-len b-notes)
(<= balance-in-min b-notes (- s-len balance-out-min)))

(define note-names
'#(("A" ) ; 0
("A+" "A#-" "Bb-") ; 1
("A#" "Bb" ) ; 2
("A#+" "Bb+" "B-" ) ; 3
("B" ) ; 4
("B+" "C-" ) ; 5
("C" ) ; 6
("C+" "C#-" "Db-") ; 7
("C#" "Db" ) ; 8
("C#+" "Db+" "D-" ) ; 9
("D" ) ; 10
("D+" "D#-" "Eb-") ; 11
("D#" "Eb" ) ; 12
("D#+" "Eb+" "E-" ) ; 13
("E" ) ; 14
("E+" "F-" ) ; 15
("F" ) ; 16
("F+" "F#-" "Gb-") ; 17
("F#" "Gb" ) ; 18
("F#+" "Gb+" "G-" ) ; 19
("G" ) ; 20
("G+" "G#-" "Ab-") ; 21
("G#" "Ab" ) ; 22
("G#+" "Ab+" "A-" ) ; 23
))

; A name code represents, e.g., F#+, as
; a list of three numbers, one for the F,
; one for the # and one for the +.
;
; first number: A through G are 0 through 6, respectively.
; second number: b is -1, # is +1, none is 0.
; third number: - is -1, + is +1, none is 0.

(define code-values
'((#\A . 0)
(#\B . 1)
(#\C . 2)
(#\D . 3)
(#\E . 4)
(#\F . 5)
(#\G . 6)))

; assumes name is properly capitalized
; i.e., first letter is capital, rest aren't
(define (name->code name)
(let ((lst (string->list name)))
(let ((letter (car lst))
(accidentals (cdr lst)))
(list
(cdr (assoc letter code-values))
(cond
((member #\b accidentals) -1)
((member #\# accidentals) +1)
(else 0))
(cond
((member #\- accidentals) -1)
((member #\+ accidentals) +1)
(else 0))))))

(define (code->name code)
(let ((x (car code))
(y (cadr code))
(z (caddr code)))
(string-append
(string (car (list-ref code-values x)))
(case y
((-1) "b")
((+1) "#")
(else ""))
(case z
((-1) "-")
((+1) "+")
(else "")))))

; same structure as note-names, i.e. vector of lists,
; except with each name replaced by the corresponding code
(define name-codes
(vector-map (lambda (name-list) (map name->code name-list))
note-names))

(define note-values
'((#\A . 0)
(#\B . 4)
(#\C . 6)
(#\D . 10)
(#\E . 14)
(#\F . 16)
(#\G . 20)
(#\# . 2)
(#\b . -2)
(#\+ . 1)
(#\- . -1)))

(define (string->note s)
(apply +
(map (lambda (c) (cdr (assoc c note-values)))
(let ((cs (string->list s)))
(cons (char-upcase (car cs))
(map char-downcase (cdr cs)))))))

(define (cross-product . x)
(if (null? x)
'(())
(apply append
(map (lambda (a)
(map (lambda (b) (cons a b))
(apply cross-product (cdr x))))
(car x)))))

(define (vector-increment! v i)
(vector-set! v i (+ 1 (vector-ref v i))))

; measures the extent to which letters are repeated
(define (repetitiveness x) ; x: list of name codes
(let ((v (make-vector 7 0)))
(for-each (lambda (c) (vector-increment! v (car c)))
x)
(apply + (map (lambda (x) (* x x))
(vector->list v)))))

; # of flats or # of sharps, whichever is smaller
(define (inconsistency x) ; x: list of name codes
(let ((v (make-vector 3 0)))
(for-each (lambda (c) (vector-increment! v (+ 1 (cadr c))))
x)
(min (vector-ref v 0)
(vector-ref v 2))))

; returns list of those items x of lst for which (f x) is least
(define (min-scorers f lst)
(let* ((scored-lst (map (lambda (x) (cons (f x) x))
lst))
(min-score (fold-left (lambda (a x) (min a (car x)))
(caar scored-lst) (cdr scored-lst))))
(map cdr
(filter (lambda (x) (equal? (car x) min-score))
scored-lst))))

(define (best-spellings scale)
(let* ((all-spellings (apply cross-product
(map (lambda (n) (vector-ref name-codes n))
scale)))
(best (min-scorers inconsistency
(min-scorers repetitiveness all-spellings))))
(map (lambda (scale) (map code->name scale))
best)))

(define (scale-hashtable scales)
(let ((ht (make-hashtable equal-hash equal? (length scales))))
(let recur ((s scales))
(when (pair? s)
(hashtable-set! ht (car s) 0)
(recur (cdr s))))
ht))

; list of scales each of which is 'scale' plus one allowed note
(define (with-extra-note scale)
(map (lambda (n)
(sort < (cons n scale)))
allowed-notes))

(define (scale-complete? scale ht)
(not (exists (lambda (s)
(hashtable-contains? ht s))
(with-extra-note scale))))

(define (remove-incompletes scales)
(let ((ht (scale-hashtable scales)))
(filter (lambda (s)
(scale-complete? s ht))
scales)))

(define (display-now x)
(display x)
(flush-output-port (current-output-port)))

(define (go)
(set! scales '())
(display-settings)
(newline)
(display-now "finding scales...")
(set! allowed-notes (remp (lambda (n) (member n bad-notes))
(cdr (iota modulus))))
(find-scales allowed-notes (length allowed-notes) '(0) 1 0 (if (member 0 balance-notes) 1 0))
(display "done")
(newline)
(when require-completeness
(display-now "removing incomplete scales...")
(set! scales (remove-incompletes scales))
(display "done")
(newline))
(newline)
(display "number of scales found: ")
(display (length scales))
(newline)
(newline)
(display-scales scales))

(go)

Last edited by calebprime; 20th March 2016 at 04:25 AM.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 20th March 2016, 04:33 AM   #349
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
As Uncle Walter Becker (of Steely Dan Ackroyd fame) has said, wisely:

"Let's just buzz on this a while".


> (load "Desktop/microtonal11.txt")
modulus: 24
length-min: 5
length-max: 8
wolves: (13 15)
wolf-max: 1
distance-2-min: 2
distance-3-min: 6
bad-notes: (1 13 15 23)
require-completeness: #t
balance-notes: (0 2 4 6 8 10 12 14 16 18 20 22)
balance-in-min: 1
balance-out-min: 3
multiple-spellings: #f

finding scales............................................ .................................................. .....done
removing incomplete scales...done

number of scales found: 30


notes: (0 2 7 9 14 19)
intervals: (2 5 2 5 5 5 2 5 2 5 5 5)
(A Bb C+ Db+ E Gb+)
0 2 7 9 | 2 7

notes: (0 2 7 12 17 19)
intervals: (2 5 5 5 2 5 2 5 5 5 2 5)
(A Bb C+ Eb F+ Gb+)
0 2 7 | 0 5 7

notes: (0 3 7 9 17 19)
intervals: (3 4 2 8 2 5 3 4 2 8 2 5)
(A Bb+ C+ Db+ F+ Gb+)
0 3 7 9 | 5 7

notes: (0 3 7 9 17 21)
intervals: (3 4 2 8 4 3 3 4 2 8 4 3)
(A Bb+ C+ Db+ F+ G+)
0 3 7 9 | 5 9

notes: (0 3 7 10 14 17)
intervals: (3 4 3 4 3 7 3 4 3 4 3 7)
(A Bb+ C+ D E F+)
0 3 7 10 | 2 5

notes: (0 3 7 10 17 19)
intervals: (3 4 3 7 2 5 3 4 3 7 2 5)
(A Bb+ C+ D F+ Gb+)
0 3 7 10 | 5 7

notes: (0 3 7 10 17 20)
intervals: (3 4 3 7 3 4 3 4 3 7 3 4)
(A Bb+ C+ D F+ G)
0 3 7 10 | 5 8

notes: (0 3 7 10 17 21)
intervals: (3 4 3 7 4 3 3 4 3 7 4 3)
(A Bb+ C+ D F+ G+)
0 3 7 10 | 5 9

notes: (0 3 7 11 17 19)
intervals: (3 4 4 6 2 5 3 4 4 6 2 5)
(A Bb+ C+ D+ F+ Gb+)
0 3 7 11 | 5 7

notes: (0 3 7 11 17 21)
intervals: (3 4 4 6 4 3 3 4 4 6 4 3)
(A Bb+ C+ D+ F+ G+)
0 3 7 11 | 5 9

notes: (0 3 7 12 17 19)
intervals: (3 4 5 5 2 5 3 4 5 5 2 5)
(A Bb+ C+ Eb F+ Gb+)
0 3 7 | 0 5 7

notes: (0 3 7 14 17 21)
intervals: (3 4 7 3 4 3 3 4 7 3 4 3)
(A Bb+ C+ E F+ G+)
0 3 7 | 2 5 9

notes: (0 3 7 14 19)
intervals: (3 4 7 5 5 3 4 7 5 5)
(A Bb+ C+ E Gb+)
0 3 7 | 2 7

notes: (0 4 7 11 14 21)
intervals: (4 3 4 3 7 3 4 3 4 3 7 3)
(A B C+ D+ E G+)
0 4 7 11 | 2 9

notes: (0 4 7 14 17 21)
intervals: (4 3 7 3 4 3 4 3 7 3 4 3)
(A B C+ E F+ G+)
0 4 7 | 2 5 9

notes: (0 5 7 11 17 19)
intervals: (5 2 4 6 2 5 5 2 4 6 2 5)
(A B+ C+ D+ F+ Gb+)
0 5 7 11 | 5 7

notes: (0 5 7 11 17 21)
intervals: (5 2 4 6 4 3 5 2 4 6 4 3)
(A B+ C+ D+ F+ G+)
0 5 7 11 | 5 9

notes: (0 5 7 12 14 19)
intervals: (5 2 5 2 5 5 5 2 5 2 5 5)
(A B+ C+ D# E F#+)
0 5 7 | 0 2 7

notes: (0 5 7 12 17 19)
intervals: (5 2 5 5 2 5 5 2 5 5 2 5)
(A B+ C+ D# F+ G-)
0 5 7 | 0 5 7

notes: (0 5 7 12 17 21)
intervals: (5 2 5 5 4 3 5 2 5 5 4 3)
(A B+ C+ D# F+ G+)
0 5 7 | 0 5 9

notes: (0 5 7 12 17 22)
intervals: (5 2 5 5 5 2 5 2 5 5 5 2)
(A B+ C+ D# F+ G#)
0 5 7 | 0 5 10

notes: (0 5 7 14 17 21)
intervals: (5 2 7 3 4 3 5 2 7 3 4 3)
(A B+ C+ E F+ G+)
0 5 7 | 2 5 9

notes: (0 5 9 12 17 19)
intervals: (5 4 3 5 2 5 5 4 3 5 2 5)
(A B+ C#+ D# F+ G-)
0 5 9 | 0 5 7

notes: (0 5 9 17 21)
intervals: (5 4 8 4 3 5 4 8 4 3)
(A B+ C#+ F+ G+)
0 5 9 | 5 9

notes: (0 5 10 12 17 19)
intervals: (5 5 2 5 2 5 5 5 2 5 2 5)
(A B+ D Eb F+ Gb+)
0 5 10 | 0 5 7

notes: (0 5 10 17 21)
intervals: (5 5 7 4 3 5 5 7 4 3)
(A B+ D F+ G+)
0 5 10 | 5 9

notes: (0 7 9 14 17 21)
intervals: (7 2 5 3 4 3 7 2 5 3 4 3)
(A C+ Db+ E F+ G+)
0 7 9 | 2 5 9

notes: (0 7 10 14 17 21)
intervals: (7 3 4 3 4 3 7 3 4 3 4 3)
(A C+ D E F+ G+)
0 7 10 | 2 5 9

notes: (0 7 11 14 17 21)
intervals: (7 4 3 3 4 3 7 4 3 3 4 3)
(A C+ D+ E F+ G+)
0 7 11 | 2 5 9

notes: (0 7 11 14 19)
intervals: (7 4 3 5 5 7 4 3 5 5)
(A C+ D+ E F#+)
0 7 11 | 2 7

calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 20th March 2016, 04:55 AM   #350
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
Yo, Doge,

Maybe we could solve this little confusion about generators and make it much simpler.

Maybe we could have a "limit interval" list.

The user can specify any number of intervals, in a simple, unordered list.

The output is limited so that the interval list only contains those intervals.

Much cleaner.

-c


So, for example, Interval List (2,5)

would find

notes: (0 5 7 12 17 22)
intervals: (5 2 5 5 5 2 5 2 5 5 5 2)
(A B+ C+ D# F+ G#)
0 5 7 | 0 5 10


among others.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 20th March 2016, 06:12 AM   #351
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
List Sorting

-Can specify sorting of first output

-Could it take existing output, and re-sort?

User specifies ordered list.

First item of list of list-sort items clumps together scales by that method, then come the next scales according to that method.

Within each clump, the same hierarchical ordering of ordering.

Each ordering can be inverted, simply.

So, we've got, for items of ordering:

-Number of notes in scale
-Left-most packing
-wolves
...
basically, all the parameters that make sense, plus:

-Relation by Modal rotation. This packs together all the scales that have identical-but-rotated interval lists.

We obviously don't need modulus.

Complete list:

Length
Packing
Wolves
Balance out
Distance-3 Min
Identity-by-rotation


Nothing in list is some default.

Looks like: List sort: [ Wolves, I-by-Rot, Packing, Length]

Or whatever. The user can specify an ordered hierarchy of any or all of these 6. Are there any I've forgotten?

Last edited by calebprime; 20th March 2016 at 06:16 AM.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 20th March 2016, 06:19 AM   #352
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
Quote:
Here you go. It's called allowed-intervals.

Also new is scales-max, which prevents
printing the scales if there are too many.
But if you want to see them all, you can,
and the program tells you how.
version 12:

; okay to change these

(define modulus 24)
(define length-min 5) ; minimum number of notes in scale
(define length-max 8) ; maximum number of notes in scale

; wolf intervals
(define wolves '(13 15))

(define wolf-max 5) ; this many wolves are ok, but no more

(define distance-2-min 2) ; minimum difference between any 2 consecutive notes in scale
(define distance-3-min 6) ; minimum difference between the lowest and highest notes
; of any 3 consecutive notes in scale
; never use these notes
(define bad-notes '(1 13 15 23))

; only these intervals are allowed between consecutive notes in scale,
; except that '() means all intervals are allowed, not none
(define allowed-intervals '(2 3))

; #t : don't display scale if it's contained in any other displayed scale
; #f : do
(define require-completeness #t)

; if you don't care about balance, set both balance-in-min and balance-out-min to 0
(define balance-notes '(0 2 4 6 8 10 12 14 16 18 20 22))
(define balance-in-min 1) ; at least this many notes in scale must come from balance-notes
(define balance-out-min 2) ; at least this many notes in scale must come from outside balance-notes

; #t : display multiple spellings if they're all equally good
; #f : never display more than one spelling
(define multiple-spellings #f)

; if more than this number of scales are found,
; don't display them by default
(define scales-max 100)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;
; don't change stuff below

(define settings
'(
modulus
length-min
length-max
wolves
wolf-max
distance-2-min
distance-3-min
bad-notes
allowed-intervals
require-completeness
balance-notes
balance-in-min
balance-out-min
multiple-spellings
scales-max))

(define (setting-length s)
(string-length (symbol->string s)))

(define (display-setting s len)
(display (make-string (- len (setting-length s)) #\space))
(display s)
(display ": ")
(display (eval s))
(newline))

(define (display-settings)
(let ((len (apply max (map setting-length settings))))
(for-each (lambda (s) (display-setting s len))
settings)))

; A note is represented as a nonnegative integer less than modulus.
; A scale is represented as a list of notes.

(define (interval a b)
(modulo (- b a) modulus))

(define (transpose-note n k)
(modulo (+ n k) modulus))

(define (apply-to-leaves f x)
(cond
((null? x) '())
((pair? x) (cons (apply-to-leaves f (car x))
(apply-to-leaves f (cdr x))))
(else (f x))))

(define (transpose x k)
(apply-to-leaves (lambda (n) (transpose-note n k))
x))

; assumption: x is no longer than y
; does x occur at the beginning of y?
(define (prefix? x y)
(or (null? x)
(and (equal? (car x) (car y))
(prefix? (cdr x) (cdr y)))))

; assumption: d is (- (length y) (length x))
; does x occur anywhere in y?
(define (sublist? x y d)
(and (>= d 0)
(or (prefix? x y)
(sublist? x (cdr y) (- d 1)))))

; ns is a non-empty list of notes
(define (notes->intervals ns)
(let ((first (car ns)))
(let recur ((n first)
(rest (cdr ns)))
(if (null? rest)
(list (interval n first))
(cons (interval n (car rest))
(recur (car rest) (cdr rest)))))))

(define (test-cell x y)
(if (not (= (length x) (length y)))
'different-lengths
(let ((xx (notes->intervals (list-sort < x)))
(yy (notes->intervals (list-sort < y)))
(d (length (cdr y))))
(let* ((y-forward (append (cdr yy) yy))
(y-backward (reverse y-forward)))
(if (or (sublist? xx y-forward d)
(sublist? xx y-backward d))
'same
'different)))))

; return a list of all size-k subsets of list xs
; n is (length xs)
(define (subsets xs n k)
(cond
((zero? k) '(()))
((> k n) '())
(else (append
(map (lambda (s) (cons (car xs) s))
(subsets (cdr xs) (- n 1) (- k 1)))
(subsets (cdr xs) (- n 1) k)))))

(define (display-multiple-12 s)
(let recur ((s s)
(k 0))
(when (pair? s)
(let ((n (- (car s) k)))
(if (< n 12)
(begin (display n) (display " ") (recur (cdr s) k))
(begin (display "| ") (recur s (+ k 12))))))))

(define (display-spellings s)
(let ((spellings (best-spellings s)))
(for-each (lambda (x) (display x) (newline))
(if multiple-spellings
spellings
(list (car spellings))))))

(define (display-scale s)
(display "notes: ")
(display s)
(newline)
(display "intervals: ")
(let ((x (notes->intervals s)))
(display (append x x)))
(newline)
(case modulus
((12) (display-spellings (map (lambda (n) (* n 2)) s)))
((24) (display-spellings s)))
(when (> modulus 12)
(display-multiple-12 s)
(newline))
(newline))

(define (display-scales ss)
(for-each display-scale ss))

(define (display-note n)
(display n)
(case modulus
((12) (display " ") (display (vector-ref note-names (* n 2))))
((24) (display " ") (display (vector-ref note-names n)))))

(define (print x)
(cond
((number? x) (display-note x))
((and (pair? x) (pair? (car x))) (display-scales x))
((pair? x) (display-scale x))))

(define scales)
(define allowed-notes)

(define (display-now x)
(display x)
(flush-output-port (current-output-port)))

(define found!
(let ((then (current-time)))
(lambda (s)
(set! scales (cons s scales))
(let ((now (current-time)))
(when (> (time-second now)
(time-second then))
(set! then now)
(display-now #\.))))))

; notes is a list of allowable notes, in increasing order
; n-len is the length of notes
; scale is the scale so far, in decreasing order
; s-len is the length of scale
; wolf is the number of wolf intervals in scale
; b-notes is the number of notes in scale that are in balance-notes

; call found! for every scale that follows the rules and
; that can be made by adding to 'scale' any number (> 0)
; of notes from 'notes'
(define (find-scales notes n-len scale s-len wolf b-notes)
(when (and (positive? n-len)
(< s-len length-max)
(>= (+ s-len n-len) length-min))
(let ((n (car notes))
(notes (cdr notes))
(n-len (- n-len 1)))
(find-scales notes n-len scale s-len wolf b-notes)
(when (and (interval-ok? n scale)
(distances-ok? n scale s-len))
(let ((wolf (+ wolf (count-wolves n scale))))
(when (<= wolf wolf-max)
(let ((b-notes (+ b-notes (if (member n balance-notes) 1 0)))
(scale (cons n scale))
(s-len (+ 1 s-len)))
(find-scales notes n-len scale s-len wolf b-notes)
(when (and (>= s-len length-min)
(balance-ok? s-len b-notes)
(final-distances-ok? scale s-len)
(final-interval-ok? scale))
(found! (reverse scale))))))))))

(define (distances-ok? n scale len)
(and (>= (interval (car scale) n) distance-2-min)
(or (<= len 1)
(and (>= (interval (cadr scale) n) distance-3-min)
(>= (interval n (list-ref scale (- len 2))) distance-3-min)))))

(define (final-distances-ok? scale len)
(and (>= (interval (car scale) 0) distance-2-min)
(>= (interval (cadr scale) 0) distance-3-min)))

(define (interval-ok? n scale)
(or (null? allowed-intervals)
(member (interval (car scale) n)
allowed-intervals)))

(define (final-interval-ok? scale)
(or (null? allowed-intervals)
(member (interval (car scale) 0)
allowed-intervals)))

(define (count-wolves n scale)
(fold-left (lambda (sum note)
(+ sum
(if (member (interval note n) wolves) 1 0)
(if (member (interval n note) wolves) 1 0)))
0 scale))

(define (balance-ok? s-len b-notes)
(<= balance-in-min b-notes (- s-len balance-out-min)))

(define note-names
'#(("A" ) ; 0
("A+" "A#-" "Bb-") ; 1
("A#" "Bb" ) ; 2
("A#+" "Bb+" "B-" ) ; 3
("B" ) ; 4
("B+" "C-" ) ; 5
("C" ) ; 6
("C+" "C#-" "Db-") ; 7
("C#" "Db" ) ; 8
("C#+" "Db+" "D-" ) ; 9
("D" ) ; 10
("D+" "D#-" "Eb-") ; 11
("D#" "Eb" ) ; 12
("D#+" "Eb+" "E-" ) ; 13
("E" ) ; 14
("E+" "F-" ) ; 15
("F" ) ; 16
("F+" "F#-" "Gb-") ; 17
("F#" "Gb" ) ; 18
("F#+" "Gb+" "G-" ) ; 19
("G" ) ; 20
("G+" "G#-" "Ab-") ; 21
("G#" "Ab" ) ; 22
("G#+" "Ab+" "A-" ) ; 23
))

; A name code represents, e.g., F#+, as
; a list of three numbers, one for the F,
; one for the # and one for the +.
;
; first number: A through G are 0 through 6, respectively.
; second number: b is -1, # is +1, none is 0.
; third number: - is -1, + is +1, none is 0.

(define code-values
'((#\A . 0)
(#\B . 1)
(#\C . 2)
(#\D . 3)
(#\E . 4)
(#\F . 5)
(#\G . 6)))

; assumes name is properly capitalized
; i.e., first letter is capital, rest aren't
(define (name->code name)
(let ((lst (string->list name)))
(let ((letter (car lst))
(accidentals (cdr lst)))
(list
(cdr (assoc letter code-values))
(cond
((member #\b accidentals) -1)
((member #\# accidentals) +1)
(else 0))
(cond
((member #\- accidentals) -1)
((member #\+ accidentals) +1)
(else 0))))))

(define (code->name code)
(let ((x (car code))
(y (cadr code))
(z (caddr code)))
(string-append
(string (car (list-ref code-values x)))
(case y
((-1) "b")
((+1) "#")
(else ""))
(case z
((-1) "-")
((+1) "+")
(else "")))))

; same structure as note-names, i.e. vector of lists,
; except with each name replaced by the corresponding code
(define name-codes
(vector-map (lambda (name-list) (map name->code name-list))
note-names))

(define note-values
'((#\A . 0)
(#\B . 4)
(#\C . 6)
(#\D . 10)
(#\E . 14)
(#\F . 16)
(#\G . 20)
(#\# . 2)
(#\b . -2)
(#\+ . 1)
(#\- . -1)))

(define (string->note s)
(apply +
(map (lambda (c) (cdr (assoc c note-values)))
(let ((cs (string->list s)))
(cons (char-upcase (car cs))
(map char-downcase (cdr cs)))))))

(define (cross-product . x)
(if (null? x)
'(())
(apply append
(map (lambda (a)
(map (lambda (b) (cons a b))
(apply cross-product (cdr x))))
(car x)))))

(define (vector-increment! v i)
(vector-set! v i (+ 1 (vector-ref v i))))

; measures the extent to which letters are repeated
(define (repetitiveness x) ; x: list of name codes
(let ((v (make-vector 7 0)))
(for-each (lambda (c) (vector-increment! v (car c)))
x)
(apply + (map (lambda (x) (* x x))
(vector->list v)))))

; # of flats or # of sharps, whichever is smaller
(define (inconsistency x) ; x: list of name codes
(let ((v (make-vector 3 0)))
(for-each (lambda (c) (vector-increment! v (+ 1 (cadr c))))
x)
(min (vector-ref v 0)
(vector-ref v 2))))

; returns list of those items x of lst for which (f x) is least
(define (min-scorers f lst)
(let* ((scored-lst (map (lambda (x) (cons (f x) x))
lst))
(min-score (fold-left (lambda (a x) (min a (car x)))
(caar scored-lst) (cdr scored-lst))))
(map cdr
(filter (lambda (x) (equal? (car x) min-score))
scored-lst))))

(define (best-spellings scale)
(let* ((all-spellings (apply cross-product
(map (lambda (n) (vector-ref name-codes n))
scale)))
(best (min-scorers inconsistency
(min-scorers repetitiveness all-spellings))))
(map (lambda (scale) (map code->name scale))
best)))

(define (scale-hashtable scales)
(let ((ht (make-hashtable equal-hash equal? (length scales))))
(for-each (lambda (s) (hashtable-set! ht s 0))
scales)
ht))

; list of scales each of which is 'scale' plus one allowed note
(define (with-extra-note scale)
(map (lambda (n)
(sort < (cons n scale)))
allowed-notes))

(define (scale-complete? scale ht)
(not (exists (lambda (s)
(hashtable-contains? ht s))
(with-extra-note scale))))

(define (remove-incompletes scales)
(let ((ht (scale-hashtable scales)))
(filter (lambda (s)
(scale-complete? s ht))
scales)))

(define (go)
(set! scales '())
(display-settings)
(newline)
(display-now "finding scales...")
(set! allowed-notes (remp (lambda (n) (member n bad-notes))
(cdr (iota modulus))))
(find-scales allowed-notes (length allowed-notes) '(0) 1 0 (if (member 0 balance-notes) 1 0))
(display "done")
(newline)
(when require-completeness
(display-now "removing incomplete scales...")
(set! scales (remove-incompletes scales))
(display "done")
(newline))
(newline)
(display "number of scales found: ")
(display (length scales))
(newline)
(newline)
(if (<= (length scales) scales-max)
(display-scales scales)
(display "Say\n\n (print scales)\n\nto see them all.\n")))

(go)


eta: I subsituted a ' for what was there at first, a slanty-thingy-like-that. This fixed the problem.

eta2: It appears that it isn't printing the default limited number of scales, only the by-request.

Last edited by calebprime; 20th March 2016 at 07:35 AM.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 20th March 2016, 07:39 AM   #353
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
actually, ignore previous eta2. It's fine.


> (load "Desktop/microtonal12.txt")
modulus: 24
length-min: 5
length-max: 8
wolves: (13 15)
wolf-max: 5
distance-2-min: 2
distance-3-min: 6
bad-notes: (1 13 15 23)
allowed-intervals: (2 5)
require-completeness: #t
balance-notes: (0 2 4 6 8 10 12 14 16 18 20 22)
balance-in-min: 1
balance-out-min: 2
multiple-spellings: #f
scales-max: 100

finding scales...done
removing incomplete scales...done

number of scales found: 8

notes: (0 2 7 9 14 19)
intervals: (2 5 2 5 5 5 2 5 2 5 5 5)
(A Bb C+ Db+ E Gb+)
0 2 7 9 | 2 7

notes: (0 2 7 12 14 19)
intervals: (2 5 5 2 5 5 2 5 5 2 5 5)
(A Bb C+ D# E F#+)
0 2 7 | 0 2 7

notes: (0 2 7 12 17 19)
intervals: (2 5 5 5 2 5 2 5 5 5 2 5)
(A Bb C+ Eb F+ Gb+)
0 2 7 | 0 5 7

notes: (0 5 7 12 14 19)
intervals: (5 2 5 2 5 5 5 2 5 2 5 5)
(A B+ C+ D# E F#+)
0 5 7 | 0 2 7

notes: (0 5 7 12 17 19)
intervals: (5 2 5 5 2 5 5 2 5 5 2 5)
(A B+ C+ D# F+ G-)
0 5 7 | 0 5 7

notes: (0 5 7 12 17 22)
intervals: (5 2 5 5 5 2 5 2 5 5 5 2)
(A B+ C+ D# F+ G#)
0 5 7 | 0 5 10

notes: (0 5 10 12 17 19)
intervals: (5 5 2 5 2 5 5 5 2 5 2 5)
(A B+ D Eb F+ Gb+)
0 5 10 | 0 5 7

notes: (0 5 10 12 17 22)
intervals: (5 5 2 5 5 2 5 5 2 5 5 2)
(A B+ D Eb F+ G#)
0 5 10 | 0 5 10
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 20th March 2016, 08:37 AM   #354
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
Here come old flat top
He come groovin' up slowly
He got joo joo eyeballs
He one holy rollers
He got hair down to his knee
Got to be a joker
He just do what he please

He wear no shoeshine
He got toe jam football
He got monkey finger
He shoot Coca Cola
He say I know you, you know me
One thing I can tell you is
You got to be free
Come together, right now
Over me

He Bag production
He got walrus gumboat
He got Ono sideboard
He one spinal cracker
He got feet down below his knees
Hold you in his arms, yeah,
You can feel his disease
Come together, right now
Over me

He roller coaster
He got early warning
He got muddy water
He one Mojo filter
He say one and one and one is three
Got to be good looking
Cause he's so hard to see
Come together right now
Over me

Come together, yeah
Come together, yeah
Come together, yeah




The Beatles became controversial again when Lennon remarked that they were more popular than Jesus.


People gather together in a show of unity in political rallies, sporting events, rock concerts, religious rituals, weddings, and funerals, among other events.

So the refrain is about a gathering over a rock star, but at his funeral.

The clue there is "over me".

There is a curious doubleness of perception there -- very psychedelic. The author of the song imagines himself dead, and people gathering in unity over his dead body. One could look up psychedelic depersonalization, and also the messianic tendencies of certain psychedelic leaders such as Kesey, Ginsberg, Owsley, and Leary. Even Captain Hubbard, the rogue CIA agent, became a kind of Johnny Acid Seed.

The first stanza is about Leary. He had, at first, a flat-top crew-cut, and he was, at first, well-dressed and conventional. So conventional he might have worn the shiny shoes worn by the FBI. Later, he looked wilder.

His pupils are dilated. And of course, he laughs a lot. Pynchon called him Dr. Hilarious, in The Crying of Lot 49.

That accounts for this much:

Quote:
[Here come old flat-top
He come groovin' up slowly
He got joo-joo eyeball
He one holy roller
He got hair down to his knee
Got to be a joker he just do what he please
...

He wear no shoeshine]
This next set might be about the progressively more weird forms of drug-abuse in the hippy communities.

Things started with a very reverential, serious atmosphere, -- such as Leary at Millford.

Quote:
...Adds Dr. Timothy Leary, head of the LSD- for-everyone school (who, when I interviewed him in his 60-room, Millford, N.Y., mansion, had just completed his 400th...
But already, the acid gurus were bending their own rules and were starting to want to spread it all to the masses, as well as to use and abuse whatever other drugs they could.

Quote:
He got toe-jam football
He got monkey finger
He shoot Coca-Cola
He say I know you, you know me
One thing I can tell you is you got to be free
Come together, right now
Over me


(echo of speedball, shooting up in strange places, dubious drugs, commercialization, and 60's togetherness cliches)

It's becoming increasingly tawdry.

Here things get progressively more weird, and I'm not sure I can make any particular sense, except they are going in an increasingly commercialized, organized, political, and dubious direction: The late 60's.


Quote:
He bag production
He got walrus gumboot
He got Ono sideboard
He one spinal cracker
He got feet down below his knee



And then that great line:

Quote:
Hold you in his armchair, you can feel his disease

There's a lot of hugging in hippie-land. With the hideous consequence that you are not only in the whiff-zone of your comrades, but also you can perceive something worse than body odor. Disease.

This is occurring in that geriatric/ineffectual/lazy image: the armchair.


He roller coaster
He got early warning
He got muddy water
He one Mojo filter
He say one and one and one is three
Got to be good looking
Cause he's so hard to see


Now he's not just a commercial enterprise, he's a carnival and a military enterprise. (Roller coaster, early warning)

But he's still spouting truisms. (He say one and one and one is three)

And he's a sort of cipher, a sort of Chauncey Gardner. (Got to be good looking Cause he's so hard to see)


So, Lennon is saying, ambivalently:

If you must choose a messiah, don't choose Tim Leary, at least choose me.

Over my dead body.

This is repeated and extended in another song:

God is a Concept by which we measure our pain


Quote:
I'll say it again
God is a Concept by which we measure our pain

I don't believe in magic
I don't believe in I-ching
I don't believe in Bible
I don't believe in Tarot
I don't believe in Hitler
I don't believe in Jesus
I don't believe in Kennedy
I don't believe in Buddha
I don't believe in Mantra
I don't believe in Gita
I don't believe in Yoga
I don't believe in Kings
I don't believe in Elvis
I don't believe in Zimmerman
I don't believe in Beatles

I just believe in me, Yoko and me, and that's reality

The dream is over
What can I say?
The dream is over
Yesterday
I was the dreamweaver
But now I'm reborn
I was the walrus
But now I'm John
And so, dear friends,
You'll just have to carry on
The dream is over

Last edited by calebprime; 20th March 2016 at 08:56 AM.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 20th March 2016, 11:16 AM   #355
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
https://www.youtube.com/watch?v=XVDpPX37fkU

Genius is Pain.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 20th March 2016, 11:28 AM   #356
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
O Wise and Mighty Doge,

I am as only a rotund and scurrilous ewe in relation to Your mighty Heft and Welp, yet

with your All Seeing Eye, can you number the numberless, and cry the danger,
and

count the wolves?

For example, it would be helpful if each entry with a search with a wolf-max of 5 have a little label:

say

notes: (0 2 7 9 14 19)
intervals: (2 5 2 5 5 5 2 5 2 5 5 5)
(A Bb C+ Db+ E Gb+)
0 2 7 9 | 2 7
الذئب 4

or 3 זאב

or 2 گرگ

or 1, if you're feeling kurt?
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 20th March 2016, 12:06 PM   #357
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
For the interval generators list, let's add the ability to have it be an "or" list
or
an "and" list

so, 2,3,5,7 or -- means any of these

2,3,5,7 and -- means all of these

Also, see some recent silly posts

for another idea or two.

-c
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 20th March 2016, 05:27 PM   #358
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
Version 14 -- Following the Schoenberg superstition, there is no version 13.

This allows the user to choose or/and for the interval list.

; okay to change these

(define modulus 24)
(define length-min 5) ; minimum number of notes in scale
(define length-max 8) ; maximum number of notes in scale

; wolf intervals
(define wolves '(13 15))

(define wolf-max 5) ; this many wolves are ok, but no more

(define distance-2-min 1) ; minimum difference between any 2 consecutive notes in scale
(define distance-3-min 3) ; minimum difference between the lowest and highest notes
; of any 3 consecutive notes in scale
; never use these notes
(define bad-notes '(1 13 23))

; only these intervals are allowed between consecutive notes in scale
; (but if the list is empty, all intervals are allowed)
(define allowed-intervals '(1 3 5))

; #t : scale must contain at least one of each allowed interval
; #f : scale need not contain every allowed interval
(define require-all-allowed-intervals #t)

; #t : don't display scale if it's contained in any other displayed scale
; #f : do
(define require-completeness #t)

; if you don't care about balance, set both balance-in-min and balance-out-min to 0
(define balance-notes '(0 2 4 6 8 10 12 14 16 18 20 22))
(define balance-in-min 1) ; at least this many notes in scale must come from balance-notes
(define balance-out-min 3) ; at least this many notes in scale must come from outside balance-notes

; #t : display multiple spellings if they're all equally good
; #f : never display more than one spelling
(define multiple-spellings #f)

; if more than this number of scales are found,
; don't display them by default
(define scales-max 100)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;
; don't change stuff below

(define settings
'(
modulus
length-min
length-max
wolves
wolf-max
distance-2-min
distance-3-min
bad-notes
allowed-intervals
require-all-allowed-intervals
require-completeness
balance-notes
balance-in-min
balance-out-min
multiple-spellings
scales-max))

(define (setting-length s)
(string-length (symbol->string s)))

(define (display-setting s len)
(display (make-string (- len (setting-length s)) #\space))
(display s)
(display ": ")
(display (eval s))
(newline))

(define (display-settings)
(let ((len (apply max (map setting-length settings))))
(for-each (lambda (s) (display-setting s len))
settings)))

; A note is represented as a nonnegative integer less than modulus.
; A scale is represented as a list of notes.

(define (interval a b)
(modulo (- b a) modulus))

(define (transpose-note n k)
(modulo (+ n k) modulus))

(define (apply-to-leaves f x)
(cond
((null? x) '())
((pair? x) (cons (apply-to-leaves f (car x))
(apply-to-leaves f (cdr x))))
(else (f x))))

(define (transpose x k)
(apply-to-leaves (lambda (n) (transpose-note n k))
x))

; assumption: x is no longer than y
; does x occur at the beginning of y?
(define (prefix? x y)
(or (null? x)
(and (equal? (car x) (car y))
(prefix? (cdr x) (cdr y)))))

; assumption: d is (- (length y) (length x))
; does x occur anywhere in y?
(define (sublist? x y d)
(and (>= d 0)
(or (prefix? x y)
(sublist? x (cdr y) (- d 1)))))

; ns is a non-empty list of notes
(define (notes->intervals ns)
(let ((first (car ns)))
(let recur ((n first)
(rest (cdr ns)))
(if (null? rest)
(list (interval n first))
(cons (interval n (car rest))
(recur (car rest) (cdr rest)))))))

(define (test-cell x y)
(if (not (= (length x) (length y)))
'different-lengths
(let ((xx (notes->intervals (list-sort < x)))
(yy (notes->intervals (list-sort < y)))
(d (length (cdr y))))
(let* ((y-forward (append (cdr yy) yy))
(y-backward (reverse y-forward)))
(if (or (sublist? xx y-forward d)
(sublist? xx y-backward d))
'same
'different)))))

; return a list of all size-k subsets of list xs
; n is (length xs)
(define (subsets xs n k)
(cond
((zero? k) '(()))
((> k n) '())
(else (append
(map (lambda (s) (cons (car xs) s))
(subsets (cdr xs) (- n 1) (- k 1)))
(subsets (cdr xs) (- n 1) k)))))

(define (display-multiple-12 s)
(let recur ((s s)
(k 0))
(when (pair? s)
(let ((n (- (car s) k)))
(if (< n 12)
(begin (display n) (display " ") (recur (cdr s) k))
(begin (display "| ") (recur s (+ k 12))))))))

(define (display-spellings s)
(let ((spellings (best-spellings s)))
(for-each (lambda (x) (display x) (newline))
(if multiple-spellings
spellings
(list (car spellings))))))

(define (display-scale s)
(display "notes: ")
(display s)
(newline)
(display "intervals: ")
(let ((x (notes->intervals s)))
(display (append x x)))
(newline)
(case modulus
((12) (display-spellings (map (lambda (n) (* n 2)) s)))
((24) (display-spellings s)))
(when (> modulus 12)
(display-multiple-12 s)
(newline))
(newline))

(define (display-scales ss)
(for-each display-scale ss))

(define (display-note n)
(display n)
(case modulus
((12) (display " ") (display (vector-ref note-names (* n 2))))
((24) (display " ") (display (vector-ref note-names n)))))

(define (print x)
(cond
((number? x) (display-note x))
((and (pair? x) (pair? (car x))) (display-scales x))
((pair? x) (display-scale x))))

(define scales)
(define allowed-notes)

(define (display-now x)
(display x)
(flush-output-port (current-output-port)))

(define found!
(let ((then (current-time)))
(lambda (s)
(set! scales (cons s scales))
(let ((now (current-time)))
(when (> (time-second now)
(time-second then))
(set! then now)
(display-now #\.))))))

; notes is a list of allowable notes, in increasing order
; n-len is the length of notes
; scale is the scale so far, in decreasing order
; s-len is the length of scale
; wolf is the number of wolf intervals in scale
; b-notes is the number of notes in scale that are in balance-notes

; call found! for every scale that follows the rules and
; that can be made by adding to 'scale' any number (> 0)
; of notes from 'notes'
(define (find-scales notes n-len scale s-len wolf b-notes)
(when (and (positive? n-len)
(< s-len length-max)
(>= (+ s-len n-len) length-min))
(let ((n (car notes))
(notes (cdr notes))
(n-len (- n-len 1)))
(find-scales notes n-len scale s-len wolf b-notes)
(when (and (interval-ok? n scale)
(distances-ok? n scale s-len))
(let ((wolf (+ wolf (count-wolves n scale))))
(when (<= wolf wolf-max)
(let ((b-notes (+ b-notes (if (member n balance-notes) 1 0)))
(scale (cons n scale))
(s-len (+ 1 s-len)))
(find-scales notes n-len scale s-len wolf b-notes)
(when (and (>= s-len length-min)
(balance-ok? s-len b-notes)
(final-distances-ok? scale s-len)
(final-interval-ok? scale))
(found! (reverse scale))))))))))

(define (distances-ok? n scale len)
(and (>= (interval (car scale) n) distance-2-min)
(or (<= len 1)
(and (>= (interval (cadr scale) n) distance-3-min)
(>= (interval n (list-ref scale (- len 2))) distance-3-min)))))

(define (final-distances-ok? scale len)
(and (>= (interval (car scale) 0) distance-2-min)
(>= (interval (cadr scale) 0) distance-3-min)))

(define (interval-ok? n scale)
(or (null? allowed-intervals)
(member (interval (car scale) n)
allowed-intervals)))

(define (final-interval-ok? scale)
(or (null? allowed-intervals)
(and (member (interval (car scale) 0)
allowed-intervals)
(if require-all-allowed-intervals
(let ((intervals (notes->intervals (reverse scale))))
(for-all (lambda (i) (member i intervals))
allowed-intervals))
#t))))

(define (count-wolves n scale)
(fold-left (lambda (sum note)
(+ sum
(if (member (interval note n) wolves) 1 0)
(if (member (interval n note) wolves) 1 0)))
0 scale))

(define (balance-ok? s-len b-notes)
(<= balance-in-min b-notes (- s-len balance-out-min)))

(define note-names
'#(("A" ) ; 0
("A+" "A#-" "Bb-") ; 1
("A#" "Bb" ) ; 2
("A#+" "Bb+" "B-" ) ; 3
("B" ) ; 4
("B+" "C-" ) ; 5
("C" ) ; 6
("C+" "C#-" "Db-") ; 7
("C#" "Db" ) ; 8
("C#+" "Db+" "D-" ) ; 9
("D" ) ; 10
("D+" "D#-" "Eb-") ; 11
("D#" "Eb" ) ; 12
("D#+" "Eb+" "E-" ) ; 13
("E" ) ; 14
("E+" "F-" ) ; 15
("F" ) ; 16
("F+" "F#-" "Gb-") ; 17
("F#" "Gb" ) ; 18
("F#+" "Gb+" "G-" ) ; 19
("G" ) ; 20
("G+" "G#-" "Ab-") ; 21
("G#" "Ab" ) ; 22
("G#+" "Ab+" "A-" ) ; 23
))

; A name code represents, e.g., F#+, as
; a list of three numbers, one for the F,
; one for the # and one for the +.
;
; first number: A through G are 0 through 6, respectively.
; second number: b is -1, # is +1, none is 0.
; third number: - is -1, + is +1, none is 0.

(define code-values
'((#\A . 0)
(#\B . 1)
(#\C . 2)
(#\D . 3)
(#\E . 4)
(#\F . 5)
(#\G . 6)))

; assumes name is properly capitalized
; i.e., first letter is capital, rest aren't
(define (name->code name)
(let ((lst (string->list name)))
(let ((letter (car lst))
(accidentals (cdr lst)))
(list
(cdr (assoc letter code-values))
(cond
((member #\b accidentals) -1)
((member #\# accidentals) +1)
(else 0))
(cond
((member #\- accidentals) -1)
((member #\+ accidentals) +1)
(else 0))))))

(define (code->name code)
(let ((x (car code))
(y (cadr code))
(z (caddr code)))
(string-append
(string (car (list-ref code-values x)))
(case y
((-1) "b")
((+1) "#")
(else ""))
(case z
((-1) "-")
((+1) "+")
(else "")))))

; same structure as note-names, i.e. vector of lists,
; except with each name replaced by the corresponding code
(define name-codes
(vector-map (lambda (name-list) (map name->code name-list))
note-names))

(define note-values
'((#\A . 0)
(#\B . 4)
(#\C . 6)
(#\D . 10)
(#\E . 14)
(#\F . 16)
(#\G . 20)
(#\# . 2)
(#\b . -2)
(#\+ . 1)
(#\- . -1)))

(define (string->note s)
(apply +
(map (lambda (c) (cdr (assoc c note-values)))
(let ((cs (string->list s)))
(cons (char-upcase (car cs))
(map char-downcase (cdr cs)))))))

(define (cross-product . x)
(if (null? x)
'(())
(apply append
(map (lambda (a)
(map (lambda (b) (cons a b))
(apply cross-product (cdr x))))
(car x)))))

(define (vector-increment! v i)
(vector-set! v i (+ 1 (vector-ref v i))))

; measures the extent to which letters are repeated
(define (repetitiveness x) ; x: list of name codes
(let ((v (make-vector 7 0)))
(for-each (lambda (c) (vector-increment! v (car c)))
x)
(apply + (map (lambda (x) (* x x))
(vector->list v)))))

; # of flats or # of sharps, whichever is smaller
(define (inconsistency x) ; x: list of name codes
(let ((v (make-vector 3 0)))
(for-each (lambda (c) (vector-increment! v (+ 1 (cadr c))))
x)
(min (vector-ref v 0)
(vector-ref v 2))))

; returns list of those items x of lst for which (f x) is least
(define (min-scorers f lst)
(let* ((scored-lst (map (lambda (x) (cons (f x) x))
lst))
(min-score (fold-left (lambda (a x) (min a (car x)))
(caar scored-lst) (cdr scored-lst))))
(map cdr
(filter (lambda (x) (equal? (car x) min-score))
scored-lst))))

(define (best-spellings scale)
(let* ((all-spellings (apply cross-product
(map (lambda (n) (vector-ref name-codes n))
scale)))
(best (min-scorers inconsistency
(min-scorers repetitiveness all-spellings))))
(map (lambda (scale) (map code->name scale))
best)))

(define (scale-hashtable scales)
(let ((ht (make-hashtable equal-hash equal? (length scales))))
(for-each (lambda (s) (hashtable-set! ht s 0))
scales)
ht))

; list of scales each of which is 'scale' plus one allowed note
(define (with-extra-note scale)
(map (lambda (n)
(sort < (cons n scale)))
allowed-notes))

(define (scale-complete? scale ht)
(not (exists (lambda (s)
(hashtable-contains? ht s))
(with-extra-note scale))))

(define (remove-incompletes scales)
(let ((ht (scale-hashtable scales)))
(filter (lambda (s)
(scale-complete? s ht))
scales)))

(define (go)
(set! scales '())
(display-settings)
(newline)
(display-now "finding scales...")
(set! allowed-notes (remp (lambda (n) (member n bad-notes))
(cdr (iota modulus))))
(find-scales allowed-notes (length allowed-notes) '(0) 1 0 (if (member 0 balance-notes) 1 0))
(display "done")
(newline)
(when require-completeness
(display-now "removing incomplete scales...")
(set! scales (remove-incompletes scales))
(display "done")
(newline))
(newline)
(display "number of scales found: ")
(display (length scales))
(newline)
(newline)
(if (<= (length scales) scales-max)
(display-scales scales)
(display "Say\n\n (print scales)\n\nto see them all.\n")))

(go)
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 20th March 2016, 06:57 PM   #359
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
Version 15 displays number of wolves with each scale


; okay to change these

(define modulus 24)
(define length-min 5) ; minimum number of notes in scale
(define length-max 8) ; maximum number of notes in scale

; wolf intervals
(define wolves '(13 15))

(define wolf-max 5) ; this many wolves are ok, but no more

(define distance-2-min 1) ; minimum difference between any 2 consecutive notes in scale
(define distance-3-min 3) ; minimum difference between the lowest and highest notes
; of any 3 consecutive notes in scale
; never use these notes
(define bad-notes '(1 13 23))

; only these intervals are allowed between consecutive notes in scale
; (but if the list is empty, all intervals are allowed)
(define allowed-intervals '(1 3 5))

; #t : scale must contain at least one of each allowed interval
; #f : scale need not contain every allowed interval
(define require-all-allowed-intervals #t)

; #t : don't display scale if adding any note to it results in some other displayed scale
; #f : do
(define require-completeness #t)

; if you don't care about balance, set both balance-in-min and balance-out-min to 0
(define balance-notes '(0 2 4 6 8 10 12 14 16 18 20 22))
(define balance-in-min 1) ; at least this many notes in scale must come from balance-notes
(define balance-out-min 3) ; at least this many notes in scale must come from outside balance-notes

; #t : display multiple spellings if they're all equally good
; #f : never display more than one spelling
(define multiple-spellings #f)

; if more than this number of scales are found,
; don't display them by default
(define scales-max 100)

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;
; don't change stuff below

(define settings
'(
modulus
length-min
length-max
wolves
wolf-max
distance-2-min
distance-3-min
bad-notes
allowed-intervals
require-all-allowed-intervals
require-completeness
balance-notes
balance-in-min
balance-out-min
multiple-spellings
scales-max))

(define (setting-length s)
(string-length (symbol->string s)))

(define (display-setting s len)
(display (make-string (- len (setting-length s)) #\space))
(display s)
(display ": ")
(display (eval s))
(newline))

(define (display-settings)
(let ((len (apply max (map setting-length settings))))
(for-each (lambda (s) (display-setting s len))
settings)))

; A note is represented as a nonnegative integer less than modulus.
; A scale is represented as a list of notes.

(define (interval a b)
(modulo (- b a) modulus))

(define (transpose-note n k)
(modulo (+ n k) modulus))

(define (apply-to-leaves f x)
(cond
((null? x) '())
((pair? x) (cons (apply-to-leaves f (car x))
(apply-to-leaves f (cdr x))))
(else (f x))))

(define (transpose x k)
(apply-to-leaves (lambda (n) (transpose-note n k))
x))

; assumption: x is no longer than y
; does x occur at the beginning of y?
(define (prefix? x y)
(or (null? x)
(and (equal? (car x) (car y))
(prefix? (cdr x) (cdr y)))))

; assumption: d is (- (length y) (length x))
; does x occur anywhere in y?
(define (sublist? x y d)
(and (>= d 0)
(or (prefix? x y)
(sublist? x (cdr y) (- d 1)))))

; ns is a non-empty list of notes
(define (notes->intervals ns)
(let ((first (car ns)))
(let recur ((n first)
(rest (cdr ns)))
(if (null? rest)
(list (interval n first))
(cons (interval n (car rest))
(recur (car rest) (cdr rest)))))))

(define (test-cell x y)
(if (not (= (length x) (length y)))
'different-lengths
(let ((xx (notes->intervals (list-sort < x)))
(yy (notes->intervals (list-sort < y)))
(d (length (cdr y))))
(let* ((y-forward (append (cdr yy) yy))
(y-backward (reverse y-forward)))
(if (or (sublist? xx y-forward d)
(sublist? xx y-backward d))
'same
'different)))))

; return a list of all size-k subsets of list xs
; n is (length xs)
(define (subsets xs n k)
(cond
((zero? k) '(()))
((> k n) '())
(else (append
(map (lambda (s) (cons (car xs) s))
(subsets (cdr xs) (- n 1) (- k 1)))
(subsets (cdr xs) (- n 1) k)))))

(define (display-multiple-12 s)
(let recur ((s s)
(k 0))
(when (pair? s)
(let ((n (- (car s) k)))
(if (< n 12)
(begin (display n) (display " ") (recur (cdr s) k))
(begin (display "| ") (recur s (+ k 12))))))))

(define (display-spellings s)
(let ((spellings (best-spellings s)))
(for-each (lambda (x) (display x) (newline))
(if multiple-spellings
spellings
(list (car spellings))))))

(define (display-scale s)
(display "notes: ")
(display s)
(newline)
(display "intervals: ")
(let ((x (notes->intervals s)))
(display (append x x)))
(newline)
(case modulus
((12) (display-spellings (map (lambda (n) (* n 2)) s)))
((24) (display-spellings s)))
(when (> modulus 12)
(display-multiple-12 s)
(newline))
(display "number of wolves: ")
(display (count-all-wolves s))
(newline)
(newline))

(define (display-scales ss)
(for-each display-scale ss))

(define (display-note n)
(display n)
(case modulus
((12) (display " ") (display (vector-ref note-names (* n 2))))
((24) (display " ") (display (vector-ref note-names n)))))

(define (print x)
(cond
((number? x) (display-note x))
((and (pair? x) (pair? (car x))) (display-scales x))
((pair? x) (display-scale x))))

(define scales)
(define allowed-notes)

(define (display-now x)
(display x)
(flush-output-port (current-output-port)))

(define found!
(let ((then (current-time)))
(lambda (s)
(set! scales (cons s scales))
(let ((now (current-time)))
(when (> (time-second now)
(time-second then))
(set! then now)
(display-now #\.))))))

; notes is a list of allowable notes, in increasing order
; n-len is the length of notes
; scale is the scale so far, in decreasing order
; s-len is the length of scale
; wolf is the number of wolf intervals in scale
; b-notes is the number of notes in scale that are in balance-notes

; call found! for every scale that follows the rules and
; that can be made by adding to 'scale' any number (> 0)
; of notes from 'notes'
(define (find-scales notes n-len scale s-len wolf b-notes)
(when (and (positive? n-len)
(< s-len length-max)
(>= (+ s-len n-len) length-min))
(let ((n (car notes))
(notes (cdr notes))
(n-len (- n-len 1)))
(find-scales notes n-len scale s-len wolf b-notes)
(when (and (interval-ok? n scale)
(distances-ok? n scale s-len))
(let ((wolf (+ wolf (count-wolves n scale))))
(when (<= wolf wolf-max)
(let ((b-notes (+ b-notes (if (member n balance-notes) 1 0)))
(scale (cons n scale))
(s-len (+ 1 s-len)))
(find-scales notes n-len scale s-len wolf b-notes)
(when (and (>= s-len length-min)
(balance-ok? s-len b-notes)
(final-distances-ok? scale s-len)
(final-interval-ok? scale))
(found! (reverse scale))))))))))

(define (distances-ok? n scale len)
(and (>= (interval (car scale) n) distance-2-min)
(or (<= len 1)
(and (>= (interval (cadr scale) n) distance-3-min)
(>= (interval n (list-ref scale (- len 2))) distance-3-min)))))

(define (final-distances-ok? scale len)
(and (>= (interval (car scale) 0) distance-2-min)
(>= (interval (cadr scale) 0) distance-3-min)))

(define (interval-ok? n scale)
(or (null? allowed-intervals)
(member (interval (car scale) n)
allowed-intervals)))

(define (final-interval-ok? scale)
(or (null? allowed-intervals)
(and (member (interval (car scale) 0)
allowed-intervals)
(if require-all-allowed-intervals
(let ((intervals (notes->intervals (reverse scale))))
(for-all (lambda (i) (member i intervals))
allowed-intervals))
#t))))

(define (count-wolves n scale)
(fold-left (lambda (sum note)
(+ sum
(if (member (interval note n) wolves) 1 0)
(if (member (interval n note) wolves) 1 0)))
0 scale))

(define (balance-ok? s-len b-notes)
(<= balance-in-min b-notes (- s-len balance-out-min)))

(define (count-all-wolves scale)
(if (null? scale)
0
(+ (count-wolves (car scale) (cdr scale))
(count-all-wolves (cdr scale)))))

(define note-names
'#(("A" ) ; 0
("A+" "A#-" "Bb-") ; 1
("A#" "Bb" ) ; 2
("A#+" "Bb+" "B-" ) ; 3
("B" ) ; 4
("B+" "C-" ) ; 5
("C" ) ; 6
("C+" "C#-" "Db-") ; 7
("C#" "Db" ) ; 8
("C#+" "Db+" "D-" ) ; 9
("D" ) ; 10
("D+" "D#-" "Eb-") ; 11
("D#" "Eb" ) ; 12
("D#+" "Eb+" "E-" ) ; 13
("E" ) ; 14
("E+" "F-" ) ; 15
("F" ) ; 16
("F+" "F#-" "Gb-") ; 17
("F#" "Gb" ) ; 18
("F#+" "Gb+" "G-" ) ; 19
("G" ) ; 20
("G+" "G#-" "Ab-") ; 21
("G#" "Ab" ) ; 22
("G#+" "Ab+" "A-" ) ; 23
))

; A name code represents, e.g., F#+, as
; a list of three numbers, one for the F,
; one for the # and one for the +.
;
; first number: A through G are 0 through 6, respectively.
; second number: b is -1, # is +1, none is 0.
; third number: - is -1, + is +1, none is 0.

(define code-values
'((#\A . 0)
(#\B . 1)
(#\C . 2)
(#\D . 3)
(#\E . 4)
(#\F . 5)
(#\G . 6)))

; assumes name is properly capitalized
; i.e., first letter is capital, rest aren't
(define (name->code name)
(let ((lst (string->list name)))
(let ((letter (car lst))
(accidentals (cdr lst)))
(list
(cdr (assoc letter code-values))
(cond
((member #\b accidentals) -1)
((member #\# accidentals) +1)
(else 0))
(cond
((member #\- accidentals) -1)
((member #\+ accidentals) +1)
(else 0))))))

(define (code->name code)
(let ((x (car code))
(y (cadr code))
(z (caddr code)))
(string-append
(string (car (list-ref code-values x)))
(case y
((-1) "b")
((+1) "#")
(else ""))
(case z
((-1) "-")
((+1) "+")
(else "")))))

; same structure as note-names, i.e. vector of lists,
; except with each name replaced by the corresponding code
(define name-codes
(vector-map (lambda (name-list) (map name->code name-list))
note-names))

(define note-values
'((#\A . 0)
(#\B . 4)
(#\C . 6)
(#\D . 10)
(#\E . 14)
(#\F . 16)
(#\G . 20)
(#\# . 2)
(#\b . -2)
(#\+ . 1)
(#\- . -1)))

(define (string->note s)
(apply +
(map (lambda (c) (cdr (assoc c note-values)))
(let ((cs (string->list s)))
(cons (char-upcase (car cs))
(map char-downcase (cdr cs)))))))

(define (cross-product . x)
(if (null? x)
'(())
(apply append
(map (lambda (a)
(map (lambda (b) (cons a b))
(apply cross-product (cdr x))))
(car x)))))

(define (vector-increment! v i)
(vector-set! v i (+ 1 (vector-ref v i))))

; measures the extent to which letters are repeated
(define (repetitiveness x) ; x: list of name codes
(let ((v (make-vector 7 0)))
(for-each (lambda (c) (vector-increment! v (car c)))
x)
(apply + (map (lambda (x) (* x x))
(vector->list v)))))

; # of flats or # of sharps, whichever is smaller
(define (inconsistency x) ; x: list of name codes
(let ((v (make-vector 3 0)))
(for-each (lambda (c) (vector-increment! v (+ 1 (cadr c))))
x)
(min (vector-ref v 0)
(vector-ref v 2))))

; returns list of those items x of lst for which (f x) is least
(define (min-scorers f lst)
(let* ((scored-lst (map (lambda (x) (cons (f x) x))
lst))
(min-score (fold-left (lambda (a x) (min a (car x)))
(caar scored-lst) (cdr scored-lst))))
(map cdr
(filter (lambda (x) (equal? (car x) min-score))
scored-lst))))

(define (best-spellings scale)
(let* ((all-spellings (apply cross-product
(map (lambda (n) (vector-ref name-codes n))
scale)))
(best (min-scorers inconsistency
(min-scorers repetitiveness all-spellings))))
(map (lambda (scale) (map code->name scale))
best)))

(define (scale-hashtable scales)
(let ((ht (make-hashtable equal-hash equal? (length scales))))
(for-each (lambda (s) (hashtable-set! ht s 0))
scales)
ht))

; list of scales each of which is 'scale' plus one allowed note
(define (with-extra-note scale)
(map (lambda (n)
(list-sort < (cons n scale)))
allowed-notes))

(define (scale-complete? scale ht)
(not (exists (lambda (s)
(hashtable-contains? ht s))
(with-extra-note scale))))

(define (remove-incompletes scales)
(let ((ht (scale-hashtable scales)))
(filter (lambda (s)
(scale-complete? s ht))
scales)))

(define (go)
(set! scales '())
(display-settings)
(newline)
(display-now "finding scales...")
(set! allowed-notes (remp (lambda (n) (member n bad-notes))
(cdr (iota modulus))))
(find-scales allowed-notes (length allowed-notes) '(0) 1 0 (if (member 0 balance-notes) 1 0))
(display "done")
(newline)
(when require-completeness
(display-now "removing incomplete scales...")
(set! scales (remove-incompletes scales))
(display "done")
(newline))
(newline)
(display "number of scales found: ")
(display (length scales))
(newline)
(newline)
(if (<= (length scales) scales-max)
(display-scales scales)
(display "Say\n\n (print scales)\n\nto see them all.\n")))

(go)
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Old 21st March 2016, 03:20 AM   #360
calebprime
Somewhat Elitist Parasite
 
calebprime's Avatar
 
Join Date: Jul 2006
Posts: 11,494
This is a kind of sweet spot, and with some list sorting that is sure to be trivially easy for the programmer, we could arrange this list in some different ways, to help our thinking.

This list is going to be the basis of my bestselling A Scale a Day Calendar. What's the day off? New Year's? Halloween?

(load "Desktop/microtonal15.txt")


; okay to change these

(define modulus 24)
(define length-min 5) ; minimum number of notes in scale
(define length-max 8) ; maximum number of notes in scale

; wolf intervals
(define wolves '(13 15))

(define wolf-max 2) ; this many wolves are ok, but no more

(define distance-2-min 2) ; minimum difference between any 2 consecutive notes in scale
(define distance-3-min 5) ; minimum difference between the lowest and highest notes
; of any 3 consecutive notes in scale
; never use these notes
(define bad-notes '(1 13 23))

; only these intervals are allowed between consecutive notes in scale
; (but if the list is empty, all intervals are allowed)
(define allowed-intervals '())

; #t : scale must contain at least one of each allowed interval
; #f : scale need not contain every allowed interval
(define require-all-allowed-intervals #t)

; #t : don't display scale if adding any note to it results in some other displayed scale
; #f : do
(define require-completeness #t)

; if you don't care about balance, set both balance-in-min and balance-out-min to 0
(define balance-notes '(0 2 4 6 8 10 12 14 16 18 20 22))
(define balance-in-min 2) ; at least this many notes in scale must come from balance-notes
(define balance-out-min 2) ; at least this many notes in scale must come from outside balance-notes

; #t : display multiple spellings if they're all equally good
; #f : never display more than one spelling
(define multiple-spellings #f)

; if more than this number of scales are found,
; don't display them by default
(define scales-max 100)








> (load "Desktop/microtonal15.txt")
modulus: 24
length-min: 5
length-max: 8
wolves: (13 15)
wolf-max: 2
distance-2-min: 2
distance-3-min: 5
bad-notes: (1 13 23)
allowed-intervals: ()
require-all-allowed-intervals: #t
require-completeness: #t
balance-notes: (0 2 4 6 8 10 12 14 16 18 20 22)
balance-in-min: 2
balance-out-min: 2
multiple-spellings: #f
scales-max: 100

finding scales...done
removing incomplete scales...done

number of scales found: 364

Say

(print scales)

to see them all.
> (print scales)
notes: (0 2 5 7 10 12 15)
intervals: (2 3 2 3 2 3 9 2 3 2 3 2 3 9)
(A Bb B+ C+ D Eb F-)
0 2 5 7 10 | 0 3
number of wolves: 2

notes: (0 2 5 7 10 12 16)
intervals: (2 3 2 3 2 4 8 2 3 2 3 2 4 8)
(A Bb B+ C+ D Eb F)
0 2 5 7 10 | 0 4
number of wolves: 2

notes: (0 2 5 7 10 12 17 19)
intervals: (2 3 2 3 2 5 2 5 2 3 2 3 2 5 2 5)
(A Bb B+ C+ D Eb F+ Gb+)
0 2 5 7 10 | 0 5 7
number of wolves: 2

notes: (0 2 5 7 10 12 18)
intervals: (2 3 2 3 2 6 6 2 3 2 3 2 6 6)
(A Bb B+ C+ D Eb Gb)
0 2 5 7 10 | 0 6
number of wolves: 2

notes: (0 2 5 7 10 12 20)
intervals: (2 3 2 3 2 8 4 2 3 2 3 2 8 4)
(A Bb B+ C+ D Eb G)
0 2 5 7 10 | 0 8
number of wolves: 2

notes: (0 2 5 7 10 12 21)
intervals: (2 3 2 3 2 9 3 2 3 2 3 2 9 3)
(A Bb B+ C+ D Eb G+)
0 2 5 7 10 | 0 9
number of wolves: 2

notes: (0 2 5 7 10 14 17)
intervals: (2 3 2 3 4 3 7 2 3 2 3 4 3 7)
(A A# B+ C+ D E F+)
0 2 5 7 10 | 2 5
number of wolves: 2

notes: (0 2 5 7 10 14 19)
intervals: (2 3 2 3 4 5 5 2 3 2 3 4 5 5)
(A A# B+ C+ D E F#+)
0 2 5 7 10 | 2 7
number of wolves: 2

notes: (0 2 5 7 10 14 21)
intervals: (2 3 2 3 4 7 3 2 3 2 3 4 7 3)
(A A# B+ C+ D E G+)
0 2 5 7 10 | 2 9
number of wolves: 2

notes: (0 2 5 7 10 17 21)
intervals: (2 3 2 3 7 4 3 2 3 2 3 7 4 3)
(A A# B+ C+ D F+ G+)
0 2 5 7 10 | 5 9
number of wolves: 2

notes: (0 2 5 7 10 19 21)
intervals: (2 3 2 3 9 2 3 2 3 2 3 9 2 3)
(A A# B+ C+ D F#+ G+)
0 2 5 7 10 | 7 9
number of wolves: 2

notes: (0 2 5 7 11 19 21)
intervals: (2 3 2 4 8 2 3 2 3 2 4 8 2 3)
(A Bb C- Db- Eb- F#+ G+)
0 2 5 7 11 | 7 9
number of wolves: 2

notes: (0 2 5 7 12 14 17 19)
intervals: (2 3 2 5 2 3 2 5 2 3 2 5 2 3 2 5)
(A A# B+ C+ D# E F+ G-)
0 2 5 7 | 0 2 5 7
number of wolves: 2

notes: (0 2 5 7 12 14 19 21)
intervals: (2 3 2 5 2 5 2 3 2 3 2 5 2 5 2 3)
(A A# B+ C+ D# E F#+ G+)
0 2 5 7 | 0 2 7 9
number of wolves: 2

notes: (0 2 5 7 12 15 19)
intervals: (2 3 2 5 3 4 5 2 3 2 5 3 4 5)
(A Bb C- Db- Eb F- Gb+)
0 2 5 7 | 0 3 7
number of wolves: 2

notes: (0 2 5 7 12 16 19)
intervals: (2 3 2 5 4 3 5 2 3 2 5 4 3 5)
(A Bb C- Db- Eb F Gb+)
0 2 5 7 | 0 4 7
number of wolves: 2

notes: (0 2 5 7 12 17 21)
intervals: (2 3 2 5 5 4 3 2 3 2 5 5 4 3)
(A Bb C- Db- Eb F+ G+)
0 2 5 7 | 0 5 9
number of wolves: 2

notes: (0 2 5 7 14 17 21)
intervals: (2 3 2 7 3 4 3 2 3 2 7 3 4 3)
(A Bb C- Db- E F+ G+)
0 2 5 7 | 2 5 9
number of wolves: 2

notes: (0 2 5 7 15 19 21)
intervals: (2 3 2 8 4 2 3 2 3 2 8 4 2 3)
(A Bb C- Db- E+ F#+ G+)
0 2 5 7 | 3 7 9
number of wolves: 2

notes: (0 2 5 7 16 19 21)
intervals: (2 3 2 9 3 2 3 2 3 2 9 3 2 3)
(A Bb C- Db- F Gb+ G+)
0 2 5 7 | 4 7 9
number of wolves: 2

notes: (0 2 5 7 18 21)
intervals: (2 3 2 11 3 3 2 3 2 11 3 3)
(A Bb C- Db- F# G+)
0 2 5 7 | 6 9
number of wolves: 2

notes: (0 2 5 8 10 15)
intervals: (2 3 3 2 5 9 2 3 3 2 5 9)
(A A# B+ C# D E+)
0 2 5 8 10 | 3
number of wolves: 2

notes: (0 2 5 8 10 17)
intervals: (2 3 3 2 7 7 2 3 3 2 7 7)
(A A# B+ C# D F+)
0 2 5 8 10 | 5
number of wolves: 2

notes: (0 2 5 8 10 19)
intervals: (2 3 3 2 9 5 2 3 3 2 9 5)
(A A# B+ C# D F#+)
0 2 5 8 10 | 7
number of wolves: 2

notes: (0 2 5 8 10 21)
intervals: (2 3 3 2 11 3 2 3 3 2 11 3)
(A A# B+ C# D G+)
0 2 5 8 10 | 9
number of wolves: 2

notes: (0 2 5 8 11)
intervals: (2 3 3 3 13 2 3 3 3 13)
(A Bb C- Db Eb-)
0 2 5 8 11
number of wolves: 2

notes: (0 2 5 8 12 14 19)
intervals: (2 3 3 4 2 5 5 2 3 3 4 2 5 5)
(A A# B+ C# D# E F#+)
0 2 5 8 | 0 2 7
number of wolves: 2

notes: (0 2 5 8 12 15)
intervals: (2 3 3 4 3 9 2 3 3 4 3 9)
(A Bb C- Db Eb F-)
0 2 5 8 | 0 3
number of wolves: 2

notes: (0 2 5 8 12 16 19)
intervals: (2 3 3 4 4 3 5 2 3 3 4 4 3 5)
(A Bb C- Db Eb F Gb+)
0 2 5 8 | 0 4 7
number of wolves: 2

notes: (0 2 5 8 12 17)
intervals: (2 3 3 4 5 7 2 3 3 4 5 7)
(A Bb C- Db Eb F+)
0 2 5 8 | 0 5
number of wolves: 2

notes: (0 2 5 8 12 21)
intervals: (2 3 3 4 9 3 2 3 3 4 9 3)
(A Bb C- Db Eb G+)
0 2 5 8 | 0 9
number of wolves: 2

notes: (0 2 5 8 14 21)
intervals: (2 3 3 6 7 3 2 3 3 6 7 3)
(A Bb C- Db E G+)
0 2 5 8 | 2 9
number of wolves: 2

notes: (0 2 5 8 16 21)
intervals: (2 3 3 8 5 3 2 3 3 8 5 3)
(A Bb C- Db F G+)
0 2 5 8 | 4 9
number of wolves: 2

notes: (0 2 5 8 18 21)
intervals: (2 3 3 10 3 3 2 3 3 10 3 3)
(A Bb C- Db F# G+)
0 2 5 8 | 6 9
number of wolves: 2

notes: (0 2 5 8 19 21)
intervals: (2 3 3 11 2 3 2 3 3 11 2 3)
(A Bb C- Db F#+ G+)
0 2 5 8 | 7 9
number of wolves: 2

notes: (0 2 5 9 12 14 19)
intervals: (2 3 4 3 2 5 5 2 3 4 3 2 5 5)
(A A# B+ C#+ D# E F#+)
0 2 5 9 | 0 2 7
number of wolves: 2

notes: (0 2 5 9 12 16 19)
intervals: (2 3 4 3 4 3 5 2 3 4 3 4 3 5)
(A Bb C- Db+ Eb F Gb+)
0 2 5 9 | 0 4 7
number of wolves: 2

notes: (0 2 5 9 12 17 19)
intervals: (2 3 4 3 5 2 5 2 3 4 3 5 2 5)
(A Bb C- Db+ Eb F+ Gb+)
0 2 5 9 | 0 5 7
number of wolves: 2

notes: (0 2 5 9 12 19 21)
intervals: (2 3 4 3 7 2 3 2 3 4 3 7 2 3)
(A Bb C- Db+ Eb F#+ G+)
0 2 5 9 | 0 7 9
number of wolves: 2

notes: (0 2 5 9 14 19 21)
intervals: (2 3 4 5 5 2 3 2 3 4 5 5 2 3)
(A Bb C- Db+ E F#+ G+)
0 2 5 9 | 2 7 9
number of wolves: 2

notes: (0 2 5 9 16 19 21)
intervals: (2 3 4 7 3 2 3 2 3 4 7 3 2 3)
(A Bb C- Db+ F Gb+ G+)
0 2 5 9 | 4 7 9
number of wolves: 2

notes: (0 2 5 9 17 21)
intervals: (2 3 4 8 4 3 2 3 4 8 4 3)
(A Bb C- Db+ F+ G+)
0 2 5 9 | 5 9
number of wolves: 2

notes: (0 2 5 10 12 16 19)
intervals: (2 3 5 2 4 3 5 2 3 5 2 4 3 5)
(A Bb C- D Eb F Gb+)
0 2 5 10 | 0 4 7
number of wolves: 2

notes: (0 2 5 10 12 17 20)
intervals: (2 3 5 2 5 3 4 2 3 5 2 5 3 4)
(A Bb C- D Eb F+ G)
0 2 5 10 | 0 5 8
number of wolves: 2

notes: (0 2 5 10 16 21)
intervals: (2 3 5 6 5 3 2 3 5 6 5 3)
(A Bb C- D F G+)
0 2 5 10 | 4 9
number of wolves: 2

notes: (0 2 5 10 18 21)
intervals: (2 3 5 8 3 3 2 3 5 8 3 3)
(A Bb C- D F# G+)
0 2 5 10 | 6 9
number of wolves: 2

notes: (0 2 5 12 16 19 21)
intervals: (2 3 7 4 3 2 3 2 3 7 4 3 2 3)
(A Bb C- Eb F Gb+ G+)
0 2 5 | 0 4 7 9
number of wolves: 2

notes: (0 2 5 12 18 21)
intervals: (2 3 7 6 3 3 2 3 7 6 3 3)
(A Bb C- D# F# G+)
0 2 5 | 0 6 9
number of wolves: 2

notes: (0 2 5 14 16 19 21)
intervals: (2 3 9 2 3 2 3 2 3 9 2 3 2 3)
(A Bb C- E F Gb+ G+)
0 2 5 | 2 4 7 9
number of wolves: 2

notes: (0 2 5 14 18 21)
intervals: (2 3 9 4 3 3 2 3 9 4 3 3)
(A Bb C- E F# G+)
0 2 5 | 2 6 9
number of wolves: 2

notes: (0 2 5 16 18 21)
intervals: (2 3 11 2 3 3 2 3 11 2 3 3)
(A Bb C- F Gb G+)
0 2 5 | 4 6 9
number of wolves: 2

notes: (0 2 6 9 12 14 19)
intervals: (2 4 3 3 2 5 5 2 4 3 3 2 5 5)
(A Bb C Db+ Eb E Gb+)
0 2 6 9 | 0 2 7
number of wolves: 2

notes: (0 2 6 9 12 16 19)
intervals: (2 4 3 3 4 3 5 2 4 3 3 4 3 5)
(A Bb C Db+ Eb F Gb+)
0 2 6 9 | 0 4 7
number of wolves: 2

notes: (0 2 6 9 14 16 19)
intervals: (2 4 3 5 2 3 5 2 4 3 5 2 3 5)
(A Bb C Db+ E F Gb+)
0 2 6 9 | 2 4 7
number of wolves: 2

notes: (0 2 6 9 14 16 21)
intervals: (2 4 3 5 2 5 3 2 4 3 5 2 5 3)
(A Bb C Db+ E F G+)
0 2 6 9 | 2 4 9
number of wolves: 2

notes: (0 2 6 14 16 19 21)
intervals: (2 4 8 2 3 2 3 2 4 8 2 3 2 3)
(A Bb C E F Gb+ G+)
0 2 6 | 2 4 7 9
number of wolves: 2

notes: (0 2 7 9 12 14 17 19)
intervals: (2 5 2 3 2 3 2 5 2 5 2 3 2 3 2 5)
(A Bb C+ Db+ Eb E F+ Gb+)
0 2 7 9 | 0 2 5 7
number of wolves: 2

notes: (0 2 7 9 12 14 19 21)
intervals: (2 5 2 3 2 5 2 3 2 5 2 3 2 5 2 3)
(A Bb C+ C#+ D# E F#+ G+)
0 2 7 9 | 0 2 7 9
number of wolves: 2

notes: (0 2 7 9 12 16 19)
intervals: (2 5 2 3 4 3 5 2 5 2 3 4 3 5)
(A Bb C+ Db+ Eb F Gb+)
0 2 7 9 | 0 4 7
number of wolves: 2

notes: (0 2 7 9 14 16 19 21)
intervals: (2 5 2 5 2 3 2 3 2 5 2 5 2 3 2 3)
(A Bb C+ Db+ E F Gb+ G+)
0 2 7 9 | 2 4 7 9
number of wolves: 2

notes: (0 2 7 9 14 17 21)
intervals: (2 5 2 5 3 4 3 2 5 2 5 3 4 3)
(A Bb C+ Db+ E F+ G+)
0 2 7 9 | 2 5 9
number of wolves: 2

notes: (0 2 7 10 12 16 19)
intervals: (2 5 3 2 4 3 5 2 5 3 2 4 3 5)
(A Bb C+ D Eb F Gb+)
0 2 7 10 | 0 4 7
number of wolves: 2

notes: (0 2 7 10 12 17 20)
intervals: (2 5 3 2 5 3 4 2 5 3 2 5 3 4)
(A Bb C+ D Eb F+ G)
0 2 7 10 | 0 5 8
number of wolves: 2

notes: (0 2 7 10 14 16 19)
intervals: (2 5 3 4 2 3 5 2 5 3 4 2 3 5)
(A Bb C+ D E F Gb+)
0 2 7 10 | 2 4 7
number of wolves: 2

notes: (0 2 7 10 14 16 21)
intervals: (2 5 3 4 2 5 3 2 5 3 4 2 5 3)
(A Bb C+ D E F G+)
0 2 7 10 | 2 4 9
number of wolves: 2

notes: (0 2 7 10 14 17 19)
intervals: (2 5 3 4 3 2 5 2 5 3 4 3 2 5)
(A Bb C+ D E F+ Gb+)
0 2 7 10 | 2 5 7
number of wolves: 2

notes: (0 2 7 10 14 17 20)
intervals: (2 5 3 4 3 3 4 2 5 3 4 3 3 4)
(A Bb C+ D E F+ G)
0 2 7 10 | 2 5 8
number of wolves: 2

notes: (0 2 7 10 14 17 21)
intervals: (2 5 3 4 3 4 3 2 5 3 4 3 4 3)
(A Bb C+ D E F+ G+)
0 2 7 10 | 2 5 9
number of wolves: 2

notes: (0 2 7 10 14 18 21)
intervals: (2 5 3 4 4 3 3 2 5 3 4 4 3 3)
(A Bb C+ D E F# G+)
0 2 7 10 | 2 6 9
number of wolves: 2

notes: (0 2 7 10 14 19 21)
intervals: (2 5 3 4 5 2 3 2 5 3 4 5 2 3)
(A Bb C+ D E F#+ G+)
0 2 7 10 | 2 7 9
number of wolves: 2

notes: (0 2 7 11 14 19 21)
intervals: (2 5 4 3 5 2 3 2 5 4 3 5 2 3)
(A Bb C+ D+ E F#+ G+)
0 2 7 11 | 2 7 9
number of wolves: 2

notes: (0 2 7 12 14 17 20)
intervals: (2 5 5 2 3 3 4 2 5 5 2 3 3 4)
(A Bb C+ D# E F+ G)
0 2 7 | 0 2 5 8
number of wolves: 2

notes: (0 2 7 12 14 17 21)
intervals: (2 5 5 2 3 4 3 2 5 5 2 3 4 3)
(A Bb C+ D# E F+ G+)
0 2 7 | 0 2 5 9
number of wolves: 2

notes: (0 2 7 12 14 18 21)
intervals: (2 5 5 2 4 3 3 2 5 5 2 4 3 3)
(A Bb C+ D# E F# G+)
0 2 7 | 0 2 6 9
number of wolves: 2

notes: (0 2 7 12 16 19 21)
intervals: (2 5 5 4 3 2 3 2 5 5 4 3 2 3)
(A Bb C+ Eb F Gb+ G+)
0 2 7 | 0 4 7 9
number of wolves: 2

notes: (0 2 7 16 18 21)
intervals: (2 5 9 2 3 3 2 5 9 2 3 3)
(A Bb C+ F Gb G+)
0 2 7 | 4 6 9
number of wolves: 2

notes: (0 2 8 14 16 19 21)
intervals: (2 6 6 2 3 2 3 2 6 6 2 3 2 3)
(A Bb Db E F Gb+ G+)
0 2 8 | 2 4 7 9
number of wolves: 2

notes: (0 2 9 12 16 19 21)
intervals: (2 7 3 4 3 2 3 2 7 3 4 3 2 3)
(A Bb Db+ Eb F Gb+ G+)
0 2 9 | 0 4 7 9
number of wolves: 2

notes: (0 2 9 14 18 21)
intervals: (2 7 5 4 3 3 2 7 5 4 3 3)
(A Bb C#+ E F# G+)
0 2 9 | 2 6 9
number of wolves: 2

notes: (0 2 9 16 18 21)
intervals: (2 7 7 2 3 3 2 7 7 2 3 3)
(A Bb Db+ F Gb G+)
0 2 9 | 4 6 9
number of wolves: 2

notes: (0 2 10 14 16 19 21)
intervals: (2 8 4 2 3 2 3 2 8 4 2 3 2 3)
(A Bb D E F Gb+ G+)
0 2 10 | 2 4 7 9
number of wolves: 2

notes: (0 2 11 14 16 19 21)
intervals: (2 9 3 2 3 2 3 2 9 3 2 3 2 3)
(A Bb D+ E F Gb+ G+)
0 2 11 | 2 4 7 9
number of wolves: 2

notes: (0 2 11 14 18 21)
intervals: (2 9 3 4 3 3 2 9 3 4 3 3)
(A Bb D+ E F# G+)
0 2 11 | 2 6 9
number of wolves: 2

notes: (0 2 11 16 18 21)
intervals: (2 9 5 2 3 3 2 9 5 2 3 3)
(A Bb D+ F Gb G+)
0 2 11 | 4 6 9
number of wolves: 2

notes: (0 2 15 18 21)
intervals: (2 13 3 3 3 2 13 3 3 3)
(A Bb E+ F# G+)
0 2 | 3 6 9
number of wolves: 2

notes: (0 3 5 8 10 14 22)
intervals: (3 2 3 2 4 8 2 3 2 3 2 4 8 2)
(A A#+ B+ C# D E G#)
0 3 5 8 10 | 2 10
number of wolves: 2

notes: (0 3 5 8 10 15 17 22)
intervals: (3 2 3 2 5 2 5 2 3 2 3 2 5 2 5 2)
(A A#+ B+ C# D E+ F+ G#)
0 3 5 8 10 | 3 5 10
number of wolves: 2

notes: (0 3 5 8 10 15 20)
intervals: (3 2 3 2 5 5 4 3 2 3 2 5 5 4)
(A A#+ B+ C# D E+ G)
0 3 5 8 10 | 3 8
number of wolves: 2

notes: (0 3 5 8 10 16 22)
intervals: (3 2 3 2 6 6 2 3 2 3 2 6 6 2)
(A A#+ B+ C# D F G#)
0 3 5 8 10 | 4 10
number of wolves: 2

notes: (0 3 5 8 10 17 20)
intervals: (3 2 3 2 7 3 4 3 2 3 2 7 3 4)
(A A#+ B+ C# D F+ G)
0 3 5 8 10 | 5 8
number of wolves: 2

notes: (0 3 5 8 10 18 22)
intervals: (3 2 3 2 8 4 2 3 2 3 2 8 4 2)
(A A#+ B+ C# D F# G#)
0 3 5 8 10 | 6 10
number of wolves: 2

notes: (0 3 5 8 10 19 22)
intervals: (3 2 3 2 9 3 2 3 2 3 2 9 3 2)
(A A#+ B+ C# D F#+ G#)
0 3 5 8 10 | 7 10
number of wolves: 2

notes: (0 3 5 8 10 21)
intervals: (3 2 3 2 11 3 3 2 3 2 11 3)
(A A#+ B+ C# D G+)
0 3 5 8 10 | 9
number of wolves: 2

notes: (0 3 5 8 11 15)
intervals: (3 2 3 3 4 9 3 2 3 3 4 9)
(A Bb+ C- Db Eb- F-)
0 3 5 8 11 | 3
number of wolves: 2

notes: (0 3 5 8 11 17)
intervals: (3 2 3 3 6 7 3 2 3 3 6 7)
(A Bb+ C- Db Eb- F+)
0 3 5 8 11 | 5
number of wolves: 2

notes: (0 3 5 8 11 19)
intervals: (3 2 3 3 8 5 3 2 3 3 8 5)
(A Bb+ C- Db Eb- Gb+)
0 3 5 8 11 | 7
number of wolves: 2

notes: (0 3 5 8 11 21)
intervals: (3 2 3 3 10 3 3 2 3 3 10 3)
(A Bb+ C- Db Eb- G+)
0 3 5 8 11 | 9
number of wolves: 2

notes: (0 3 5 8 11 22)
intervals: (3 2 3 3 11 2 3 2 3 3 11 2)
(A Bb+ C- Db Eb- G#)
0 3 5 8 11 | 10
number of wolves: 2

notes: (0 3 5 8 12 15 22)
intervals: (3 2 3 4 3 7 2 3 2 3 4 3 7 2)
(A Bb+ C- Db Eb F- G#)
0 3 5 8 | 0 3 10
number of wolves: 2

notes: (0 3 5 8 12 17 22)
intervals: (3 2 3 4 5 5 2 3 2 3 4 5 5 2)
(A Bb+ C- Db Eb F+ G#)
0 3 5 8 | 0 5 10
number of wolves: 2

notes: (0 3 5 8 12 19 22)
intervals: (3 2 3 4 7 3 2 3 2 3 4 7 3 2)
(A Bb+ C- Db Eb F#+ G#)
0 3 5 8 | 0 7 10
number of wolves: 2

notes: (0 3 5 8 12 20)
intervals: (3 2 3 4 8 4 3 2 3 4 8 4)
(A Bb+ C- Db Eb G)
0 3 5 8 | 0 8
number of wolves: 2

notes: (0 3 5 8 15 19 22)
intervals: (3 2 3 7 4 3 2 3 2 3 7 4 3 2)
(A B- C- Db E+ F#+ G#)
0 3 5 8 | 3 7 10
number of wolves: 2

notes: (0 3 5 8 15 21)
intervals: (3 2 3 7 6 3 3 2 3 7 6 3)
(A Bb+ C- Db E+ G+)
0 3 5 8 | 3 9
number of wolves: 2

notes: (0 3 5 8 17 19 22)
intervals: (3 2 3 9 2 3 2 3 2 3 9 2 3 2)
(A Bb+ C- Db F+ Gb+ Ab)
0 3 5 8 | 5 7 10
number of wolves: 2

notes: (0 3 5 8 17 21)
intervals: (3 2 3 9 4 3 3 2 3 9 4 3)
(A Bb+ C- Db F+ G+)
0 3 5 8 | 5 9
number of wolves: 2

notes: (0 3 5 8 19 21)
intervals: (3 2 3 11 2 3 3 2 3 11 2 3)
(A Bb+ C- Db F#+ G+)
0 3 5 8 | 7 9
number of wolves: 2

notes: (0 3 5 9 12 17 19)
intervals: (3 2 4 3 5 2 5 3 2 4 3 5 2 5)
(A Bb+ C- Db+ Eb F+ Gb+)
0 3 5 9 | 0 5 7
number of wolves: 2

notes: (0 3 5 9 17 19 22)
intervals: (3 2 4 8 2 3 2 3 2 4 8 2 3 2)
(A Bb+ C- Db+ F+ Gb+ Ab)
0 3 5 9 | 5 7 10
number of wolves: 2

notes: (0 3 5 10 12 15 17 22)
intervals: (3 2 5 2 3 2 5 2 3 2 5 2 3 2 5 2)
(A Bb+ C- D Eb F- Gb- Ab)
0 3 5 10 | 0 3 5 10
number of wolves: 2

notes: (0 3 5 10 12 17 19 22)
intervals: (3 2 5 2 5 2 3 2 3 2 5 2 5 2 3 2)
(A Bb+ C- D Eb F+ Gb+ Ab)
0 3 5 10 | 0 5 7 10
number of wolves: 2

notes: (0 3 5 10 12 17 20)
intervals: (3 2 5 2 5 3 4 3 2 5 2 5 3 4)
(A Bb+ C- D Eb F+ G)
0 3 5 10 | 0 5 8
number of wolves: 2

notes: (0 3 5 10 14 17 22)
intervals: (3 2 5 4 3 5 2 3 2 5 4 3 5 2)
(A B- C- D E F+ G#)
0 3 5 10 | 2 5 10
number of wolves: 2

notes: (0 3 5 10 15 17 20)
intervals: (3 2 5 5 2 3 4 3 2 5 5 2 3 4)
(A Bb+ C- D E+ F+ G)
0 3 5 10 | 3 5 8
number of wolves: 2

notes: (0 3 5 10 15 17 21)
intervals: (3 2 5 5 2 4 3 3 2 5 5 2 4 3)
(A Bb+ C- D E+ F+ G+)
0 3 5 10 | 3 5 9
number of wolves: 2

notes: (0 3 5 10 15 19 22)
intervals: (3 2 5 5 4 3 2 3 2 5 5 4 3 2)
(A B- C- D E+ F#+ G#)
0 3 5 10 | 3 7 10
number of wolves: 2

notes: (0 3 5 10 19 21)
intervals: (3 2 5 9 2 3 3 2 5 9 2 3)
(A B- C- D F#+ G+)
0 3 5 10 | 7 9
number of wolves: 2

notes: (0 3 5 11 17 19 22)
intervals: (3 2 6 6 2 3 2 3 2 6 6 2 3 2)
(A Bb+ C- D+ F+ Gb+ Ab)
0 3 5 11 | 5 7 10
number of wolves: 2

notes: (0 3 5 12 15 19 22)
intervals: (3 2 7 3 4 3 2 3 2 7 3 4 3 2)
(A B- C- D# E+ F#+ G#)
0 3 5 | 0 3 7 10
number of wolves: 2

notes: (0 3 5 12 17 21)
intervals: (3 2 7 5 4 3 3 2 7 5 4 3)
(A Bb+ C- Eb F+ G+)
0 3 5 | 0 5 9
number of wolves: 2

notes: (0 3 5 12 19 21)
intervals: (3 2 7 7 2 3 3 2 7 7 2 3)
(A B- C- D# F#+ G+)
0 3 5 | 0 7 9
number of wolves: 2

notes: (0 3 5 14 17 19 22)
intervals: (3 2 9 3 2 3 2 3 2 9 3 2 3 2)
(A Bb+ C- E F+ Gb+ Ab)
0 3 5 | 2 5 7 10
number of wolves: 2

notes: (0 3 5 14 17 21)
intervals: (3 2 9 3 4 3 3 2 9 3 4 3)
(A Bb+ C- E F+ G+)
0 3 5 | 2 5 9
number of wolves: 2

notes: (0 3 5 14 19 21)
intervals: (3 2 9 5 2 3 3 2 9 5 2 3)
(A B- C- E F#+ G+)
0 3 5 | 2 7 9
number of wolves: 2

notes: (0 3 5 16 19 21)
intervals: (3 2 11 3 2 3 3 2 11 3 2 3)
(A Bb+ C- F Gb+ G+)
0 3 5 | 4 7 9
number of wolves: 2

notes: (0 3 5 16 19 22)
intervals: (3 2 11 3 3 2 3 2 11 3 3 2)
(A Bb+ C- F Gb+ Ab)
0 3 5 | 4 7 10
number of wolves: 2

notes: (0 3 5 18 21)
intervals: (3 2 13 3 3 3 2 13 3 3)
(A B- C- F# G+)
0 3 5 | 6 9
number of wolves: 2

notes: (0 3 6 8 11 14)
intervals: (3 3 2 3 3 10 3 3 2 3 3 10)
(A Bb+ C Db D+ E)
0 3 6 8 11 | 2
number of wolves: 2

notes: (0 3 6 8 11 16)
intervals: (3 3 2 3 5 8 3 3 2 3 5 8)
(A Bb+ C Db Eb- F)
0 3 6 8 11 | 4
number of wolves: 2

notes: (0 3 6 8 11 18)
intervals: (3 3 2 3 7 6 3 3 2 3 7 6)
(A Bb+ C Db Eb- Gb)
0 3 6 8 11 | 6
number of wolves: 2

notes: (0 3 6 8 11 20)
intervals: (3 3 2 3 9 4 3 3 2 3 9 4)
(A Bb+ C Db Eb- G)
0 3 6 8 11 | 8
number of wolves: 2

notes: (0 3 6 8 11 22)
intervals: (3 3 2 3 11 2 3 3 2 3 11 2)
(A Bb+ C Db Eb- G#)
0 3 6 8 11 | 10
number of wolves: 2

notes: (0 3 6 8 15 20)
intervals: (3 3 2 7 5 4 3 3 2 7 5 4)
(A Bb+ C Db E+ G)
0 3 6 8 | 3 8
number of wolves: 2

notes: (0 3 6 8 15 22)
intervals: (3 3 2 7 7 2 3 3 2 7 7 2)
(A Bb+ C Db E+ G#)
0 3 6 8 | 3 10
number of wolves: 2

notes: (0 3 6 8 17 20)
intervals: (3 3 2 9 3 4 3 3 2 9 3 4)
(A Bb+ C Db F+ G)
0 3 6 8 | 5 8
number of wolves: 2

notes: (0 3 6 8 17 22)
intervals: (3 3 2 9 5 2 3 3 2 9 5 2)
(A Bb+ C Db F+ G#)
0 3 6 8 | 5 10
number of wolves: 2

notes: (0 3 6 8 19 22)
intervals: (3 3 2 11 3 2 3 3 2 11 3 2)
(A B- C Db F#+ G#)
0 3 6 8 | 7 10
number of wolves: 2

notes: (0 3 6 8 21)
intervals: (3 3 2 13 3 3 3 2 13 3)
(A Bb+ C Db G+)
0 3 6 8 | 9
number of wolves: 2

notes: (0 3 6 9 11)
intervals: (3 3 3 2 13 3 3 3 2 13)
(A Bb+ C Db+ Eb-)
0 3 6 9 11
number of wolves: 2

notes: (0 3 6 9 12)
intervals: (3 3 3 3 12 3 3 3 3 12)
(A Bb+ C Db+ Eb)
0 3 6 9 | 0
number of wolves: 2

notes: (0 3 6 9 14)
intervals: (3 3 3 5 10 3 3 3 5 10)
(A Bb+ C Db+ E)
0 3 6 9 | 2
number of wolves: 2

notes: (0 3 6 9 16)
intervals: (3 3 3 7 8 3 3 3 7 8)
(A Bb+ C Db+ F)
0 3 6 9 | 4
number of wolves: 2

notes: (0 3 6 9 17)
intervals: (3 3 3 8 7 3 3 3 8 7)
(A Bb+ C Db+ F+)
0 3 6 9 | 5
number of wolves: 2

notes: (0 3 6 9 19)
intervals: (3 3 3 10 5 3 3 3 10 5)
(A Bb+ C Db+ Gb+)
0 3 6 9 | 7
number of wolves: 2

notes: (0 3 6 9 20)
intervals: (3 3 3 11 4 3 3 3 11 4)
(A Bb+ C Db+ G)
0 3 6 9 | 8
number of wolves: 2

notes: (0 3 6 9 21)
intervals: (3 3 3 12 3 3 3 3 12 3)
(A Bb+ C Db+ G+)
0 3 6 9 | 9
number of wolves: 2

notes: (0 3 6 9 22)
intervals: (3 3 3 13 2 3 3 3 13 2)
(A B- C D- G#)
0 3 6 9 | 10
number of wolves: 2

notes: (0 3 6 10 12 17 20)
intervals: (3 3 4 2 5 3 4 3 3 4 2 5 3 4)
(A Bb+ C D Eb F+ G)
0 3 6 10 | 0 5 8
number of wolves: 2

notes: (0 3 6 10 12 17 22)
intervals: (3 3 4 2 5 5 2 3 3 4 2 5 5 2)
(A Bb+ C D Eb F+ G#)
0 3 6 10 | 0 5 10
number of wolves: 2

notes: (0 3 6 10 14 17 20)
intervals: (3 3 4 4 3 3 4 3 3 4 4 3 3 4)
(A Bb+ C D E F+ G)
0 3 6 10 | 2 5 8
number of wolves: 2

notes: (0 3 6 10 14 17 22)
intervals: (3 3 4 4 3 5 2 3 3 4 4 3 5 2)
(A B- C D E F+ G#)
0 3 6 10 | 2 5 10
number of wolves: 2

notes: (0 3 6 10 15 20)
intervals: (3 3 4 5 5 4 3 3 4 5 5 4)
(A Bb+ C D E+ G)
0 3 6 10 | 3 8
number of wolves: 2

notes: (0 3 6 10 15 22)
intervals: (3 3 4 5 7 2 3 3 4 5 7 2)
(A B- C D E+ G#)
0 3 6 10 | 3 10
number of wolves: 2

notes: (0 3 6 10 19 22)
intervals: (3 3 4 9 3 2 3 3 4 9 3 2)
(A B- C D F#+ G#)
0 3 6 10 | 7 10
number of wolves: 2

notes: (0 3 6 10 21)
intervals: (3 3 4 11 3 3 3 4 11 3)
(A Bb+ C D G+)
0 3 6 10 | 9
number of wolves: 2

notes: (0 3 6 11 17)
intervals: (3 3 5 6 7 3 3 5 6 7)
(A Bb+ C D+ F+)
0 3 6 11 | 5
number of wolves: 2

notes: (0 3 6 11 19)
intervals: (3 3 5 8 5 3 3 5 8 5)
(A Bb+ C D+ Gb+)
0 3 6 11 | 7
number of wolves: 2

notes: (0 3 6 11 21)
intervals: (3 3 5 10 3 3 3 5 10 3)
(A Bb+ C D+ G+)
0 3 6 11 | 9
number of wolves: 2

notes: (0 3 6 12 19 22)
intervals: (3 3 6 7 3 2 3 3 6 7 3 2)
(A B- C D# F#+ G#)
0 3 6 | 0 7 10
number of wolves: 2

notes: (0 3 6 14 19 22)
intervals: (3 3 8 5 3 2 3 3 8 5 3 2)
(A B- C E F#+ G#)
0 3 6 | 2 7 10
number of wolves: 2

notes: (0 3 6 14 21)
intervals: (3 3 8 7 3 3 3 8 7 3)
(A Bb+ C E G+)
0 3 6 | 2 9
number of wolves: 2

notes: (0 3 6 16 19 22)
intervals: (3 3 10 3 3 2 3 3 10 3 3 2)
(A Bb+ C F Gb+ Ab)
0 3 6 | 4 7 10
number of wolves: 2

notes: (0 3 6 16 21)
intervals: (3 3 10 5 3 3 3 10 5 3)
(A Bb+ C F G+)
0 3 6 | 4 9
number of wolves: 2

notes: (0 3 6 17 19 22)
intervals: (3 3 11 2 3 2 3 3 11 2 3 2)
(A Bb+ C F+ Gb+ Ab)
0 3 6 | 5 7 10
number of wolves: 2

notes: (0 3 6 17 21)
intervals: (3 3 11 4 3 3 3 11 4 3)
(A Bb+ C F+ G+)
0 3 6 | 5 9
number of wolves: 2

notes: (0 3 6 18 21)
intervals: (3 3 12 3 3 3 3 12 3 3)
(A B- C F# G+)
0 3 6 | 6 9
number of wolves: 2

notes: (0 3 6 19 21)
intervals: (3 3 13 2 3 3 3 13 2 3)
(A B- C F#+ G+)
0 3 6 | 7 9
number of wolves: 2

notes: (0 3 7 9 12 17 19)
intervals: (3 4 2 3 5 2 5 3 4 2 3 5 2 5)
(A Bb+ C+ Db+ Eb F+ Gb+)
0 3 7 9 | 0 5 7
number of wolves: 2

notes: (0 3 7 9 14 17 19)
intervals: (3 4 2 5 3 2 5 3 4 2 5 3 2 5)
(A Bb+ C+ Db+ E F+ Gb+)
0 3 7 9 | 2 5 7
number of wolves: 2

notes: (0 3 7 9 14 17 21)
intervals: (3 4 2 5 3 4 3 3 4 2 5 3 4 3)
(A Bb+ C+ Db+ E F+ G+)
0 3 7 9 | 2 5 9
number of wolves: 2

notes: (0 3 7 9 14 19 21)
intervals: (3 4 2 5 5 2 3 3 4 2 5 5 2 3)
(A B- C+ D- E F#+ G+)
0 3 7 9 | 2 7 9
number of wolves: 2

notes: (0 3 7 10 12 15 17)
intervals: (3 4 3 2 3 2 7 3 4 3 2 3 2 7)
(A Bb+ C+ D Eb F- Gb-)
0 3 7 10 | 0 3 5
number of wolves: 2

notes: (0 3 7 10 12 17 19)
intervals: (3 4 3 2 5 2 5 3 4 3 2 5 2 5)
(A Bb+ C+ D Eb F+ Gb+)
0 3 7 10 | 0 5 7
number of wolves: 2

notes: (0 3 7 10 12 17 20)
intervals: (3 4 3 2 5 3 4 3 4 3 2 5 3 4)
(A Bb+ C+ D Eb F+ G)
0 3 7 10 | 0 5 8
number of wolves: 2

notes: (0 3 7 10 12 17 22)
intervals: (3 4 3 2 5 5 2 3 4 3 2 5 5 2)
(A Bb+ C+ D Eb F+ G#)
0 3 7 10 | 0 5 10
number of wolves: 2

notes: (0 3 7 10 14 17 19)
intervals: (3 4 3 4 3 2 5 3 4 3 4 3 2 5)
(A Bb+ C+ D E F+ Gb+)
0 3 7 10 | 2 5 7
number of wolves: 2

notes: (0 3 7 10 14 17 20)
intervals: (3 4 3 4 3 3 4 3 4 3 4 3 3 4)
(A Bb+ C+ D E F+ G)
0 3 7 10 | 2 5 8
number of wolves: 2

notes: (0 3 7 10 14 17 21)
intervals: (3 4 3 4 3 4 3 3 4 3 4 3 4 3)
(A Bb+ C+ D E F+ G+)
0 3 7 10 | 2 5 9
number of wolves: 2

notes: (0 3 7 10 14 17 22)
intervals: (3 4 3 4 3 5 2 3 4 3 4 3 5 2)
(A B- C+ D E F+ G#)
0 3 7 10 | 2 5 10
number of wolves: 2

notes: (0 3 7 10 15 17 20)
intervals: (3 4 3 5 2 3 4 3 4 3 5 2 3 4)
(A Bb+ C+ D E+ F+ G)
0 3 7 10 | 3 5 8
number of wolves: 2

notes: (0 3 7 10 15 17 21)
intervals: (3 4 3 5 2 4 3 3 4 3 5 2 4 3)
(A Bb+ C+ D E+ F+ G+)
0 3 7 10 | 3 5 9
number of wolves: 2

notes: (0 3 7 10 15 17 22)
intervals: (3 4 3 5 2 5 2 3 4 3 5 2 5 2)
(A B- C+ D E+ F+ G#)
0 3 7 10 | 3 5 10
number of wolves: 2

notes: (0 3 7 10 15 19)
intervals: (3 4 3 5 4 5 3 4 3 5 4 5)
(A Bb+ C+ D E+ Gb+)
0 3 7 10 | 3 7
number of wolves: 2

notes: (0 3 7 10 16)
intervals: (3 4 3 6 8 3 4 3 6 8)
(A Bb+ C+ D F)
0 3 7 10 | 4
number of wolves: 2

notes: (0 3 7 10 17 19 22)
intervals: (3 4 3 7 2 3 2 3 4 3 7 2 3 2)
(A Bb+ C+ D F+ Gb+ Ab)
0 3 7 10 | 5 7 10
number of wolves: 2

notes: (0 3 7 10 18)
intervals: (3 4 3 8 6 3 4 3 8 6)
(A Bb+ C+ D Gb)
0 3 7 10 | 6
number of wolves: 2

notes: (0 3 7 10 19 21)
intervals: (3 4 3 9 2 3 3 4 3 9 2 3)
(A B- C+ D F#+ G+)
0 3 7 10 | 7 9
number of wolves: 2

notes: (0 3 7 11 14 17 19)
intervals: (3 4 4 3 3 2 5 3 4 4 3 3 2 5)
(A Bb+ C+ D+ E F+ Gb+)
0 3 7 11 | 2 5 7
number of wolves: 2

notes: (0 3 7 11 14 17 21)
intervals: (3 4 4 3 3 4 3 3 4 4 3 3 4 3)
(A Bb+ C+ D+ E F+ G+)
0 3 7 11 | 2 5 9
number of wolves: 2

notes: (0 3 7 11 14 19 21)
intervals: (3 4 4 3 5 2 3 3 4 4 3 5 2 3)
(A B- C+ D+ E F#+ G+)
0 3 7 11 | 2 7 9
number of wolves: 2

notes: (0 3 7 12 14 17 19)
intervals: (3 4 5 2 3 2 5 3 4 5 2 3 2 5)
(A B- C+ D# E F+ G-)
0 3 7 | 0 2 5 7
number of wolves: 2

notes: (0 3 7 12 15 19)
intervals: (3 4 5 3 4 5 3 4 5 3 4 5)
(A Bb+ C+ Eb F- Gb+)
0 3 7 | 0 3 7
number of wolves: 2

notes: (0 3 7 12 17 19 22)
intervals: (3 4 5 5 2 3 2 3 4 5 5 2 3 2)
(A Bb+ C+ Eb F+ Gb+ Ab)
0 3 7 | 0 5 7 10
number of wolves: 2

notes: (0 3 7 12 17 21)
intervals: (3 4 5 5 4 3 3 4 5 5 4 3)
(A Bb+ C+ Eb F+ G+)
0 3 7 | 0 5 9
number of wolves: 2

notes: (0 3 7 12 19 21)
intervals: (3 4 5 7 2 3 3 4 5 7 2 3)
(A B- C+ D# F#+ G+)
0 3 7 | 0 7 9
number of wolves: 2

notes: (0 3 7 14 17 19 22)
intervals: (3 4 7 3 2 3 2 3 4 7 3 2 3 2)
(A Bb+ C+ E F+ Gb+ Ab)
0 3 7 | 2 5 7 10
number of wolves: 2

notes: (0 3 7 15 19 22)
intervals: (3 4 8 4 3 2 3 4 8 4 3 2)
(A B- C+ E+ F#+ G#)
0 3 7 | 3 7 10
number of wolves: 2

notes: (0 3 7 16 19 21)
intervals: (3 4 9 3 2 3 3 4 9 3 2 3)
(A Bb+ C+ F Gb+ G+)
0 3 7 | 4 7 9
number of wolves: 2

notes: (0 3 7 18 21)
intervals: (3 4 11 3 3 3 4 11 3 3)
(A B- C+ F# G+)
0 3 7 | 6 9
number of wolves: 2

notes: (0 3 8 10 14 17 20)
intervals: (3 5 2 4 3 3 4 3 5 2 4 3 3 4)
(A B- C# D E F+ G)
0 3 8 10 | 2 5 8
number of wolves: 2

notes: (0 3 8 10 14 17 22)
intervals: (3 5 2 4 3 5 2 3 5 2 4 3 5 2)
(A B- C# D E F+ G#)
0 3 8 10 | 2 5 10
number of wolves: 2

notes: (0 3 8 10 15 17 20)
intervals: (3 5 2 5 2 3 4 3 5 2 5 2 3 4)
(A B- C# D E+ F+ G)
0 3 8 10 | 3 5 8
number of wolves: 2

notes: (0 3 8 10 15 18 20)
intervals: (3 5 2 5 3 2 4 3 5 2 5 3 2 4)
(A B- C# D E+ F# G)
0 3 8 10 | 3 6 8
number of wolves: 2

notes: (0 3 8 10 15 18 22)
intervals: (3 5 2 5 3 4 2 3 5 2 5 3 4 2)
(A B- C# D E+ F# G#)
0 3 8 10 | 3 6 10
number of wolves: 2

notes: (0 3 8 12 15 20)
intervals: (3 5 4 3 5 4 3 5 4 3 5 4)
(A Bb+ Db Eb F- G)
0 3 8 | 0 3 8
number of wolves: 2

notes: (0 3 8 12 17 20)
intervals: (3 5 4 5 3 4 3 5 4 5 3 4)
(A Bb+ Db Eb F+ G)
0 3 8 | 0 5 8
number of wolves: 2

notes: (0 3 8 14 19 22)
intervals: (3 5 6 5 3 2 3 5 6 5 3 2)
(A B- C# E F#+ G#)
0 3 8 | 2 7 10
number of wolves: 2

notes: (0 3 8 14 21)
intervals: (3 5 6 7 3 3 5 6 7 3)
(A Bb+ Db E G+)
0 3 8 | 2 9
number of wolves: 2

notes: (0 3 8 16 19 22)
intervals: (3 5 8 3 3 2 3 5 8 3 3 2)
(A Bb+ Db F Gb+ Ab)
0 3 8 | 4 7 10
number of wolves: 2

notes: (0 3 8 16 21)
intervals: (3 5 8 5 3 3 5 8 5 3)
(A Bb+ Db F G+)
0 3 8 | 4 9
number of wolves: 2

notes: (0 3 8 18 21)
intervals: (3 5 10 3 3 3 5 10 3 3)
(A B- C# F# G+)
0 3 8 | 6 9
number of wolves: 2

notes: (0 3 9 16 19 21)
intervals: (3 6 7 3 2 3 3 6 7 3 2 3)
(A Bb+ Db+ F Gb+ G+)
0 3 9 | 4 7 9
number of wolves: 2

notes: (0 3 9 17 20)
intervals: (3 6 8 3 4 3 6 8 3 4)
(A Bb+ Db+ F+ G)
0 3 9 | 5 8
number of wolves: 2

notes: (0 3 10 12 15 17 20)
intervals: (3 7 2 3 2 3 4 3 7 2 3 2 3 4)
(A Bb+ D Eb E+ F+ G)
0 3 10 | 0 3 5 8
number of wolves: 2

notes: (0 3 10 14 17 19 22)
intervals: (3 7 4 3 2 3 2 3 7 4 3 2 3 2)
(A Bb+ D E F+ Gb+ Ab)
0 3 10 | 2 5 7 10
number of wolves: 2

notes: (0 3 10 16 19 22)
intervals: (3 7 6 3 3 2 3 7 6 3 3 2)
(A Bb+ D F Gb+ Ab)
0 3 10 | 4 7 10
number of wolves: 2

notes: (0 3 10 16 21)
intervals: (3 7 6 5 3 3 7 6 5 3)
(A Bb+ D F G+)
0 3 10 | 4 9
number of wolves: 2

notes: (0 3 10 18 21)
intervals: (3 7 8 3 3 3 7 8 3 3)
(A B- D F# G+)
0 3 10 | 6 9
number of wolves: 2

notes: (0 3 11 16 19 21)
intervals: (3 8 5 3 2 3 3 8 5 3 2 3)
(A Bb+ D+ F Gb+ G+)
0 3 11 | 4 7 9
number of wolves: 2

notes: (0 3 11 17 20)
intervals: (3 8 6 3 4 3 8 6 3 4)
(A Bb+ D+ F+ G)
0 3 11 | 5 8
number of wolves: 2

notes: (0 3 11 18 21)
intervals: (3 8 7 3 3 3 8 7 3 3)
(A B- D+ F# G+)
0 3 11 | 6 9
number of wolves: 2

notes: (0 3 12 14 17 19 22)
intervals: (3 9 2 3 2 3 2 3 9 2 3 2 3 2)
(A B- D# E F+ F#+ G#)
0 3 | 0 2 5 7 10
number of wolves: 2

notes: (0 3 12 14 17 20)
intervals: (3 9 2 3 3 4 3 9 2 3 3 4)
(A B- D# E F+ G)
0 3 | 0 2 5 8
number of wolves: 2

notes: (0 3 12 16 19 22)
intervals: (3 9 4 3 3 2 3 9 4 3 3 2)
(A Bb+ Eb F Gb+ Ab)
0 3 | 0 4 7 10
number of wolves: 2

notes: (0 3 14 16 19 21)
intervals: (3 11 2 3 2 3 3 11 2 3 2 3)
(A Bb+ E F Gb+ G+)
0 3 | 2 4 7 9
number of wolves: 2

notes: (0 3 14 16 19 22)
intervals: (3 11 2 3 3 2 3 11 2 3 3 2)
(A Bb+ E F Gb+ Ab)
0 3 | 2 4 7 10
number of wolves: 2

notes: (0 3 14 18 21)
intervals: (3 11 4 3 3 3 11 4 3 3)
(A B- E F# G+)
0 3 | 2 6 9
number of wolves: 2

notes: (0 3 15 18 21)
intervals: (3 12 3 3 3 3 12 3 3 3)
(A B- E+ F# G+)
0 3 | 3 6 9
number of wolves: 2

notes: (0 3 16 18 21)
intervals: (3 13 2 3 3 3 13 2 3 3)
(A Bb+ F Gb G+)
0 3 | 4 6 9
number of wolves: 2

notes: (0 4 6 9 11 14 16)
intervals: (4 2 3 2 3 2 8 4 2 3 2 3 2 8)
(A B C C#+ D+ E F)
0 4 6 9 11 | 2 4
number of wolves: 2

notes: (0 4 6 9 14 16 21)
intervals: (4 2 3 5 2 5 3 4 2 3 5 2 5 3)
(A B C Db+ E F G+)
0 4 6 9 | 2 4 9
number of wolves: 2

notes: (0 4 6 11 14 16 21)
intervals: (4 2 5 3 2 5 3 4 2 5 3 2 5 3)
(A B C D+ E F G+)
0 4 6 11 | 2 4 9
number of wolves: 2

notes: (0 4 6 11 14 18 21)
intervals: (4 2 5 3 4 3 3 4 2 5 3 4 3 3)
(A B C D+ E F# G+)
0 4 6 11 | 2 6 9
number of wolves: 2

notes: (0 4 6 11 16 18 21)
intervals: (4 2 5 5 2 3 3 4 2 5 5 2 3 3)
(A B C D+ F F# G+)
0 4 6 11 | 4 6 9
number of wolves: 2

notes: (0 4 7 9 12 14 17)
intervals: (4 3 2 3 2 3 7 4 3 2 3 2 3 7)
(A B C+ C#+ D# E F+)
0 4 7 9 | 0 2 5
number of wolves: 2

notes: (0 4 7 9 12 14 19)
intervals: (4 3 2 3 2 5 5 4 3 2 3 2 5 5)
(A B C+ C#+ D# E F#+)
0 4 7 9 | 0 2 7
number of wolves: 2

notes: (0 4 7 9 12 14 21)
intervals: (4 3 2 3 2 7 3 4 3 2 3 2 7 3)
(A B C+ C#+ D# E G+)
0 4 7 9 | 0 2 9
number of wolves: 2

notes: (0 4 7 9 12 16)
intervals: (4 3 2 3 4 8 4 3 2 3 4 8)
(A B C+ Db+ Eb F)
0 4 7 9 | 0 4
number of wolves: 2

notes: (0 4 7 9 14 16 21)
intervals: (4 3 2 5 2 5 3 4 3 2 5 2 5 3)
(A B C+ Db+ E F G+)
0 4 7 9 | 2 4 9
number of wolves: 2

notes: (0 4 7 9 14 17 21)
intervals: (4 3 2 5 3 4 3 4 3 2 5 3 4 3)
(A B C+ Db+ E F+ G+)
0 4 7 9 | 2 5 9
number of wolves: 2

notes: (0 4 7 9 14 19 21)
intervals: (4 3 2 5 5 2 3 4 3 2 5 5 2 3)
(A B C+ D- E F#+ G+)
0 4 7 9 | 2 7 9
number of wolves: 2

notes: (0 4 7 10 12 15)
intervals: (4 3 3 2 3 9 4 3 3 2 3 9)
(A B C+ D Eb F-)
0 4 7 10 | 0 3
number of wolves: 2

notes: (0 4 7 10 12 17 20)
intervals: (4 3 3 2 5 3 4 4 3 3 2 5 3 4)
(A B C+ D Eb F+ G)
0 4 7 10 | 0 5 8
number of wolves: 2

notes: (0 4 7 10 12 17 22)
intervals: (4 3 3 2 5 5 2 4 3 3 2 5 5 2)
(A B C+ D Eb F+ G#)
0 4 7 10 | 0 5 10
number of wolves: 2

notes: (0 4 7 10 12 19)
intervals: (4 3 3 2 7 5 4 3 3 2 7 5)
(A B C+ D Eb Gb+)
0 4 7 10 | 0 7
number of wolves: 2

notes: (0 4 7 10 12 21)
intervals: (4 3 3 2 9 3 4 3 3 2 9 3)
(A B C+ D Eb G+)
0 4 7 10 | 0 9
number of wolves: 2

notes: (0 4 7 10 14 16 21)
intervals: (4 3 3 4 2 5 3 4 3 3 4 2 5 3)
(A B C+ D E F G+)
0 4 7 10 | 2 4 9
number of wolves: 2

notes: (0 4 7 10 14 17 20)
intervals: (4 3 3 4 3 3 4 4 3 3 4 3 3 4)
(A B C+ D E F+ G)
0 4 7 10 | 2 5 8
number of wolves: 2

notes: (0 4 7 10 14 17 21)
intervals: (4 3 3 4 3 4 3 4 3 3 4 3 4 3)
(A B C+ D E F+ G+)
0 4 7 10 | 2 5 9
number of wolves: 2

notes: (0 4 7 10 14 17 22)
intervals: (4 3 3 4 3 5 2 4 3 3 4 3 5 2)
(A B C+ D E F+ G#)
0 4 7 10 | 2 5 10
number of wolves: 2

notes: (0 4 7 10 14 18 21)
intervals: (4 3 3 4 4 3 3 4 3 3 4 4 3 3)
(A B C+ D E F# G+)
0 4 7 10 | 2 6 9
number of wolves: 2

notes: (0 4 7 10 14 19)
intervals: (4 3 3 4 5 5 4 3 3 4 5 5)
(A B C+ D E F#+)
0 4 7 10 | 2 7
number of wolves: 2

notes: (0 4 7 11 14 16 21)
intervals: (4 3 4 3 2 5 3 4 3 4 3 2 5 3)
(A B C+ D+ E F G+)
0 4 7 11 | 2 4 9
number of wolves: 2

notes: (0 4 7 11 14 17 21)
intervals: (4 3 4 3 3 4 3 4 3 4 3 3 4 3)
(A B C+ D+ E F+ G+)
0 4 7 11 | 2 5 9
number of wolves: 2

notes: (0 4 7 11 14 18 21)
intervals: (4 3 4 3 4 3 3 4 3 4 3 4 3 3)
(A B C+ D+ E F# G+)
0 4 7 11 | 2 6 9
number of wolves: 2

notes: (0 4 7 11 14 19 21)
intervals: (4 3 4 3 5 2 3 4 3 4 3 5 2 3)
(A B C+ D+ E F#+ G+)
0 4 7 11 | 2 7 9
number of wolves: 2

notes: (0 4 7 12 14 17 19)
intervals: (4 3 5 2 3 2 5 4 3 5 2 3 2 5)
(A B C+ D# E F+ G-)
0 4 7 | 0 2 5 7
number of wolves: 2

notes: (0 4 7 12 14 17 20)
intervals: (4 3 5 2 3 3 4 4 3 5 2 3 3 4)
(A B C+ D# E F+ G)
0 4 7 | 0 2 5 8
number of wolves: 2

notes: (0 4 7 12 14 17 21)
intervals: (4 3 5 2 3 4 3 4 3 5 2 3 4 3)
(A B C+ D# E F+ G+)
0 4 7 | 0 2 5 9
number of wolves: 2

notes: (0 4 7 12 14 17 22)
intervals: (4 3 5 2 3 5 2 4 3 5 2 3 5 2)
(A B C+ D# E F+ G#)
0 4 7 | 0 2 5 10
number of wolves: 2

notes: (0 4 7 12 14 18 21)
intervals: (4 3 5 2 4 3 3 4 3 5 2 4 3 3)
(A B C+ D# E F# G+)
0 4 7 | 0 2 6 9
number of wolves: 2

notes: (0 4 7 12 14 19 21)
intervals: (4 3 5 2 5 2 3 4 3 5 2 5 2 3)
(A B C+ D# E F#+ G+)
0 4 7 | 0 2 7 9
number of wolves: 2

notes: (0 4 7 12 14 19 22)
intervals: (4 3 5 2 5 3 2 4 3 5 2 5 3 2)
(A B C+ D# E F#+ G#)
0 4 7 | 0 2 7 10
number of wolves: 2

notes: (0 4 7 12 16 19)
intervals: (4 3 5 4 3 5 4 3 5 4 3 5)
(A B C+ D# F G-)
0 4 7 | 0 4 7
number of wolves: 2

notes: (0 4 7 12 16 21)
intervals: (4 3 5 4 5 3 4 3 5 4 5 3)
(A B C+ D# F G+)
0 4 7 | 0 4 9
number of wolves: 2

notes: (0 4 7 14 16 19 21)
intervals: (4 3 7 2 3 2 3 4 3 7 2 3 2 3)
(A B C+ E F F#+ G+)
0 4 7 | 2 4 7 9
number of wolves: 2

notes: (0 4 7 15 21)
intervals: (4 3 8 6 3 4 3 8 6 3)
(A B C+ E+ G+)
0 4 7 | 3 9
number of wolves: 2

notes: (0 4 7 16 18 21)
intervals: (4 3 9 2 3 3 4 3 9 2 3 3)
(A B C+ F F# G+)
0 4 7 | 4 6 9
number of wolves: 2

notes: (0 4 8 11 14 16 21)
intervals: (4 4 3 3 2 5 3 4 4 3 3 2 5 3)
(A B C# D+ E F G+)
0 4 8 11 | 2 4 9
number of wolves: 2

notes: (0 4 8 11 14 18 21)
intervals: (4 4 3 3 4 3 3 4 4 3 3 4 3 3)
(A B C# D+ E F# G+)
0 4 8 11 | 2 6 9
number of wolves: 2

notes: (0 4 8 11 16 18 21)
intervals: (4 4 3 5 2 3 3 4 4 3 5 2 3 3)
(A B C# D+ F F# G+)
0 4 8 11 | 4 6 9
number of wolves: 2

notes: (0 4 9 11 14 16 21)
intervals: (4 5 2 3 2 5 3 4 5 2 3 2 5 3)
(A B C#+ D+ E F G+)
0 4 9 11 | 2 4 9
number of wolves: 2

notes: (0 4 9 12 16 19)
intervals: (4 5 3 4 3 5 4 5 3 4 3 5)
(A B C#+ D# F G-)
0 4 9 | 0 4 7
number of wolves: 2

notes: (0 4 9 12 16 21)
intervals: (4 5 3 4 5 3 4 5 3 4 5 3)
(A B C#+ D# F G+)
0 4 9 | 0 4 9
number of wolves: 2

notes: (0 4 9 14 16 19 21)
intervals: (4 5 5 2 3 2 3 4 5 5 2 3 2 3)
(A B C#+ E F F#+ G+)
0 4 9 | 2 4 7 9
number of wolves: 2

notes: (0 4 9 14 18 21)
intervals: (4 5 5 4 3 3 4 5 5 4 3 3)
(A B C#+ E F# G+)
0 4 9 | 2 6 9
number of wolves: 2

notes: (0 4 9 16 18 21)
intervals: (4 5 7 2 3 3 4 5 7 2 3 3)
(A B C#+ F F# G+)
0 4 9 | 4 6 9
number of wolves: 2

notes: (0 4 11 14 16 19 21)
intervals: (4 7 3 2 3 2 3 4 7 3 2 3 2 3)
(A B D+ E F F#+ G+)
0 4 11 | 2 4 7 9
number of wolves: 2

notes: (0 4 12 14 17 19 22)
intervals: (4 8 2 3 2 3 2 4 8 2 3 2 3 2)
(A B D# E F+ F#+ G#)
0 4 | 0 2 5 7 10
number of wolves: 2

notes: (0 4 12 16 19 21)
intervals: (4 8 4 3 2 3 4 8 4 3 2 3)
(A B D# F F#+ G+)
0 4 | 0 4 7 9
number of wolves: 2

notes: (0 4 15 18 21)
intervals: (4 11 3 3 3 4 11 3 3 3)
(A B E+ F# G+)
0 4 | 3 6 9
number of wolves: 2

notes: (0 5 7 10 12 15 17 22)
intervals: (5 2 3 2 3 2 5 2 5 2 3 2 3 2 5 2)
(A B+ C+ D D# E+ F+ G#)
0 5 7 10 | 0 3 5 10
number of wolves: 2

notes: (0 5 7 10 12 15 19)
intervals: (5 2 3 2 3 4 5 5 2 3 2 3 4 5)
(A B+ C+ D Eb F- Gb+)
0 5 7 10 | 0 3 7
number of wolves: 2

notes: (0 5 7 10 12 17 19 22)
intervals: (5 2 3 2 5 2 3 2 5 2 3 2 5 2 3 2)
(A B+ C+ D Eb F+ Gb+ Ab)
0 5 7 10 | 0 5 7 10
number of wolves: 2

notes: (0 5 7 10 12 17 20)
intervals: (5 2 3 2 5 3 4 5 2 3 2 5 3 4)
(A B+ C+ D Eb F+ G)
0 5 7 10 | 0 5 8
number of wolves: 2

notes: (0 5 7 10 12 17 21)
intervals: (5 2 3 2 5 4 3 5 2 3 2 5 4 3)
(A B+ C+ D Eb F+ G+)
0 5 7 10 | 0 5 9
number of wolves: 2

notes: (0 5 7 10 14 17 19)
intervals: (5 2 3 4 3 2 5 5 2 3 4 3 2 5)
(A B+ C+ D E F+ Gb+)
0 5 7 10 | 2 5 7
number of wolves: 2

notes: (0 5 7 10 14 17 21)
intervals: (5 2 3 4 3 4 3 5 2 3 4 3 4 3)
(A B+ C+ D E F+ G+)
0 5 7 10 | 2 5 9
number of wolves: 2

notes: (0 5 7 10 14 17 22)
intervals: (5 2 3 4 3 5 2 5 2 3 4 3 5 2)
(A B+ C+ D E F+ G#)
0 5 7 10 | 2 5 10
number of wolves: 2

notes: (0 5 7 10 15 17 21)
intervals: (5 2 3 5 2 4 3 5 2 3 5 2 4 3)
(A B+ C+ D E+ F+ G+)
0 5 7 10 | 3 5 9
number of wolves: 2

notes: (0 5 7 11 14 17 19)
intervals: (5 2 4 3 3 2 5 5 2 4 3 3 2 5)
(A B+ C+ D+ E F+ Gb+)
0 5 7 11 | 2 5 7
number of wolves: 2

notes: (0 5 7 11 14 17 21)
intervals: (5 2 4 3 3 4 3 5 2 4 3 3 4 3)
(A B+ C+ D+ E F+ G+)
0 5 7 11 | 2 5 9
number of wolves: 2

notes: (0 5 7 11 14 19 21)
intervals: (5 2 4 3 5 2 3 5 2 4 3 5 2 3)
(A B+ C+ D+ E F#+ G+)
0 5 7 11 | 2 7 9
number of wolves: 2

notes: (0 5 7 12 14 17 19 22)
intervals: (5 2 5 2 3 2 3 2 5 2 5 2 3 2 3 2)
(A B+ C+ D# E F+ F#+ G#)
0 5 7 | 0 2 5 7 10
number of wolves: 2

notes: (0 5 7 12 14 17 21)
intervals: (5 2 5 2 3 4 3 5 2 5 2 3 4 3)
(A B+ C+ D# E F+ G+)
0 5 7 | 0 2 5 9
number of wolves: 2

notes: (0 5 7 12 15 17 21)
intervals: (5 2 5 3 2 4 3 5 2 5 3 2 4 3)
(A B+ C+ D# E+ F+ G+)
0 5 7 | 0 3 5 9
number of wolves: 2

notes: (0 5 7 12 15 19 21)
intervals: (5 2 5 3 4 2 3 5 2 5 3 4 2 3)
(A B+ C+ D# E+ F#+ G+)
0 5 7 | 0 3 7 9
number of wolves: 2

notes: (0 5 7 12 15 19 22)
intervals: (5 2 5 3 4 3 2 5 2 5 3 4 3 2)
(A B+ C+ D# E+ F#+ G#)
0 5 7 | 0 3 7 10
number of wolves: 2

notes: (0 5 8 10 14 17 22)
intervals: (5 3 2 4 3 5 2 5 3 2 4 3 5 2)
(A B+ C# D E F+ G#)
0 5 8 10 | 2 5 10
number of wolves: 2

notes: (0 5 8 10 15 18 22)
intervals: (5 3 2 5 3 4 2 5 3 2 5 3 4 2)
(A B+ C# D E+ F# G#)
0 5 8 10 | 3 6 10
number of wolves: 2

notes: (0 5 8 11 14)
intervals: (5 3 3 3 10 5 3 3 3 10)
(A B+ C# D+ E)
0 5 8 11 | 2
number of wolves: 2

notes: (0 5 8 11 16)
intervals: (5 3 3 5 8 5 3 3 5 8)
(A B+ C# D+ F)
0 5 8 11 | 4
number of wolves: 2

notes: (0 5 8 11 18)
intervals: (5 3 3 7 6 5 3 3 7 6)
(A B+ C# D+ F#)
0 5 8 11 | 6
number of wolves: 2

notes: (0 5 8 12 14 17 22)
intervals: (5 3 4 2 3 5 2 5 3 4 2 3 5 2)
(A B+ C# D# E F+ G#)
0 5 8 | 0 2 5 10
number of wolves: 2

notes: (0 5 8 12 14 19 22)
intervals: (5 3 4 2 5 3 2 5 3 4 2 5 3 2)
(A B+ C# D# E F#+ G#)
0 5 8 | 0 2 7 10
number of wolves: 2

notes: (0 5 8 12 15 17 22)
intervals: (5 3 4 3 2 5 2 5 3 4 3 2 5 2)
(A B+ C# D# E+ F+ G#)
0 5 8 | 0 3 5 10
number of wolves: 2

notes: (0 5 8 12 15 18 22)
intervals: (5 3 4 3 3 4 2 5 3 4 3 3 4 2)
(A B+ C# D# E+ F# G#)
0 5 8 | 0 3 6 10
number of wolves: 2

notes: (0 5 8 12 15 19 22)
intervals: (5 3 4 3 4 3 2 5 3 4 3 4 3 2)
(A B+ C# D# E+ F#+ G#)
0 5 8 | 0 3 7 10
number of wolves: 2

notes: (0 5 8 12 15 20)
intervals: (5 3 4 3 5 4 5 3 4 3 5 4)
(A B+ C# D# E+ G)
0 5 8 | 0 3 8
number of wolves: 2

notes: (0 5 8 12 16 19 22)
intervals: (5 3 4 4 3 3 2 5 3 4 4 3 3 2)
(A B+ C# D# F F#+ G#)
0 5 8 | 0 4 7 10
number of wolves: 2

notes: (0 5 8 12 17 19 22)
intervals: (5 3 4 5 2 3 2 5 3 4 5 2 3 2)
(A B+ C# D# F+ F#+ G#)
0 5 8 | 0 5 7 10
number of wolves: 2

notes: (0 5 8 12 17 20)
intervals: (5 3 4 5 3 4 5 3 4 5 3 4)
(A B+ C# D# F+ G)
0 5 8 | 0 5 8
number of wolves: 2

notes: (0 5 9 12 14 17 19)
intervals: (5 4 3 2 3 2 5 5 4 3 2 3 2 5)
(A B+ C#+ D# E F+ G-)
0 5 9 | 0 2 5 7
number of wolves: 2

notes: (0 5 9 12 15 17)
intervals: (5 4 3 3 2 7 5 4 3 3 2 7)
(A B+ C#+ D# E+ F+)
0 5 9 | 0 3 5
number of wolves: 2

notes: (0 5 9 12 15 19)
intervals: (5 4 3 3 4 5 5 4 3 3 4 5)
(A B+ C#+ D# E+ F#+)
0 5 9 | 0 3 7
number of wolves: 2

notes: (0 5 9 12 17 19 22)
intervals: (5 4 3 5 2 3 2 5 4 3 5 2 3 2)
(A B+ C#+ D# F+ F#+ G#)
0 5 9 | 0 5 7 10
number of wolves: 2

notes: (0 5 9 12 17 21)
intervals: (5 4 3 5 4 3 5 4 3 5 4 3)
(A B+ C#+ D# F+ G+)
0 5 9 | 0 5 9
number of wolves: 2

notes: (0 5 9 14 17 21)
intervals: (5 4 5 3 4 3 5 4 5 3 4 3)
(A B+ C#+ E F+ G+)
0 5 9 | 2 5 9
number of wolves: 2

notes: (0 5 10 12 15 17 20)
intervals: (5 5 2 3 2 3 4 5 5 2 3 2 3 4)
(A B+ D D# E+ F+ G)
0 5 10 | 0 3 5 8
number of wolves: 2

notes: (0 5 10 12 15 18 22)
intervals: (5 5 2 3 3 4 2 5 5 2 3 3 4 2)
(A B+ D D# E+ F# G#)
0 5 10 | 0 3 6 10
number of wolves: 2

notes: (0 5 10 12 15 19 22)
intervals: (5 5 2 3 4 3 2 5 5 2 3 4 3 2)
(A B+ D D# E+ F#+ G#)
0 5 10 | 0 3 7 10
number of wolves: 2

notes: (0 5 10 12 16 19 22)
intervals: (5 5 2 4 3 3 2 5 5 2 4 3 3 2)
(A B+ D Eb F Gb+ Ab)
0 5 10 | 0 4 7 10
number of wolves: 2

notes: (0 5 10 14 17 19 22)
intervals: (5 5 4 3 2 3 2 5 5 4 3 2 3 2)
(A B+ D E F+ F#+ G#)
0 5 10 | 2 5 7 10
number of wolves: 2

notes: (0 5 10 14 17 20)
intervals: (5 5 4 3 3 4 5 5 4 3 3 4)
(A B+ D E F+ G)
0 5 10 | 2 5 8
number of wolves: 2

notes: (0 5 11 16 19 21)
intervals: (5 6 5 3 2 3 5 6 5 3 2 3)
(A B+ D+ F F#+ G+)
0 5 11 | 4 7 9
number of wolves: 2

notes: (0 5 11 18 21)
intervals: (5 6 7 3 3 5 6 7 3 3)
(A B+ D+ F# G+)
0 5 11 | 6 9
number of wolves: 2

notes: (0 5 12 14 17 20)
intervals: (5 7 2 3 3 4 5 7 2 3 3 4)
(A B+ D# E F+ G)
0 5 | 0 2 5 8
number of wolves: 2

notes: (0 5 14 16 19 22)
intervals: (5 9 2 3 3 2 5 9 2 3 3 2)
(A B+ E F F#+ G#)
0 5 | 2 4 7 10
number of wolves: 2

notes: (0 5 15 18 21)
intervals: (5 10 3 3 3 5 10 3 3 3)
(A B+ E+ F# G+)
0 5 | 3 6 9
number of wolves: 2

notes: (0 6 9 12 14 17)
intervals: (6 3 3 2 3 7 6 3 3 2 3 7)
(A C C#+ D# E F+)
0 6 9 | 0 2 5
number of wolves: 2

notes: (0 6 11 14 16 19)
intervals: (6 5 3 2 3 5 6 5 3 2 3 5)
(A C D+ E F Gb+)
0 6 11 | 2 4 7
number of wolves: 2

notes: (0 6 11 14 17)
intervals: (6 5 3 3 7 6 5 3 3 7)
(A C D+ E F+)
0 6 11 | 2 5
number of wolves: 2

notes: (0 6 12 14 17 19 22)
intervals: (6 6 2 3 2 3 2 6 6 2 3 2 3 2)
(A C D# E F+ F#+ G#)
0 6 | 0 2 5 7 10
number of wolves: 2

notes: (0 6 14 17 21)
intervals: (6 8 3 4 3 6 8 3 4 3)
(A C E F+ G+)
0 6 | 2 5 9
number of wolves: 2

notes: (0 7 9 12 14 17 21)
intervals: (7 2 3 2 3 4 3 7 2 3 2 3 4 3)
(A C+ C#+ D# E F+ G+)
0 7 9 | 0 2 5 9
number of wolves: 2

notes: (0 7 9 12 15 17)
intervals: (7 2 3 3 2 7 7 2 3 3 2 7)
(A C+ Db+ Eb F- Gb-)
0 7 9 | 0 3 5
number of wolves: 2

notes: (0 7 9 12 15 19)
intervals: (7 2 3 3 4 5 7 2 3 3 4 5)
(A C+ Db+ Eb F- Gb+)
0 7 9 | 0 3 7
number of wolves: 2

notes: (0 7 10 12 15 17 20)
intervals: (7 3 2 3 2 3 4 7 3 2 3 2 3 4)
(A C+ D D# E+ F+ G)
0 7 10 | 0 3 5 8
number of wolves: 2

notes: (0 7 10 12 15 18)
intervals: (7 3 2 3 3 6 7 3 2 3 3 6)
(A C+ D Eb F- Gb)
0 7 10 | 0 3 6
number of wolves: 2

notes: (0 7 10 14 17 19 22)
intervals: (7 3 4 3 2 3 2 7 3 4 3 2 3 2)
(A C+ D E F+ F#+ G#)
0 7 10 | 2 5 7 10
number of wolves: 2

notes: (0 7 11 14 16 19 21)
intervals: (7 4 3 2 3 2 3 7 4 3 2 3 2 3)
(A C+ D+ E F F#+ G+)
0 7 11 | 2 4 7 9
number of wolves: 2

notes: (0 7 12 16 19 22)
intervals: (7 5 4 3 3 2 7 5 4 3 3 2)
(A C+ D# F F#+ G#)
0 7 | 0 4 7 10
number of wolves: 2

notes: (0 7 14 16 19 22)
intervals: (7 7 2 3 3 2 7 7 2 3 3 2)
(A C+ E F F#+ G#)
0 7 | 2 4 7 10
number of wolves: 2

notes: (0 7 15 18 21)
intervals: (7 8 3 3 3 7 8 3 3 3)
(A C+ E+ F# G+)
0 7 | 3 6 9
number of wolves: 2

notes: (0 8 11 14 16 19)
intervals: (8 3 3 2 3 5 8 3 3 2 3 5)
(A C# D+ E F G-)
0 8 11 | 2 4 7
number of wolves: 2

notes: (0 8 11 14 17)
intervals: (8 3 3 3 7 8 3 3 3 7)
(A C# D+ E F+)
0 8 11 | 2 5
number of wolves: 2

notes: (0 8 11 15 18)
intervals: (8 3 4 3 6 8 3 4 3 6)
(A C# D+ E+ F#)
0 8 11 | 3 6
number of wolves: 2

notes: (0 8 12 14 17 19 22)
intervals: (8 4 2 3 2 3 2 8 4 2 3 2 3 2)
(A C# D# E F+ F#+ G#)
0 8 | 0 2 5 7 10
number of wolves: 2

notes: (0 8 12 15 17 20)
intervals: (8 4 3 2 3 4 8 4 3 2 3 4)
(A C# D# E+ F+ G)
0 8 | 0 3 5 8
number of wolves: 2

notes: (0 8 14 17 21)
intervals: (8 6 3 4 3 8 6 3 4 3)
(A C# E F+ G+)
0 8 | 2 5 9
number of wolves: 2

notes: (0 8 15 18 21)
intervals: (8 7 3 3 3 8 7 3 3 3)
(A C# E+ F# G+)
0 8 | 3 6 9
number of wolves: 2

notes: (0 9 11 14 16 19 21)
intervals: (9 2 3 2 3 2 3 9 2 3 2 3 2 3)
(A C#+ D+ E F F#+ G+)
0 9 11 | 2 4 7 9
number of wolves: 2

notes: (0 9 11 14 17 19)
intervals: (9 2 3 3 2 5 9 2 3 3 2 5)
(A C#+ D+ E F+ G-)
0 9 11 | 2 5 7
number of wolves: 2

notes: (0 9 11 14 17 21)
intervals: (9 2 3 3 4 3 9 2 3 3 4 3)
(A C#+ D+ E F+ G+)
0 9 11 | 2 5 9
number of wolves: 2

notes: (0 9 12 14 17 19 22)
intervals: (9 3 2 3 2 3 2 9 3 2 3 2 3 2)
(A C#+ D# E F+ F#+ G#)
0 9 | 0 2 5 7 10
number of wolves: 2

notes: (0 9 12 14 17 20)
intervals: (9 3 2 3 3 4 9 3 2 3 3 4)
(A C#+ D# E F+ G)
0 9 | 0 2 5 8
number of wolves: 2

notes: (0 9 12 16 19 22)
intervals: (9 3 4 3 3 2 9 3 4 3 3 2)
(A C#+ D# F F#+ G#)
0 9 | 0 4 7 10
number of wolves: 2

notes: (0 9 14 16 19 22)
intervals: (9 5 2 3 3 2 9 5 2 3 3 2)
(A C#+ E F F#+ G#)
0 9 | 2 4 7 10
number of wolves: 2

notes: (0 10 15 18 21)
intervals: (10 5 3 3 3 10 5 3 3 3)
(A D E+ F# G+)
0 10 | 3 6 9
number of wolves: 2

notes: (0 11 14 16 19 22)
intervals: (11 3 2 3 3 2 11 3 2 3 3 2)
(A D+ E F F#+ G#)
0 11 | 2 4 7 10
number of wolves: 2

notes: (0 11 14 17 19 22)
intervals: (11 3 3 2 3 2 11 3 3 2 3 2)
(A D+ E F+ F#+ G#)
0 11 | 2 5 7 10
number of wolves: 2

notes: (0 11 14 17 20)
intervals: (11 3 3 3 4 11 3 3 3 4)
(A D+ E F+ G)
0 11 | 2 5 8
number of wolves: 2

notes: (0 11 15 18 21)
intervals: (11 4 3 3 3 11 4 3 3 3)
(A D+ E+ F# G+)
0 11 | 3 6 9
number of wolves: 2

notes: (0 12 15 18 21)
intervals: (12 3 3 3 3 12 3 3 3 3)
(A D# E+ F# G+)
0 | 0 3 6 9
number of wolves: 2




Last edited by calebprime; 21st March 2016 at 03:22 AM.
calebprime is online now   Quote this post in a PM   Nominate this post for this month's language award Copy a direct link to this post Reply With Quote Back to Top
Reply

International Skeptics Forum » General Topics » History, Literature, and the Arts

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT -7. The time now is 08:54 AM.
Powered by vBulletin. Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
2014, TribeTech AB. All Rights Reserved.
This forum began as part of the James Randi Education Foundation (JREF). However, the forum now exists as
an independent entity with no affiliation with or endorsement by the JREF, including the section in reference to "JREF" topics.

Disclaimer: Messages posted in the Forum are solely the opinion of their authors.