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

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

(defun select-patn-of-CP-Cm-at-random ()
  (nth (random 78)
    '(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)))

(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)))