view generics.lisp @ 6:cb470aecc3b0

conditions.lisp: add missing right parens. darcs-hash:20061025162957-aa3d6-be1d3f4c9ae5bf80c090d612f0ce22f3e652d3b0.gz
author m.pearce <m.pearce@gold.ac.uk>
date Wed, 25 Oct 2006 17:29:57 +0100
parents ee46db329423
children 169e6d42dd51
line wrap: on
line source
(cl:in-package #:amuse) 

;;; Accessors (do we need the get- prefix?) 

(defgeneric get-pitch (object &key kind)) ; ? 
(defgeneric get-chromatic-pitch (object))
(defgeneric get-diatonic-pitch (object))
(defgeneric get-frequency (object))

(defgeneric get-duration (object))

(defgeneric get-onset (object)) ; get-time? 


;;; Time Protocol (or moments?)

;; negative times/durations -> ERROR? 

;; time+: <time>      <duration> -> <time>
;;        <duration>  <time>     -> <time> (same as previous?) 
;;        <duration>  <duration> -> <duration> (or a distinct duration+?) 
;;        <time>      <time>     -> ERROR? 
;; 
;; time-: <time>      <time>     -> <duration>
;;        <time>      <duration> -> <time> 
;;        <duration>  <duration> -> <duration> (or a distinct duration-?) 
;;        <duration>  <time>     -> ERROR? 

(defgeneric time+ (object1 object2))
(defgeneric time- (object1 object2))

(defgeneric time> (object1 object2))
(defgeneric time< (object1 object2))
(defgeneric time>= (object1 object2)) 
(defgeneric time<= (object1 object2))
(defgeneric time= (object1 object2)) 
(defgeneric time/= (object1 object2)) 

;;; Duration protocol 

(defgeneric duration> (object1 object2))
(defgeneric duration< (object1 object2))
(defgeneric duration>= (object1 object2)) 
(defgeneric duration<= (object1 object2))
(defgeneric duration= (object1 object2)) 
(defgeneric duration/= (object1 object2)) 


;;; Pitch protocol 

;; pitch+: <pitch>    <pitch>     -> <pitch> 
;;         <pitch>    <interval>  -> <pitch> 
;;         <interval> <pitch>     -> <pitch> (same as previous?) 
;;         <interval> <interval>  -> <interval> (or a distinct interval+?) 
;; 
;; pitch-: <pitch>    <pitch>     -> <interval>
;;         <pitch>    <interval>  -> <pitch> 
;;         <interval> <interval>  -> <interval> (or a distinct interval-? 
;;         <interval> <pitch>     -> ERROR? 

(defgeneric pitch+ (object1 object2))
(defgeneric pitch- (object1 object2))

(defgeneric pitch> (object1 object2))
(defgeneric pitch< (object1 object2))
(defgeneric pitch>= (object1 object2)) 
(defgeneric pitch<= (object1 object2))
(defgeneric pitch= (object1 object2)) 
(defgeneric pitch/= (object1 object2)) 

;;; Interval protocol (emphasise _pitch_ not _time_ interval?) 

(defgeneric interval> (object1 object2))
(defgeneric interval< (object1 object2))
(defgeneric interval>= (object1 object2)) 
(defgeneric interval<= (object1 object2))
(defgeneric interval= (object1 object2)) 
(defgeneric interval/= (object1 object2)) 

;;; Time Signature 
;;; Tempo 
;;; Tonality (Key Signature / Mode) 
;;; Dynamics 
;;; Voice 
;;; Boundary Strength (phrasing)