2002-07-17 Han-Wen <hanwen@cs.uu.nl>
+ * lily/music.cc (LY_DEFINE): change ly-set-mus-property to
+ ly-set-mus-property!
+
+ * lily/grob.cc (LY_DEFINE): change ly-set-grob-property to ly-set-grob-property!
+
* lily/parser.yy (Repeated_music): shift duration log for tremolo
repeats, instead of klutzing around.
@end lilypond
Tremolo beams are @internalsref{Beam} grobs. Single stem tremolos are
-@internalsref{StemTremolo}.
+@internalsref{StemTremolo}. The single stem tremolo @emph{must} be
+entered without @code{@{} and @code{@}}.
@refbugs
-Tremolo beams confuse the spacing engine.
+Only powers of two and undotted notes are supported repeat counts.
@node Tremolo subdivisions
@subsection Tremolo subdivisions
#include "item.hh"
#include "paper-def.hh"
-LY_DEFINE(ly_set_grob_property,"ly-set-grob-property", 3, 0, 0,
+LY_DEFINE(ly_set_grob_property,"ly-set-grob-property!", 3, 0, 0,
(SCM grob, SCM sym, SCM val),
"Set @var{sym} in grob @var{grob} to value @var{val}")
{
}
LY_DEFINE(ly_set_mus_property,
- "ly-set-mus-property", 3, 0, 0,
+ "ly-set-mus-property!", 3, 0, 0,
(SCM mus, SCM sym, SCM val),
"Set property @var{sym} in music expression @var{mus} to @var{val}.")
{
(define (make-articulation-script x)
(let* ( (m (ly-make-music "Articulation_req"))
)
- (ly-set-mus-property m 'articulation-type x)
+ (ly-set-mus-property! m 'articulation-type x)
m
)
)
(define (add-articulation-script m x)
(if x
(if (and x (equal? (ly-music-name m) "Request_chord"))
- (ly-set-mus-property m 'elements
+ (ly-set-mus-property! m 'elements
(cons (make-articulation-script x) (ly-get-mus-property m 'elements))
)
(let* ( (es (ly-get-mus-property m 'elements))
(define (make-head-type-elem t)
(let* ( (m (ly-make-music "Music"))
)
- (ly-set-mus-property m 'iterator-ctor Push_property_iterator::constructor)
- (ly-set-mus-property m 'symbol 'NoteHead)
- (ly-set-mus-property m 'grob-property 'style)
- (ly-set-mus-property m 'grob-value t)
+ (ly-set-mus-property! m 'iterator-ctor Push_property_iterator::constructor)
+ (ly-set-mus-property! m 'symbol 'NoteHead)
+ (ly-set-mus-property! m 'grob-property 'style)
+ (ly-set-mus-property! m 'grob-value t)
m
)
)
(let* ( (m (ly-make-music "Context_specced_music"))
(e (make-head-type-elem t))
)
- (ly-set-mus-property m 'element e)
- (ly-set-mus-property m 'context-type "Thread")
+ (ly-set-mus-property! m 'element e)
+ (ly-set-mus-property! m 'context-type "Thread")
m
)
)
(define (make-thread-context thread-name element)
(let* ( (m (ly-make-music "Context_specced_music")))
- (ly-set-mus-property m 'element element)
- (ly-set-mus-property m 'context-type "Thread")
- (ly-set-mus-property m 'context-id (symbol->string thread-name))
+ (ly-set-mus-property! m 'element element)
+ (ly-set-mus-property! m 'context-type "Thread")
+ (ly-set-mus-property! m 'context-id (symbol->string thread-name))
m
)
)
(seq (make-sequential-music (list ht req-ch)))
)
(add-articulation-script req-ch script)
- (ly-set-mus-property fe 'pitch pitch)
+ (ly-set-mus-property! fe 'pitch pitch)
(set! req-ch (make-thread-context style seq))
req-ch
)
(alts (ly-get-mus-property music 'alternatives)))
(if (pair? es)
- (ly-set-mus-property music 'elements (map (drums->paper kit) es) )
+ (ly-set-mus-property! music 'elements (map (drums->paper kit) es) )
)
(if (music? alts)
- (ly-set-mus-property
+ (ly-set-mus-property!
music 'alternatives
((drums->paper kit) alts)))
(if (music? body)
- (ly-set-mus-property
+ (ly-set-mus-property!
music 'body
((drums->paper kit) body)))
(if (music? e)
(begin
- (ly-set-mus-property
+ (ly-set-mus-property!
music 'element
((drums->paper kit) e))
)
(cdr cp)))
)
- (ly-set-mus-property music 'duration nd)
+ (ly-set-mus-property! music 'duration nd)
))
(if (pair? es)
- (ly-set-mus-property
+ (ly-set-mus-property!
music 'elements
(map f es)))
(if (music? e)
- (ly-set-mus-property
+ (ly-set-mus-property!
music 'element
(f e)))
(if (equal? (ly-get-mus-property 'type music) 'tremolo)
(shift-duration-log music (- (intlog2 (ly-get-mus-property 'repeat-count music))))
)
- (ly-set-mus-property
+ (ly-set-mus-property!
music 'length Repeated_music::unfolded_music_length)
- (ly-set-mus-property
+ (ly-set-mus-property!
music 'start-moment-function Repeated_music::first_start)
- (ly-set-mus-property
+ (ly-set-mus-property!
music 'iterator-ctor Unfolded_repeat_iterator::constructor)))
(if (pair? es)
- (ly-set-mus-property
+ (ly-set-mus-property!
music 'elements
(map unfold-repeats es)))
(if (music? e)
- (ly-set-mus-property
+ (ly-set-mus-property!
music 'element
(unfold-repeats e)))
)
(if pitch
- (map (lambda (x) (ly-set-mus-property x 'pitch pitch)) (find-scripts es))
+ (map (lambda (x) (ly-set-mus-property! x 'pitch pitch)) (find-scripts es))
)
(if (pair? es)
- (ly-set-mus-property
+ (ly-set-mus-property!
music 'elements
(map pitchify-scripts es)))
(if (music? e)
- (ly-set-mus-property
+ (ly-set-mus-property!
music 'element
(pitchify-scripts e)))
"
(let* ((m (ly-make-music "Music")))
- (ly-set-mus-property m 'iterator-ctor Push_property_iterator::constructor)
- (ly-set-mus-property m 'symbol grob)
- (ly-set-mus-property m 'grob-property gprop)
- (ly-set-mus-property m 'grob-value val)
- (ly-set-mus-property m 'pop-first #t)
+ (ly-set-mus-property! m 'iterator-ctor Push_property_iterator::constructor)
+ (ly-set-mus-property! m 'symbol grob)
+ (ly-set-mus-property! m 'grob-property gprop)
+ (ly-set-mus-property! m 'grob-value val)
+ (ly-set-mus-property! m 'pop-first #t)
m
(define (make-grob-property-revert grob gprop)
"Revert the grob property GPROP for GROB."
(let* ((m (ly-make-music "Music")))
- (ly-set-mus-property m 'iterator-ctor Pop_property_iterator::constructor)
- (ly-set-mus-property m 'symbol grob)
- (ly-set-mus-property m 'grob-property gprop)
+ (ly-set-mus-property! m 'iterator-ctor Pop_property_iterator::constructor)
+ (ly-set-mus-property! m 'symbol grob)
+ (ly-set-mus-property! m 'grob-property gprop)
m
"Add \context CONTEXT = foo to M. "
(let* ((cm (ly-make-music "Context_specced_music")))
- (ly-set-mus-property cm 'element m)
- (ly-set-mus-property cm 'context-type context)
+ (ly-set-mus-property! cm 'element m)
+ (ly-set-mus-property! cm 'context-type context)
(if (and (pair? rest) (string? (car rest)))
- (ly-set-mus-property cm 'context-id (car rest))
+ (ly-set-mus-property! cm 'context-id (car rest))
)
cm
))
(define (make-sequential-music elts)
(let* ((m (ly-make-music "Sequential_music")))
- (ly-set-mus-property m 'elements elts)
+ (ly-set-mus-property! m 'elements elts)
m
))
(define (make-simultaneous-music elts)
(let* ((m (ly-make-music "Simultaneous_music")))
- (ly-set-mus-property m 'elements elts)
+ (ly-set-mus-property! m 'elements elts)
m
))
(define (music-separator? m)
(let* ((es (ly-get-mus-property ch 'elements)))
- (ly-set-mus-property ch 'elements
+ (ly-set-mus-property! ch 'elements
(voicify-list (split-list es music-separator?) 0))
ch
))
(e (ly-get-mus-property m 'element))
)
(if (pair? es)
- (ly-set-mus-property m 'elements (map voicify-music es)))
+ (ly-set-mus-property! m 'elements (map voicify-music es)))
(if (music? e)
- (ly-set-mus-property m 'element (voicify-music e)))
+ (ly-set-mus-property! m 'element (voicify-music e)))
(if
(and (equal? (ly-music-name m) "Simultaneous_music")
(reduce (lambda (x y ) (or x y)) (map music-separator? es)))
conversions.append (((1,5,62), conv,
'visibility-lambda -> break-visibility'))
+
+if 1:
+ def conv (str):
+ str = re.sub ('ly-set-grob-property', 'ly-set-grob-property!', str)
+ str = re.sub ('ly-set-mus-property', 'ly-set-mus-property!', str)
+ return str
+
+ conversions.append (((1,3,138), conv, 'ly-set-X-property -> ly-set-X-property!'))
################################