;;;
;;; c:\\program files\\acl62\\music56.cl
;;;
(load "c:\\program files\\acl62\\music55.cl")
;;;
;;; (get-chordscale 'C 'pt)--->(do re mi so la do)
;;;
(make-frame-from-list
'(Pentatonic-Scale (p-CM7 (value (C pt) (D pt) (G pt) (A pt)))
(p-CM7+11 (value (D pt) (G pt) (A pt) (B pt)))
(p-Cm7 (value (-E pt) (-B pt) (F pt) (-A pt)))
(p-Cm7-5 (value (-G pt) (-A pt)))
(p-C7 (value (C pt) (-E pt) (-G pt) (-B pt)))
(p-C7+9 (value (-E pt) (-G pt) (-A pt) (-D pt)))
(p-C7+11 (value (C pt) (D pt) (-G pt)))
(p-C7-9 (value (-D pt) (-E pt) (-G pt)))
(p-C7+5 (value (-G pt) (-D pt) (-A pt)))
(p-C713 (value (C pt) (-G pt) (D pt)))
(p-C7sus4 (value (-B pt) (F pt) (-E pt)))))
;;;
;;;(get-chordscale-from-pair '(C pt))--->(do re mi so la do)
;;;
(defun get-chordscale-from-pair (pair)
(list (car pair) (get-chordscale (first pair) (second pair))))
;;;
;;;(fget 'Pentatonic-Scale 'p-CM7 'value)--->((C pt) (D pt) (G pt) (A pt))
;;;(mapcar #'get-chordscale-from-pair (fget 'Pentatonic-Scale 'p-CM7 'value))--->
;;;((C (do re mi so la do)) (D (re mi +fa la si re)) (G (so la si re mi so)) (A (la si +do mi +fa la)))
;;;
;;;(get-chordscale-from-modulated-pair '(C pt) 'C 'D)--->(D (re mi +fa la si re))
;;;
(defun get-chordscale-from-modulated-pair (pair key1 key2)
(let ((char (intern (modulate-key1-to-key2 (car pair) key1 key2))))
(get-chordscale-from-pair (list char 'pt))))
;;;
;;;(get-chordscales-from-modulated-pairs '((C pt) (D pt) (G pt) (A pt)) 'C 'D)===
;;;(get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale 'p-CM7 'value) 'C 'D)--->
;;;((D (re mi +fa la si re)) (E (mi +fa +so si +do mi)) (A (la si +do mi +fa la)) (B (si +do +re +fa +so si)))
;;;
(defun get-chordscales-from-modulated-pairs (pairs key1 key2)
(do ((lst pairs (cdr lst))
(w))
((null lst) (reverse w))
(push (get-chordscale-from-modulated-pair (car lst) key1 key2) w)))
;;;
;;;(get-pt-scales "CM7")
;;;((C (do re mi so la do)) (D (re mi +fa la si re)) (G (so la si re mi so)) (A (la si +do mi +fa la)))
;;;(get-pt-scales "+CM7+11")
;;;((-E (-mi fa so -si do -mi)) (-A (-la -si do -mi fa -la)) (-B (-si do re fa so -si))
;;; (C (do re mi so la do)))
;;;(get-pt-scales "-Dm7")
;;;((E (mi +fa +so si +do mi)) (B (si +do +re +fa +so si)) (-G (-so -la -si -re -mi -so))
;;; (A (la si +do mi +fa la)))
;;;(get-pt-scales "Dm7-5")
;;;((+G (-la -si do -mi fa -la)) (+A (-si do re fa so -si)))
;;;(get-pt-scales "+D7")
;;;((-E (-mi fa so -si do -mi)) (-G (-so -la -si -re -mi -so)) (A (la si +do mi +fa la))
;;; (-D (-re -mi fa -la -si -re)))
;;;(get-pt-scales "-E7+9")
;;;((-G (-so -la -si -re -mi -so)) (A (la si +do mi +fa la)) (B (si +do +re +fa +so si))
;;; (E (mi +fa +so si +do mi)))
;;;cg-user(74): (get-pt-scales "E7-9")
;;;((F (fa so la do re fa)) (G (so la si re mi so)) (+A (-si do re fa so -si)))
;;;(get-pt-scales "F7+11")
;;;((F (fa so la do re fa)) (G (so la si re mi so)) (B (si +do +re +fa +so si)))
;;;(get-pt-scales "+F7+5")
;;;((C (do re mi so la do)) (G (so la si re mi so)) (D (re mi +fa la si re)))
;;;(get-pt-scales "-G713")
;;;((-G (-so -la -si -re -mi -so)) (C (do re mi so la do)) (-A (-la -si do -mi fa -la)))
;;;(get-pt-scales "G7sus4")
;;;((F (fa so la do re fa)) (C (do re mi so la do)) (+A (-si do re fa so -si)))
;;;(get-pt-scales "+GM7")
;;;((-A (-la -si do -mi fa -la)) (-B (-si do re fa so -si)) (-E (-mi fa so -si do -mi)) (F (fa so la do re fa)))
;;;(get-pt-scales "-AM7+11")
;;;((-B (-si do re fa so -si)) (-E (-mi fa so -si do -mi)) (F (fa so la do re fa)) (G (so la si re mi so)))
;;;(get-pt-scales "Am7")
;;;((C (do re mi so la do)) (G (so la si re mi so)) (D (re mi +fa la si re)) (F (fa so la do re fa)))
;;;(get-pt-scales "+Am7-5")
;;;((E (mi +fa +so si +do mi)) (-G (-so -la -si -re -mi -so)))
;;;(get-pt-scales "-Bm7-5")
;;;((E (mi +fa +so si +do mi)) (-G (-so -la -si -re -mi -so)))
;;;(get-pt-scales "B7")
;;;((B (si +do +re +fa +so si)) (D (re mi +fa la si re)) (F (fa so la do re fa)) (A (la si +do mi +fa la)))
;;;
(defun get-pt-scales (cn)
(let ((char (intern (involve-char-p cn)))
(type (get-chord-type3 cn)))
(case char
(C (case type
(M7 (mapcar #'get-chordscale-from-pair (fget 'Pentatonic-Scale
'p-CM7 'value)))
(M7+11 (mapcar #'get-chordscale-from-pair (fget 'Pentatonic-Scale
'p-CM7+11 'value)))
(m7 (mapcar #'get-chordscale-from-pair (fget 'Pentatonic-Scale
'p-Cm7 'value)))
(m7-5 (mapcar #'get-chordscale-from-pair (fget 'Pentatonic-Scale
'p-Cm7-5 'value)))
(7 (mapcar #'get-chordscale-from-pair (fget 'Pentatonic-Scale
'p-C7 'value)))
(7+9 (mapcar #'get-chordscale-from-pair (fget 'Pentatonic-Scale
'p-C7+9 'value)))
(7-9 (mapcar #'get-chordscale-from-pair (fget 'Pentatonic-Scale
'p-C7-9 'value)))
(7+11 (mapcar #'get-chordscale-from-pair (fget 'Pentatonic-Scale
'p-C7+11 'value)))
(7+5 (mapcar #'get-chordscale-from-pair (fget 'Pentatonic-Scale
'p-C7+5 'value)))
(713 (mapcar #'get-chordscale-from-pair (fget 'Pentatonic-Scale
'p-C713 'value)))
(7sus4 (mapcar #'get-chordscale-from-pair (fget 'Pentatonic-Scale
'p-C7sus4 'value)))
))
(+C (case type
(M7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7 'value) 'C '+C))
(M7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7+11 'value) 'C '+C))
(m7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7 'value) 'C '+C))
(m7-5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7-5 'value) 'C '+C))
(7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7 'value) 'C '+C))
(7+9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+9 'value) 'C '+C))
(7-9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7-9 'value) 'C '+C))
(7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+11 'value) 'C '+C))
(7+5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+5 'value) 'C '+C))
(713 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C713 'value) 'C '+C))
(7sus4 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7sus4 'value) 'C '+C))
))
(-D (case type
(M7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7 'value) 'C '-D))
(M7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7+11 'value) 'C '-D))
(m7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7 'value) 'C '-D))
(m7-5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7-5 'value) 'C '-D))
(7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7 'value) 'C '-D))
(7+9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+9 'value) 'C '-D))
(7-9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7-9 'value) 'C '-D))
(7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+11 'value) 'C '-D))
(7+5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+5 'value) 'C '-D))
(713 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C713 'value) 'C '-D))
(7sus4 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7sus4 'value) 'C '-D))
))
(D (case type
(M7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7 'value) 'C 'D))
(M7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7+11 'value) 'C 'D))
(m7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7 'value) 'C 'D))
(m7-5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7-5 'value) 'C 'D))
(7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7 'value) 'C 'D))
(7+9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+9 'value) 'C 'D))
(7-9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7-9 'value) 'C 'D))
(7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+11 'value) 'C 'D))
(7+5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+5 'value) 'C 'D))
(713 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C713 'value) 'C 'D))
(7sus4 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7sus4 'value) 'C 'D))
))
(+D (case type
(M7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7 'value) 'C '+D))
(M7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7+11 'value) 'C '+D))
(m7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7 'value) 'C '+D))
(m7-5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7-5 'value) 'C '+D))
(7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7 'value) 'C '+D))
(7+9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+9 'value) 'C '+D))
(7-9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7-9 'value) 'C '+D))
(7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+11 'value) 'C '+D))
(7+5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+5 'value) 'C '+D))
(713 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C713 'value) 'C '+D))
(7sus4 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7sus4 'value) 'C '+D))
))
(-E (case type
(M7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7 'value) 'C '-E))
(M7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7+11 'value) 'C '-E))
(m7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7 'value) 'C '-E))
(m7-5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7-5 'value) 'C '-E))
(7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7 'value) 'C '-E))
(7+9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+9 'value) 'C '-E))
(7-9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7-9 'value) 'C '-E))
(7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+11 'value) 'C '-E))
(7+5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+5 'value) 'C '-E))
(713 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C713 'value) 'C '-E))
(7sus4 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7sus4 'value) 'C '-E))
))
(E (case type
(M7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7 'value) 'C 'E))
(M7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7+11 'value) 'C 'E))
(m7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7 'value) 'C 'E))
(m7-5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7-5 'value) 'C 'E))
(7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7 'value) 'C 'E))
(7+9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+9 'value) 'C 'E))
(7-9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7-9 'value) 'C 'E))
(7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+11 'value) 'C 'E))
(7+5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+5 'value) 'C 'E))
(713 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C713 'value) 'C 'E))
(7sus4 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7sus4 'value) 'C 'E))
))
(F (case type
(M7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7 'value) 'C 'F))
(M7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7+11 'value) 'C 'F))
(m7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7 'value) 'C 'F))
(m7-5 (fget 'Pentatonic-Scale 'p-Cm7-5 'value))
(7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7 'value) 'C 'F))
(7+9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+9 'value) 'C 'F))
(7-9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7-9 'value) 'C 'F))
(7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+11 'value) 'C 'F))
(7+5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+5 'value) 'C 'F))
(713 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C713 'value) 'C 'F))
(7sus4 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7sus4 'value) 'C 'F))
))
(+F (case type
(M7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7 'value) 'C '+F))
(M7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7+11 'value) 'C '+F))
(m7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7 'value) 'C '+F))
(m7-5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7-5 'value) 'C '+F))
(7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7 'value) 'C '+F))
(7+9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+9 'value) 'C '+F))
(7-9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7-9 'value) 'C '+F))
(7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+11 'value) 'C '+F))
(7+5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+5 'value) 'C '+F))
(713 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C713 'value) 'C '+F))
(7sus4 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7sus4 'value) 'C '+F))
))
(-G (case type
(M7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7 'value) 'C '-G))
(M7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7+11 'value) 'C '-G))
(m7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7 'value) 'C '-G))
(m7-5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7-5 'value) 'C '-G))
(7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7 'value) 'C '-G))
(7+9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+9 'value) 'C '-G))
(7-9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7-9 'value) 'C '-G))
(7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+11 'value) 'C '-G))
(7+5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+5 'value) 'C '-G))
(713 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C713 'value) 'C '-G))
(7sus4 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7sus4 'value) 'C '-G))
))
(G (case type
(M7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7 'value) 'C 'G))
(M7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7+11 'value) 'C 'G))
(m7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7 'value) 'C 'G))
(m7-5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7-5 'value) 'C 'G))
(7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7 'value) 'C 'G))
(7+9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+9 'value) 'C 'G))
(7-9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7-9 'value) 'C 'G))
(7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+11 'value) 'C 'G))
(7+5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+5 'value) 'C 'G))
(713 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C713 'value) 'C 'G))
(7sus4 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7sus4 'value) 'C 'G))
))
(+G (case type
(M7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7 'value) 'C '+G))
(M7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7+11 'value) 'C '+G))
(m7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7 'value) 'C '+G))
(m7-5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7-5 'value) 'C '+G))
(7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7 'value) 'C '+G))
(7+9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+9 'value) 'C '+G))
(7-9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7-9 'value) 'C '+G))
(7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+11 'value) 'C '+G))
(7+5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+5 'value) 'C '+G))
(713 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C713 'value) 'C '+G))
(7sus4 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7sus4 'value) 'C '+G))
))
(-A (case type
(M7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7 'value) 'C '-A))
(M7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7+11 'value) 'C '-A))
(m7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7 'value) 'C '-A))
(m7-5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7-5 'value) 'C '-A))
(7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7 'value) 'C '-A))
(7+9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+9 'value) 'C '-A))
(7-9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7-9 'value) 'C '-A))
(7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+11 'value) 'C '-A))
(7+5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+5 'value) 'C '-A))
(713 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C713 'value) 'C '-A))
(7sus4 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7sus4 'value) 'C '-A))
))
(A (case type
(M7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7 'value) 'C 'A))
(M7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7+11 'value) 'C 'A))
(m7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7 'value) 'C 'A))
(m7-5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7-5 'value) 'C 'A))
(7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7 'value) 'C 'A))
(7+9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+9 'value) 'C 'A))
(7-9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7-9 'value) 'C 'A))
(7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+11 'value) 'C 'A))
(7+5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+5 'value) 'C 'A))
(713 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C713 'value) 'C 'A))
(7sus4 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7sus4 'value) 'C 'A))
))
(+A (case type
(M7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7 'value) 'C '+A))
(M7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7+11 'value) 'C '+A))
(m7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7 'value) 'C '+A))
(m7-5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7-5 'value) 'C '+A))
(7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7 'value) 'C '+A))
(7+9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+9 'value) 'C '+A))
(7-9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7-9 'value) 'C '+A))
(7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+11 'value) 'C '+A))
(7+5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+5 'value) 'C '+A))
(713 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C713 'value) 'C '+A))
(7sus4 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7sus4 'value) 'C '+A))
))
(-B (case type
(M7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7 'value) 'C '-B))
(M7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7+11 'value) 'C '-B))
(m7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7 'value) 'C '-B))
(m7-5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7-5 'value) 'C '-B))
(7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7 'value) 'C '-B))
(7+9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+9 'value) 'C '-B))
(7-9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7-9 'value) 'C '-B))
(7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+11 'value) 'C '-B))
(7+5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+5 'value) 'C '-B))
(713 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C713 'value) 'C '-B))
(7sus4 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7sus4 'value) 'C '-B))
))
(B (case type
(M7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7 'value) 'C 'B))
(M7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-CM7+11 'value) 'C 'B))
(m7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7 'value) 'C 'B))
(m7-5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-Cm7-5 'value) 'C 'B))
(7 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7 'value) 'C 'B))
(7+9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+9 'value) 'C 'B))
(7-9 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7-9 'value) 'C 'B))
(7+11 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+11 'value) 'C 'B))
(7+5 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7+5 'value) 'C 'B))
(713 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C713 'value) 'C 'B))
(7sus4 (get-chordscales-from-modulated-pairs (fget 'Pentatonic-Scale
'p-C7sus4 'value) 'C 'B))
)))))
;;;(get-chord-type3 "CM7")--->M7
;;;(get-chord-type3 "CM7+11")--->M7+11
;;;(get-chord-type3 "Cm7")--->m7
;;;(get-chord-type3 "Cm7-5")---m7-5
;;;(get-chord-type3 "C7")--->7
;;;(get-chord-type3 "C7+9")--->7+9
;;;(get-chord-type3 "C7-9")--->7-9
;;;(get-chord-type3 "C7+11")--->7+11
;;;(get-chord-type3 "C7+5")--->7+5
;;;(get-chord-type3 "C713")--->713
;;;(get-chord-type3 "C7sus4")--->7sus4
;;;
(defun get-chord-type3 (cn)
(cond ((search-s1-in-s2 "M7+11" cn) 'M7+11)
((search-s1-in-s2 "7sus4" cn) '7sus4)
((search-s1-in-s2 "m7-5" cn) 'm7-5)
((search-s1-in-s2 "7+11" cn) '7+11)
((search-s1-in-s2 "7+9" cn) '7+9)
((search-s1-in-s2 "7-9" cn) '7-9)
((search-s1-in-s2 "7+5" cn) '7+5)
((search-s1-in-s2 "713" cn) '713)
((search-s1-in-s2 "M7" cn) 'M7)
((search-s1-in-s2 "m7" cn) 'm7)
((search-s1-in-s2 "7" cn) '7)))
;;;
;;; (get-pt '("CM7" ion))
;;; ((C (do re mi so la do)) (D (re mi +fa la si re)) (G (so la si re mi so)) (A (la si +do mi +fa la)))
;;;
(defun get-pt (pair)
(get-pt-scales (car pair)))
;;;
;;;(get-a-pt-at-random '("CM7" ion))--->(re mi +fa la si)
;;;
(defun get-a-pt-at-random (pair)
(let ((pts (get-pt pair)))
(butlast (second (nth (random (length pts)) pts)))))