[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Multi-measure rest with measure numbers
From: |
Jay Anderson |
Subject: |
Multi-measure rest with measure numbers |
Date: |
Sat, 22 Jan 2011 14:26:00 -0700 |
Essentially, I want to write R1*10 and have it be equivalent to
writing something like R1*10_"[101-110]". I've never played with
engravers before so this seemed like a good excuse. I have the minimal
start below. Questions:
- How do I create and attach the multi-measure rest text? I can use
make-music to create the text event, but I'm not sure what to do with
it.
Thanks for the help.
-----Jay
\version "2.13.46"
#(define (make-multimeasure-text-event text)
(make-music
'MultiMeasureTextEvent
'direction
-1
'text
text
'tags
'()))
#(define mmrest-num-engraver
(lambda (context)
`((acknowledgers
(multi-measure-rest-interface
.
,(lambda (engraver grob source-engraver)
(let* ((start-num (ly:context-property context 'currentBarNumber))
(rest-duration (ly:duration-length
(ly:prob-property (ly:grob-property grob 'cause) 'duration)))
(measure-length (ly:context-property context
'measureLength))
(measure-count (ly:moment-div rest-duration
measure-length))
(end-num (+ (- start-num 1)
(ly:moment-main-numerator measure-count)))
(text (string-append "[" (number->string
start-num) "-" (number->string end-num) "]")))
(display text))))))))
\score
{
\new Staff
\with { \consists #mmrest-num-engraver }
\relative c'
{
\time 4/4
\compressFullBarRests
R1*10 | % => R1*10_"[1-10]" |
c1 |
R1*5 |
c1 |
R1 |
\time 3/4
c2. |
R2.*3 |
R1.*2 |
}
}
- Multi-measure rest with measure numbers,
Jay Anderson <=