lilypond-user
[Top][All Lists]
Advanced

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

Re: Using showStaffSwitch only for non-beamed notes


From: Aaron Hill
Subject: Re: Using showStaffSwitch only for non-beamed notes
Date: Sat, 22 Feb 2020 12:54:16 -0800
User-agent: Roundcube Webmail/1.4.2

On 2020-02-22 10:47 am, Gilberto Agostinho wrote:
Would anyone have an idea of how could I use \showStaffSwitch only for
non-beamed notes? I think these switch lines tend to be omitted when notes
are beamed, since the voicing is obvious in those cases.

Something like this might work:

%%%%
\version "2.19.82"

whenSharedBeam = #(lambda (grob)
  (define (beam-from-notehead nh)
    (let* ((nc (ly:grob-parent nh X))
           (stem (ly:grob-object nc 'stem)))
      (if (ly:grob? stem) (ly:grob-object stem 'beam) '())))
  (let* ((lb (beam-from-notehead (ly:spanner-bound grob LEFT)))
         (rb (beam-from-notehead (ly:spanner-bound grob RIGHT))))
    (and (ly:grob? lb) (ly:grob? rb) (eq? lb rb))))

\layout {
  \context {
    \Voice
    \override VoiceFollower.transparent = \whenSharedBeam
  }
}

\autochange {
  \showStaffSwitch
  c2 g'4 f8. f'16 b'8 a fis2.
}
%%%%

The principle is to check whether the NoteHeads being connected by the VoiceFollower have a shared Beam.


-- Aaron Hill



reply via email to

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