Mercurial > hg > amuse
changeset 83:ae06767e84c5
base/: pitch
darcs-hash:20070717153457-c0ce4-cd5350c65ee8414bda17d40eb0e149063f2c22d7.gz
author | Marcus Pearce <m.pearce@gold.ac.uk> |
---|---|
date | Tue, 17 Jul 2007 16:34:57 +0100 |
parents | 92e6625473e2 |
children | 7ce34ccdcbda |
files | base/methods.lisp |
diffstat | 1 files changed, 19 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/base/methods.lisp Tue Jul 17 13:02:44 2007 +0100 +++ b/base/methods.lisp Tue Jul 17 16:34:57 2007 +0100 @@ -2,6 +2,17 @@ ;;; diatonic pitch +(defmethod pitch= ((p1 diatonic-pitch) (p2 diatonic-pitch)) + (let ((n1 (%diatonic-pitch-name p1)) + (a1 (%diatonic-pitch-accidental p1)) + (o1 (%diatonic-pitch-accidental p1)) + (n2 (%diatonic-pitch-name p2)) + (a2 (%diatonic-pitch-accidental p2)) + (o2 (%diatonic-pitch-accidental p2))) + (and n1 n2 (= n1 n2) + a1 a2 (= a1 a2) + o1 o2 (= o1 o2)))) + (defmethod middle-c ((dp diatonic-pitch)) (make-diatonic-pitch 2 0 4)) @@ -36,6 +47,14 @@ ;;; MIPS pitch +(defmethod pitch= ((p1 mips-pitch) (p2 mips-pitch)) + (let ((c1 (meredith-chromatic-pitch-number p1)) + (m1 (meredith-morphetic-pitch-number p1)) + (c2 (meredith-chromatic-pitch-number p2)) + (m2 (meredith-morphetic-pitch-number p2))) + (and c1 c2 (= c1 c2) + m1 m2 (= m1 m2)))) + (defmethod middle-c ((mp mips-pitch)) (make-mips-pitch 39 23))