E.g.:
\version "2.19.35"
compressPercentRepeat =
#(define-music-function (repeats notes) (integer? ly:music?)
(let* (
(mea (ly:music-length notes))
(num (ly:moment-main-numerator mea))
(den (ly:moment-main-denominator mea))
(dur (ly:make-duration 0 0 (* num (1- repeats)) den)))
#{
#notes
\set Score.restNumberThreshold = #1
\set Score.skipBars = ##t
\temporary\override MultiMeasureRest.stencil = #ly:multi-measure-rest::percent
\temporary\override MultiMeasureRestNumber.stencil =
#(lambda (grob)
(grob-interpret-markup grob
(markup #:concat
( ;; Optional:
;#:fontsize -3 "x"
#:fontsize -2 (number->string repeats)))))
\temporary\override MultiMeasureRest.thickness = #0.48
\temporary\override MultiMeasureRest.Y-offset = #0
#(make-music 'MultiMeasureRestMusic 'duration dur)
\revert MultiMeasureRest.Y-offset
\revert MultiMeasureRest.thickness
\revert MultiMeasureRestNumber.stencil
\revert MultiMeasureRest.stencil
\unset Score.skipBars
\unset Score.restNumberThreshold
#}))
%%%% Test:
soloInstrumentOne = \relative {
\time 4/4
c'4 c c c
\compressPercentRepeat #8 { c'4 c c c }
\break
c,4 c c c
\bar "|."
}
soloInstrumentTwo = \relative {
\repeat unfold 10 { c''4 c c c }
}
\markup\italic "Orchestral score:"
\score {
\new StaffGroup <<
\new Staff
\with { instrumentName = "Inst 1" }
\soloInstrumentOne
\new Staff
\with { instrumentName = "Inst 2" }
\soloInstrumentTwo
>>
}
\markup\italic "Solo score:"
\score {
\new Staff
\with { instrumentName = "Inst 1" }
\soloInstrumentOne
}
\layout {
ragged-last = ##t
}
Cheers,