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