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


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

(defun get-UST-3 (pair)
  (cdadr (assoc (second pair) 
                  (get-UST (first pair)))))

(defun translate-doremi-in-a-chord-2 (pair)
  (mapcar #'(lambda (x) (translate-doremi x)) 
       (get-chord-tone (car pair))))

(defun note-in-a-chord?-2 (note pair)
  (member note 
           (translate-doremi-in-a-chord-2 pair)))

;;;
;;; (note-in-a-UST?-2 're '("CM7" ion))
;;;           ---> ("G" "D" "Bm")
;;;
(defun note-in-a-UST?-2 (note pair)
  (let ((lst (get-UST-3 pair)))
   (do ((l lst (cdr l))
      (w))
     ((null l) (reverse w))
    (cond ((note-in-a-chord? note (car l))
        (push (car l) w))))))

(defun get-tension-note-3 (pair)
  (mapcar #'(lambda (x) (translate-doremi x))
                 (tension-note pair)))

;;;
;;; (tensions-in-USTs? '("CM7" ion)) ---> 
;;;     ((re "G") (re "D") (re "Bm") 
;;;      (la "Am") (la "D"))
;;;
(defun tensions-in-USTs? (pair)
  (let ((lst (get-tension-note-3 pair)))
    (do ((l lst (cdr l))
       (w))
       ((null l) (reverse w))
      (let ((ll (note-in-a-UST?-2 
                            (car l) pair)))
        (do ((lll ll (cdr lll)))
           ((null lll))
          (push (list (car l) (car lll)) 
                          w))))))