\version "2.18.2"
\language "english"

\header {
  title = "Scarborough Fair/Canticle"
  composer = "Simon & Garfunkel"
}

globalConfig = {
  \key a \dorian
  \time 3/4
  \numericTimeSignature
  \tempo 4 = 144
  \omit Voice.StringNumber
  \override TupletBracket #'bracket-visibility = #'if-no-beam
  \set Timing.beamExceptions = #'()
  \set Timing.baseMoment = #(ly:make-moment 1/4)
}

mainRiff = \relative c {
  <<
    { r8 e' g, fs d' g, | r8 e' a, e b' a | } \\
    { a,2.              | a2.             | }
  >>
}

verseFingerStyle = \relative c' {
  \mainRiff
  <<
    { b8 d, g c   b  g | } \\
    { g,4.    e'8 d4   | }
  >>
  \mainRiff

  <<
    { r8 e' g, e c' g | r e' a, e c' a | e'4 fs8 a, d4 | } \\
    { c,2.            | a2.            | c4  d4     d4 | }
  >>

  \mainRiff
  \mainRiff

  <<
    { r8 e' a, e4.     | r8 e' g, e c' d, | e' g, d' g, c g | b g d g c   b | c4 b2   | r8 e a, e e' a, | b g d g c  g | b4 b16( c b8) g4  | } \\
    { a,2         a8 b | c2.              | c4    b     a   | g2      e'8 d | e4 d g, | a2.             | g2      e'4  | d  d16( e d8) g,4 | }
  >>

  \mainRiff
  \mainRiff

}

fingerstyle = \relative c {
  \omit Voice.StringNumber
  <<
    { r8 e' g, fs d' g, | r8 e' g, fs d' g, | r8 b g2    \bar "||" | } \\
    { a,2.              | d2.\5             | c2      b4           | }
  >>

  \repeat unfold 2 \mainRiff \bar "||"

  % verses
  \repeat unfold 5 \verseFingerStyle

  <<
    { r8 e' g, fs d' g, | r8 e' g, fs d' g, | r8 b g2    \bar "||" | } \\
    { a,2.              | d2.\5             | c2      b4           | }
  >>
  a2. |
  \set harmonicDots = ##t
  <b''\harmonic e\harmonic>2.\arpeggio \bar "|." |

}

mainVocalMelody = \relative c'' {
  \globalConfig

  \repeat unfold 3 r2.
  \repeat unfold 4 r2.

  % verse 1
  \stemNeutral
  a2 a4 | e'8 e ~ e4. e8 | b4. c8 b4 | a2. ~ | a2. | r4 e' g |
  a2 g4 | e fs d | e2. ~ | e2. ~ | e2. ~ | e2 a4 |
  a2 a4 | g2 e4 | e d c | b8( g ~ g2 ~ | g2.) |
  a2 e'4 | d2 c4 | b a g | a2. ~ | a2. ~ | a2. ~ | a2 r4 \bar "||" |

  \stemUp
  % verse 2
  a8 a ~ a4 a | e'4 e e | b( c) b  | a2. ~ | a2. | r4 e' g |
  a2 g4 | e fs d | e2. ~ | e2. ~ | e2. | r2 a4 |
  a2 a4 | g2 e4 | e( d) c | b8( g8 ~ g2 ~ | g2.) |
  a2 e'4 | d2 c4 | b a g | a2. ~ | a2. ~ | a2. | r2. \bar "||" |

  % verse 3
  a8 a ~ a4 a | e'4 e e | b( c) b  | a2. ~ | a2. | r4 e' g |
  a2 g4 | e fs d | e2. ~ | e2. ~ | e2. | r2 a4 |
  a4 a a | g2 e4 | e d c | b8( g8 ~ g2 ~ | g2.) |
  a2 e'4 | d2 c4 | b a g | a2. ~ | a2. ~ | a2. | r2. \bar "||" |

  % verse 4
  a8 a ~ a4 a | e'8 e ~ e4 e8 e | b c4. b4  | a8 a8 ~ a2 ~ | a2. | r4 \stemDown e' g |
  a2 g4 | e fs d | e2. ~ | e2. ~ | e2. | r2 \stemUp a4 |
  a4 a a | g2 e8 e | e4( d) c | b8 g8 ~ g2 ~ | g2. |
  a2 e'4 | d2 c4 | b a g | a2. ~ | a2. ~ | a2. | r2. \bar "||" |

  a2 a4 | e'8 e ~ e4. e8 | b4. c8 b4 | a2. ~ | a2. | r4 \stemDown e' g |
  a2 g4 | e fs d | e2. ~ | e2. ~ | e2. | r2 \stemUp a4 |
  a2 a4 | g2 e4 | e d c | b8( g ~ g2 ~ | g2.) |
  a2 e'4 | d2 c4 | b a g | a2. ~ | a2. ~ | a2. ~ | a2. \bar "||" |

  \repeat unfold 5 r2. |


}

harmonyVocal = \relative c'' {
  \repeat unfold 31 s2.

  % verse 2
  a8 a ~ a4 a | a4  a a | g2    g4 | a2. ~ | a2. | s4 c d |
  d( c) c | c d d | e2. ~ | e2. ~ | e2. | s2 c4 |
  c2 c8( d) | e2 c4 | c( b) a | g2. ~ | g2. |
  a2 c4 | b2 a4 | g a g | a2. ~ | a2. ~ | a2. | s2. |

  % verse 3
  a8 a ~ a4 a | a4  a a | g2 g4 | a2. ~ | a2. | s4 c d |
  d( c) c | c d d | e2.( | d2. | c2.) | s2 c4 |
  c4 c d | e2 d4 | c b a | g2. ~ | g2. |
  a2 c4 | b2 a4 | g a g | e2. ~ | e2. ~ | e2. | r2. |

  % verse 4
  a8 a ~ a4 a | a8 a ~ a4 a8 a | g8 g ~ g4 g | a8 a ~ a2 ~ | a2. | s4 \stemUp c' b |
  a2 g4 | g a a | b2. ~ | b2. ~ | b2. | s2 \stemDown c,4 |
  c4 c d | e2 c8 c | c4( b) g4 | g8 g ~ g2 ~ | g2. |
  a2 c4 | b2 a4 | g a g | a2. ~ | a2. ~ | a2. | r2. |

  % verse 5
  a2 a4 | a8 a ~ a4. a8 | g4. a8 g4 | a2. ~ | a2. | s4 \stemUp c' b |
  a2 g4 | g a a | b2. ~ | b2. ~ | b2. | s2 \stemDown c,4 |
  c2 c8( d) | e2 c4 | c( b) a | g2. ~ | g2. |
  a2 c4 | b2 a4 | g a g | a2. ~ | a2. ~ | a2. ~ | a2. |
  \repeat unfold 5 s2. |
}

counterMelody = \relative c'' {
  \globalConfig

  \repeat unfold 32 r2.

  % verse 2
  r2 a8 a | g4 a b | c b a | b a g | e2. | r2. | r2. |
  g'4 a fs | fs e fs | g fs d | e2. | r2. r2. |
  g,4 a c | b b g | b a g | a e2 | r2. | r2. |
  a4 b c | d c b | c b g | a2. | r2. | r2 a8 a |

  % verse 3
  g4 a b | c b a | b a g | e2. | r2. | r2. |
  g'4 a fs | e2 fs4 | g fs d | e2. | r2. | r2. |
  g,4 g a | g2 d4 | g4. d8 g d | e2. | r2. | r2. |
  r2. | r | r | r | r2. | r2. |

  % verse 4
  g4 a b | c b a | b a g | a e2 | r2. | r2. |
  g'4 g g | a a a | b b b | a2. | r2. | r2 g8 g |
  g4 e c | d2 g,4 | g8 a b4 c | b a2 | r2. | r2. | r2. | r2. | r2. | r2. |


}

vocals = \lyricmode {
  Are you go -- ing
  to Scar -- bo -- rough Fair? __
  Pars -- ley, sage, rose -- ma -- ry and thyme. __
  Re -- mem -- ber me to one who lives there, __
  she once was a true love of mine. __

  Tell her __ to make me a cam -- bric shirt.
  Pars -- ley, sage, rose -- ma -- ry and thyme. __
  With -- out no seams nor nee -- dle work. __
  Then she'll be a true love of mine. __

  Tell her __ to find me an acre of land. __
  Pars -- ley, sage, rose -- ma -- ry and thyme. __
  Be -- tween the salt wa -- ter and the sea strands. __
  Then she’ll be a true love of mine. __

  Tell her __ to reap it with a sick -- le of lea -- ther. __
  Pars -- ley, sage, rose -- ma -- ry and thyme. __
  And ga -- ther it all in a bunch of heath -- er. __
  Then she’ll be a true love of mine. __

  Are you go -- ing
  to Scar -- bo -- rough Fair? __
  Pars -- ley, sage, rose -- ma -- ry and thyme. __
  Re -- mem -- ber me to one who lives there, __
  she once was a true love of mine. __
}

vocalsCounter = \lyricmode {
  On the side of a hill in the deep fo -- rest green.
  Tra -- cing a spar -- row on snow -- crest -- ed ground.
  Blan -- kets and bed -- clothes the child of the mount -- ain.
  Sleeps un -- a -- ware of the cla -- ri -- on call.

  On the side of a hill in the sprink -- ling of leaves.
  Wash -- es the grave with sil -- ver -- y tears.
  A sol -- dier cleans and po -- li -- shes a gun.

  War bell -- ows blaz -- ing in scar -- let bat -- tal -- ions.
  Gen -- er -- als or -- der their sol -- diers to kill.
  And to fight for a cause they've long a -- go for -- got -- ten.
}

voxMain = \new Staff \with {
  instrumentName = "Melody"
  midiInstrument = #"voice oohs"
} <<
  \clef treble
  \new Voice = "vocalMelody" { \voiceOne \mainVocalMelody }
  \new Voice = "vocalHarmony" { \voiceTwo \harmonyVocal }
>>

voxCounter = \new Staff \with {
  instrumentName = "Counter"
  midiInstrument = #"voice oohs"
} { \new Voice = "counterMelody" \clef treble \counterMelody }
\addlyrics { \vocalsCounter }

chordExceptionMusic = {
  <c e g b d'>1-\markup { "maj9" }
  <c e g b fs'>1-\markup { "maj7" \sharp "11" }
  <c e f d'>1-\markup { "11" }
}

chordExceptions = #(append
  (sequential-music-to-chord-exceptions chordExceptionMusic #t)
  ignatzekExceptions
)

chordValues = \chordmode {
  \set additionalPitchPrefix = #"add"
  \set majorSevenSymbol = \markup { "maj7" }
  \set chordNameExceptions = #chordExceptions

  % intro
  a2.:m13 | d:1.3.4.9 | c:maj7 |
  a2.:m13 | a:sus2 | a2.:m13 | a:sus2 |

  % verses
  \repeat unfold 5 {
    a2.:m13 | a:sus2 | g4. c8:/e g4 | a2.:m13 | a:sus2 |
    c2. | a:m | c4 d2 | a2.:m13 | a:sus2 | a2.:m13 | a:sus2 |
    a:m | c | c4 g:/b a:m7 | g2 c4:/e | q g2 |
    a2.:m | g2 c4:/e | g2. | a:m13 | a:sus2 | a:m13 | a:sus2 |
  }

  % outro
  a:m13 | d:1.3.4.9 | c:maj7 | a:m | a:sus2 |
}

\score {
  <<
    \new ChordNames { \set chordChanges = ##t \chordValues }
    \new ChoirStaff <<
      \voxMain
      \new Lyrics = mainLyrics
      \context Lyrics = mainLyrics \lyricsto vocalMelody \vocals
      \voxCounter
    >>
    \new Staff \with { \clef "G_8" midiInstrument = "acoustic guitar (steel)" } {
      \globalConfig
      \fingerstyle
    }
    \new TabStaff { \fingerstyle }
  >>
  \layout {
    \omit Voice.StringNumber
    \context {
      \Staff \RemoveEmptyStaves
      \override Glissando.minimum-length = #4
      \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods
      \override Glissando.thickness = #2
      \override VerticalAxisGroup.remove-first = ##t
    }
  }
}

\score {
  <<
    \new ChoirStaff <<
      \voxMain
      \new Lyrics = mainLyrics
      \context Lyrics = mainLyrics \lyricsto vocalMelody \vocals
      \voxCounter
    >>
    \new Staff \with { \clef "G_8" midiInstrument = "acoustic guitar (steel)" } {
      \globalConfig
      \fingerstyle
    }
  >>
  \midi {}
}