annotate implementations/geerdes/classes.lisp @ 279:c591a5034da6

New base module for general database functions Ignore-this: 403f22ca6285cba4a23eeddb1d0a806f Currently just provides a slightly more secure way of connecting to a database. darcs-hash:20090519135617-16a00-ce026a38abfb53e5728cd0cbb6c976e403691dde.gz
author j.forth <j.forth@gold.ac.uk>
date Tue, 19 May 2009 14:56:17 +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"))