[CM] cmn, space, automatic-beams
Bill Schottstaedt
bil at ccrma.Stanford.EDU
Sun Jan 21 03:12:13 PST 2007
> 1. how one can give more space to an object;
> writing a vocal part, sometimes the syllable is too long for the space
> owned by the note [cut the syllable is not the best solution :-]
The file lyrics.lisp has code to do this via the spacing hook. You can
touch up individual notes with the "walls" method:
(f4 h (walls '(0.0 2.0)))
which forces that note to have a lot of trailing space.
> 2. I wish to get the vocal parts without automatic beaming
> (but (automatic-beams nil) works only if I write it in the
> outer section (cmn (automatic-beams nil) ...)
Here's one way:
(defvar always-no-beam
(make-self-acting
:action #'(lambda (staff &rest rest)
(declare (ignore rest))
(loop for obj in (staff-data staff) do
(if (or (note-p obj) (chord-p obj))
(progn
(push :no-beam (store-data obj))
(setf (beamed obj) #'(lambda (&rest rest)
(declare (ignore rest))
0))))))
:argument nil))
Then on the vocal staves add always-no-beam at the start:
(staff always-no-beam brace bar bass (key f-major) (meter 3 4) ...)
More information about the Cmdist
mailing list