lilypond-user
[Top][All Lists]
Advanced

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

Re: Is this reasonable/playable (guitar)?


From: David Kastrup
Subject: Re: Is this reasonable/playable (guitar)?
Date: Sat, 08 Mar 2014 10:42:36 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3.50 (gnu/linux)

Marc Hohl <address@hidden> writes:

> Am 08.03.2014 09:32, schrieb David Kastrup:
>>
>> Not that hard.  Except that with
>>
>>        << { \set tieWaitForNote = ##t
>>         r8 a' d e f\3~ a\2~ | <f a d>2 } \\
>>       { d,2.~ | d2 }
>>        >> r4
>>
>> the string indication on the first f is not really a mere matter of
>> style any more.  So I probably should print it in the score.  Which is a
>> nuisance as I suppressed the numbers staff-wide so far.
>
> You may insert a barré indicator for the tenth fret or a bracket for
> f, a and d to indicate that these three notes have to be fretted with
> the index finger.

Pffft.  Is this for real?  What a nuisance to get this looking
half-civil...

\version "2.18.0"

\header {
  title = "Greensleeves"
  composer = "Traditional"
  mutopiacomposer = "Traditional"
  arranger = "David Kastrup"
  instrument = "vocals, guitar"
  style = "Renaissance"
  license = "Creative Commons Attribution-ShareAlike 4.0"
  maintainer = "David Kastrup"
  maintainerEmail = "address@hidden"
}

"\\<" =
#(define-event-function (parser location pos) (markup?)
  #{
     -\tweak outside-staff-horizontal-padding #0.7
     -\tweak bound-details.left.padding #0
     -\tweak bound-details.right.padding #-0.5
     -\tweak bound-details.left.text \markup \normal-text #pos
     -\tweak style #'line
     -\tweak bound-details.right.attach-dir #RIGHT
     \startTextSpan
  #})

"\\>" = \stopTextSpan

lyricsI = \lyricmode {
  \set stanza = "1."
  A -- las, my love, you do me wrong
  to cast me off dis -- cour -- teous -- ly.
  For I have lov'd thee well and long,
  de -- ligh -- ting in your com -- pa -- ny.
}

lyricsII = \lyricmode {
  \set stanza = "2."
  I have been rea -- dy at your hand,
  to grant what e -- ver thou wouldst crave,
  I have both wa -- gered life and land
  thy love and good -- will for to have.
}

lyricsIII = \lyricmode {
  \set stanza = "3."
  My men were cloth -- ed all in green,
  and they did e -- ver wait on thee.
  All this was gal -- lant to be seen,
  and yet thou wouldst not love __  _ me.
}

lyricsIV = \lyricmode {
  \set stanza = "4."
  Now I shall pray to God on high
  that thou my con -- stancy may -- est see
  and that once more be -- fore I die
  thou wilt vouch -- safe to love __ _ me.
}

lyricsV = \lyricmode {
  \set stanza = "5."
  Ah Green -- _ sleeves,
  \set ignoreMelismata = ##t now \unset ignoreMelismata
  fare -- well a -- dieu, __ _
  God I pray to pro -- sper thee.
  For I am still thy lo -- ver true,
  come once a -- gain and love __ _ me.
}

refrain = \lyricmode {
  Green -- sleeves was all my joy
  Green -- sleeves was my de -- light.
  Green -- sleeves was my heart of gold,
  and who but my la -- dy Green -- sleeves.
}

pattern =
#(define-music-function (parser location bass1 bass2 chord1 chord2)
  (ly:pitch? ly:pitch? ly:pitch? ly:pitch?)
  (make-relative (bass1 bass2 chord1 chord2)
   (make-event-chord (list bass1 bass2 chord1 chord2))
   #{ <<
        { r8 $bass2 [ <$chord1 $chord2 > $bass2 <$chord1 $chord2 > $bass2 ] | } 
\\
        $bass1 2.
      >>
   #}))
      
guitar = \relative {
  \key d \dorian
  \time 3/4
  \pattern d a' d f
  \pattern d a' d f
  \repeat volta 5 {
    \pattern f a d f
    \pattern d a' d f
    \pattern e g c e
    \pattern c g' c e
    \pattern f a d f
    \pattern d a' d f
    \pattern c g' c e
    \pattern a g' c e
    \pattern f' a d f
    \pattern d a' d f
    \pattern e g c e
    \pattern c g' c e
    \pattern d a' d f
    %%  \pattern a g' c e
    \pattern c a' c e
    \pattern d a' d f
    %%  \pattern a g' c e
    %%  \pattern f, a' c f
    d8 e f g a b\3
    << { c a <c f> a <c f> a } \\
       f,2.
    >>
    \pattern f' a c f
    \pattern e g c e
    \pattern c g' c e
    \pattern f a d f
    \pattern d a' d f
    \pattern c g' c e
    %%  \pattern a g' c e
    %%  \pattern f, a' c f
    \tuplet 3/2 4 { a8[ b c d e f g a b]_\3 }
    << { c a <c f> a <c f> a } \\
       f,2.
    >>
    \pattern f' a c f
    \pattern e g c e
    \pattern c g' c e
    \pattern d a' d f
    \pattern c a' c e
  } \alternative {
    { \pattern d a' d f
      \pattern d a' d f
    }
    { \pattern d a' d f
      << { \set tieWaitForNote = ##t
           r8 a' d e f\3~\<X a\2~ | <f a d>2\> } \\
         { d,2.~ | d2 }
      >> r4
    }
  }
}

melody = \relative {
  \key d \dorian
  r2. | r2 d'4 |
  \repeat volta 5
  { f2 g4 | a4. b8( a4) |
    g2 e4 | c4. d8( e4) |
    f2 d4 | d4. c8( d4) |
    e2 c4 | a2 d4 |
    f2 g4 | a4. b8( a4) |
    g2 e4 | c4. d8( e4) |
    f4. e8( d4) | c4. a8( c4) |
    d2 d4 | d2 r4 |
    c'2. | c4.( b8) a4 |
    g2 e4 | c4.( d8 e4) |
    f2( d4) | d4.( c8) d4 |
    e2 c4 | a2 r4 |
    c'2. | c4. b8 a4 |
    g2 e4 | c4.( d8) e4 |
    f4. e8 d4 | c4.( a8) c4 |
  } \alternative {
    { d2. | d4 r4 d4 | }
    { d2. | d2 r4 | r2. }
  }
  \bar "|."
}



\score {
  <<
    \new Staff { \melody }
    \addlyrics { \lyricsI \break \refrain
                 \set stanza = "2." I
                 Green -- sleeves.
               }
    \addlyrics { \lyricsII \repeat unfold 27 \skip 1
                 \set stanza = "3." My }
    \addlyrics { \lyricsIII \repeat unfold 27 \skip 1
                 \set stanza = "4." Now }
    \addlyrics { \lyricsIV \repeat unfold 27 \skip 1
                 \set stanza = "5." Ah }
    \addlyrics { \lyricsV }
    \new StaffGroup <<
      \new Staff \with {
        \clef "treble_8"
        \omit StringNumber
      } { \guitar }
      \new TabStaff { \guitar }
    >>
  >>
  \layout { }
}

\score {
  <<
    \new Staff \with { midiInstrument = "violin" } \unfoldRepeats { \melody }
    \addlyrics { \lyricsI \refrain \lyricsII \refrain \lyricsIII \refrain
                 \lyricsIV \refrain \lyricsV \refrain }
    \new TabStaff \unfoldRepeats { \guitar }
  >>
  \midi { \tempo 2. = 40 }
}
> On the other side: you use tablature as well, so the information is
> there, even without explicit string numbers.

I don't think that's the way combined staves are supposed to work: the
tab is supposed to get the missing info "offline" via glancing at the
staff, but the staff is supposed to be self-contained for score
sightreaders.  We have a \tabFullNotation or similar for making a
TabStaff contain everything, but that's assumed standard for a Staff.

> And even without tablature staff it is implicitly given through the
> ties – there is no other possibility to play the piece and let the
> notes sustain as given in the score.

Sure, but puzzle games and backtracking are not sightreader-friendly.

I've seen barring indications in some scores of mine that basically use
a half-bracket, reaching down from the X (position indicator) above the
staff and ending in a hook just below the lowest note to be barred.  So
they are more like vertical spanners than horizontal ones (horizontally,
they are dissolved by another position indicator or by becoming
obviously irrelevant).  Does not seem obvious how to crank out something
like that using LilyPond.

Still I think I consider this position indicator better than, say, three
string indicators.  And using both seems like overkill.

-- 
David Kastrup

reply via email to

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