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