annotate implementations/geerdes/classes.lisp @ 192:54d79a2c82d2

fix make-chromatic-pitched-event constructor Ignore-this: 93298c4a64a4a65dc948f8473c92a9c8 darcs-hash:20090524152250-16a00-295d43f8c2d16089196ab223b43264ae55f5620b.gz
author j.forth <j.forth@gold.ac.uk>
date Sun, 24 May 2009 16:22:50 +0100
parents 4a0e15e2829a
children 619194befdd4
rev   line source
d@88 1 (cl:in-package #:amuse-geerdes)
d@88 2
d@88 3 (defclass property-list-mixin ()
d@132 4 ((properties :initarg :properties
d@132 5 :accessor properties
d@132 6 :initform 'nil)))
d@88 7
d@130 8 (defclass geerdes-object (property-list-mixin) ())
d@130 9
d@169 10 (defclass geerdes-identifier (composition-identifier geerdes-object) ())
d@88 11 (defclass geerdes-identifier-cat-id (geerdes-identifier)
d@88 12 ((cat-id :initarg :cat-id
d@88 13 :initform 'nil)))
d@88 14 (defclass geerdes-identifier-file-id (geerdes-identifier)
d@88 15 ((file-id :initarg :file-id
d@88 16 :initform 'nil)))
d@88 17
d@130 18 (defclass geerdes-composition (midi-composition geerdes-object)
d@88 19 ((db-entry :initarg :db-entry
d@88 20 :initform nil
d@88 21 :accessor %db-entry)
d@88 22 (bar-numbers :initform nil
d@88 23 :accessor %bar-numbers)
d@88 24 (monody :initform nil
d@88 25 :accessor %monody)
d@88 26 (caches :initform nil
d@88 27 :accessor %caches)
d@88 28 (midi-constituents :initarg :constituents
d@88 29 :accessor %midi-constituents)
d@88 30 (midi-events :initarg :midi-events
d@88 31 :accessor %midi-events)
d@88 32 (midi-timebase :initarg :midi-timebase
d@88 33 :accessor %midi-timebase)
d@88 34 (identifier :initarg :id
d@88 35 :accessor %fast-identifier)
d@88 36 (db-cat-id :initarg :cat-id
d@88 37 :accessor %db-cat-id)
d@88 38 (db-file-id :initarg :file-id
d@134 39 :accessor %db-file-id))
d@134 40 (:documentation "MIDI composition with extra slots for Geerdes
d@134 41 database entries and ids. Because this implementation is for a
d@134 42 particular need, caching of information is also handled within
d@134 43 the object, so Geerdes compositions are faster for bar lookups,
d@134 44 monody-finding and so on. They also make use of interval trees
d@134 45 for time calculations, which make them faster for window-based
d@134 46 queries (but slower to import as a result)."))
d@88 47
d@88 48 (defclass geerdes-monody (monody geerdes-composition)
d@88 49 ;; FIXME: necessary slots? Do we even use them?
d@88 50 ((inter-onset-intervals :initarg :i-o-i
d@88 51 :initform nil
d@88 52 :accessor %i-o-i)
d@88 53 (inter-onset-interval-mode :initarg :ioi-mode
d@88 54 :initform 0
d@88 55 :accessor %ioi-mode)))
d@88 56
d@130 57 (defclass geerdes-pitched-event (midi-pitched-event geerdes-object)
d@88 58 ((id :initarg :id
d@134 59 :accessor %geerdes-pitched-event-id))
d@134 60 (:documentation "Only adds a database id to midi-pitched-event"))
d@88 61
d@130 62 (defclass geerdes-percussive-event (midi-percussive-event geerdes-object)
d@88 63 ((id :initarg :id
d@134 64 :accessor %geerdes-percussive-event-id))
d@134 65 (:documentation "Only adds a database id to midi-percussive-event"))