lilypond-user
[Top][All Lists]
Advanced

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

Re: Cluster fill-style


From: Simon Bailey
Subject: Re: Cluster fill-style
Date: Fri, 27 May 2022 19:57:06 +0100

Jean,

That's absolutely amazing, thanks so much!

However, unlike the "regular" clusters, it doesn't extend to the barlines, leaving some empty holes. See attached screenshots. (I'm running 2.23.9 on Windows).

I can provide a MWE of my score if you'd like.

Thanks, kind regards,
sb


On Fri, 27 May 2022 at 17:09, Jean Abou Samra <jean@abou-samra.fr> wrote:
Le 27/05/2022 à 11:41, Simon Bailey a écrit :
> Hi,
>
> I'm in the process of typesetting some music that includes an
> electronic component – still working out the best way to show that in
> the score. Clusters might work, but is there any way to change the
> fill style, so it's not solid black? maybe dotted or hashed something?
>
> Thanks, kind regards,
> sb



That doesn't exist by default, but you can code it. See
the proof of concept below. Note that this requires a version
in the 2.23 series.

Best,
Jean



\version "2.23.9"

#(use-modules (ice-9 match))

#(define (cluster::dashed-fill grob)
    (let* ((columns (ly:grob-object grob 'columns))
           (column-list (ly:grob-array->list columns))
           (x-refp (ly:grob-common-refpoint-of-array grob columns X))
           (y-refp (ly:grob-common-refpoint-of-array grob columns Y))
           (exts (map (lambda (c)
                        (ly:grob-extent c y-refp Y))
                      column-list))
           (coords (map (lambda (c)
                          (ly:grob-relative-coordinate c x-refp X))
                        column-list))
           (details (ly:grob-property grob 'details))
           (increment (assq-ref details 'increment))
           (contour-thickness (assq-ref details 'contour-thickness))
           (polygon-points-1 (map cons coords (map car exts)))
           (polygon-points-2 (map cons coords (map cdr exts)))
           (polygon-stencil
            (ly:round-polygon (append-reverse polygon-points-1
polygon-points-2)
                              contour-thickness
                              1
                              #f)))
      (let loop ((exts exts)
                 (coords coords)
                 (current (car coords))
                 (stil empty-stencil))
        (if (null? (cdr coords))
            (ly:stencil-translate
             (ly:stencil-add stil polygon-stencil)
             (cons (- (ly:grob-relative-coordinate grob x-refp X))
                   (- (ly:grob-relative-coordinate grob y-refp Y))))
            (let* ((t (/ (- current (car coords))
                         (- (cadr coords)
                            (car coords))))
                   (1-t (- 1 t))
                   (ext1 (car exts))
                   (ext2 (cadr exts))
                   (lo (+ (* 1-t (car ext1))
                          (* t (car ext2))))
                   (hi (+ (* 1-t (cdr ext1))
                          (* t (cdr ext2))))
                   (part (ly:line-interface::line grob current lo
current hi))
                   (new-stil (ly:stencil-add stil part))
                   (next (+ current increment))
                   (stay (<= next (cadr coords))))
              (loop (if stay exts (cdr exts))
                    (if stay coords (cdr coords))
                    next
                    new-stil))))))

\layout {
   \context {
     \Voice
     \override ClusterSpanner.stencil = #cluster::dashed-fill
     \override ClusterSpanner.style = #'dashed-line
     \override ClusterSpanner.thickness = 1.5
     \override ClusterSpanner.dash-period = 0.6
     \override ClusterSpanner.details.increment = 0.45
     \override ClusterSpanner.details.contour-thickness = 0.2
   }
}


\makeClusters { <c' c''>2 <d' a'> <g' f'''> <f g''> }





--
Do not meddle in the affairs of trombonists, for they are subtle and quick to anger.

Attachment: 2022-05-27 19_51_04-~_Documents_sheetmusic_notabailey_Contemporary_Triendl_Zyklus VI_NB-HTR-2022-01-.png
Description: PNG image

Attachment: 2022-05-27 19_50_37-~_Documents_sheetmusic_notabailey_Contemporary_Triendl_Zyklus VI_NB-HTR-2022-01-.png
Description: PNG image


reply via email to

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