lilypond-user
[Top][All Lists]
Advanced

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

Re: Replace with red dot


From: Valentin Petzel
Subject: Re: Replace with red dot
Date: Tue, 03 Oct 2023 09:15:51 +0200

You are doing

<< { c'2. } \new Voice { \redDotMultiMeasureRest R1 } >>

but a 3/4 measure only has length 2. . So do

<< { c'2. } \new Voice { \redDotMultiMeasureRest R2. } >>

instead.

While you are at it: You can directly boxify the stencil using box-stencil 
without going the extra way over a markup. Also you could format your code in 
a more readable manner (which helps understanding problems) like this:

\version "2.22.0"
\language english
boxify =
#(define-music-function
  (grob-path) (key-list?)
  (define proc
    (grob-transformer 'stencil
                      (lambda (grob orig) (box-stencil orig 0.1 1.25))))
  #{ \override $grob-path . stencil = #proc #})

#(define (center-stencil stil)
   (ly:stencil-aligned-to (ly:stencil-aligned-to stil X CENTER) Y CENTER))

redDotMultiMeasureRest = {
  \override MultiMeasureRest.stencil =
  #(grob-transformer
    'stencil
    (lambda (grob default)
      (ly:stencil-translate-axis
       (center-stencil (ly:text-interface::print grob))
       (interval-center (ly:stencil-extent default X))
       X)))

  \override MultiMeasureRest.text = "."
  \override MultiMeasureRest.font-size = 10
  \override MultiMeasureRest.color = "#FF0000"
}

\header { tagline = ##f }

\score {
  \new RhythmicStaff {
    \override Score.SpacingSpanner.strict-note-spacing = ##t
    \set Score.proportionalNotationDuration = #(ly:make-moment 1/8)
    \set Timing.beamHalfMeasure = ##f
    \override Staff.MeasureCounter.staff-padding = #4.5
    \set Staff.midiInstrument = #"acoustic grand" \key c \major
    \numericTimeSignature \time 3/4 \clef treble
    \startMeasureCount \hideNotes
    << { c'2. } \new Voice { \redDotMultiMeasureRest R2. } >>
    << { 4 4 4 } \new Voice { \redDotMultiMeasureRest R2. } >>                  
                                     
    \stopMeasureCount \bar "||"
  }
  \layout {
    \context {
      \RhythmicStaff
      \consists Measure_counter_engraver
      \boxify MeasureCounter
    }
  }
}

Cheers,
Valentin

Am Dienstag, 3. Oktober 2023, 05:39:53 CEST schrieb Rajesh Baskar:
> Hi,
> 
> Can someone please help me? I'm trying to hide the notes and display a
> red dot in the middle. This below should have only 2 measure but it
> prints 3 and there are some errors.
> 
> Thanks,
> Raj
> 
> \version "2.22.0" \language english
> boxify = #(define-music-function (grob-path) (key-list?) (define proc
> (grob-transformer 'stencil (lambda (grob orig)
>              (grob-interpret-markup grob
>                #{ \markup \override #'(box-padding . 1.25) \override
> #'(thickness . 1)
>                   \box \stencil #orig #})))) #{ \override $grob-path .
> stencil = #proc #})
> #(define (center-stencil stil) (ly:stencil-aligned-to
> (ly:stencil-aligned-to stil X CENTER) Y CENTER))
> redDotMultiMeasureRest = { \override MultiMeasureRest.stencil =
> #(grob-transformer 'stencil (lambda (grob default)
>                             (ly:stencil-translate-axis (center-stencil
> (ly:text-interface::print grob)) (interval-center (ly:stencil-extent
> default X)) X)))
>                             \override MultiMeasureRest.text = "."
>                             \override MultiMeasureRest.font-size = 10
>                             \override MultiMeasureRest.color = "#FF0000" }
> \header {tagline = ##f } \score {\new RhythmicStaff { \override
> Score.SpacingSpanner.strict-note-spacing = ##t
>                                                        \set
> Score.proportionalNotationDuration = #(ly:make-moment 1/8)
>                                                        \set
> Timing.beamHalfMeasure = ##f
>                                                        \override
> Staff.MeasureCounter.staff-padding = #4.5
>                                                        \set
> Staff.midiInstrument = #"acoustic grand" \key c \major
> \numericTimeSignature \time 3/4 \clef treble
> \startMeasureCount \hideNotes
>                                                        << { c'2. } \new
> Voice { \redDotMultiMeasureRest R1 } >>
>                                                        << { 4 4 4 } \new
> Voice { \redDotMultiMeasureRest R1 } >>
> \stopMeasureCount \bar "||"}
>                                   \layout { \context { \RhythmicStaff
> \consists Measure_counter_engraver \boxify MeasureCounter } } }

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


reply via email to

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