annotate implementations/geerdes/classes.lisp @ 330:2fbff655ba47 tip

Removed cpitch-adj and cents SQL columns
author Jeremy Gow <jeremy.gow@gmail.com>
date Mon, 21 Jan 2013 11:08:11 +0000
parents 204d6d1f4f6a
children
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
j@288 10 (defclass geerdes-identifier (geerdes-object) ())
j@288 11
j@288 12 (defclass geerdes-composition-identifier (composition-identifier
j@288 13 geerdes-object) ())
j@288 14
j@288 15 (defclass geerdes-identifier-cat-id (geerdes-composition-identifier)
d@88 16 ((cat-id :initarg :cat-id
d@88 17 :initform 'nil)))
j@288 18
j@288 19 (defclass geerdes-identifier-file-id (geerdes-composition-identifier)
d@88 20 ((file-id :initarg :file-id
j@288 21 :initform 'nil))
j@288 22 (:documentation "Define geerdes-file-id as composition-id."))
j@288 23
j@288 24 (defclass geerdes-event-identifier (event-identifier
j@288 25 geerdes-identifier)
j@288 26 ((event-id :initarg :event-id
j@288 27 :reader event-id)))
d@88 28
d@130 29 (defclass geerdes-composition (midi-composition geerdes-object)
d@88 30 ((db-entry :initarg :db-entry
d@88 31 :initform nil
d@88 32 :accessor %db-entry)
d@88 33 (bar-numbers :initform nil
d@88 34 :accessor %bar-numbers)
d@88 35 (monody :initform nil
d@88 36 :accessor %monody)
d@88 37 (caches :initform nil
d@88 38 :accessor %caches)
d@88 39 (midi-constituents :initarg :constituents
d@88 40 :accessor %midi-constituents)
d@88 41 (midi-events :initarg :midi-events
d@88 42 :accessor %midi-events)
d@88 43 (db-cat-id :initarg :cat-id
d@88 44 :accessor %db-cat-id)
d@88 45 (db-file-id :initarg :file-id
d@134 46 :accessor %db-file-id))
d@134 47 (:documentation "MIDI composition with extra slots for Geerdes
d@134 48 database entries and ids. Because this implementation is for a
d@134 49 particular need, caching of information is also handled within
d@134 50 the object, so Geerdes compositions are faster for bar lookups,
d@134 51 monody-finding and so on. They also make use of interval trees
d@134 52 for time calculations, which make them faster for window-based
d@134 53 queries (but slower to import as a result)."))
d@88 54
d@88 55 (defclass geerdes-monody (monody geerdes-composition)
d@88 56 ;; FIXME: necessary slots? Do we even use them?
d@88 57 ((inter-onset-intervals :initarg :i-o-i
d@88 58 :initform nil
d@88 59 :accessor %i-o-i)
d@88 60 (inter-onset-interval-mode :initarg :ioi-mode
d@88 61 :initform 0
d@88 62 :accessor %ioi-mode)))
d@88 63
j@288 64 (defclass geerdes-event (geerdes-object) ()
j@288 65 (:documentation "Base class for geerdes events."))
d@88 66
j@298 67 (defclass geerdes-pitched-event (midi-pitched-event geerdes-event
j@298 68 linked-event)
j@288 69 ((identifier :initarg :identifier
j@288 70 :reader identifier))
j@288 71 (:documentation "Only adds a database identifier to
j@288 72 midi-pitched-event"))
j@288 73
j@288 74 (defclass geerdes-percussive-event (midi-percussive-event
j@298 75 geerdes-event linked-event)
j@288 76 ((identifier :initarg :identifier
j@288 77 :reader identifier))
j@288 78 (:documentation "Only adds a database identifier to
j@288 79 midi-percussive-event"))