lilypond-user
[Top][All Lists]
Advanced

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

Re: Beginners questions - cross staff slurs.


From: Mark Polesky
Subject: Re: Beginners questions - cross staff slurs.
Date: Sun, 14 Sep 2008 16:37:49 -0700 (PDT)

B,

regarding the slurs, modifying the #'positions property of Slur would be the
ideal solution, but, for some reason, I couldn't make that solution work. I
opted to use the #'avoid-slur property of TextScript to make an acceptable
(but not ideal) appearance.

Other than that, I put a bunch of ideas in here. Don't expect it all to make
sense, but working with the online documentation should help you find your
way around this file.

Hope this helps,
Mark

\version "2.11.57"

% save code-clutter with identifiers:
       LH = \markup \halign #-0.5 \fontsize #-3 \sans L.H.
       RH = \markup \halign #-0.5 \fontsize #-3 \sans R.H.
  staffUp = \change Staff=upper
staffDown = \change Staff=lower

markRepeatTextOnce = {
  % format \mark for "D.C. al Fine" etc:
  \once \override Score.RehearsalMark
  #'break-visibility = #begin-of-line-invisible
  \once \override Score.RehearsalMark #'direction = #DOWN
  \once \override Score.RehearsalMark #'self-alignment-X = #2
  \once \override Score.RehearsalMark #'minimum-Y-extent = #'(0 . 2)
  \once \override Score.RehearsalMark #'font-size = #-0.5
}

removeOttavaBracketOnce = {
  % remove 8va bracket, and center the "8va":
  \once \override Staff.OttavaBracket #'stencil = #ly:text-interface::print
  \once \override Staff.OttavaBracket #'extra-offset = #'(-1 . 0)
}

% separate style from content:
\layout {
  \context {
    \Score
    % align rehearsal marks to bar-lines instead of clefs:
    \override RehearsalMark #'break-align-symbols = #'(bar-line)
    
    % default arpeggio placement a little too high for my taste:
    \override Arpeggio #'extra-offset = #'(0 . -0.25)
    
    %default arpeggio left-padding a little too tight for my taste:
    \override Arpeggio #'minimum-X-extent = #'(-1.25 . 0)
  }
  \context {
    \PianoStaff
    connectArpeggios = ##t
  }
}

% I prefer specifying the exact starting pitch with \relative:
upper = \relative g'
{
  \clef treble \key e \minor \time 6/8
  
  % remove the "s1*0":
  \mark \markup {\musicglyph #"scripts.coda" }
  
  % align these 3 fermatas
  %   (without reverting, this affects last measure as well):
  \override Script #'staff-padding = #1.5
  
  <b e g>4\arpeggio\fermata
  <a dis fis>\arpeggio\fermata
  <g b e>\arpeggio\fermata |
  
  % even if you use the same staff-padding for the last measure,
  % it's a good idea to avoid leaving layout settings in effect
  % when you don't need them anymore. They can cause confusing 
  % effects pages later... ie. always pair \override with \revert
  % unless you're using \once:
  \revert Script #'staff-padding
  
  % use identifiers defined above to save code-clutter:
  r8. \staffDown r \staffUp r \staffDown r \staffUp |
  
  % using _\LH identifier from above:
  \stemDown e16^([ g_\LH b] \stemUp
  
  % move the "R.H." down and to the left:
  \once \override TextScript #'extra-offset = #'(-1.5 . -4.5)
  e^\RH[ g b])
  
  % add vertical padding between fermata and staff (subtle, but nicer):
  \once \override Script #'staff-padding = #1
  
  % override default spacing to suit taste (also so "8va" isn't squished).
  \once \override Score.SpacingSpanner
    #'common-shortest-duration = #(ly:make-moment 1 32)
  \newSpacingSection
  
  % using the \removeOttavaBracketOnce identifier defined above to format 8va
  \removeOttavaBracketOnce \ottava #1 <e, g b e>4.\arpeggio_\fermata \ottava #0
  
  % end with a proper double-bar:
  \bar "|."
}

% again, with the exact pitch (your LH first measure was an octave too high):
lower = \relative b
{
  % don't forget key-signatures in all staves:
  \clef bass \key e \minor
  
  <b e>4\arpeggio _\fermata
  <b dis>\arpeggio _\fermata
  <b e>\arpeggio _\fermata |
  
  % this is one solution to your slur problem:
  \override TextScript #'avoid-slur = #'inside
  
  e,,16^([ g_\LH b] \staffUp e[ g_\RH b])
  \staffDown e,([ g_\LH b] \staffUp e[ g_\RH b]) \staffDown 
  r8. r r r 
  
  % using the \markRepeatTextOnce identifier defined above to format "Fine":
  \markRepeatTextOnce \mark Fine |
}

\score {
  \new PianoStaff <<
  \new Staff = "upper" \upper
  \new Staff = "lower" \lower
  >>
  % removed \layout block from here because it's already above.
}


      




reply via email to

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