view constructors.lisp @ 19:2f331bbdfab8

Added preliminary support for time- and key-signatures and for tempi darcs-hash:20061213155334-f76cc-a1ece6adfd1e6292e1f67418ddb3f38a56ad2233.gz
author David Lewis <d.lewis@gold.ac.uk>
date Wed, 13 Dec 2006 15:53:34 +0000
parents 70e76c1c87b7
children 99ccd775245a
line wrap: on
line source
(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-midi-pitched-event (pitch-number velocity patch
				channel track onset duration)
  (make-instance 'midi-pitched-event
		 :number pitch-number
		 :velocity velocity
		 :patch patch
		 :channel channel
		 :track track
		 :time onset
		 :interval duration))

(defun make-midi-percussive-event (pitch-number velocity patch
				   channel track onset duration)
  (make-instance 'midi-percussive-event
		 :sound pitch-number
		 :velocity velocity
		 :patch patch
		 :channel channel
		 :track track
		 :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-midi-key-signature (sharp-count mode onset duration)
  (make-instance 'midi-key-signature
		 :sharp-count sharp-count
		 :mode mode
		 :time onset
		 :interval duration))

(defun make-tempo (bpm onset duration)
  (make-instance 'tempo
		 :bpm bpm
		 :time onset
		 :interval duration))