;;;
;;; c:\\program files\\acl62\\music55.cl
;;;



(load "c:\\program files\\acl62\\music54.cl")

(defun get-lhvs-at-random-for-autocomp-aux (cn)
  (let ((lst1 (get-lhv-aux cn))
        (lst2 (get-lhv-aux cn))
        (lst3 (get-lhv-aux cn))
        (lst4 (get-lhv-aux cn))
        (lst5 (get-lhv-aux cn))
        (chord-tone (get-chord-tone cn))
        (tensions (get-all-tension-notes cn)))
    (list cn 
          '**lhvs
          (nth (random (length lst1)) lst1)
          (nth (random (length lst2)) lst2)
          (nth (random (length lst3)) lst3)
          (nth (random (length lst4)) lst4)
          (nth (random (length lst5)) lst5)
          '**chord chord-tone
          '**tension tensions)))

(defun show-lhvs-at-random-for-autocomp-aux (cn)
  (format t "~%~a" (get-lhvs-at-random-for-autocomp-aux cn)))

;;;
;;;(show-lhvs-at-random-for-autocomp-aux-2 '("CM7" ion))
;;;(CM7 **lhvs (re mi) (si re mi so) (la re mi so) (la re so) 
;;;            (la re mi so) 
;;;     **chord (do mi so  si)
;;;     **tension (re la -so))
;;;
;;;(show-lhvs-at-random-for-autocomp-aux-2 '("CM7" ion "A7" hmp5))
;;;(CM7 **lhvs (re mi so) (la re so) (si do) (la re so) (mi si re)
;;;     **chord (do mi so  si)
        **tension (re la -so))
;;;(A7 **lhvs (so si +do +fa) (+do so si) (+do +fa so +la)
;;;           (so +do fa) (so +do)
;;;    **chord (la +do mi so)
;;;    **tension (si +fa +re +la do fa))
;;;
;;;(show-lhvs-at-random-for-autocomp-aux-2 
;;;              '("CM7" ion "A7" hmp5 "Dm7" dor))
;;;(CM7 **lhvs (la re so) (la re so) (mi so si re) (re mi so) (re mi so) 
;;;     **chord (do mi so  si)
;;;     **tension (re la -so))
;;;(A7 **lhvs (so si +do +fa) (+do +fa so si) (+do so) 
;;;           (so +la +do +fa) (+do so do)
;;;     **chord (la +do mi so)
;;;     **tension (si +fa +re +la do fa))
;;;(Dm7 **lhvs (re do) (mi fa) (re do) (si mi fa la) (fa la do mi) 
;;;     **chord (re fa la do)
;;;     **tension (mi so +la si))
;;;
;;;(show-lhvs-at-random-for-autocomp-aux-2 
;;;      '("CM7" ion "A7" hmp5 "Dm7" dor "G7" alt))
;;;(CM7 **lhvs (la re so) (la mi so) (mi so la re) (mi so la re) 
;;;            (si re mi so) 
;;;     **chord (do mi so  si)
;;;     **tension (re la -so))
;;;(A7 **lhvs (+do so do) (+do so do) (+do so si) (so +la +do fa)
;;;           (so +la +do +fa)
;;;    **chord (la +do mi so)
;;;    **tension (si +fa +re +la do fa))
;;;(Dm7 **lhvs (si mi fa la) (fa do mi) (mi fa la) (mi fa)
;;;            (fa la si mi)
;;;     **chord (re fa la do)
;;;      **tension (mi so +la si))
;;;(G7 **lhvs (si fa +la) (si fa la) (fa +so si +re)
              (fa la si mi) (si fa la)
       **chord (so si re fa)
       **tension (la mi +do +so +la +re))
;;;
(defun show-lhvs-at-random-for-autocomp-aux-2 (pair)
  (do ((lst pair (cddr lst)))
      ((null lst))
    (show-lhvs-at-random-for-autocomp-aux (car lst))))

;;;
;;;(show-lhvs-at-random-for-autocomp-aux-3 '(("CM7" ion)))
;;;***** (CM7 ion) *****
;;;(CM7 **lhvs (mi si re) (mi so la re) (si do) 
;;;            (la re so) (mi la re)
;;;     **chord (do mi so  si)
;;;     **tensio (re la -so))
;;;
;;;(show-lhvs-at-random-for-autocomp-aux-3 '(("CM7" ion "A7" hmp5) 
                                             ("Dm7" dor "G7" alt) 
;;;                                          ("CM7" ion)))
;;;***** (CM7 ion A7 hmp5) *****
;;;(CM7 **lhvs (si do) (la re so) (re mi so) (si re mi so)
;;;            (mi so si re)
;;;     **chord (do mi so  si)
;;;     **tension (re la -so))
;;;(A7 **lhvs (+do so do) (+do +fa so +la) (la so)
;;;           (+do +fa so +la) (la so)
;;;    **chord (la +do mi so)
;;;    **tension (si +fa +re +la do fa))
;;;***** (Dm7 dor G7 alt) *****
;;;(Dm7 **lhvs (mi fa) (fa la si mi) (mi fa la) (do fa la ) 
;;;            (si mi fa la)
;;;     **chord (re fa la do)
;;;     **tension (mi so +la si))
;;;(G7 **lhvs (si fa +la) (si fa) (si mi fa +so) (si fa la) 
;;;           (si mi fa +so)
;;;    **chord (so si re fa)
       **tension (la mi +do +so +la +re))
;;;***** (CM7 ion) *****
;;;(CM7 **lhvs (do si) (re mi so) (re mi so) (re mi so) 
;;;            (mi si re)
;;;     **chord (do mi so  si)
;;;     **tension (re la -so))
;;;
(defun show-lhvs-at-random-for-autocomp-aux-3 (pairs)
  (do ((lst pairs (cdr lst)))
      ((null lst))
    (format t "~%***** ~a *****" (car lst))
    (show-lhvs-at-random-for-autocomp-aux-2 (car lst))))

;;;
;;;(auto-comp-for-left-hand *w3*)
;;;
;;; Enter an integer! 
;;;650
;;;
;;;***** Dindi *****
;;;The original key is F.
;;;Enter a key.C
;;;
;;;***** The key is C. *****
;;;***** (CM7 ion) *****
;;;(CM7 **lhvs (si re mi so) (la mi so) (re mi so) 
;;;            (la re mi so) (re mi so)
;;;     **chord (do mi so  si)
;;;     **tension (re la -so))
;;;***** (-BM7 lyd) *****
;;;(-BM7 **lhvs (re la do) (la +la) (re la do) (re la do)
;;              (la +la)
;;;      **chord (-si re fa la)
         **tension (do so mi ))
;;;***** (CM7 ion) *****
;;;(CM7 **lhvs (mi si re) (si re mi so) (mi si re)
;;;            (mi la re) (mi la re)
;;;     **chord (do mi so  si)
;;;     **tension (re la -so))
;;;***** (Gm7 dor C7 alt) *****
;;;(Gm7 **lhvs (+la re mi la) (la +la re) (la +la re)
;;;            (so fa) (+la re fa la)
;;;     **chord (so +la re fa)
;;;     **tension (la do +re mi))
;;;(C7 **lhvs (+la +do mi la) (mi la +la re) (mi +la) 
;;;           (mi +la +re) (+la +do mi +so) 
;;;    **chord (do mi so  -si)
;;;    **tension (re la -so -re -mi -la))
;;;***** (FM7 lyd) *****
;;;(FM7 **lhvs (la mi so) (so la) (la do mi so)
;;;            (la do re so) (la mi so)
;;;     **chord (fa la do mi)
;;;     **tension (so re si))
;;;***** (-B7 lyd-7) *****
;;;(-B7 **lhvs (+so do re so) (+so si re +fa) (+so re)
;;;            (+la +so) (+so re so)
;;;     **chord (-si re fa -la)
;;;     **tension (do so mi  si -re -so))
;;;***** (CM7 ion) *****
;;;(CM7 **lhvs (do si) (la mi so) (do si) (mi la re)
;;;            (si re mi so)
;;;     **chord (do mi so  si)
;;;     **tension (re la -so))
;;;***** (-BM7 lyd) *****
;;;(-BM7 **lhvs (re so do) (do re fa ) (+la la) 
;;;             (re fa so do) (re fa so do) 
;;;      **chord (-si re fa la) 
;;;      **tension (do so mi ))
;;;***** (CM7 ion) *****
;;;(CM7 **lhvs (do si) (la mi so) (la mi so)
;;;            (mi so si re) (mi so la re)
;;;     **chord (do mi so  si)
;;;     **tension (re la -so))
;;;***** (-BM7 lyd) *****
;;;(-BM7 **lhvs (do re fa ) (so do re fa) (+la la) 
;;;             (so do re fa) (so re fa)
;;;      **chord (-si re fa la)
;;;      **tension (do so mi ))
;;;***** (CM7 ion) *****
;;;(CM7 **lhvs (mi si re) (re mi) (la re so)
;;;            (mi so si re) (si re mi so)
;;;     **chord (do mi so  si)
;;;     **tension  (re la -so))
;;;***** (Gm7 dor C7 alt) *****
;;;(Gm7 **lhvs (mi la re) (la +la re) (fa la +la re) 
;;;            (+la re fa la) (so fa)
;;;     **chord (so +la re fa)
;;;     **tension (la do +re mi))
;;;(C7 **lhvs (+la +do mi la) (mi la +la +do) (+la mi) 
;;;           (+la mi la) (+la re mi la)
;;;    **chord (do mi so  -si)
;;;    **tension (re la -so -re -mi -la))
;;;***** (FM7 lyd) *****
;;;(FM7 **lhvs (la do re so) (so la do) (mi so la do) 
;;;            (re la do) (re so do)
;;;     **chord (fa la do mi)
;;;     **tension (so re si))
;;;***** (-B7 lyd-7) *****
;;;(-B7 **lhvs (re +so do) (re +so do) (+so do re so) 
;;;            (re +so do) (+so re)
;;;     **chord (-si re fa -la)
;;;     **tension (do so mi  si -re -so))
;;;***** (CM7 ion) *****
;;;(CM7 **lhvs (re mi so) (mi si re) (mi la re) 
;;;            (la mi so) (mi si re)
;;;     **chord (do mi so  si)
;;;     **tension (re la -so))
;;;***** (-Gm7-5 loc B7 hmp5) *****
;;;(-Gm7-5 **lhvs (+fa mi) (mi la do) (la do mi +so) 
;;;               (+fa mi) (la do mi +so)
;;;        **chord (-so la do mi)
;;;        **tension (si re -la))
;;;(B7 **lhvs (la +re so) (+re la re) (+re la +do)
;;;           (+re la +do) (la +re)
;;;    **chord (si +re +fa la)
;;;    **tension (+do +so fa do re so))
;;;***** (Em7 all) *****
;;;(Em7 **lhvs (+fa so si) (so si re +fa)
;;;            (so +do +fa) (re so si) (so re +fa)
;;;     **chord (mi so si re)
;;;     **tensio (+fa la do +do))
;;;***** (B7 hmp5) *****
;;;(B7 **lhvs (+re la re) (+re +so la do) (la +re +so)
;;;           (la do +re so) (+re +so la do)
;;;    **chord (si +re +fa la)
;;;    **tension (+do +so fa do re so))
;;;***** (Em7 all B7 hmp5) *****
;;;(Em7 **lhvs (so si re +fa) (+fa so si) (so re +fa) 
;;;            (so si +do +fa) (+fa so si)
;;;     **chord (mi so si re)
;;;     **tension (+fa la do +do))
;;;(B7 **lhvs (+re +so la +do) (+re la) (la +re) 
;;;           (la do +re so) (la +re)
;;;    **chord (si +re +fa la)
;;;    **tension (+do +so fa do re so))
;;;***** (Em7 all A7 alt) *****
;;;(Em7 **lhvs (+fa so) (re +fa so si) (so si +do +fa) 
;;;            (re so si) (+fa so)
;;;     **chord (mi so si re)
;;;     **tension (+fa la do +do))
;;;(A7 **lhvs (+do so do) (so si +do +fa) (+do so si)
;;;           (so +do fa) (so +la +do +fa)
;;;    **chord (la +do mi so)
;;;    **tension (si +fa +re +la do fa))
;;;***** (Dm7 all) *****
;;;(Dm7 **lhvs (do fa la ) (do mi fa  la) (fa la si mi) 
;;;            (fa la do mi) (fa la do mi)
;;;     **chord (re fa la do)
;;;     **tension (mi so +la si))
;;;***** (A7 hmp5) *****
;;;(A7 **lhvs (la so) (so si +do +fa) (so +la +do fa) 
;;;           (so +do) (+do +fa so +la)
;;;    **chord (la +do mi so)
;;;    **tension (si +fa +re +la do fa))
;;;***** (Dm7 all A7 hmp5) *****
;;;(Dm7 **lhvs (mi fa) (mi fa la) (mi fa) (fa la si mi) 
;;;            (re do)
;;;     **chord (re fa la do)
;;;     **tension (mi so +la si))
;;;(A7 **lhvs (+do so do) (+do +fa so si) (+do +fa so si)
;;;           (+do so do) (+do so si)
;;;    **chord (la +do mi so)
;;;    **tension (si +fa +re +la do fa))
;;;***** (Dm7 all G7 alt) *****
;;;(Dm7 **lhvs (mi fa la) (mi fa la) (si mi fa la)
;;;            (do mi fa  la) (do fa la )
;;;     **chord (re fa la do)
;;;     **tension (mi so +la si))
;;;(G7 **lhvs (si fa la) (si fa la) (so fa) (so fa) 
;;;           (fa si)
;;;    **chord (so si re fa)
;;;    **tension (la mi +do +so +la +re))
;;;***** (CM7 ion) *****
;;;(CM7 **lhvs (mi so la re) (si re mi so) (re mi so) 
;;;            (la re so) (re mi) **chord (do mi so  si)
;;;     **tension (re la -so))
;;;***** (-BM7 lyd) *****
;;;(-BM7 **lhvs (re so do) (+la la) (+la la) (re la do) 
;;;             (la do re fa)
;;;      **chord (-si re fa la)
;;;      **tension (do so mi ))
;;;***** (CM7 ion) *****
;;;(CM7 **lhvs (la re so) (la re mi so) (la re mi so) 
;;;            (mi la re) (la re so) 
;;;     **chord (do mi so  si)
;;;     **tension (re la -so))
;;;***** (Gm7 dor C7 alt) *****
;;;(Gm7 **lhvs (+la fa la) (so fa) (la +la) (la +la) 
;;;            (+la mi la)
;;;     **chord (so +la re fa)
;;;     **tension (la do +re mi))
;;;(C7 **lhvs (do +la) (+la mi) (+la mi) (+la +do mi +so)
;;;           (do +la)
;;;    **chord (do mi so  -si)
;;;    **tension (re la -so -re -mi -la))
;;;***** (FM7 lyd) *****
;;;(FM7 **lhvs (so la do) (re so do) (so la) (re la do)
;;;            (la re so)
;;;     **chord (fa la do mi)
;;;     **tension (so re si))
;;;***** (-B7 lyd-7) *****
;;;(-B7 **lhvs (+so do re so) (re so +so si) (re +so do)
;;;            (+so si re so) (re +so +do)
;;;     **chord (-si re fa -la)
;;;     **tension (do so mi  si -re -so))
;;;***** (CM7 ion) *****
;;;(CM7 **lhvs (si do) (mi la re) (la mi so) (mi la re) 
;;;            (mi si re)
;;;      **chord (do mi so  si)
;;;      **tension (re la -so))
;;;***** (-BM7 lyd) *****
;;;(-BM7 **lhvs (+la la) (re fa la do) (la do re fa)
;;;             (re fa so do) (re fa so do)
;;;      **chord (-si re fa la)
;;;      **tension (do so mi ))
;;;***** (CM7 ion) *****
;;;(CM7 **lhvs (re mi so) (mi so la re) (mi si re) 
;;;            (la mi so) (do si) 
;;;     **chord (do mi so  si) 
;;;     **tension
;;; (re la -so))
;;;***** (-BM7 lyd) *****
;;;(-BM7 **lhvs (la +la) (re fa la do) (la do re fa)
;;;             (so re fa) (re la do)
;;;      **chord (-si re fa la)
;;;      **tension (do so mi ))
;;;***** (CM7 ion) *****
;;;(CM7 **lhvs (si re mi so) (do si) (do si) (si do) 
;;;            (si do)
;;;     **chord (do mi so  si)
;;;     **tension (re la -so))
;;;***** (-BM7 lyd) *****
;;;(-BM7 **lhvs (re so do) (re la do) (la +la) (la do re fa) 
;;;             (so do re fa)
;;;      **chord (-si re fa la)
;;;      **tension (do so mi ))
;;;***** (CM7 ion) *****
;;;(CM7 **lhvs (mi so la re) (mi so la re) (si do) 
;;;            (la re mi so) (mi so la re)
;;;     **chord (do mi so  si)
;;;     **tension (re la -so))
;;;***** (CM7 ion) *****
;;;(CM7 **lhvs (mi so la re) (la re mi so) (re mi) (si do) 
;;;            (mi si re)
;;;     **chord (do mi so  si)
;;;     **tension (re la -so))
;;;***** (-BM7 lyd) *****
;;;(-BM7 **lhvs (re fa la do) (so re fa) (la do re fa) 
;;;             (do re) (la do re fa)
;;;      **chord (-si re fa la)
;;;      **tension (do so mi ))
;;;***** (-BM7 lyd) *****
;;;(-BM7 **lhvs (re so do) (re fa la do) (+la la) (do re fa ) 
;;;             (do re fa )
;;;      **chord (-si re fa la)
;;;      **tension (do so mi ))
;;;***** (AM7 ion) *****
;;;(AM7 **lhvs (+fa +do mi) (+do +so si) (+do mi +so si) 
;;;            (+fa si mi) (+so si +do mi)
;;;     **chord (la +do mi +so)
;;;     **tension (si +fa +re))
;;;***** (AM7 ion) *****
;;;(AM7 **lhvs (si +do) (+so si +do mi) (+fa si mi) 
;;;            (+so si +do mi) (+so la)
;;;     **chord (la +do mi +so)
;;;     **tension (si +fa +re))
;;;***** (AM7 ion) *****
;;;(AM7 **lhvs (+do mi +so si) (la +so) (+do mi +fa si) 
;;;            (+do mi +fa si) (+so si +do mi)
;;;     **chord (la +do mi +so)
;;;     **tension (si +fa +re))
;;;***** (AM7 ion) *****
;;;(AM7 **lhvs (si +do) (+fa si mi) (+fa +do mi) (+do +so si) 
;;;            (+fa si +do mi)
;;;     **chord (la +do mi +so)
;;;     **tension (si +fa +re))
;;;

(defun auto-comp-for-left-hand (wn)
  (tagbody
    (my-randomize)
    (format t "~%***** ~a *****" (second (first wn)))
    (format t "~%The original key is ~a." (first (first wn)))
    (format t "~%Enter a key.")
    loop1
    (setf l1 (read-sentence))
    (if (not (key-p (car l1)))
        (go loop1))
    (if (equal (car l1) (first (first wn)))
        (setf l2 (cdr wn))
      (setf l2 (modulate-key1-to-key2 (cdr wn) 
                         (first (first wn)) (car l1))))
    (format t "~%***** The key is ~a. *****" (car l1))
    (show-lhvs-at-random-for-autocomp-aux-3 l2)))



;;;
;;; c:\\program files\\acl62\\work1.cl
;;;
;;;(setf *w3* '((F "Dindi")
;;;             ("FM7" ion) ("-EM7" lyd) 
;;;             ("FM7" ion) ("Cm7" dor "F7" alt)
;;;             ("-BM7" lyd) ("-E7" lyd-7)
;;;             ("FM7" ion) ("-EM7" lyd)
;;;             ("FM7" ion) ("-EM7" lyd)
;;;             ("FM7" ion) ("Cm7" dor "F7" alt)
;;;             ("-BM7" lyd) ("-E7" lyd-7)
;;;             ("FM7" ion) ("Bm7-5" loc "E7" hmp5)
;;;             ("Am7" all) ("E7" hmp5)
;;;             ("Am7" all "E7" hmp5) ("Am7" all "D7" alt)
;;;             ("Gm7" all) ("D7" hmp5)
;;;             ("Gm7" all "D7" hmp5) ("Gm7" all "C7" alt)
;;;             ("FM7" ion) ("-EM7" lyd)
;;;             ("FM7" ion) ("Cm7" dor "F7" alt)
;;;             ("-BM7" lyd) ("-E7" lyd-7) 
;;;             ("FM7" ion) ("-EM7" lyd)
;;;             ("FM7" ion) ("-EM7" lyd)
;;;             ("FM7" ion) ("-EM7" lyd)
;;;             ("FM7" ion) ("FM7" ion)
;;;             ("-EM7" lyd) ("-EM7" lyd)
;;;             ("DM7" ion) ("DM7" ion)
;;;             ("DM7" ion) ("DM7" ion)))
;;;