;;;
;;; c:\\program files\\acl62\\music1.cl
;;;
(load "c:\\program files\\acl62\\utility.cl")

(make-frame-from-list
  '(key (type (value major-key minor-key))))

(make-frame-from-list
  '(function (major-key (value tonic subdominant subdominant-minor dominant))
         (minor-key (value tonic-minor subdominant subdominant-minor dominant
                     dominant-minor))))

(make-frame-from-list
  '(major-key (tonic
           (value ("I" ion) ("I6" ion) ("IM7" ion)
                ("IIIm7" phr)
                ("VIm7" aeo)
                ("+IVm7-5" loc)))
          (subdominant
            (value ("IV" lyd) ("IV6" lyd) ("IVM7" lyd)
                 ("IIm7" dor)
                 ("IV7" lyd-7 bn)
                 ("-VIIM7" lyd)
                 ("VII7" alt)
                 ("+IVm7-5" loc)))
          (subdominant-minor
            (value ("IVm7" dor)
                 ("IIm7-5" loc+2)
                 ("-VI6" lyd)
                 ("-VIM7" lyd)
                 ("-VII7" lyd-7)
                 ("-IIM7" lyd)
                 ("-VI7" lyd-7)))
          (dominant
            (value ("V7" mix lyd-7 hmp5 alt comd wt)
                 ("VIIm7-5" loc)
                 ("-II7" lyd-7)
                 ("VIIdim7" dim)))))

(make-frame-from-list
  '(minor-key (tonic-minor
            (value ("Im" all)
                 ("Im6" m)
                 ("Im7" dor)
                 ("ImM7" h m)
                 ("-IIIM7" lyd ion)
                 ("-III+M7" lyd)
                 ("-VIM7" lyd)
                 ("VIm7-5" loc)))
          (subdominant
            (value ("IV" lyd)
                 ("IV6" lyd7)
                 ("IV7" lyd-7)
                 ("IIm7" dor-2)
                 ("VII7" alt)
                 ("IVM7" lyd)))
          (subdominant-minor
            (value ("IVm" dor)
                 ("IVm6" dor)
                 ("IVm7" dor)
                 ("IIm7-5" loc)
                 ("-VI6" lyd)
                 ("-VIM7" lyd)
                 ("-VII7" mix)
                 ("-IIM7" lyd)
                 ("-VI7" lyd-7)
                 ("VImM7" dor)))
          (dominant
            (value ("V7" mix lyd-7 hmp5 alt comd wt)
                 ("VIIdim7" dim)
                 ("VIIm7-5" loc)
                 ("-II7" lyd-7)))
          (dominant-minor
            (value ("Vm" phr) ("Vm7" phr)))))

(make-frame-from-list
  '(scale (ion (value 1.0 2.0 3.0 3.5 4.5 5.5 6.5 7.0))
       (dor (value 1.0 2.0 2.5 3.5 4.5 5.5 6.0 7.0))
       (phr (value 1.0 1.5 2.5 3.5 4.5 5.0 6.0 7.0))
       (lyd (value 1.0 2.0 3.0 4.0 4.5 5.5 6.5 7.0))
       (mix (value 1.0 2.0 3.0 3.5 4.5 5.5 6.0 7.0))
       (aeo (value 1.0 2.0 2.5 3.5 4.5 5.0 6.0 7.0))
       (loc (value 1.0 1.5 2.5 3.5 4.0 5.0 6.0 7.0))
       (n (value 1.0 2.0 2.5 3.5 4.5 5.0 6.0 7.0))
       (h (value 1.0 2.0 2.5 3.5 4.5 5.0 6.5 7.0))
        (m (value 1.0 2.0 2.5 3.5 4.5 5.5 6.5 7.0 7.0 6.0 5.0 4.5 3.5 2.5 2.0 1.0))
       (all (value 1.0 2.0 2.5 3.5 4.5 5.0 5.5 6.0 6.5 7.0))
       (dor-2 (value 1.0 1.5 2.5 3.5 4.5 5.5 6.0 7.0))
       (loc+2 (value 1.0 2.0 2.5 3.5 4.0 5.0 6.0 7.0))
       (lyd-7 (value 1.0 2.0 3.0 4.0 4.5 5.5 6.0 7.0))
       (mmp5 (value 1.0 2.0 3.0 3.5 4.5 5.0 6.0 7.0))
       (hmp5 (value 1.0 1.5 2.5 3.0 3.5 4.5 5.0 6.0 7.0))
       (alt (value 1.0 1.5 2.5 3.0 4.0 5.0 6.0 7.0))
       (comd (value 1.0 1.5 2.5 3.0 4.0 4.5 5.5 6.0 7.0))
       (dim (value 1.0 2.0 2.5 3.5 4.0 5.0 5.5 6.5 7.0))
       (wt (value 1.0 2.0 3.0 4.0 5.0 6.0 7.0))
       (pt (value 1.0 2.0 3.0 4.5 5.5 7.0))
       (bpt (value 1.0 2.5 3.5 4.0 4.5 6.0 7.0))
       (bn (value 1.0 2.0 2.5 3.5 4.0 4.5 5.5 6.0 7.0))
       (mixsus4 (value 1.0 2.0 3.0 3.5 4.5 5.5 6.0 7.0))
       (mix-6 (value 1.0 2.0 3.0 3.5 4.5 5.0 6.0 7.0))
       (spanish (value 1.0 1.5 2.5 3.0 3.5 4.5 5.0 6.0 7.0))
       (gypsy (value 1.0 2.0 2.5 4.0 4.5 5.0 6.5 7.0))
       (hms (value 1.0 2.0 3.0 3.5 4.5 5.0 6.5 7.0))
       (ryukyu (value 1.0 3.0 3.5 4.5 6.5 7.0))
       (tyuto (value 1.0 2.0 2.5 3.5 4.0 5.0 5.5 6.5 7.0))
       (in (value 1.0 1.5 3.5 4.5 6.0 7.0 5.0 4.5 3.5 1.5 1.0))
       (yo (value 1.0 2.0 3.5 4.5 6.0 7.0 5.5 4.5 3.5 2.0 1.0))
       (ro (value 1.0 2.0 3.0 4.5 5.5 7.0))
       (ritu (value 1.0 2.0 3.5 4.5 5.5 7.0))))

(make-frame-from-list
  '(code (Mt (value 1.0 3.0 4.5))
       (mt (value 1.0 2.5 4.5))
       (sus4 (value 1.0 3.5 4.5))
       (aug (value 1.0 3.0 5.0))
       (dim (value 1.0 2.5 4.0))
       (M-5 (value 1.0 3.0 4.0))
       (d7 (value 1.0 3.0 4.5 6.0))
       (m7 (value 1.0 2.5 4.5 6.0))
       (M7 (value 1.0 3.0 4.5 6.5))
       (mM7 (value 1.0 2.5 4.5 6.5))
       (dim7 (value 1.0 2.5 4.0 5.5))
       (dimM7 (value 1.0 2.5 4.0 6.5))
       (m7-5 (value 1.0 2.5 4.0 6.0))
       (aug7 (value 1.0 3.0 5.0 6.0))
       (augM7 (value 1.0 3.0 5.0 6.5))
       (M6 (value 1.0 3.0 4.5 5.5))
       (m6 (value 1.0 2.5 4.5 5.5))
       (d7sus4 (value 1.0 3.5 4.5 6.0))
       (Madd9 (value 1.0 2.0 3.0 4.5))
       (madd9 (value 1.0 2.0 2.5 4.5))
       (M69 (value 1.0 2.0 3.0 4.5 5.5))
       (m69 (value 1.0 2.0 2.5 4.5 5.5))
       (d7-5 (value 1.0 3.0 4.0 6.0))
       (M+11 (value 1.0 3.0 4.0 4.5))
       (m11 (value 1.0 2.5 3.5 4.5))
       (d7-9 (value 1.0 1.5 3.0 4.5 6.0))
       (d79 (value 1.0 2.0 3.0 4.5 6.0))
       (d7+9 (value 1.0 2.5 3.0 4.5 6.0))
       (d7+11 (value 1.0 3.0 4.0 4.5 6.0))
       (d713 (value 1.0 3.0 4.5 5.5 6.0))
       (d7-9+11 (value 1.0 1.5 3.0 4.0 4.5 6.0))
       (d79+11 (value 1.0 2.0 3.0 4.0 4.5 6.0))
       (d7+9+11 (value 1.0 2.5 3.0 4.0 4.5 6.0))
       (d7+1113 (value 1.0 3.0 4.0 4.5 5.5 6.0))
       (m79 (value 1.0 2.0 2.5 4.5 6.0))
       (m711 (value 1.0 2.5 3.5 4.5 6.0))
       (m713 (value 1.0 2.5 4.5 5.5 6.0))
       (M79 (value 1.0 2.0 3.0 4.5 6.5))
       (M7+11 (value 1.0 3.0 4.0 4.5 6.5))
       (M713 (value 1.0 3.0 4.5 5.5 6.5))
       (mM79 (value 1.0 2.0 2.5 4.5 6.5))
       (mM711 (value 1.0 2.5 3.5 4.5 6.5))
       (mM713 (value 1.0 2.5 4.5 5.5 6.5))))

(make-frame-from-list
  '(guide-tone
      (Mt (value 3.0 6.5))
      (mt (value 2.5 6.0))
      (sus4 (value 3.5 6.0))
      (aug (value 3.0 6.5))
      (dim (value 2.5 5.5))
      (M-5 (value 3.0 6.5))
      (d7 (value 3.0 6.0))
      (m7 (value 2.5 6.0))
      (M7 (value 3.0 6.5))
      (mM7 (value 2.5 6.5))
      (dim7 (value 2.5 5.5))
      (dimM7 (value 2.5 6.5))
      (m7-5 (value 2.5 6.0))
      (aug7 (value 3.0 6.0))
      (augM7 (value 3.0 6.5))
      (M6 (value 3.0 6.5))
      (m6 (value 2.5 6.0))
      (d7sus4 (value 3.5 6.0))
      (Madd9 (value 3.0 6.5))
      (madd9 (value 2.5 6.0))
      (M69 (value 3.0 6.5))
      (m69 (value 2.5 6.0))
      (d7-5 (value 3.0 6.0))
      (M+11 (value 3.0 6.5))
      (m11 (value 2.5 6.0))
      (d7-9 (value 3.0 6.0))
      (d79 (value 3.0 6.0))
      (d7+9 (value 3.0 6.0))
      (d7+11 (value 3.0 6.0))
      (d713 (value 3.0 6.0))
      (d7-9+11 (value 3.0 6.0))
      (d79+11 (value 3.0 6.0))
      (d7+9+11 (value 3.0 6.0))
      (d7+1113 (value 3.0 6.0))
      (m79 (value 2.5 6.0))
      (m711 (value 2.5 6.0))
      (m713 (value 2.5 6.0))
      (M79 (value 3.0 6.5))
      (M7+11 (value 3.0 6.5))
      (M713 (value 3.0 6.5))
      (mM79 (value 2.5 6.5))
      (mM711 (value 2.5 6.5))
      (mM713 (value 2.5 6.5))))

(make-frame-from-list
  '(tension-note (ion (value 2.0 5.5))
            (dor (value 2.0 3.5))
            (phr (value 3.5 5.0))
            (lyd (value 2.0 4.0 5.5))
            (mix (value 2.0 5.5))
            (aeo (value 2.0 3.5))
            (loc (value 3.5 5.0))
            (n (value 2.0 3.5))
            (h (value 2.0 3.5))
            (m (value 2.0 3.5 5.5 3.5 2.0))
            (all (value 2.0 3.5))
            (dor-2 (value 3.5 5.5))
            (loc+2 (value 2.0 3.5 5.0))
            (lyd-7 (value 2.0 4.0 5.5))
            (mmp5 (value 2.0 5.0))
            (hmp5 (value 1.5 2.5 5.0))
            (alt (value 1.5 2.5 4.0 5.0))
            (dim (value 2.0 3.5 5.0 6.5))
            (comd (value 1.5 2.5 4.0 5.5))
            (wt (value 2.0 4.0))
            (mixsus4 (value 2.0 5.5))
            (mix-6 (value 2.0 5.0))
            (spanish (value 1.5 2.5 3.5 5.0))
            (gypsy (value 2.0 4.0 5.0))
            (hms (value 2.0 3.5 5.0))
            (ryukyu (value 3.5))
            (tyuto (value 2.0 3.5 5.0 5.5))
            (in (value 1.5 4.5))
            (yo (value 2.0 4.5))
            (ro (value 2.0 5.5))
            (ritu (value 2.0 5.5))
            (pt (value 2.0 5.5))
            (bpt (value 3.5 4.0))
            (bn (value 2.0 3.5 4.0 5.5))))
;;;
;;;
;;;
(make-frame-from-list
  '(UST-CM7 (ion (value "G" "Am" "Em" "D" "Bm"))
          (lyd (value "G" "Am" "Em" "D" "Bm"))))
;;;
;;;
;;;
(make-frame-from-list
  '(UST-Cm7 (dor (value "Gm" "-B" "-E" "Dm"))
          (phr (value "-E" "-A" "Fm"))
          (aeo (value "-B" "-E" "Gm"))
          (n (value "Gm" "-B"))
          (h (value "G"))
          (all (value "Gm" "G" "-A" "-B" "-E" "Dm"))))
;;;
;;;
;;;
(make-frame-from-list
  '(UST-Cm (dor (value "Gm" "-B" "-E" "Dm"))
         (phr (value "-E" "-A" "Fm"))
         (aeo (value "-B" "-E" "Gm"))
         (n (value "Gm" "-B"))
         (h (value "G"))
         (all (value "Gm" "G" "-A" "-B" "-E" "Dm"))))
;;;
;;;
;;;
(make-frame-from-list
  '(UST-C7 (mix (value "Gm" "Am"))
         (lyd-7 (value "D" "Gm" "Am"))
         (alt (value "-Dm" "-Em" "-G" "-A"))
         (hmp5 (value "-Dm" "-E" "-A"))
         (comd (value "-Em" "-E" "-Gm" "-G" "Am" "A"))
         (all (value "-E" "D" "-G" "-A" "A" "-Bm" "-Dm"
                "-B" "Am" "-Gm" "Gm" "-Em"))))
;;;
;;;
;;;
(make-frame-from-list
  '(UST-Cdim7 (dim (value "Dm" "D" "Fm" "F" "-Am" "-A" "Bm" "B"))))
;;;
;;;
;;;
(make-frame-from-list
  '(UST-C7sus4 (mixsus4 (value "Dm" "F" "Gm" "-B"))))
;;;
;;;
;;;
(make-frame-from-list
  '(UST-Cm7-5 (loc (value "-A" "-B" "-Em" "Fm" "-A" "-G" "-Bm"))
            (loc+2 (value "Fm" "-A" "-B"))))
;;;
;;;
;;;
(make-frame-from-list
  '(UST-CmM7 (m (value "Dm" "F" "G"))))
;;;
;;;
;;;
(make-frame-from-list
  '(UST-Cm6 (m (value "Dm" "F" "G"))))
;;;
;;;
;;;
(make-frame-from-list
  '(C (ion (value (tonic (C))))
     (lyd (value (subdominant (g D G))))))
;;;
;;;
;;;
(make-frame-from-list
  '(Am (all (value (tonic-minor (a))))
      (aeo (value (tonc (C))))
      (phr (value (dominant-minor (d)) (tonic (F))))
      (dor (value (subdominant-minor (E e))))
      (dor-2 (value (subdominant (g))))))
;;;
;;;
;;;
(make-frame-from-list
  '(CM7 (ion (value (tonic (C))))
      (lyd (value (tonic-minor (a e)) (subdominant (g D G)) (subdominant-minor (B E b e))))))
;;;
;;;
;;;
(make-frame-from-list
  '(Am7 (aeo (value (tonic (C))))
      (phr (value (tonic (F)) (dominant-minor (d))))
      (dor (value (tonic-minor (a)) (subdominant (G)) (subdominant-minor (E e))))
      (dor-2 (value (subdominant (g))))))
;;;
;;;
;;;
(make-frame-from-list
  '(C7 (all (value (tonic (C)) (dominant (f F))))
     (lyd-7 (value (dominant (B b)) (subdominant (G g)) (subdominant-minor (D E e))))
     (alt (value (subdominant (-D +c))))
     (comd (value (subdominant (-D +c))))
     (hmp5 (value (dominant (f))))
     (mix (value (subdominant-minor (d))))))
;;;
;;;
;;;
(make-frame-from-list
  '(C6 (ion (value (tonic (C))))
     (lyd (value (subdominant (G g)) (subdominant-minor (E e))))))
;;;
;;;
;;;
(make-frame-from-list
  '(Am6 (m (value (tonic-minor (a))))
      (dor (value (subdominant-minor (E e))))))
;;;
;;;
;;;
(make-frame-from-list
  '(Am7-5 (loc (value (tonic (-E)) (tonic-minor (c)) (subdominant (-E)) (subdominant-minor (g))
                (dominant (-B -b))))
        (loc+2 (value (subdominant-minor (G))))))
;;;
;;;
;;;
(make-frame-from-list
  '(AmM7 (h (value (tonic-minor (a))))
        (m (value (tonic-minor (a))))
        (dor (value (subdominant-minor (c))))))
;;;
;;;
;;;
(make-frame-from-list
  '(A+M7 (lyd (value (tonic-minor (+f))))))