;;;
;;; c:\\program files\\acl62\\music27.cl
;;;
(load "c:\\program files\\acl62\\music26.cl")

;;;
;;;(show-phrases-of-all-keys '(("CM7" (do re mi))))
;;;
;;;((CM7 (do re mi )))
;;;((+CM7 (+do +re fa)))
;;;((DM7 (re mi +fa)))
;;;((+DM7 (+re fa so)))
;;;((EM7 (mi +fa +so)))
;;;((FM7 (fa so la)))
;;;((+FM7 (+fa +so +la)))
;;;((GM7 (so la si)))
;;;((+GM7 (+so +la do)))
;;;((AM7 (la si +do)))
;;;((+AM7 (+la do re)))
;;;((BM7 (si +do +re)))
;;;nil
;;;
;;;(show-phrases-of-all-keys '(("CM7" (do re mi)) ("Dm7" (re mi so))))
;;;
;;;((CM7 (do re mi )) (Dm7 (re mi so)))
;;;((+CM7 (+do +re fa)) (+Dm7 (+re fa +so)))
;;;((DM7 (re mi +fa)) (Em7 (mi +fa la)))
;;;((+DM7 (+re fa so)) (Fm7 (fa so +la)))
;;;((EM7 (mi +fa +so)) (+Fm7 (+fa +so si)))
;;;((FM7 (fa so la)) (Gm7 (so la do)))
;;;((+FM7 (+fa +so +la)) (+Gm7 (+so +la +do)))
;;;((GM7 (so la si)) (Am7 (la si re)))
;;;((+GM7 (+so +la do)) (+Am7 (+la do +re)))
;;;((AM7 (la si +do)) (Bm7 (si +do mi)))
;;;((+AM7 (+la do re)) (Cm7 (do re fa )))
;;;((BM7 (si +do +re)) (+Cm7 (+do +re +fa)))
;;;nil
;;;
(defun show-phrases-of-all-keys (lst)
  (format t "~%~a" lst)
  (format t "~%~a" (m2-up-phrases lst))
  (format t "~%~a" (M2-up-phrases lst))
  (format t "~%~a" (m3-up-phrases lst))
  (format t "~%~a" (M3-up-phrases lst))
  (format t "~%~a" (P4-up-phrases lst))
  (format t "~%~a" (+4-5-up-phrases lst))
  (format t "~%~a" (P5-up-phrases lst))
  (format t "~%~a" (m6-up-phrases lst))
  (format t "~%~a" (M6-up-phrases lst))
  (format t "~%~a" (m7-up-phrases lst))
  (format t "~%~a" (M7-up-phrases lst)))


;;;
;;;(get-phrases-of-all-keys '(("CM7" (do re mi)) ("Dm7" (re mi so))))
;;;
;;;((("CM7" (do re mi )) ("Dm7" (re mi so))) (("+CM7" (+do +re fa)) ("+Dm7" (+re fa +so)))
;;; (("DM7" (re mi +fa)) ("Em7" (mi +fa la))) (("+DM7" (+re fa so)) ("Fm7" (fa so +la)))
;;; (("EM7" (mi +fa +so)) ("+Fm7" (+fa +so si))) (("FM7" (fa so la)) ("Gm7" (so la do)))
;;; (("+FM7" (+fa +so +la)) ("+Gm7" (+so +la +do))) (("GM7" (so la si)) ("Am7" (la si re)))
;;; (("+GM7" (+so +la do)) ("+Am7" (+la do +re))) (("AM7" (la si +do)) ("Bm7" (si +do mi))) ...)
;;;
(defun get-phrases-of-all-keys (lst)
  (list lst
     (m2-up-phrases lst)
     (M2-up-phrases lst)
     (m3-up-phrases lst)
     (M3-up-phrases lst)
     (P4-up-phrases lst)
     (+4-5-up-phrases lst)
     (P5-up-phrases lst)
     (m6-up-phrases lst)
     (M6-up-phrases lst)
     (m7-up-phrases lst)
     (M7-up-phrases lst)))