Mercurial > hg > amuse
view generics.lisp @ 3:e854a73b0328
Add package definition and in-package forms.
darcs-hash:20061025162304-aa3d6-85ddf506c4c08f698cd7057917770c0ce2ce4bf3.gz
author | m.pearce <m.pearce@gold.ac.uk> |
---|---|
date | Wed, 25 Oct 2006 17:23:04 +0100 |
parents | 92b28dfc3938 |
children | ee46db329423 |
line wrap: on
line source
;;;; -*- Mode: LISP; Syntax: ANSI-Common-Lisp; Base: 10 -*- ;;;; ====================================================================== ;;;; File: generics.lisp ;;;; Author: Marcus Pearce <m.pearce@gold.ac.uk> ;;;; Created: <2006-10-12 15:14:51 marcusp> ;;;; Time-stamp: <2006-10-25 17:22:38 marcusp> ;;;; ====================================================================== (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)