Hi Trevor, 2008/10/25 Trevor Daniels <[EMAIL PROTECTED]>: > Carl > > But how do you revert entries like this: > > ((end * * 6 8) . #f) ;; switch-off at-any-beat feature
The simplest way would be to add a function to switch this back on:
#(define (revert-property-setting context property setting)
"Like the C++ code that executes \revert, but without type
checking. "
(define (revert-member alist entry new)
"Return ALIST, with ENTRY removed. ALIST is not modified, instead
a fresh copy of the list-head is made."
(cond
((null? alist) new)
((equal? (car alist) entry) (revert-member (cdr alist) entry new))
(else (revert-member (cdr alist) entry (cons (car alist) new)))))
(ly:context-set-property!
context property
(revert-member (ly:context-property context property) setting '())))
#(define (allow-at-any-beat num den)
(ly:export
(context-spec-music
(make-apply-context (lambda (c)
(revert-property-setting
c 'autoBeamSettings
(cons `(end * * ,num ,den) #f))))
'Voice)))
\relative c'' {
#(set-time-signature 6 8 '())
#(allow-at-any-beat 6 8)
#(revert-auto-beam-setting '(end * * 6 8) 3 8)
#(revert-auto-beam-setting '(end 1 32 6 8) 1 8)
#(revert-auto-beam-setting '(end 1 32 6 8) 1 4)
#(revert-auto-beam-setting '(end 1 32 6 8) 1 2)
#(revert-auto-beam-setting '(end 1 32 6 8) 5 8)
a8 a a a a a
\set beatGrouping = #'(2 2 2)
a8 a a a a a
}
A better solution might be to rewrite revert-auto-beam-setting so that
the args for beat begin/end are moved to the optional argument list
(which is currently only used for the context).
Regards,
Neil
<<attachment: any-beat.png>>
_______________________________________________ lilypond-user mailing list [email protected] http://lists.gnu.org/mailman/listinfo/lilypond-user
