view implementations/mtp/classes.lisp @ 329:f54848e1f74c

Flag use of cents; define diatonic-pitch correctly for cents
author Jeremy Gow <jeremy.gow@gmail.com>
date Mon, 19 Nov 2012 15:11:49 +0000
parents 04940d80aaed
children 2fbff655ba47
line wrap: on
line source
(cl:in-package #:amuse-mtp) 

;;; Top-level class 

(defclass mtp-object (amuse:amuse-object) ())

;;; Segmenters 

(defclass mtp-after-segmenter (ground-truth-segmenter after-segmenter mtp-object)
  ())

(defclass mtp-before-segmenter (ground-truth-segmenter before-segmenter 
                                                       mtp-object)
  ())

;;; Identifiers 

(defclass mtp-dataset-identifier (identifier mtp-object)
  ((dataset-id :initarg :dataset-id :accessor dataset-id)))
   
(defclass mtp-composition-identifier (composition-identifier mtp-object)
  ((dataset-id :initarg :dataset-id :accessor dataset-id)
   (composition-id :initarg :composition-id :accessor composition-id)))

;;; Music objects 

(defclass mtp-music-object (mtp-object) ())

(defclass mtp-dataset (amuse::list-slot-sequence mtp-music-object) 
  ((dataset-id :initarg :dataset-id :accessor dataset-id)
   (description :initarg :description :accessor description)
   (timebase :initarg :timebase :accessor dataset-timebase)
   (midc :initarg :midc :accessor dataset-midc)))

(defclass mtp-composition (amuse:standard-composition mtp-music-object)
  ((dataset-id :initarg :dataset-id :accessor dataset-id)
   (composition-id :initarg :composition-id :accessor composition-id)
   (timebase :initarg :timebase :accessor composition-timebase)
   (description :initarg :description :accessor description)))

(defclass mtp-monody (amuse:standard-monody mtp-composition) 
  ())

(defclass mtp-event (amuse:standard-pitched-event mtp-music-object)
  ((dataset-id :initarg :dataset-id :accessor dataset-id)
   (composition-id :initarg :composition-id :accessor composition-id)
   (event-id :initarg :event-id :accessor event-id)
   ;;(onset :initarg :onset :accessor %mtp-onset)  time / (amuse:timepoint ...)
   ;;(dur :initarg :dur :accessor %mtp-accidental) interval / (amuse:duration ...)
   (bioi :initarg :bioi :accessor %mtp-bioi)
   (deltast :initarg :deltast :accessor %mtp-deltast)
   (cpitch :initarg :cpitch :accessor %mtp-cpitch)
   (cpitch-adj :initarg :cpitch-adj :accessor %mtp-cpitch-adj)
   (cents :initarg :cents :accessor %mtp-cents)
   (mpitch :initarg :mpitch :accessor %mtp-mpitch)
   (accidental :initarg :accidental :accessor %mtp-accidental)
   (keysig :initarg :keysig :accessor %mtp-keysig)
   (mode :initarg :mode :accessor %mtp-mode)
   (barlength :initarg :barlength :accessor %mtp-barlength)
   (pulses :initarg :pulses :accessor %mtp-pulses)
   (phrase :initarg :phrase :accessor %mtp-phrase)
   (tempo :initarg :tempo :accessor %mtp-tempo)
   (dyn :initarg :dyn :accessor %mtp-dyn)
   (ornament :initarg :ornament :accessor %mtp-ornament)
   (comma :initarg :comma :accessor %mtp-comma)
   (articulation :initarg :articulation :accessor %mtp-articulation)
   (voice :initarg :voice :accessor %mtp-voice)))