Sorry for the lack of response, I didn't have the mailing list set up quite right so I didn't see the postings. :(
I think most of these issues are already resolved--the quantizer should be able to handle anything as long as constraints are reasonable (maximum tuplet allowed, divisions per beat, etc.) Also, tiny notes that quantize to 0 duration will turn into grace notes.
Hi,
thanks for solving my last problem via cvs :)
I have some more questions:
I am doing this to get a cello double-stop:
(fomus-init :ensemble-type :orchestra)
(fomus-newpart 1 :name "Cello" :instr :cello)
(fomus-newnote 1 :off 0 :dur 2 :note 61) (fomus-newnote 1 :off 0 :dur 2 :note 55) (fomus-newnote 1 :off 2 :dur 1 :note 45)
(fomus-exec)
Which returns this error:
Cannot distribute voices for part "Cello" [Condition of type SIMPLE-ERROR]
Well, I understand that the voicelim for cello is 1, but does a chord, in which all the notes have the same duration already need more than one voice?
I was trying to override the instr settings by changing the first line to:
(fomus-init :ensemble-type :orchestra :instruments (list (make-instr :cello :clefs '(:bass) :voicelim 2))) ....
Which brings up:
Undefined function VOICELIM called with arguments (#S(INSTR :SYM :CELLO :CLEFS (:BASS) :STAVES 1 :MINP NIL :MAXP ...)) .
Sorry for not tracking this further down - I suspected that (voicelim ...) was erroneously called instead of (instr-voicelim ...), but I did not really succeed... I have to first of all read more of your code.
Ciao, Kilian Sprotte
Sorry for not tracking this further down - I suspected that (voicelim ...) was erroneously called instead of (instr-voicelim ...), but I did not really succeed... I have to first of all read more of your code.
Thanks, it'll be fixed in the next cvs commit. I might change "voicelim" to something like "simultlim" since voicelim isn't really correct.
The fix is in (defparameter +instr-type+ in data.lisp, which needs to be:
(defparameter +instr-type+ `(with-error* (instr "~~A of INSTR struct ~S" ,#'instr-sym) (struct* instr (instr-sym ... (instr-clefs ... (instr-staves ... (instr-minp ... (instr-maxp ... (instr-voicelim ... (instr-tpose ... (instr-cleflegls ... (instr-8uplegls ... (instr-8dnlegls ... (instr-percs ...