(if (pair? es)
(ly:music-set-property!
music 'elements
- (map (lambda (x) (naturalize x)) es)))
+ (map naturalize es)))
(if (ly:music? e)
(ly:music-set-property!
music 'element
(map (lambda (y) (ac:setduration y hemisemidur))
(ly:music-property music 'elements))
(set! uppernote (ly:music-deep-copy music))
- (map (lambda (y) (ac:up y))
+ (map ac:up
(filter
(lambda (z) (eq? 'NoteEvent (ly:music-property z 'name)))
(ly:music-property uppernote 'elements)))
(ly:music-property abovenote 'elements))
(map (lambda (y) (ac:setduration y gracedur))
(ly:music-property abovenoteTwo 'elements))
- (map (lambda (y) (ac:up y))
+ (map ac:up
(filter
(lambda (z) (eq? 'NoteEvent (ly:music-property z 'name)))
(ly:music-property abovenote 'elements)))
- (map (lambda (y) (ac:up y))
+ (map ac:up
(filter
(lambda (z) (eq? 'NoteEvent (ly:music-property z 'name)))
(ly:music-property abovenoteTwo 'elements)))
(ly:music-property gracenote 'elements))
(map (lambda (y) (ac:setduration y gracedur))
(ly:music-property belownote 'elements))
- (map (lambda (y) (ac:down y))
+ (map ac:down
(filter
(lambda (z) (eq? 'NoteEvent (ly:music-property z 'name)))
(ly:music-property belownote 'elements)))
(below (ly:music-deep-copy music))
(newmusic (make-sequential-music (list above music below music))))
(begin
- (map (lambda (y) (ac:down y))
+ (map ac:down
(filter
(lambda (z) (eq? 'NoteEvent (ly:music-property z 'name)))
(ly:music-property below 'elements)))
- (map (lambda (y) (ac:up y))
+ (map ac:up
(filter
(lambda (z) (eq? 'NoteEvent (ly:music-property z 'name)))
(ly:music-property above 'elements)))
"Constructs a filename in the form
@file{@var{original_filename}-@var{staff_instrument_name}.notes} if the
staff has an instrument name. If the staff has no instrument
-name, it uses "unnamed-staff" for that part of the filename."
+name, it uses \"unnamed-staff\" for that part of the filename."
(let* ((inst-name (ly:context-property context 'instrumentName)))
(string-concatenate (list
(substring (object->string (command-line))
(define (offset-control-points offsets)
(if (null? offsets)
coords
- (map
- (lambda (x y) (coord-translate x y))
- coords offsets)))
+ (map coord-translate coords offsets)))
(define (helper sibs offs)
(if (pair? offs)
(let* ((elts (filter is-event-chord? (ly:music-property seq 'elements)))
(alist (map chord-to-exception-entry elts)))
- (filter (lambda (x) (cdr x)) alist)))
+ (filter cdr alist)))
;; The final stencil: lined-up bows
(apply ly:stencil-add
(map
- (lambda (stil pt) (ly:stencil-translate stil pt))
+ ly:stencil-translate
(circular-list init-bow-up init-bow-down)
list-of-starts))))
(format #f "~s" string)
string))
(markup->lily-string text)))
- (map-in-order (lambda (m) (music->lily-string m))
+ (map-in-order music->lily-string
(ly:music-property lyric 'articulations))))
(define-display-method BreathingEvent (event)
"\n\n"
(if (pair? (node-children node))
(texi-menu
- (map (lambda (x) (menu-entry x))
- (node-children node)))
+ (map menu-entry (node-children node)))
""))
port)
(for-each (lambda (x) (dump-node x port (+ 1 level)))
(list pitch))
((pair? elements)
- (append-map
- (lambda (x) (make-scale x))
- elements))
+ (append-map make-scale elements))
((ly:music? element)
(make-scale element)))))
(number-pair? offsets)))
(coord-translate arg offsets))
((and (number-pair-list? arg) (number-pair-list? offsets))
- (map
- (lambda (x y) (coord-translate x y))
- arg offsets))
+ (map coord-translate arg offsets))
(else arg)))
(define-public (grob-transformer property func)
pure or unpure values. @var{func} is called with the respective grob
as first argument and the default value (after resolving all callbacks)
as the second."
- (define (worker self container-part grob . rest)
+ (define (worker self caller grob . rest)
(let* ((immutable (ly:grob-basic-properties grob))
;; We need to search the basic-properties alist for our
;; property to obtain values to offset. Our search is
(target (find-value-to-offset property self immutable))
;; if target is a procedure, we need to apply it to our
;; grob to calculate values to offset.
- (vals (cond ((procedure? target) (target grob))
- ;; Argument lists for a pure procedure pulled
- ;; from an unpure-pure-container may be
- ;; different from a normal procedure, so we
- ;; need a different code path and calling
- ;; convention for procedures pulled from an
- ;; container as opposed to from the property
- ((ly:unpure-pure-container? target)
- (let ((part (container-part target)))
- (if (procedure? part)
- (apply part grob rest)
- part)))
- (else target))))
+ (vals (apply caller target grob rest)))
(func grob vals)))
;; return the container named `self'. The container self-reference
;; seems like chasing its own tail but gets dissolved by
;; define/lambda separating binding and referencing of "self".
(define self (ly:make-unpure-pure-container
(lambda (grob)
- (worker self ly:unpure-pure-container-unpure-part grob))
+ (worker self ly:unpure-call grob))
(lambda (grob . rest)
- (apply worker self ly:unpure-pure-container-pure-part
- grob rest))))
+ (apply worker self ly:pure-call grob rest))))
self)
(define-public (offsetter property offsets)
the extents of @code{BreakAlignment} grobs associated with the left and
right bounds of a @code{MeasureCounter} spanner. Broken measures are
numbered in parentheses."
- (let* ((num (markup (number->string (ly:grob-property grob 'count-from))))
+ (let* ((num (make-simple-markup
+ (number->string (ly:grob-property grob 'count-from))))
(orig (ly:grob-original grob))
(siblings (ly:spanner-broken-into orig)) ; have we been split?
(num
(make-engraver
(listeners
- ((measure-counter-event engraver event)
- (cond
- ((and (= START (ly:event-property event 'span-direction))
- go?)
- (set! stop? #t)
- (ly:input-warning
- (ly:event-property event 'origin)
- "count not ended before another begun"))
- ((= START (ly:event-property event 'span-direction))
- (set! go? #t)
- ;; initialize one less so first measure receives a count spanner
- (set! last-measure-seen
- (1- (ly:context-property context 'currentBarNumber))))
- ((= STOP (ly:event-property event 'span-direction))
- (set! stop? #t)
- (set! go? #f)))))
+ ((measure-counter-event engraver event)
+ (cond
+ ((and (= START (ly:event-property event 'span-direction))
+ go?)
+ (set! stop? #t)
+ (ly:input-warning
+ (ly:event-property event 'origin)
+ "count not ended before another begun"))
+ ((= START (ly:event-property event 'span-direction))
+ (set! go? #t)
+ ;; initialize one less so first measure receives a count spanner
+ (set! last-measure-seen
+ (1- (ly:context-property context 'currentBarNumber))))
+ ((= STOP (ly:event-property event 'span-direction))
+ (set! stop? #t)
+ (set! go? #f)))))
((process-music trans)
(let ((col (ly:context-property context 'currentCommandColumn))
(set! (ly:grob-property c 'count-from) (+ counter elapsed))
(set! count-spanner c)
(set! elapsed (1+ elapsed))))))
- (set! last-measure-seen current-bar)))
+ (set! last-measure-seen current-bar)))
((finalize trans)
(if go?
((eq? head 'rotate-stencil) (interpret (caddr expr)))
((eq? head 'translate-stencil) (interpret (caddr expr)))
((eq? head 'combine-stencil)
- (for-each (lambda (e) (interpret e)) (cdr expr)))
+ (for-each interpret (cdr expr)))
(else
(collect (fold-false-pairs (strip-floats expr))))