;;;
;;; c:\\program files\\acl62\\music33.cl
;;;
(load "c:\\program files\\acl62\\music32.cl")
;;;
;;; (get-UST-from-a-pair '("CM7" ion))
;;;
(defun get-UST-from-a-pair-2 (pair)
(list (first pair)
(assoc (second pair)
(get-UST (first pair)))))
;;;
;;; (get-UST-from-pairs-aux
;;; '("Dm7" dor "G7" alt "CM7" ion))
;;;
(defun get-UST-from-pairs-aux (pairs)
(do ((lst pairs (cddr lst))
(w))
((null lst) (reverse w))
(push (get-UST-from-a-pair-2
(list (first lst)
(second lst)))
w)))
(defun get-UST-from-pairs-aux-2 (pairs)
(do ((lst pairs (cddr lst))
(w))
((null lst) (reverse w))
(push (list (first lst)
(get-UST (first lst))) w)))
;;;
;;; (get-UST-from-pairs '(("CM7" ion "A7" hmp5)
;;; ("Dm7" dor "G7" alt)
;;; ("CM7" ion)))
;;;
(defun get-UST-from-pairs (pairs)
(do ((lst pairs (cdr lst)))
((null lst))
(print '****************)
(print (car lst))
(print (get-UST-from-pairs-aux
(car lst)))))
(defun get-UST-from-pairs-2 (pairs)
(do ((lst pairs (cdr lst)))
((null lst))
(print '****************)
(print (car lst))
(print (get-UST-from-pairs-aux-2
(car lst)))))
;;;
;;; (indicate-UST *w1*)
;;;
(defun indicate-UST (wn)
(tagbody
(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))
(get-UST-from-pairs l2)))
(defun indicate-UST-2 (wn)
(tagbody
(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))
(get-UST-from-pairs-2 l2)))
|