lilypond-user
[Top][All Lists]
Advanced

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

Re: Vertical dashed line conecting notes


From: Caio Barros
Subject: Re: Vertical dashed line conecting notes
Date: Thu, 4 Mar 2010 20:07:19 -0300

That didn't work.
Maybe you are using another incompatible version? I'm using version 2.12.1
But his seems so complicated to me that is better just edit the score in inkscape or something.

2010/3/4 Neil Puttock <address@hidden>
On 4 March 2010 18:39, Caio Barros <address@hidden> wrote:
> Ok, the grid lines seems to align with the NoteHeads, but how do I draw them
> dashed?

There's currently no support for dashed lines, but it's possible to
force grid lines to use a dashed barline via a custom print callback:

#(define-public (grid-line-dashed grob)
  (let ((elts (ly:grob-object grob 'elements)))

    (if (ly:grob-array? elts)
        (let ((common (ly:grob-common-refpoint-of-array grob elts Y))
              (iv empty-interval))

          (for-each (lambda (idx)
                      (let ((point (ly:grob-array-ref elts idx)))
                        (set! iv
                              (interval-union
                               iv (ly:grob-extent point common Y)))))
                    (iota (ly:grob-array-length elts)))

          (if (interval-sane? iv)
              (let ((thick (* (ly:grob-property grob 'thickness 1)
                              (ly:staff-symbol-line-thickness grob))))

                (set! iv (interval-translate
                          iv (- (ly:grob-relative-coordinate grob common Y))))
                (set! (ly:grob-property grob 'bar-size) (interval-length iv))
                (set! (ly:grob-property grob 'glyph-name) "dashed")
                (ly:stencil-translate-axis
                 (ly:bar-line::print grob)
                 (- (+ (interval-length iv)
                       (/ (ly:staff-symbol-staff-space grob) 2)))
                 Y))
              empty-stencil))
        (begin
          (ly:grob-suicide! grob)
          '()))))

\layout {
 \context {
   \Voice
   \consists "Grid_point_engraver"
   gridInterval = #(ly:make-moment 1 4)

 }
 \context {
   \Score
   \consists "Grid_line_span_engraver"
   \override GridLine #'stencil = #grid-line-dashed
 }
}

\score {
 \new ChoirStaff <<
   \new Staff \relative c'' {
     \stemUp
     c4. d8 e8 f g4
   }
   \new Staff \relative c {
     \clef bass
     \stemDown
     c4 g' f e
   }
 >>
}

Regards,
Neil


reply via email to

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