lilypond-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Compressing percent repeats.


From: Michael Gerdau
Subject: Re: Compressing percent repeats.
Date: Fri, 22 Jan 2016 23:59:33 +0100
User-agent: KMail/5.1.1 (Linux/4.3.3-3-ARCH; KDE/5.18.0; x86_64; ; )

Hi Pierre,

> \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)))))

Shouldn't this be
                #:fontsize -2 (number->string (- repeats 1))))))

>             \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
> }

Kind regards,
Michael
-- 
 Michael Gerdau       email: address@hidden
 GPG-keys available on request or at public keyserver

Attachment: signature.asc
Description: This is a digitally signed message part.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]