lilypond-user
[Top][All Lists]
Advanced

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

Re: Automatization


From: Valentin Petzel
Subject: Re: Automatization
Date: Wed, 20 Jul 2022 11:19:35 +0200

Hello Vincent,

first of all you can achieve the same thing maybe slightly more transparently 
like this, which also allows for modification of the stencil:

#(define (white-under grob) (grob-interpret-markup grob
   (markup #:vcenter #:whiteout #:pad-x 1 (ly:grob-property grob 'text))))

inlineMMRNa = {
   \once \override MultiMeasureRest.layer = #-2
   \once \override MultiMeasureRestNumber.layer = #-1
   \once \override MultiMeasureRestNumber.Y-offset = #0
   \once \override MultiMeasureRestNumber.stencil = #white-under
}

inlineMMRNb = {
   \once \override MultiMeasureRest.layer = #-2
   \once \override MultiMeasureRestNumber.layer = #-1
   \once \override MultiMeasureRestNumber.Y-offset = #ly:self-alignment-
interface::y-aligned-on-self
   \once \override MultiMeasureRestNumber.self-alignment-Y = #CENTER
   \once \override MultiMeasureRestNumber.whiteout = #10
}

<<
\new Staff
{
  \compressEmptyMeasures
  \inlineMMRNa R1*12
  % overriding the MMNR stencil:
  \inlineMMRNa \once\override MultiMeasureRestNumber.stencil =
    #(grob-transformer 'stencil (lambda (grob orig) (circle-stencil orig 0.2 
0.3)))
  R1*12
  % other way round
  \once\override MultiMeasureRestNumber.stencil =
    #(grob-transformer 'stencil (lambda (grob orig) (circle-stencil orig 0.2 
0.3)))
  \inlineMMRNa R1*12
}
\new Staff
{
  \compressEmptyMeasures  \inlineMMRNb R1*12
  % overriding the MMNR stencil:
  \inlineMMRNb \once\override MultiMeasureRestNumber.stencil =
    #(grob-transformer 'stencil (lambda (grob orig) (circle-stencil orig 0.2 
0.3)))
  R1*12
  % other way round
  \once\override MultiMeasureRestNumber.stencil =
    #(grob-transformer 'stencil (lambda (grob orig) (circle-stencil orig 0.2 
0.3)))
  \inlineMMRNb R1*12
}
>>

To get this to work for all MultiMeasureRests, simply replace the \once by a 
\temporary and use \revert to get back to the original behaviour, like this:

inlineMMRNon = {
   \once \override MultiMeasureRest.layer = #-2
   \once \override MultiMeasureRestNumber.layer = #-1
   \once \override MultiMeasureRestNumber.Y-offset = #ly:self-alignment-
interface::y-aligned-on-self
   \once \override MultiMeasureRestNumber.self-alignment-Y = #CENTER
   \once \override MultiMeasureRestNumber.whiteout = #10
}

inlineMMRNoff = {
   \revert MultiMeasureRest.layer
   \revert MultiMeasureRestNumber.layer
   \revert MultiMeasureRestNumber.Y-offset
   \revert MultiMeasureRestNumber.self-alignment-Y
   \revert MultiMeasureRestNumber.whiteout
}


{
  \compressEmptyMeasures
  R1*12
  \inlineMMRNon
  R1*12
  R1*12
  \inlineMMRNoff
  R1*12
  \once\inlineMMRNon
  R1*12
  R1*12
}

Cheers,
Valentin

Am Mittwoch, 20. Juli 2022, 09:34:42 CEST schrieb Vincent Gay:
> Hello everyone,
> 
> I use the inlineMMRN function below whenever I think of it to display
> the number of bars of rests IN the staff. I find that it gains in
> readability when the scores are a bit heavy with textual indications.
> 
> 
> The problem is in the "every time I think of it". Is there by any chance
> a way to automate this without having to call the function every time?
> 
> Thanks in advance and have a nice day
> 
> 
> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
> #(define (white-under grob) (grob-interpret-markup grob
>    (markup #:vcenter #:whiteout #:pad-x 1 (ly:grob-property grob 'text))))
> 
> inlineMMRN = {
>    \once \override MultiMeasureRest.layer = #-2
>    \once \override MultiMeasureRestNumber.layer = #-1
>    \once \override MultiMeasureRestNumber.Y-offset = #0
>    \once \override MultiMeasureRestNumber.stencil = #white-under
> }
> 
> 
> { \compressEmptyMeasures  \inlineMMRN R1*12  }

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


reply via email to

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