Flaming Hakama Design Consultancy

Dressed to Kill: Attire for Martial Arts

Full-bar Rests in Lilypond

Multi-measure Rests

Print the bar number range below a multi measure rest

\layout {
  \override Score.BarNumber.break-visibility = ##(#t #t #t)
}

fancyMultiMeasureRestNumber = {
  \applyOutput Voice.MultiMeasureRestNumber
  #(lambda (g c p)
     (let* ((currentBarNumber (ly:context-property c 'currentBarNumber))
            (mmr-length
             (ly:moment-main
              (ly:prob-property (ly:grob-property g 'cause) 'length))))
       (ly:grob-set-property! g 'text
         #{
           \markup
           \center-column {
             #(number->string mmr-length)
             %% value found by try and error
             \translate #'(0 . -7.5)
             \with-dimensions #empty-interval #empty-interval
             \halign #CENTER
             \line
             #(list (number->string currentBarNumber)
                " - "
                (number->string (1- (+ currentBarNumber mmr-length))))
           }
         #})))
  \compressFullBarRests
}

{
  c'1
  \fancyMultiMeasureRestNumber R1*14
  c'1
}

Writing repeated notes

;

I know that I can write

\repeat unfold 8 { bf8 }

instead of

bf8 bf bf bf bf bf bf bf

But is there a simpler way?  Perhaps something along the lines of

bf8*8

(which, as it stands, doesn’t work, of course).

It does work, but you probably don’t like its result.  At any rate, I
like

bf8 8 8 8 8 8 8 8

better.  Particularly useful for percussion, but generally useful for
rhythmical patterns on the same pitch/chord.  It doesn’t save all that
much typing but the result tends to be clearer to read when leaving off
the pitches rather than the lengths.

 

It’s not an exception, only an R will be printed multiple times if it crosses barlines. Try this:

%%%%%%%
\version “2.18”
{ \time 2/4 R1 }
%%%%%%%

No * there, but it still prints two full-bar rests.

Re: Repeated notes
Well, if not an exception so at least another behavior than the one I described in my first sentence. Try your example with R1 replaced with r1 and you will see what I mean. You may call it anything you want.