Mercurial > hg > amuse
diff generics.lisp @ 9:22d090e96582
generics.lisp: Allen's interval relations.
darcs-hash:20061113190010-aa3d6-dcf1cd62eaabdf5819ab0e64c414bdbef59f50f2.gz
author | m.pearce <m.pearce@gold.ac.uk> |
---|---|
date | Mon, 13 Nov 2006 19:00:10 +0000 |
parents | 169e6d42dd51 |
children | 356ee92313be |
line wrap: on
line diff
--- a/generics.lisp Mon Nov 13 18:04:53 2006 +0000 +++ b/generics.lisp Mon Nov 13 19:00:10 2006 +0000 @@ -81,6 +81,25 @@ (defgeneric interval= (object1 object2)) (defgeneric interval/= (object1 object2)) +;;; Allen's (1984) interval relations +;;; . equals already defined as INTERVAL= above +;;; . can all be defined in terms of MEETS + +(defgeneric meets (object1 object2)) +(defgeneric before (object1 object2)) +(defgeneric overlaps (object1 object2)) +(defgeneric during (object1 object2)) +(defgeneric starts (object1 object2)) +(defgeneric ends (object1 object2)) + +;;; and extensions ... + +;;; i subinterval j if i starts j or i during j or i ends j +(defgeneric subinterval (object1 object2)) +;;; i disjoint j if i before j or i meets j or j meets i or j before i +(defgeneric disjoint (object1 object2)) + + ;;; Time Signature ;;; Tempo ;;; Tonality (Key Signature / Mode)