[fomus-cvs] CVS update: fomus/CHANGELOG fomus/TODO fomus/data.lisp fomus/split.lisp fomus/voices.lisp
David Psenicka
dpsenicka at common-lisp.net
Fri Jul 29 18:55:50 UTC 2005
Update of /project/fomus/cvsroot/fomus
In directory common-lisp.net:/tmp/cvs-serv8208
Modified Files:
CHANGELOG TODO data.lisp split.lisp voices.lisp
Log Message:
Bug fixes
Date: Fri Jul 29 20:55:43 2005
Author: dpsenicka
Index: fomus/CHANGELOG
diff -u fomus/CHANGELOG:1.1 fomus/CHANGELOG:1.2
--- fomus/CHANGELOG:1.1 Fri Jul 29 10:58:20 2005
+++ fomus/CHANGELOG Fri Jul 29 20:55:43 2005
@@ -2,3 +2,4 @@
Testing/bug fixes
Support for tremolos
+ Changed INSTR-VOICELIM slot in INSTR class to INSTR-SIMULTLIM
Index: fomus/TODO
diff -u fomus/TODO:1.8 fomus/TODO:1.9
--- fomus/TODO:1.8 Fri Jul 29 10:58:20 2005
+++ fomus/TODO Fri Jul 29 20:55:43 2005
@@ -4,7 +4,7 @@
Testing and bug fixes
DOC: dynamic marks can take order arguments (backend might not support it)
-DOC: update tremolos
+DOC: :beat-division and tuplets
Adjust scores and penalties for decent results
Breath marks (resolve before/after)
Note heads
Index: fomus/data.lisp
diff -u fomus/data.lisp:1.7 fomus/data.lisp:1.8
--- fomus/data.lisp:1.7 Fri Jul 29 10:58:20 2005
+++ fomus/data.lisp Fri Jul 29 20:55:43 2005
@@ -129,17 +129,17 @@
;; 8up/down leglines = (cons into-ottava outof-ottava), or I think it can also be just a number
;;(declaim (inline make-instr))
(defstruct (instr (:constructor make-instr-aux) (:copier nil) (:predicate instrp))
- sym clefs (staves 1) minp maxp (voicelim 1) tpose (cleflegls 2)
+ sym clefs (staves 1) minp maxp (simultlim 1) tpose (cleflegls 2)
8uplegls 8dnlegls percs)
-(defparameter +instr-keys+ '(:sym :clefs :staves :minp :maxp :voicelim :tpose :cleflegls :8uplegls :8dnlegls :percs))
+(defparameter +instr-keys+ '(:sym :clefs :staves :minp :maxp :simultlim :tpose :cleflegls :8uplegls :8dnlegls :percs))
(defun make-instr (sym &rest args) (apply #'make-instr-aux :sym sym args))
;;(declaim (inline copy-instr))
(defun copy-instr (instr &key (sym (instr-sym instr)) (clefs (instr-clefs instr)) (staves (instr-staves instr)) (minp (instr-minp instr)) (maxp (instr-maxp instr))
- (voicelim (instr-voicelim instr)) (tpose (instr-tpose instr)) (cleflegls (instr-cleflegls instr)) (8uplegls (instr-8uplegls instr))
+ (simultlim (instr-simultlim instr)) (tpose (instr-tpose instr)) (cleflegls (instr-cleflegls instr)) (8uplegls (instr-8uplegls instr))
(8dnlegls (instr-8dnlegls instr)) (percs (instr-percs instr)))
- (make-instr-aux :sym sym :clefs clefs :staves staves :minp minp :maxp maxp :voicelim voicelim :tpose tpose :cleflegls cleflegls
+ (make-instr-aux :sym sym :clefs clefs :staves staves :minp minp :maxp maxp :simultlim simultlim :tpose tpose :cleflegls cleflegls
:8uplegls 8uplegls :8dnlegls 8dnlegls :percs percs))
(defparameter +instr-type+
@@ -150,7 +150,7 @@
(instr-staves (check* (integer 1) "Found ~S, expected (INTEGER 1) in STAVES slot" t))
(instr-minp (check* (or null integer) "Found ~S, expected INTEGER in MINP slot" t))
(instr-maxp (check* (or null integer) "Found ~S, expected INTEGER in MAXP slot" t))
- (instr-voicelim (check* (integer 1) "Found ~S, expected (INTEGER 1) in VOICELIM slot" t))
+ (instr-simultlim (check* (integer 1) "Found ~S, expected (INTEGER 1) in SIMULTLIM slot" t))
(instr-tpose (check* (or null integer) "Found ~S, expected INTEGER in TPOSE slot" t))
(instr-cleflegls (check* (or* (integer 1)
(cons-of* (integer 1)
@@ -168,7 +168,7 @@
(defparameter *instruments* nil)
(eval-when (:load-toplevel :execute)
- (defparameter +default-instr+ (make-instr :default :clefs '(:treble :bass) :voicelim 5))
+ (defparameter +default-instr+ (make-instr :default :clefs '(:treble :bass) :simultlim 5))
(defparameter +instruments+
(list (make-instr :piccolo :clefs :treble :tpose 12)
(make-instr :flute :clefs :treble)
@@ -190,10 +190,10 @@
(make-instr :viola :clefs '(:treble :alto) :8uplegls '(5 2))
(make-instr :cello :clefs '(:bass :tenor :treble))
(make-instr :contrabass :clefs '(:bass :tenor) :tpose -12)
- (make-instr :harp :clefs '(:treble :bass) :staves 2 :voicelim 5 :8uplegls '(5 2) :8dnlegls '(5 2))
- (make-instr :piano :clefs '(:treble :bass) :staves 2 :voicelim 5 :8uplegls '(5 2) :8dnlegls '(5 2))
- (make-instr :xylophone :clefs '(:treble) :voicelim 2 :tpose 12 :8uplegls '(5 2))
- (make-instr :marimba :clefs '(:treble :bass) :voicelim 2 :8uplegls '(5 2))
+ (make-instr :harp :clefs '(:treble :bass) :staves 2 :simultlim 5 :8uplegls '(5 2) :8dnlegls '(5 2))
+ (make-instr :piano :clefs '(:treble :bass) :staves 2 :simultlim 5 :8uplegls '(5 2) :8dnlegls '(5 2))
+ (make-instr :xylophone :clefs '(:treble) :simultlim 2 :tpose 12 :8uplegls '(5 2))
+ (make-instr :marimba :clefs '(:treble :bass) :simultlim 2 :8uplegls '(5 2))
(make-instr :percussion :clefs :percussion)
(make-instr :timpani :clefs :bass))))
@@ -327,7 +327,7 @@
(:default-beat (or null (rational (0))))
(:beat-division (or* (integer 1) (and (list* (integer 1) (integer 1)) (length* = 2))) "(INTEGER 1) or ((INTEGER 1) (INTEGER 1))")
(:min-tuplet-dur (real (0))) (:max-tuplet-dur (real (0))) (:min-simple-tuplet-dur (real (0)))
- (:max-tuplet (or* (integer 2) (list-of* (integer 2))) "(INTEGER 2) or list of (INTEGER 2)")
+ (:max-tuplet (or* null (integer 2) (list-of* (integer 2))) "(INTEGER 2) or list of (INTEGER 2)")
(:tuplet-dotted-rests boolean) (:double-dotted-notes boolean)
(:dotted-note-level (find* t :all :top :sig) "T, :ALL, :TOP or :SIG")
(:shortlongshort-notes-level (find* t :all :top :sig) "T, :ALL, :TOP or :SIG")
Index: fomus/split.lisp
diff -u fomus/split.lisp:1.6 fomus/split.lisp:1.7
--- fomus/split.lisp:1.6 Fri Jul 29 10:58:20 2005
+++ fomus/split.lisp Fri Jul 29 20:55:43 2005
@@ -330,7 +330,7 @@
(list (nconc (list (loop for i from 1/2 below num collect (/ i num)) ; regular off beat syncopation
(snd (/ 1/2 num) t nil))
(make-list (- num 1/2) :initial-element (snd (/ num) nil nil))))))))
- (when (and tups (or (initdivp rule) (rule-alt rule)) (or (initdivp rule) (rule-art rule)))
+ (when (and tups mt (or (initdivp rule) (rule-alt rule)) (or (initdivp rule) (rule-art rule)))
(loop
with nu = (if (rule-comp rule) (* num 3/2) num)
for j in (primes2 (first mt)) ; only primes--number isn't actual tuplet, just division
@@ -366,7 +366,7 @@
(list (list 1/8 (un 1/8 :l t t) (und 7/8 nil t))))))
(when (and (al *shortlongshort-notes-level*) (rule-alt rule) (rule-art rule) ex)
(list (list '(1/4 3/4) (un 1/4 :l t t) (und 1/2 t t) (un 1/4 :r t t)))) ; longer note in middle
- (when (and tups (or (initdivp rule) (rule-alt rule)) (or (initdivp rule) (rule-art rule)))
+ (when (and tups mt (or (initdivp rule) (rule-alt rule)) (or (initdivp rule) (rule-art rule)))
(let ((l (length (force-list (rule-tup rule)))))
(when (< l mn)
(loop
Index: fomus/voices.lisp
diff -u fomus/voices.lisp:1.3 fomus/voices.lisp:1.4
--- fomus/voices.lisp:1.3 Tue Jul 26 01:15:53 2005
+++ fomus/voices.lisp Fri Jul 29 20:55:43 2005
@@ -104,7 +104,7 @@
(c (cons w (let ((o (- oo (* *voice-full-beat-dist*
*max-voice-beat-dist-mul*))))
(remove-if (lambda (e) (<= (event-endoff e) o)) (voicenode-evc no))))))
- (when (let ((i (instr-voicelim instr)))
+ (when (let ((i (instr-simultlim instr)))
(or (null i) (<= (count-if (lambda (x) (and (> (event-endoff x) oo) (= (event-voice x) e))) c) i)))
(make-voicenode
:sc s :evc c
More information about the Fomus-cvs
mailing list