;;;
;;; c:\\program files\\acl62\\music54.cl
;;;
(load "c:\\program files\\acl62\\music27.cl")
(load "c:\\program files\\acl62\\music52.cl")
(make-frame-from-list
'(Left-Hand-Voicing (v-C (value (mi so la re) (mi so si re) (la re mi
so) (si re mi so)
(mi la re) (mi si re) (la mi so) (la re so) (re
mi so)
(do si) (si do) (re mi)))
(v-Cm7 (value (+re so la re) (la re +re so) (+re so +la
re) (+la re +re so)
(+re la re) (la re so) (re +re so) (+re +la re)
(+la +re so) (re +re so)
(re +re) (do +la)))
(v-Cm7-5 (value (+re +fa +la re) (+la re +re +fa)
(+re +la re) (+la +re +fa)
(do +la) (fa +fa)))
(v-C7 (value (+la re mi la) (+la +do mi la) (+la +do mi
+so) (mi la +la re) (mi la +la +do)
(+la mi la) (+la mi +so) (mi +la re) (mi +la +re)
(mi +la) (+la mi) (do +la)))
(v-Cdim7 (value (+re +fa la re) (la re +re +fa)
(+re la re) (la +re +so)
(do la)))))
;;;
;;;(get-lhv-aux "FM7")
;;;((la do re so) (la do mi so) (re so la do) (mi so la do) (la re so) (la mi so) (re la do) (re so do)
;;; (so la do) (fa mi) ...)
;;;
(defun get-lhv-aux (chord-name)
(let ((char (intern (involve-char-p chord-name)))
(type (intern (get-chord-type2 chord-name))))
(case char
(C (case type
(M7 (fget 'Left-Hand-Voicing 'v-C 'value))
(m7 (fget 'Left-Hand-Voicing 'v-Cm7 'value))
(m7-5 (fget 'Left-Hand-Voicing 'v-Cm7-5 'value))
(|7| (fget 'Left-Hand-Voicing 'v-C7 'value))
(dim7 (fget 'Left-Hand-Voicing 'v-Cdim7 'value))))
(+C (case type
(M7 (mapcar #'m2-up (fget 'Left-Hand-Voicing 'v-C 'value)))
(m7 (mapcar #'m2-up (fget 'Left-Hand-Voicing 'v-Cm7 'value)))
(m7-5 (mapcar #'m2-up (fget 'Left-Hand-Voicing 'v-Cm7-5 'value)))
(|7| (mapcar #'m2-up (fget 'Left-Hand-Voicing 'v-C7 'value)))
(dim7 (mapcar #'m2-up (fget 'Left-Hand-Voicing 'v-Cdim7 'value)))))
(-D (case type
(M7 (mapcar #'m2-up (fget 'Left-Hand-Voicing 'v-C 'value)))
(m7 (mapcar #'m2-up (fget 'Left-Hand-Voicing 'v-Cm7 'value)))
(m7-5 (mapcar #'m2-up (fget 'Left-Hand-Voicing 'v-Cm7-5 'value)))
(|7| (mapcar #'m2-up (fget 'Left-Hand-Voicing 'v-C7 'value)))
(dim7 (mapcar #'m2-up (fget 'Left-Hand-Voicing 'v-Cdim7 'value)))))
(D (case type
(M7 (mapcar #'M2-up (fget 'Left-Hand-Voicing 'v-C 'value)))
(m7 (mapcar #'M2-up (fget 'Left-Hand-Voicing 'v-Cm7 'value)))
(m7-5 (mapcar #'M2-up (fget 'Left-Hand-Voicing 'v-Cm7-5 'value)))
(|7| (mapcar #'M2-up (fget 'Left-Hand-Voicing 'v-C7 'value)))
(dim7 (mapcar #'M2-up (fget 'Left-Hand-Voicing 'v-Cdim7 'value)))))
(+D (case type
(M7 (mapcar #'m3-up (fget 'Left-Hand-Voicing 'v-C 'value)))
(m7 (mapcar #'m3-up (fget 'Left-Hand-Voicing 'v-Cm7 'value)))
(m7-5 (mapcar #'m3-up (fget 'Left-Hand-Voicing 'v-Cm7-5 'value)))
(|7| (mapcar #'m3-up (fget 'Left-Hand-Voicing 'v-C7 'value)))
(dim7 (mapcar #'m3-up (fget 'Left-Hand-Voicing 'v-Cdim7 'value)))))
(-E (case type
(M7 (mapcar #'m3-up (fget 'Left-Hand-Voicing 'v-C 'value)))
(m7 (mapcar #'m3-up (fget 'Left-Hand-Voicing 'v-Cm7 'value)))
(m7-5 (mapcar #'m3-up (fget 'Left-Hand-Voicing 'v-Cm7-5 'value)))
(|7| (mapcar #'m3-up (fget 'Left-Hand-Voicing 'v-C7 'value)))
(dim7 (mapcar #'m3-up (fget 'Left-Hand-Voicing 'v-Cdim7 'value)))))
(E (case type
(M7 (mapcar #'M3-up (fget 'Left-Hand-Voicing 'v-C 'value)))
(m7 (mapcar #'M3-up (fget 'Left-Hand-Voicing 'v-Cm7 'value)))
(m7-5 (mapcar #'M3-up (fget 'Left-Hand-Voicing 'v-Cm7-5 'value)))
(|7| (mapcar #'M3-up (fget 'Left-Hand-Voicing 'v-C7 'value)))
(dim7 (mapcar #'M3-up (fget 'Left-Hand-Voicing 'v-Cdim7 'value)))))
(F (case type
(M7 (mapcar #'P4-up (fget 'Left-Hand-Voicing 'v-C 'value)))
(m7 (mapcar #'P4-up (fget 'Left-Hand-Voicing 'v-Cm7 'value)))
(m7-5 (mapcar #'P4-up (fget 'Left-Hand-Voicing 'v-Cm7-5 'value)))
(|7| (mapcar #'P4-up (fget 'Left-Hand-Voicing 'v-C7 'value)))
(dim7 (mapcar #'P4-up (fget 'Left-Hand-Voicing 'v-Cdim7 'value)))))
(+F (case type
(M7 (mapcar #'+4-5-up (fget 'Left-Hand-Voicing 'v-C 'value)))
(m7 (mapcar #'+4-5-up (fget 'Left-Hand-Voicing 'v-Cm7 'value)))
(m7-5 (mapcar #'+4-5-up (fget 'Left-Hand-Voicing 'v-Cm7-5
'value)))
(|7| (mapcar #'+4-5-up (fget 'Left-Hand-Voicing 'v-C7 'value)))
(dim7 (mapcar #'+4-5-up (fget 'Left-Hand-Voicing 'v-Cdim7
'value)))))
(-G (case type
(M7 (mapcar #'+4-5-up (fget 'Left-Hand-Voicing 'v-C 'value)))
(m7 (mapcar #'+4-5-up (fget 'Left-Hand-Voicing 'v-Cm7 'value)))
(m7-5 (mapcar #'+4-5-up (fget 'Left-Hand-Voicing 'v-Cm7-5
'value)))
(|7| (mapcar #'+4-5-up (fget 'Left-Hand-Voicing 'v-C7 'value)))
(dim7 (mapcar #'+4-5-up (fget 'Left-Hand-Voicing 'v-Cdim7
'value)))))
(G (case type
(M7 (mapcar #'P5-up (fget 'Left-Hand-Voicing 'v-C 'value)))
(m7 (mapcar #'P5-up (fget 'Left-Hand-Voicing 'v-Cm7 'value)))
(m7-5 (mapcar #'P5-up (fget 'Left-Hand-Voicing 'v-Cm7-5 'value)))
(|7| (mapcar #'P5-up (fget 'Left-Hand-Voicing 'v-C7 'value)))
(dim7 (mapcar #'P5-up (fget 'Left-Hand-Voicing 'v-Cdim7 'value)))))
(+G (case type
(M7 (mapcar #'m6-up (fget 'Left-Hand-Voicing 'v-C 'value)))
(m7 (mapcar #'m6-up (fget 'Left-Hand-Voicing 'v-Cm7 'value)))
(m7-5 (mapcar #'m6-up (fget 'Left-Hand-Voicing 'v-Cm7-5 'value)))
(|7| (mapcar #'m6-up (fget 'Left-Hand-Voicing 'v-C7 'value)))
(dim7 (mapcar #'m6-up (fget 'Left-Hand-Voicing 'v-Cdim7 'value)))))
(-A (case type
(M7 (mapcar #'m6-up (fget 'Left-Hand-Voicing 'v-C 'value)))
(m7 (mapcar #'m6-up (fget 'Left-Hand-Voicing 'v-Cm7 'value)))
(m7-5 (mapcar #'m6-up (fget 'Left-Hand-Voicing 'v-Cm7-5 'value)))
(|7| (mapcar #'m6-up (fget 'Left-Hand-Voicing 'v-C7 'value)))
(dim7 (mapcar #'m6-up (fget 'Left-Hand-Voicing 'v-Cdim7 'value)))))
(A (case type
(M7 (mapcar #'M6-up (fget 'Left-Hand-Voicing 'v-C 'value)))
(m7 (mapcar #'M6-up (fget 'Left-Hand-Voicing 'v-Cm7 'value)))
(m7-5 (mapcar #'M6-up (fget 'Left-Hand-Voicing 'v-Cm7-5 'value)))
(|7| (mapcar #'M6-up (fget 'Left-Hand-Voicing 'v-C7 'value)))
(dim7 (mapcar #'M6-up (fget 'Left-Hand-Voicing 'v-Cdim7 'value)))))
(+A (case type
(M7 (mapcar #'m7-up (fget 'Left-Hand-Voicing 'v-C 'value)))
(m7 (mapcar #'m7-up (fget 'Left-Hand-Voicing 'v-Cm7 'value)))
(m7-5 (mapcar #'m7-up (fget 'Left-Hand-Voicing 'v-Cm7-5 'value)))
(|7| (mapcar #'m7-up (fget 'Left-Hand-Voicing 'v-C7 'value)))
(dim7 (mapcar #'m7-up (fget 'Left-Hand-Voicing 'v-Cdim7 'value)))))
(-B (case type
(M7 (mapcar #'m7-up (fget 'Left-Hand-Voicing 'v-C 'value)))
(m7 (mapcar #'m7-up (fget 'Left-Hand-Voicing 'v-Cm7 'value)))
(m7-5 (mapcar #'m7-up (fget 'Left-Hand-Voicing 'v-Cm7-5 'value)))
(|7| (mapcar #'m7-up (fget 'Left-Hand-Voicing 'v-C7 'value)))
(dim7 (mapcar #'m7-up (fget 'Left-Hand-Voicing 'v-Cdim7 'value)))))
(B (case type
(M7 (mapcar #'M7-up (fget 'Left-Hand-Voicing 'v-C 'value)))
(m7 (mapcar #'M7-up (fget 'Left-Hand-Voicing 'v-Cm7 'value)))
(m7-5 (mapcar #'M7-up (fget 'Left-Hand-Voicing 'v-Cm7-5 'value)))
(|7| (mapcar #'M7-up (fget 'Left-Hand-Voicing 'v-C7 'value)))
(dim7 (mapcar #'M7-up (fget 'Left-Hand-Voicing 'v-Cdim7 'value))))))))
(defun get-lhv (cn)
(list cn (get-lhv-aux cn)))
;;;
;;;(show-lhv "G7")
;;;
;;;(G7
;;; ((fa la si mi) (fa +so si mi) (fa +so si +re) (si mi fa la) (si mi fa +so) (fa si mi) (fa si +re)
;;; (si fa la) (si fa +la) (si fa) (fa si) (so fa)))
;;;
(defun show-lhv (cn)
(format t "~%~a" (list cn (get-lhv-aux cn))))
;;;
;;;(get-a-lhv-at-random "-EM7")
;;;
;;; Enter an integer!
;;;900
;;;
;;;("-EM7" **lhv (so do fa) **chord (-mi so -si re) **tension (fa do la))
;;;
(defun get-a-lhv-at-random (cn)
(my-randomize)
(let ((lst (get-lhv-aux cn))
(chord-tone (get-chord-tone cn))
(tensions (get-all-tension-notes cn)))
(list cn '**lhv (nth (random (length lst)) lst) '**chord chord-tone
'**tension tensions)))
;;;
;;;(get-a-lhv-at-random-from-pair '("CM7" ion))--->(re mi so)
;;;
(defun get-a-lhv-at-random-from-pair (pair)
(let ((lhvs (get-lhv-aux (car pair))))
(nth (random (length lhvs)) lhvs)))