;;;
;;; c:\\program files\\acl62\\music37.cl
;;;
(load "c:\\program files\\acl62\\music36.cl")
(load "c:\\program files\\acl62\\work1.cl")
(make-frame-from-list
'(M7 (CM7 (value "E7" "+F7" "-G7" "A7"
"B7"))))
(make-frame-from-list
'(m7 (Cm7 (value "+D7" "-E7" "E7" "+A7"
"-B7"))))
(make-frame-from-list
'(m7-5 (Cm7-5 (value "+C7" "-D7" "+D7"
"-E7" "+A7" "-B7"))))
(make-frame-from-list
'(d7 (C7 (value "A7"))))
;;;
;;;
;;;
(defun get-M7-of-CM7 () (fget-i 'M7 'CM7))
(defun get-m7-of-Cm7 () (fget-i 'm7 'Cm7))
(defun get-m7-5-of-Cm7-5 () (fget-i 'm7-5 'Cm7-5))
(defun get-d7-of-C7 () (fget-i 'd7 'C7))
;;;
;;;
;;;
(defun collect-DC-dominant-M7 (chord)
(remove-duplicate (modulate-key1-to-key2 (get-M7-of-CM7) 'C (involve-atom-p
chord))))
(defun collect-DC-dominant-m7 (chord)
(remove-duplicate (modulate-key1-to-key2 (get-m7-of-Cm7) 'C (involve-atom-p
chord))))
(defun collect-DC-dominant-m7-5 (chord)
(remove-duplicate (modulate-key1-to-key2 (get-m7-5-of-Cm7-5) 'C (involve-atom-p
chord))))
(defun collect-DC-dominant-d7 (chord)
(remove-duplicate (modulate-key1-to-key2 (get-d7-of-C7) 'C (involve-atom-p
chord))))
;;;
;;;
;;;
(defun collect-DC-dominant (chord)
(cond ((search-s1-in-s2 "m7-5" chord) (collect-DC-dominant-m7-5
chord))
((search-s1-in-s2 "m7" chord) (collect-DC-dominant-m7
chord))
((search-s1-in-s2 "M7" chord) (collect-DC-dominant-M7
chord))
((search-s1-in-s2 "7" chord) (collect-DC-dominant-d7
chord))))