;;;
;;; c:\\program files\\acl62\\music57.cl
;;;
(load "c:\\program files\\acl62\\music56.cl")
(load "c:\\program files\\acl62\\music26.cl")
(defun get-note-for-degree-of-C (char)
(case char
(1 'do) (3 'mi) (5 'so) (7 'si) (9 're) (11 'fa) (13 'la) (6 'la)
(p9 '+re) (-9 '-re) (p11 '+fa) (-13 '-la) (-5 '-so) (p5 '+so) (-7 '-si)))
;;;
;;;(get-notes-for-degree-of-C-list '(-9 9 p9 11 p11 -13 13))
;;;(-re re +re fa +fa -la la)
;;;
(defun get-notes-for-degree-of-C-list (lst)
(mapcar #'get-note-for-degree-of-C lst))
;;;
;;;(get-notes-for-degree 'C '(-9 9 p9 11 p11 -13 13))
;;;(C (+do re +re fa +fa +so la))
;;;
(defun get-notes-for-degree (base lst)
(let ((lst2 (translate-flat-to-sharp-in-a-list
(get-notes-for-degree-of-C-list lst))))
(case base
(C (list 'C lst2))
(+C (list '+C (m2-up lst2)))
(-D (list '-D (m2-up lst2)))
(D (list 'D (M2-up lst2)))
(+D (list '+D (m3-up lst2)))
(-E (list '-E (m3-up lst2)))
(E (list 'E (M3-up lst2)))
(F (list 'F (P4-up lst2)))
(+F (list '+F (+4-5-up lst2)))
(-G (list '-G (+4-5-up lst2)))
(G (list 'G (P5-up lst2)))
(+G (list '+G (m6-up lst2)))
(-A (list '-A (m6-up lst2)))
(A (list 'A (M6-up lst2)))
(+A (list '+A (m7-up lst2)))
(-B (list '-B (m7-up lst2)))
(B (list 'B (M7-up lst2))))))
(defun get-degree-of-note-in-C (note)
(case note
(do 1) (mi 3) (so 5) (si 7) (-si -7) (+la -7)
(re 9) (+do -9) (-re -9) (+re 'p9) (-mi 'p9)
(fa 11) (+fa 'p11) (-so 'p11) (la 13) (-la -13)
(+so -13) (-so -5) (+fa -5) (-la 'p5) (+so 'p5)))
;;;
;;;(get-degree-of-notes-in-C-list '(-re re +re fa +fa -la la))
;;;(-9 9 p9 11 p11 -13 13)
;;;
(defun get-degree-of-notes-in-C-list (lst)
(mapcar #'get-degree-of-note-in-C lst))
;;;
;;;(get-degree-for-notes 'C '(-re re +re fa +fa -la la))
;;;(C (-9 9 p9 11 p11 -13 13))
;;;
(defun get-degree-for-notes (base lst)
(let ((lst2 (get-degree-of-notes-in-C-list lst)))
(case base
(C (list 'C lst2))
(+C (list '+C (get-degree-of-notes-in-C-list
(m2-down (translate-flat-to-sharp-in-a-list lst)))))
(-D (list '-D (get-degree-of-notes-in-C-list
(m2-down (translate-flat-to-sharp-in-a-list lst)))))
(D (list 'D (get-degree-of-notes-in-C-list
(M2-down (translate-flat-to-sharp-in-a-list lst)))))
(+D (list '+D (get-degree-of-notes-in-C-list
(m3-down (translate-flat-to-sharp-in-a-list lst)))))
(-E (list '-E (get-degree-of-notes-in-C-list
(m3-down (translate-flat-to-sharp-in-a-list lst)))))
(E (list 'E (get-degree-of-notes-in-C-list
(M3-down (translate-flat-to-sharp-in-a-list lst)))))
(F (list 'F (get-degree-of-notes-in-C-list
(P4-down (translate-flat-to-sharp-in-a-list lst)))))
(+F (list '+F (get-degree-of-notes-in-C-list
(+4-5-down (translate-flat-to-sharp-in-a-list lst)))))
(-G (list '-G (get-degree-of-notes-in-C-list
(+4-5-down (translate-flat-to-sharp-in-a-list lst)))))
(G (list 'G (get-degree-of-notes-in-C-list
(P5-down (translate-flat-to-sharp-in-a-list lst)))))
(+G (list '+G (get-degree-of-notes-in-C-list
(m6-down (translate-flat-to-sharp-in-a-list lst)))))
(-A (list '-A (get-degree-of-notes-in-C-list
(m6-down (translate-flat-to-sharp-in-a-list lst)))))
(A (list 'A (get-degree-of-notes-in-C-list
(M6-down (translate-flat-to-sharp-in-a-list lst)))))
(+A (list '+A (get-degree-of-notes-in-C-list
(m7-down (translate-flat-to-sharp-in-a-list lst)))))
(-B (list '-B (get-degree-of-notes-in-C-list
(m7-down (translate-flat-to-sharp-in-a-list lst)))))
(B (list 'B (get-degree-of-notes-in-C-list
M7-down (translate-flat-to-sharp-in-a-list lst))))))))
|