lilypond-user
[Top][All Lists]
Advanced

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

Re: Unusual beaming for piano music


From: Thomas Morley
Subject: Re: Unusual beaming for piano music
Date: Sat, 25 Mar 2017 13:38:14 +0100



2017-03-24 22:25 GMT+01:00 Thomas Morley <address@hidden>:


2017-03-24 2:13 GMT+01:00 Andrew Bernard <address@hidden>:

Hi All,

 

I have an unusual beaming situation in the piano work I am setting. The composer I work with is fussy (very) about his visual gestures in notation and it is incumbent on me to reproduce the beaming seen in the attached image. The issue I am having difficulty with is where the beam for the spanned group goes from up to down with no break – at the point where the “treble^8” clef is introduced. Are there any smart solutions to such a situation?

 

I can ask to have this notated differently, but it would go against various large scale structural patterns in the music. [Yes, we know it does not follow engraving rules 😊]  So a technical lilypond solution would be great.

 

Andrew



Sorry to say, I usually throw away scores where the composer obfuscates things.

Anyway, here my attempt, some heavy ugliness in it, though, (see comments inline)

\version "2.19.57"

stemBeams =
#(define-music-function (l1 l2)(list? list?)
#{
  \once \override Stem.beaming = #(cons l1 l2)
#})


\layout {
  \override NoteHead.stem-attachment = #'(0 . 0)
  \context {
    \Score
    proportionalNotationDuration = #(ly:make-moment 1/24)
    \override SpacingSpanner.uniform-stretching = ##t
  }
}

\new PianoStaff <<
\new Staff = "up"
  \with { \override VerticalAxisGroup.staff-staff-spacing.padding = 4 }
  {
  \cadenzaOn
  \stemUp
  \once \override Beam.positions = #'(8 . 8)
  b''!16[
  \stemBeams #'(0) #'(0 1)
  \times 4/5 { dis'' cis' dis'' b'! \stemBeams #'(0 1) #'(0) f''! }
  \stemBeams #'(0) #'(0 1)
  \times 4/5 { d' f''! bes' f''! \stemBeams #'(0 1) #'(0) gis' }
  \stemBeams #'(0) #'(0 1)
  b'!
  \stemBeams #'(0 1) #'(0)
  g''!
  \change Staff = "down"
  dis''!16]
 
  %% This one is really ugly, because the values are hardcoded
  %% Every slight change in layout will cause a new round of try-and-error :(
  %% Currently I see no convincing method to automate it.
  \once \override Beam.after-line-breaking =
  #(lambda (grob)
     ;; the (commented) line below prints the list to terminal
     ;; c/p this list and change the values until they fit your needs
     ;(pretty-print (ly:grob-property grob 'beam-segments))
     (ly:grob-set-property! grob 'beam-segments
       '(((vertical-count . 0)
          (horizontal 55.65 . 85.5911087716535))
         ((vertical-count . 1)
          (horizontal 55.65 . 74.7368967716535))
         ((vertical-count . 1)
          (horizontal 76.9068967716535 . 78.8368967716535))
         ((vertical-count . 1)
          (horizontal 80.5068967716535 . 85.5911087716535))
         ((vertical-count . 2)
          (horizontal 55.65 . 58.3142607716535))
         ((vertical-count . 2)
          (horizontal 61.1842607716535 . 62.34926077165349))
         ((vertical-count . 2)
          (horizontal 73.5718967716535 . 74.7368967716535))
         ((vertical-count . 2)
          (horizontal 76.9068967716535 . 78.8368967716535))
         ((vertical-count . 2)
          (horizontal 80.5068967716535 . 82.4368967716535))))
          )

         
  \once \override Beam.positions = #'(-5 . -5)
  \once \override Score.NoteColumn. X-offset = -1.2
  \stemBeams #'(0 1 2) #'(0 1)
  \change Staff = "up"
  \stemDown
  fis'''!32[
  \change Staff = "down"
  \stemUp
 
  %% Remark
  %% I don't understand those strange values for Stem.beaming following below
  %% and the need to set them in first place at all
  %% Causing the need to correct some with the override for 'beam-segments above
  \stemBeams #'(0 1) #'(-1 0 1)
  gis''!32
  \change Staff = "up"
  \stemDown
  \stemBeams #'(-1 0 1) #'(-1 0 )
  a'''!16 cis'''! cis'''!
  \stemBeams #'(0 1 2) #'(0)
  a'''!32
  \change Staff = "down"
  \stemUp
  \stemBeams #'(0) #'(-2 -1 0)
  dis'''!32
  \change Staff = "up"
  \stemDown
  \stemBeams #'(-1 0 1) #'(-1)
  g'''!
  \change Staff = "down"
  \stemUp
  \stemBeams #'(0) #'(-2 -1 0)
  cis''' !
  \change Staff = "up"
  \stemDown
  bes'''! fis'''!16]
}

\new Staff = "down" {
    s2 s4 s32
    \times 4/5 {  gis''16[ dis''! gis''! ais'' b''!] }
    dis'''!
    s8
}
>>

Cheers,
  Harm

 

Attachment: atest-53.png
Description: PNG image


reply via email to

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