Mercurial > hg > amuse
view implementations/meredith/classes.lisp @ 310:f99fd6a7bbfc
Add midi-db.
Ignore-this: c6f4fc32efa4453ddbdc478793eedd52
A basic implementation for working with MIDI files stored in the database.
It is a test case for `versioned' data, but only partially implemented at the moment.
darcs-hash:20100223152703-16a00-4388d2720907d777a1c6c6b3a010885ce0fe06a7.gz
author | j.forth <j.forth@gold.ac.uk> |
---|---|
date | Tue, 23 Feb 2010 15:27:03 +0000 |
parents | f5734df598f4 |
children |
line wrap: on
line source
(cl:in-package #:amuse-meredith) ;;; Top-level class (defclass meredith-data-object (amuse:amuse-object) ()) ;;; Identifiers (defclass meredith-identifier (meredith-data-object) ()) (defclass meredith-composition-identifier (composition-identifier meredith-identifier) ((composition-id :initarg :composition-id :reader composition-id))) (defclass meredith-event-identifier (event-identifier meredith-identifier) ((event-id :initarg :event-id :reader event-id))) ;;; Music objects (defclass meredith-music-object (meredith-data-object) ()) (defclass meredith-composition (amuse:standard-composition meredith-music-object) ((identifier :initarg :identifier :reader identifier) (description :initarg :description :reader description))) (defclass meredith-event (amuse:chromatic-pitched-event amuse:diatonic-pitched-event amuse:standard-anchored-period amuse:linked-event meredith-music-object) ((identifier :initarg :identifier :accessor identifier) (tatum-on :initarg :tatum-on :accessor tatum-on) (tatum-dur :initarg :tatum-dur :accessor tatum-dur) (tactus-on :initarg :tactus-on :accessor tactus-on) (tactus-dur :initarg :tactus-dur :accessor tactus-dur) (tatum-on-ms :initarg :tatum-on-ms :accessor tatum-on-ms) (tatum-dur-ms :initarg :tatum-dur-ms :accessor tatum-dur-ms) (beat-on-ms :initarg :beat-on-ms :accessor beat-on-ms) (beat-dur-ms :initarg :beat-dur-ms :accessor beat-dur-ms) (crot-on-ms :initarg :crot-on-ms :accessor crot-on-ms) (crot-dur-ms :initarg :crot-dur-ms :accessor crot-dur-ms) (pitch-name :initarg :pitch-name :accessor pitch-name) (voice :initarg :voice :accessor voice)))