changeset 190:725ce7ce77ba

remove DOS line endings in base/classes.lisp darcs-hash:20090105150355-16a00-972232fbb3eb8030c3e0c6d3788ba6f389183d8c.gz
author j.forth <j.forth@gold.ac.uk>
date Mon, 05 Jan 2009 15:03:55 +0000
parents 70c8d723fb8a
children 4d06910b6f0f 3180b03d436a
files base/classes.lisp
diffstat 1 files changed, 230 insertions(+), 231 deletions(-) [+]
line wrap: on
line diff
--- a/base/classes.lisp	Sat Jan 03 01:04:19 2009 +0000
+++ b/base/classes.lisp	Mon Jan 05 15:03:55 2009 +0000
@@ -1,231 +1,230 @@
-(cl:in-package #:amuse) 
-
-;; top-level amuse object 
-
-(defclass amuse-object () ())
-
-;; types of information-specifiers
-
-(defclass identifier (amuse-object) ()
-  (:documentation "DEPRECATED: Base class to allow specification of
-  composition to get. Must be subclassed."))
-
-(defclass constituent-identifier (identifier) ()
-  (:documentation "Base class to allow specifiction of constituents"))
-(defclass composition-identifier (constituent-identifier) ()
-  (:documentation "Base class to allow-specification of constituents"))
-
-(defclass moment (amuse-object) ()
-  (:documentation "Object indicating a point in time"))
-(defclass period (amuse-object) ()
-  (:documentation "Object indicating a region of time"))
-(defclass anchored-period (moment period) ()
-  (:documentation "Object indicating a region of time starting at
-  a specific point in time"))
-(defclass pitch (amuse-object) ()
-  (:documentation "Object indicating some sort of pitch"))
-(defclass pitch-interval (amuse-object) ()
-  (:documentation "Object indicating a distance in pitch space"))
-
-;; time-related classes
-
-(defclass standard-moment (moment) 
-  ((time :accessor %moment-time :initarg :time))
-  (:documentation "A moment that has time represented on a
-  continuous, progressive number line"))
-
-(defclass standard-period (period) 
-  ((interval :accessor %period-interval :initarg :interval))
-  (:documentation "A period that places time intervals
-  on a progressive number-line"))
-
-(defclass standard-anchored-period (standard-period standard-moment anchored-period) ()
-  (:documentation "Number-line-based anchored period"))
-
-;; pitch-related classes
-
-(defclass frequency-pitch (pitch) ())
-
-(defclass chromatic-pitch (pitch) 
-  ((number :accessor %chromatic-pitch-number :initarg :number))
-  (:documentation "A pitch represented as a number, with
-  chromatic pitches having distinct values."))
-(defclass diatonic-pitch (pitch) 
-  ((cp :initarg :cp :accessor %p-pc :reader diatonic-pitch-cp)
-   (mp :initarg :mp :accessor %p-pm :reader diatonic-pitch-mp))
-  (:documentation "A diatonic pitch, represented using MIPS: cp is an
-integer representing chromatic pitch (An0 = 0, middle C = 39); mp is
-an integer representing the morphetic pitch (An0 = 0, middle C =
-23)."))
-
-(defclass chromatic-pitch-interval (pitch-interval) 
-  ((span :accessor %chromatic-pitch-interval-span :initarg :span))
-  (:documentation "An interval represented as a number, recording
-  the number of ascending chromatic pitches between two pitches."))
-
-(defclass diatonic-pitch-interval (pitch-interval)
-  ((span :accessor %diatonic-pitch-interval-span :initarg :span :reader span))
-  (:documentation "How is this inplemented?"))
-
-;; events
-
-(defclass event (anchored-period) ()
-  (:documentation "Notelike object"))
-(defclass pitched-event (event pitch) ()
-  (:documentation "Event with pitch information"))
-(defclass standard-pitched-event (pitched-event
-				  standard-anchored-period) ()
-  (:documentation "Event with pitch information"))
-(defclass chromatic-pitched-event (pitched-event chromatic-pitch) ()
-  (:documentation "Event with chromatic pitch information"))
-(defclass standard-chromatic-pitched-event (chromatic-pitched-event
-					    standard-anchored-period) ()
-  (:documentation "Event with chromatic pitch information and
-  standard-period"))
-(defclass percussive-event (event) ()
-  (:documentation "Unpitched percussion Event. There's an issue
-with this name - is there a reason why this is unpitched
-necessarily, or why I'm not counting piano, etc in this? Perhaps
-what I mean is that it should be renamed unpitched-event?
-Actually, is this necessary? Isn't this just an event?"))
-(defclass standard-percussive-event (event standard-anchored-period) ()
-  (:documentation "Unpitched percussion Event. There's an issue
-with this name - is there a reason why this is unpitched
-necessarily, or why I'm not counting piano, etc in this? Perhaps
-what I mean is that it should be renamed unpitched-event?
-Actually, is this necessary? Isn't this just an event?
-Timbral/instrumental information will be generalised later but is
-less agreed-on than pitch."))
-
-;;; Range-based `constituents'
-;; Whilst these are all constituents in the CHARM sense, their
-;; properties apply to a timed range rather than to a set of
-;; events. As such, they can be regarded as anchored-periods with
-;; properties.
-
-(defclass time-signature (amuse-object) ()
-  (:documentation "Abstract class for time signature"))
-
-(defclass time-signature-period (time-signature anchored-period) ()
-  (:documentation "Abstract class for time signatures in time"))
-
-(defclass standard-time-signature (time-signature)
-  ((numerator :accessor %basic-time-signature-numerator
-	      :initarg :numerator)
-   (denominator :accessor %basic-time-signature-denominator
-		:initarg :denominator))
-  (:documentation "Class with slots for numerator and
-  denominator. Can only deal with numeric signatures."))
-
-(defclass standard-time-signature-period (standard-time-signature
-					  time-signature-period
-					  standard-anchored-period)
-  ()
-  (:documentation "STANDARD-TIME-SIGNATURE on a time number line"))
-
-(defclass key-signature (amuse-object) ()
-  (:documentation "Base class for key signature"))
-
-(defclass key-signature-period (key-signature anchored-period) ()
-  (:documentation "Abstract class for time signatures in time"))
-
-(defclass standard-key-signature (key-signature)
-  ((sharp-count :accessor %basic-key-signature-sharp-count
-                :initarg :sharp-count))
-  (:documentation "Simple class - Only has line-of-fifths
-  distance from c, so custom signatures won't work"))
-
-(defclass standard-key-signature-period (standard-key-signature
-					 key-signature-period
-					 standard-anchored-period)
-  ()
-  (:documentation "STANDARD-KEY-SIGNATURE on a time number line"))
-
-(defclass midi-key-signature (standard-key-signature)
-  ((mode :accessor %midi-key-signature-mode
-	 :initarg :mode))
-  (:documentation "MIDI-based flavour of basic key signature,
-  adding a slot for mode: 0 = major key; 1 = minor key"))
-
-(defclass midi-key-signature-period (standard-key-signature-period
-					 midi-key-signature)
-  ()
-  (:documentation "MIDI-KEY-SIGNATURE on a time number line"))
-
-(defclass tempo (amuse-object) ()
-  (:documentation "Abstract class for tempo"))
-(defclass tempo-period (tempo anchored-period) ()
-  (:documentation "Abstract class for tempo associated with a
-  time period"))
-(defclass standard-tempo (tempo)
-  ((bpm :accessor %tempo-bpm
-	:initarg :bpm))
-  (:documentation "Rather literal reading of absolute tempo.
-  accel and rit in symbolic encoding will need other structures,
-  as will textual tempo markings."))
-(defclass standard-tempo-period (standard-tempo
-				 tempo-period
-				 standard-anchored-period)
-  ()
-  (:documentation "Tempo associated with a standard-anchored-period"))
-   
-;; collections of more than one event
-
-(defclass constituent (anchored-period) ()
-  (:documentation "Base class for constituents"))
-(defclass standard-constituent (constituent standard-anchored-period) ()
-  (:documentation "Base class for constituents using standard
-  time representation"))
-
-(defclass time-ordered-constituent (constituent list-slot-sequence)
-  ;; this won't work if lisp implementation doesn't support extensible
-  ;; sequences.
-  ())
-(defclass standard-time-ordered-constituent (time-ordered-constituent
-					     standard-constituent
-					     list-slot-sequence)
-  ;; this won't work if lisp implementation doesn't support extensible
-  ;; sequences.
-  ())
-
-
-(defclass composition (time-ordered-constituent) ()
-  (:documentation "Base class for compositions"))
-
-(defclass standard-composition (composition
-				standard-time-ordered-constituent) ()
-  (:documentation "Base class for compositions using standard
-  time representation"))
-(defclass monody (composition) ()
-  (:documentation "Class for indicating suitability for analysis
-  requiring a monody"))
-(defclass standard-monody (monody standard-composition) ())
-
-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
-;;
-;; Experimental:
-;;
-
-(defclass clef (amuse-object) ()
-  (:documentation "Abstract class for clef implementations"))
-
-(defclass clef-period (clef anchored-period)  ()
-  (:documentation "Abstract class for clef implementations in time"))
-
-(defclass standard-clef (clef)
-  ((type :accessor %standard-clef-type
-         :initarg :type)
-   (line :accessor %standard-clef-line
-         :initarg :line)
-   (octave-shift :accessor %standard-clef-octave-shift
-                 :initarg :octave-shift
-                 :initform nil))
-  (:documentation "Class of clef with slots for type (a keyword
-  from :F, :G and :C, probably), line (counting from the lowest line =
-  1) and octave shift (nil or a positive or negative integer
-  representing transposition up or down"))
-
-(defclass standard-clef-period (standard-clef clef-period standard-anchored-period)
-  ()
-  (:documentation "Standard clef on a timeline"))
-   
\ No newline at end of file
+(cl:in-package #:amuse)
+
+;; top-level amuse object
+
+(defclass amuse-object () ())
+
+;; types of information-specifiers
+
+(defclass identifier (amuse-object) ()
+  (:documentation "DEPRECATED: Base class to allow specification of
+  composition to get. Must be subclassed."))
+
+(defclass constituent-identifier (identifier) ()
+  (:documentation "Base class to allow specifiction of constituents"))
+(defclass composition-identifier (constituent-identifier) ()
+  (:documentation "Base class to allow-specification of constituents"))
+
+(defclass moment (amuse-object) ()
+  (:documentation "Object indicating a point in time"))
+(defclass period (amuse-object) ()
+  (:documentation "Object indicating a region of time"))
+(defclass anchored-period (moment period) ()
+  (:documentation "Object indicating a region of time starting at
+  a specific point in time"))
+(defclass pitch (amuse-object) ()
+  (:documentation "Object indicating some sort of pitch"))
+(defclass pitch-interval (amuse-object) ()
+  (:documentation "Object indicating a distance in pitch space"))
+
+;; time-related classes
+
+(defclass standard-moment (moment) 
+  ((time :accessor %moment-time :initarg :time))
+  (:documentation "A moment that has time represented on a
+  continuous, progressive number line"))
+
+(defclass standard-period (period) 
+  ((interval :accessor %period-interval :initarg :interval))
+  (:documentation "A period that places time intervals
+  on a progressive number-line"))
+
+(defclass standard-anchored-period (standard-period standard-moment anchored-period) ()
+  (:documentation "Number-line-based anchored period"))
+
+;; pitch-related classes
+
+(defclass frequency-pitch (pitch) ())
+
+(defclass chromatic-pitch (pitch)
+  ((number :accessor %chromatic-pitch-number :initarg :number))
+  (:documentation "A pitch represented as a number, with
+  chromatic pitches having distinct values."))
+(defclass diatonic-pitch (pitch)
+  ((cp :initarg :cp :accessor %p-pc :reader diatonic-pitch-cp)
+   (mp :initarg :mp :accessor %p-pm :reader diatonic-pitch-mp))
+  (:documentation "A diatonic pitch, represented using MIPS: cp is an
+integer representing chromatic pitch (An0 = 0, middle C = 39); mp is
+an integer representing the morphetic pitch (An0 = 0, middle C =
+23)."))
+
+(defclass chromatic-pitch-interval (pitch-interval)
+  ((span :accessor %chromatic-pitch-interval-span :initarg :span))
+  (:documentation "An interval represented as a number, recording
+  the number of ascending chromatic pitches between two pitches."))
+
+(defclass diatonic-pitch-interval (pitch-interval)
+  ((span :accessor %diatonic-pitch-interval-span :initarg :span :reader span))
+  (:documentation "How is this inplemented?"))
+
+;; events
+
+(defclass event (anchored-period) ()
+  (:documentation "Notelike object"))
+(defclass pitched-event (event pitch) ()
+  (:documentation "Event with pitch information"))
+(defclass standard-pitched-event (pitched-event
+				  standard-anchored-period) ()
+  (:documentation "Event with pitch information"))
+(defclass chromatic-pitched-event (pitched-event chromatic-pitch) ()
+  (:documentation "Event with chromatic pitch information"))
+(defclass standard-chromatic-pitched-event (chromatic-pitched-event
+					    standard-anchored-period) ()
+  (:documentation "Event with chromatic pitch information and
+  standard-period"))
+(defclass percussive-event (event) ()
+  (:documentation "Unpitched percussion Event. There's an issue
+with this name - is there a reason why this is unpitched
+necessarily, or why I'm not counting piano, etc in this? Perhaps
+what I mean is that it should be renamed unpitched-event?
+Actually, is this necessary? Isn't this just an event?"))
+(defclass standard-percussive-event (event standard-anchored-period) ()
+  (:documentation "Unpitched percussion Event. There's an issue
+with this name - is there a reason why this is unpitched
+necessarily, or why I'm not counting piano, etc in this? Perhaps
+what I mean is that it should be renamed unpitched-event?
+Actually, is this necessary? Isn't this just an event?
+Timbral/instrumental information will be generalised later but is
+less agreed-on than pitch."))
+
+;;; Range-based `constituents'
+;; Whilst these are all constituents in the CHARM sense, their
+;; properties apply to a timed range rather than to a set of
+;; events. As such, they can be regarded as anchored-periods with
+;; properties.
+
+(defclass time-signature (amuse-object) ()
+  (:documentation "Abstract class for time signature"))
+
+(defclass time-signature-period (time-signature anchored-period) ()
+  (:documentation "Abstract class for time signatures in time"))
+
+(defclass standard-time-signature (time-signature)
+  ((numerator :accessor %basic-time-signature-numerator
+	      :initarg :numerator)
+   (denominator :accessor %basic-time-signature-denominator
+		:initarg :denominator))
+  (:documentation "Class with slots for numerator and
+  denominator. Can only deal with numeric signatures."))
+
+(defclass standard-time-signature-period (standard-time-signature
+					  time-signature-period
+					  standard-anchored-period)
+  ()
+  (:documentation "STANDARD-TIME-SIGNATURE on a time number line"))
+
+(defclass key-signature (amuse-object) ()
+  (:documentation "Base class for key signature"))
+
+(defclass key-signature-period (key-signature anchored-period) ()
+  (:documentation "Abstract class for time signatures in time"))
+
+(defclass standard-key-signature (key-signature)
+  ((sharp-count :accessor %basic-key-signature-sharp-count
+                :initarg :sharp-count))
+  (:documentation "Simple class - Only has line-of-fifths
+  distance from c, so custom signatures won't work"))
+
+(defclass standard-key-signature-period (standard-key-signature
+					 key-signature-period
+					 standard-anchored-period)
+  ()
+  (:documentation "STANDARD-KEY-SIGNATURE on a time number line"))
+
+(defclass midi-key-signature (standard-key-signature)
+  ((mode :accessor %midi-key-signature-mode
+	 :initarg :mode))
+  (:documentation "MIDI-based flavour of basic key signature,
+  adding a slot for mode: 0 = major key; 1 = minor key"))
+
+(defclass midi-key-signature-period (standard-key-signature-period
+					 midi-key-signature)
+  ()
+  (:documentation "MIDI-KEY-SIGNATURE on a time number line"))
+
+(defclass tempo (amuse-object) ()
+  (:documentation "Abstract class for tempo"))
+(defclass tempo-period (tempo anchored-period) ()
+  (:documentation "Abstract class for tempo associated with a
+  time period"))
+(defclass standard-tempo (tempo)
+  ((bpm :accessor %tempo-bpm
+	:initarg :bpm))
+  (:documentation "Rather literal reading of absolute tempo.
+  accel and rit in symbolic encoding will need other structures,
+  as will textual tempo markings."))
+(defclass standard-tempo-period (standard-tempo
+				 tempo-period
+				 standard-anchored-period)
+  ()
+  (:documentation "Tempo associated with a standard-anchored-period"))
+   
+;; collections of more than one event
+
+(defclass constituent (anchored-period) ()
+  (:documentation "Base class for constituents"))
+(defclass standard-constituent (constituent standard-anchored-period) ()
+  (:documentation "Base class for constituents using standard
+  time representation"))
+
+(defclass time-ordered-constituent (constituent list-slot-sequence)
+  ;; this won't work if lisp implementation doesn't support extensible
+  ;; sequences.
+  ())
+(defclass standard-time-ordered-constituent (time-ordered-constituent
+					     standard-constituent
+					     list-slot-sequence)
+  ;; this won't work if lisp implementation doesn't support extensible
+  ;; sequences.
+  ())
+
+
+(defclass composition (time-ordered-constituent) ()
+  (:documentation "Base class for compositions"))
+
+(defclass standard-composition (composition
+				standard-time-ordered-constituent) ()
+  (:documentation "Base class for compositions using standard
+  time representation"))
+(defclass monody (composition) ()
+  (:documentation "Class for indicating suitability for analysis
+  requiring a monody"))
+(defclass standard-monody (monody standard-composition) ())
+
+;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
+;;
+;; Experimental:
+;;
+
+(defclass clef (amuse-object) ()
+  (:documentation "Abstract class for clef implementations"))
+
+(defclass clef-period (clef anchored-period)  ()
+  (:documentation "Abstract class for clef implementations in time"))
+
+(defclass standard-clef (clef)
+  ((type :accessor %standard-clef-type
+         :initarg :type)
+   (line :accessor %standard-clef-line
+         :initarg :line)
+   (octave-shift :accessor %standard-clef-octave-shift
+                 :initarg :octave-shift
+                 :initform nil))
+  (:documentation "Class of clef with slots for type (a keyword
+  from :F, :G and :C, probably), line (counting from the lowest line =
+  1) and octave shift (nil or a positive or negative integer
+  representing transposition up or down"))
+
+(defclass standard-clef-period (standard-clef clef-period standard-anchored-period)
+  ()
+  (:documentation "Standard clef on a timeline"))