Mercurial > hg > amuse
diff base/constructors.lisp @ 24:8d2b1662f658
base/*.lisp: move files in amuse-base to subdirectory.
darcs-hash:20061215161617-aa3d6-1b63bd555b02ec02aa2db12d335e8b726e2108cd.gz
author | m.pearce <m.pearce@gold.ac.uk> |
---|---|
date | Fri, 15 Dec 2006 16:16:17 +0000 |
parents | |
children | d1010755f507 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/base/constructors.lisp Fri Dec 15 16:16:17 2006 +0000 @@ -0,0 +1,58 @@ +(cl:in-package #:amuse) + +;; Time classes + +(defun make-moment (time) + (make-instance 'moment :time time)) + +;; N.B. period should never be constructed directly - it's either +;; floating or anchored or some other subclass. + +(defun make-floating-period (interval) + (make-instance 'floating-period :interval interval)) + +(defun make-anchored-period (onset interval) + (make-instance 'anchored-period + :time onset + :interval interval)) + +;; Pitch classes (no, not that sort of pitch class) + +(defun make-chromatic-pitch (pitch-number) + (make-instance 'chromatic-pitch :number pitch-number)) + +(defun make-diatonic-pitch (name accidental octave) + (make-instance 'diatonic-pitch + :name name + :accidental accidental + :octave octave)) + +(defun make-pitch-interval (span) + (make-instance 'pitch-interval :span span)) + +;; Events + +(defun make-chromatic-pitched-event (pitch-number onset duration) + (make-instance 'chromatic-pitched-event + :number pitch-number + :time onset + :interval duration)) + +(defun make-basic-time-signature (numerator denominator onset duration) + (make-instance 'basic-time-signature + :numerator numerator + :denominator denominator + :time onset + :interval duration)) + +(defun make-basic-key-signature (sharp-count onset duration) + (make-instance 'basic-key-signature + :sharp-count sharp-count + :time onset + :interval duration)) + +(defun make-tempo (bpm onset duration) + (make-instance 'tempo + :bpm bpm + :time onset + :interval duration))