;;;
;;; c:\\program files\\acl62\\music7.cl
;;;
(load "c:\\program files\\acl62\\music6.cl")

(make-frame-from-list
  '(CP-of-CM (pat1 (value ("CM7" ion) ("G7" mix lyd-7 alt comd wt) ("CM7" ion)))
          (pat2 (value ("CM7" ion) ("FM7" lyd) ("CM7" ion)))
          (pat3 (value ("CM7" ion) ("FM7" lyd)
                  ("G7" mix lyd-7 alt comd wt) ("CM" ion)))
          (pat4 (value ("CM7" ion) ("Am7" aeo) ("Dm7" dor)
                  ("G7" mix lyd-7 alt comd wt)))
          (pat5 (value ("CM7" ion) ("Cdim7" dim) ("G7" mix lyd-7 alt comd wt)))
          (pat6 (value ("CM7" ion) ("Gdim7" dim)
                  ("G7" mix lyd-7 alt comd wt) ("CM7" ion)))
          (pat7 (value ("CM7" ion) ("+Cdim7" dim) ("Dm7" dor)
                  ("G7" mix lyd-7 alt comd wt)))
          (pat8 (value ("CM7" ion) ("Am7" aeo) ("D7" mix lyd-7 alt comd wt)
                  ("G7" mix lyd-7 alt comd wt) ("CM7" ion)))
          (pat9 (value ("CM7" ion) ("Cdim7" dim) ("Dm7" dor)
                  ("G7" mix lyd-7 alt comd wt)))
          (pat10 (value ("CM7" ion) ("BM7" ion) ("CM7" ion)))
          (pat11 (value ("CM7" ion) ("Gaug7" mix) ("CM7" ion)))
          (pat12 (value ("CM7" ion) ("Cdim7" dim) ("CM7" ion)
                   ("D7" mix lyd-7 alt comd wt) ("Dm7" dor)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat13 (value ("CM7" ion) ("A7" mix lyd-7 alt comd wt)
                   ("D7" mix lyd-7 alt comd wt)
                   ("G7" mix lyd-7 alt comd wt) ("CM7" ion)))
          (pat14 (value ("CM7" ion) ("D7" mix lyd-7 alt comd wt)
                   ("G7" mix lyd-7 alt comd wt) ("CM7" ion)))
          (pat15 (value ("CM7" ion) ("FM7" lyd) ("CM7" ion)
                   ("G7" mix lyd-7 alt comd wt) ("CM7" ion)))
          (pat16 (value ("CM7" ion) ("C7" mix lyd-7 alt comd wt)
                   ("FM7" lyd) ("Fm7" dor) ("CM7" ion)))
          (pat17 (value ("CM7" ion) ("Fm7" dor) ("G7" mix lyd-7 alt comd wt)
                   ("CM7" ion)))
          (pat18 (value ("CM7" ion) ("F7" lyd-7) ("CM7" ion)))
          (pat19 (value ("CM7" ion) ("-B7" lyd-7) ("CM7" ion)))
          (pat20 (value ("CM7" ion) ("Gm7" dor) ("A7" mix lyd-7 alt comd wt)
                   ("D7" mix lyd-7 alt comd wt) ("G7" mix lyd-7 alt comd wt)
                   ("CM7" ion)))
          (pat21 (value ("CM7" ion) ("B7" alt) ("Dm7" dor)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat22 (value ("CM7" ion) ("A7" lyd-7 hmp5 alt comd wt)
                   ("Dm7" dor) ("B7" alt) ("Em7" phr)
                   ("C7" mix lyd-7 alt comd wt) ("FM7" lyd)))
          (pat23 (value ("CM7" ion) ("C7" mix lyd-7 hmp5 alt comd wt)
                   ("Am7" aeo) ("+Cdim7" dim)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat24 (value ("CM7" ion) ("E7" mix lyd-7 alt comd wt)
                   ("A7" mix lyd-7 alt comd wt) ("Dm7" dor)))
          (pat25 (value ("CM7" ion) ("-E7" lyd-7) ("Dm7" dor)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat26 (value ("CM7" ion) ("B7" alt) ("E7" mix lyd-7 alt comd wt)
                   ("A7" lyd-7 hmp5 alt comd wt) ("Dm7" dor)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat27 (value ("CM7" ion) ("Em7" phr) ("Am7" aeo)
                   ("C7" lyd-7 hmp5 alt comd wt) ("Fm7" dor)))
          (pat28 (value ("CM7" ion) ("Caug7" ion) ("Am7" aeo)
                   ("C7" lyd-7 hmp5 alt comd wt) ("Fm7" dor)))
          (pat29 (value ("CM7" ion) ("Am7" aeo) ("-A7" lyd-7)
                   ("G7" mix lyd-7 alt comd wt) ("CM7" ion)))
          (pat30 (value ("CM7" ion) ("Dm7" dor) ("Em7" phr)
                   ("Dm7" dor) ("CM7" ion)))
          (pat31 (value ("CM7" ion) ("C7" mix lyd-7 alt comd wt) ("F7" lyd-7)
                   ("CM7" ion) ("-AM7" lyd)
                   ("G7" mix lyd-7 alt comd wt) ("CM7" ion)))
          (pat32 (value ("CM7" ion) ("Dm7" dor) ("E7" mix lyd-7 alt comd wt)
                   ("A7" mix lyd-7 alt comd wt) ("Cm" all)
                   ("D7" mix lyd-7 alt comd wt) ("G7" mix lyd-7 alt comd wt)))
          (pat33 (value ("CM7" ion) ("C7" lyd-7) ("B7" lyd-7) ("-B7" lyd-7)
                   ("A7" mix lyd-7 alt comd wt) ("D7" mix lyd-7 alt comd wt)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat34 (value ("CM7" ion) ("-Em7" dor) ("Dm7" dor)
                   ("-D7" lyd-7) ("CM7" ion)))
          (pat35 (value ("CM7" ion) ("-E7" lyd-7) ("D7" lyd-7) ("-D7" lyd-7)
                   ("CM7" ion)))
          (pat36 (value ("CM7" ion) ("-A7" lyd-7) ("G7" mix lyd-7 alt comd wt)
                   ("CM7" ion)))
          (pat37 (value ("CM7" ion) ("Em7" phr) ("Am7" aeo) ("+Cdim7" dim)
                   ("Dm7" dor) ("G7" mix lyd-7 alt comd wt)))
          (pat38 (value ("CM7" ion) ("-A7" lyd-7) ("Dm7" dor)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat39 (value ("CM7" ion) ("-A7" lyd-7) ("CM7" ion) ("Cdim7" dim)
                   ("Dm7" dor) ("G7" mix lyd-7 alt comd wt)))
          (pat40 (value ("CM7" ion) ("Cm" all) ("Gm7" phr)
                   ("A7" lyd-7 hmp5 alt comd wt) ("Fm7" dor)
                   ("G7" mix lyd-7 alt comd wt) ("CM7" ion)))
          (pat41 (value ("C7" mix lyd-7 alt comd wt) ("FM7" lyd)
                   ("D7" mix lyd-7 alt comd wt) ("G7" mix lyd-7 alt comd wt)))
          (pat42 (value ("C7" lyd-7 hmp5 alt comd wt) ("Cdim7" dim)
                   ("C7" lyd-7 hmp5 alt comd wt) ("D7" mix lyd-7 alt comd wt)
                   ("Fm7" dor) ("G7" mix lyd-7 alt comd wt)))
          (pat43 (value ("C7" mix lyd-7 alt comd wt) ("FM7" lyd) ("Fm7" dor)
                   ("G7" mix lyd-7 alt comd wt) ("CM7" ion)))
          (pat44 (value ("D7" mix lyd-7 alt comd wt) ("Fm7" dor)
                   ("G7" mix lyd-7 alt comd wt) ("CM7" ion)))
          (pat45 (value ("Dm7" dor) ("G7" mix lyd-7 alt comd wt) ("Dm7" dor)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat46 (value ("Dm7" dor) ("-D7" lyd-7) ("CM7" ion)))
          (pat47 (value ("D7" mix lyd-7 alt comd wt) ("Fm7" dor)
                   ("Em7" phr) ("A7" lyd-7 hmp5 alt comd wt)
                   ("Dm7" dor) ("G7" mix lyd-7 alt comd wt)))
          (pat48 (value ("Dm7" dor) ("A7" lyd-7 hmp5 alt comd wt)
                   ("-B7" lyd-7) ("A7" lyd-7 hmp5 alt comd wt) ("Dm7" dor)
                   ("Fm7" dor) ("G7" mix lyd-7 alt comd wt)))
          (pat49 (value ("Em7" phr) ("B7" alt) ("Em7" phr)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat50 (value ("Em7" phr) ("B7" alt) ("Dm7" dor)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat51 (value ("Em7" phr) ("A7" mix lyd-7 alt comd wt)
                   ("D7" mix lyd-7 alt comd wt) ("G7" mix lyd-7 alt comd wt)
                   ("CM7" ion)))
          (pat52 (value ("Em7" phr) ("Am7" aeo) ("Dm7" dor)
                   ("G7" mix lyd-7 alt comd wt) ("CM7" ion)))
          (pat53 (value ("Em7" phr) ("-Em7" dor) ("Dm7" dor)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat54 (value ("E7" mix lyd-7 alt comd wt) ("A7" mix lyd-7 alt comd wt)
                   ("D7" mix lyd-7 alt comd wt) ("G7" mix lyd-7 alt comd wt)
                   ("CM7" ion)))
          (pat55 (value ("E7" lyd-7 hmp5 alt comd wt) ("Am7" aeo)
                   ("D7" mix lyd-7 alt comd wt) ("G7" mix lyd-7 alt comd wt)))
          (pat56 (value ("E7" lyd-7) ("-E7" lyd-7) ("D7" mix lyd-7 alt comd wt)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat57 (value ("EM7" ion) ("+Fm7" dor) ("B7" alt) ("EM7" ion)))
          (pat58 (value ("FM7" lyd) ("E7" lyd-7 hmp5 alt comd wt) ("Am7" aeo)))
          (pat59 (value ("FM7" lyd) ("B7" alt) ("CM7" ion)
                   ("A7" lyd-7 hmp5 alt comd wt) ("Fm7" dor)
                   ("G7" mix lyd-7 alt comd wt) ("CM7" ion)))
          (pat60 (value ("FM7" lyd) ("Fm7" dor) ("CM7" ion) ("Am7" aeo)
                   ("D7" mix lyd-7 alt comd wt) ("G7" mix lyd-7 alt comd wt)))
          (pat61 (value ("FM7" lyd) ("Fm7" dor) ("CM7" ion)
                   ("A7" lyd-7 hmp5 alt comd wt) ("Dm7" dor)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat62 (value ("Fm7" dor) ("G7" mix lyd-7 alt comd wt) ("Em7" phr)
                   ("Am7" aeo)))
          (pat63 (value ("FM7" lyd) ("E7" lyd-7 hmp5 alt comd wt) ("Am7" aeo)
                   ("Cdim7" dim) ("G7" mix lyd-7 alt comd wt)
                   ("+Cdim7" dim) ("Dm7" dor)))
          (pat64 (value ("Fm7" dor) ("G7" mix lyd-7 alt comd wt)
                   ("Gdim7" dim) ("G7" mix lyd-7 alt comd wt) ("CM7" ion)))
          (pat65 (value ("F7" lyd-7) ("CM7" ion) ("-A7" lyd-7)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat66 (value ("Fm7" dor) ("CM7" ion) ("Em7" phr) ("Am7" aeo)))
          (pat67 (value ("GM7" ion) ("Am7" aeo) ("D7" mix lyd-7 alt comd wt)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat68 (value ("Gm7" phr) ("A7" lyd-7 alt comd wt) ("Fm7" dor)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat69 (value ("G7" mix lyd-7 alt comd wt) ("-Edim7" dim)
                   ("G7" mix lyd-7 alt comd wt) ("GM7" ion) ("CM7" ion)))
          (pat70 (value ("Gm7" dor) ("C7" mix lyd-7 hmp5 alt comd wt)
                   ("Gm7" dor) ("C7" mix lyd-7 hmp7 alt comd wt)))
          (pat71 (value ("Am7" aeo) ("B7" alt) ("EM7" ion)
                   ("G7" mix lyd-7 alt comd wt) ("CM7" ion)))
          (pat72 (value ("Am7" aeo) ("Em7" phr) ("Dm7" dor) ("CM7" ion)))
          (pat73 (value ("Am7" aeo) ("B7" alt) ("Em7" phr)
                   ("A7" lyd-7 hmp5 alt comd wt) ("Dm7" dor)))
          (pat74 (value ("Am7" aeo) ("E7" mix lyd-7 alt comd wt) ("Gm7" phr)
                   ("A7" lyd-7 hmp5 alt comd wt) ("Fm7" dor)
                   ("G7" mix lyd-7 alt comd wt) ("CM7" ion)))
          (pat75 (value ("Am7" aeo) ("Caug" ion) ("CM7" ion)))
          (pat76 (value ("-AM7" lyd) ("G7" mix lyd-7 hmp5 alt comd wt) ("Em7" phr)
                   ("Am7" aeo)))
          (pat77 (value ("-AM7" lyd) ("-Bm7" dor) ("-E7" mix lyd-7 alt comd wt)
                   ("-AM7" lyd) ("G7" mix lyd-7 alt comd wt) ("CM7" ion)))
          (pat78 (value ("B7" alt) ("Em7" phr) ("D7" mix lyd-7 alt comd wt)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat79 (value ("CM7" ion) ("A7" lyd-7 hmp5 alt comd wt) ("Dm7" dor)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat80 (value ("CM7" ion) ("C7" mix lyd-7 alt comd wt) ("FM7" lyd)
                   ("Fm7" dor)))
          (pat81 (value ("CM7" ion) ("C7" lyd-7 hmp5 alt comd wt) ("Fm7" dor)
                   ("-B7" lyd-7) ("CM7" ion)))
          (pat82 (value ("CM7" ion) ("C7" lyd-7 alt comd wt) ("FM7" lyd) ("+Fdim7" dim)
                   ("CM7" ion)))
          (pat83 (value ("CM7" ion) ("FM7" lyd) ("Fm7" dor) ("-B7" lyd-7) ("CM7" ion)))
          (pat84 (value ("CM7" ion) ("FM7" lyd) ("Em7" phr)
                   ("A7" lyd-7 hmp5 alt comd wt) ("Dm7" dor)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat85 (value ("CM7" ion) ("F7" lyd-7) ("Em7" phr)
                   ("A7" lyd-7 hmp5 alt comd wt) ("Dm7" dor)
                   ("G7" mix lyd-7 alt comd wt)))
          (pat86 (value ("CM7" ion) ("FM7" lyd) ("Em7" phr) ("-E7" lyd-7)
                   ("Dm7" dor) ("G7" mix lyd-7 alt comd wt)))
          (pat87 (value ("CM7" ion) ("F7" lyd-7) ("Em7" phr) ("-E7" lyd-7)
                   ("Dm7" dor) ("G7" mix lyd-7 alt comd wt)))

          (pat88 (value ("CM7" ion) ("Dm7" dor) ("Em7" phr) ("Dm7" dor) ("CM7" ion)))
          (pat89 (value ("CM7" ion) ("FM7" lyd) ("Em7" phr) ("Dm7" dor) ("CM7" ion)))
          (pat90 (value ("CM7" ion) ("Dm7" dor) ("Em7" phr) ("FM7" lyd) ("Em7" phr)
                   ("Dm7" dor) ("CM7" ion)))
          (pat91 (value ("CM7" ion) ("-E7" mix lyd-7 alt comd wt) ("-AM7" lyd)
                   ("-DM7" lyd) ("CM7" ion)))
          (pat92 (value ("CM7" ion) ("GM7" mix) ("FM7" lyd) ("GM7" mix)
                   ("CM7" ion)))))

(defun select-patn-of-CP-CM-at-random ()
  (nth (random 92)
    '(pat1 pat2 pat3 pat4 pat5 pat6 pat7 pat8 pat9 pat10
     pat11 pat12 pat13 pat14 pat15 pat16 pat17 pat18 pat19 pat20
     pat21 pat22 pat23 pat24 pat25 pat26 pat27 pat28 pat29 pat30
     pat31 pat32 pat33 pat34 pat35 pat36 pat37 pat38 pat39 pat40
     pat41 pat42 pat43 pat44 pat45 pat46 pat47 pat48 pat49 pat50
     pat51 pat52 pat53 pat54 pat55 pat56 pat57 pat58 pat59 pat60
     pat61 pat62 pat63 pat64 pat65 pat66 pat67 pat68 pat69 pat70
     pat71 pat72 pat73 pat74 pat75 pat76 pat77 pat78 pat79 pat80
     pat81 pat82 pat83 pat84 pat85 pat86 pat87 pat88 pat89 pat90
     pat91 pat92)))

(defun get-CP-CM-at-random ()
  (fget-i 'CP-of-CM (select-patn-of-CP-CM-at-random)))

(defun get-CPM-with-key-at-random (key)
  (modulate-key1-to-key2 (get-CP-CM-at-random) 'C key))

(defun get-CPM-at-random ()
  (get-CPM-with-key-at-random (select-key-at-random)))

;;;
;;;
;;;
(defun my-randomize ()
  (tagbody
    loop
    (format t "~% Enter an integer! ~%")
    (setf *seed* (read))
    (if (numberp *seed*)
      (go exit)
     (go loop))
    exit
    (setf *seed* (floor (abs *seed*) 1.0))
    (do ((i *seed* (1- i)))
       ((<= i 0))
     (random 10))))