\version "2.18.2"
\language "english"

\header {
  title = "Windswept"
  composer = "Tommy Montgomery"
  copyright = "(c) 2017 Tommy Montgomery"
}

global = {
  \key a \mixolydian
  \time 4/4
  \tempo 4 = 150
  \set Staff.printKeyCancellation = ##f
  \numericTimeSignature
  \compressFullBarRests
  \omit Voice.StringNumber
  \override TupletBracket #'bracket-visibility = #'if-no-beam
  \override MultiMeasureRest.expand-limit = #3
}


guitarOne = \relative c' {
  r2 r4 r8 <a e' a> ~ |
  \repeat volta 2 {
    q a a16 a a a << { a'8\glissando[( b)] } \\ { a,4 } >> r8 <a d'> ~ |
    q a a16 a a a << { d'8\glissando[( cs)] } \\ { a,4 } >> r8 <a e' a> ~ |
    q a a16 a a a << { a'8\glissando[( b)] } \\ { a,4 } >> r8 <a d'> ~ |
    q a d'16 e d cs << { d8\glissando[( cs)] } \\ { a,4 } >> r8 <a e' a> ~ |
    q a a16 a a a << { a'8\glissando[( b)] } \\ { a,4 } >> r8 <a d'> ~ |
    q a a16 a a a << { d'8\glissando[( cs)] } \\ { a,4 } >> r8 <g d' a'> ~ |
    q g16 g <g d' a'>8 g16 g <g d' a'>4. <e b' fs'>8 ~ |
  }
  \alternative {
    { q e16 e <e b' fs'>8 e16 e <e b' fs'>4. <a e' a>8\laissezVibrer | }
    { <e b' fs'>8 e16 e <e b' fs'>8 e16 e <e b' fs'>4. f8 ~ | }
  }

  f8 c' e g f c d g, ~ |
  g d' fs16 fs g g a4. bf,8 ~ |
  bf f' a c bf f g c, ~ |
  c g' b16 b c c d4. d,8 ~ |
  d a' cs e d a b e, ~ |
  e b' ds16 ds e e fs4. fs16( gs) |
  \grace gs16( a4.) a8 ~ a e'^"+"( gs, fs) ~ |
  fs2. ~ fs8 <e,, b' e> ~ |

  q e e16 e e e << { e'8\glissando[( fs)] } \\ { <e, b'>4 } >> r8 <e' a> ~ |
  q e, e16 e e e << { a'8\glissando[( gs)] } \\ { e4 } >> r8 <e, b' e> ~ |
  q e e16 e e e << { e'8\glissando[( fs)] } \\ { <e, b'>4 } >> r8 <e' a> ~ |
  q e, e16 e e e << { a'8\glissando[( gs)] } \\ { e4 } >> r8 <e, b' e> ~ |
  q e e16 e e e << { e'8\glissando[( fs)] } \\ { <e, b'>4 } >> r8 <e' a> ~ |
  q e, e16 e e e << { a'8\glissando[( gs)] } \\ { e4 } >> r8 <d a'> ~ |
  q4. <d gs>8 ~ q <d a'>4 <b fs'>8 ~ |
  q4. b16 b <b fs'>8 <g d'> <fs cs'> <e b'> ~ |

  q e e16 e e e << { e'8\glissando[( fs)] } \\ { <e, b'>4 } >> r8 <e' a> ~ |
  q e e16 e e e << { a8\glissando[( gs)] } \\ { e4 } >> r8 <e, b' e> ~ |
  q e e16 e e e << { e'8\glissando[( fs)] } \\ { <e, b'>4 } >> r8 <d' a'> ~ |
  q d d16 d d d << { a'8\glissando[( gs)] } \\ { d4 } >> r8 <e, b' e> ~ |
  q^"guitar solo" e e16 e e e << { e'8\glissando[( fs)] } \\ { <e, b'>4 } >> r8 <cs' a'> ~ |
  q cs cs16 cs cs cs << { a'8\glissando[( gs)] } \\ { cs,4 } >> r8 <bs gs'> ~ |
  q4. cs8 ~ cs4 ds ~ |
  ds8 e4. fs4 gs \bar "||" |

  \key a \major
  <a, e' b'>8 a16 a <a e' b'>8 a16 a <a e' b'>4 a16 a <a e' b'>8 ~ |
  q8 a16 a <a e' b'>8 a16 a <a e' b'>4 a16 a <e b' fs'>8 ~ |
  q8 e16 e <e b' fs'>8 e16 e <e b' fs'>4 e16 e <e b' fs'>8 ~ |
  q8 e16 e <e b' fs'>8 e16 e <e b' fs'>4 e16 e <a e' b'>8 ~ |
  q8 a16 a <a e' b'>8 a16 a <a e' b'>4 a16 a <a e' b'>8 ~ |
  q8 a16 a <a e' b'>8 a16 a <a e' b'>4 a16 a <e b' fs'>8 ~ |
  q8 e16 e <e b' fs'>8 e16 e <e b' fs'>4 e16 e <e b' fs'>8 ~ |
  q8 e16 e <e b' fs'>8 e16 e <e b' fs'>4 e16 e <fs cs' gs'>8 ~ |
  q8 fs16 fs <fs cs' gs'>8 fs16 fs <fs cs' gs'>4 fs16 fs <fs cs' gs'>8 ~ |
  q8 fs16 fs <fs cs' gs'>8 fs16 fs <fs cs' gs'>4 fs16 fs <es cs' es>8 ~ |
  q8 es16 es <es cs' es>8 es16 es <es cs' es>4 es16 es <es cs' es>8 ~ |
  q8 es16 es <es cs' es>8 es16 es <es cs' es>4 es16 es <e b' e>8 ~ |

  q4. <fs' b e>8 ~ q <fs b ds>4 <gs cs fs>8 ~ |
  q <gs cs e>4 <a ds>8 ~ q <a e'>4 <g, d' g d' g>8 ~ |
  q2 g8 d' a' d ~ |
  d e4 d8 ~ d a4 g8 |

  \key a \mixolydian
  R1*8^\markup "intro riff" |
  R1*6^\markup { "F riff" } |
  \grace gs'16( a4.) a8 ~ a e'^"+"( gs, fs) ~ |
  fs1 |

  \repeat unfold 2 { <b,, fs' a d>8. q16 ~ q8 q8 ~ q16 q8. q4 | }
  \repeat unfold 2 { <d a' cs fs>8. q16 ~ q8 q8 ~ q16 q8. q4 | }
  \repeat unfold 2 { <e b' d g>8. q16 ~ q8 q8 ~ q16 q8. q4 | }
  \repeat unfold 2 { <e as cs fs>8. q16 ~ q8 q8 ~ q16 q8. q4 | }

  \repeat volta 2 {
    \repeat unfold 2 { fs'16( d) cs a cs d fs( d) cs a cs d fs( d) cs a | }
    \repeat unfold 2 { a'( fs) d cs d fs a( fs) d cs d fs a( fs) d cs | }
    \repeat unfold 2 { g'( e) d b d e g( e) d b d e g( e) d b | }
    \repeat unfold 2 { fs'( e) cs as cs e fs( e) cs as cs e fs( e) cs as | }
  }

  \time 7/8
  \repeat volta 2 { <b, fs'>16[ b b b] <b fs'>[ b b b] <b fs'>[ b b b] b[ b]  | }
  \repeat volta 2 { <b g'>[ b b b] <b g'>[ b b b] <b g'>[ b b b] b[ b]  | }
  \repeat volta 2 { <b fs'>[ b b b] <b fs'>[ b b b] <b fs'>] b b b] b[ b]  | }
  <b e>[ b b b] <b e>[ b b b] <b e>[ b b b] b[ b]  |

  \time 4/4 <b ds>16 b b b <b ds> b b b <b ds> b b b b b  e,8 ~ |

  e fs g a ~ a g fs e |
  b' a g fs ~ fs g a b |
  e, fs g a ~ a g fs e |
  e' d cs b ~ b a b cs |

  c d e fs ~ fs e d c |
  g' fs e d ~ d c d e |
  fs g a b ~ b a g fs |
  c' b a g ~ g a b c |
  \time 3/4 d c b\glissando e d c |
  \time 4/4 f g af bf ~ bf af g f |
  c' bf af g ~ g af bf c |
  \tuplet 3/2 4 { \repeat unfold 2 { d( c) bf af bf c } } |
  \tuplet 3/2 4 { \repeat unfold 2 { e( d) c bf c d } } |
  \tuplet 3/2 4 { fs( e) d c d e fs( e) d c ef fs } |
  \tuplet 3/2 4 { a( fs) es a, es' fs fs( ef) c fs, c' ef } |
  \tuplet 3/2 4 { ef( c) a ef a c c( a) fs c fs a } |
  \tuplet 3/2 4 { a( fs) ef a, fs ef fs( ef) c( a) fs f ~ } |

  f c' e g f c d g, ~ |
  g d' fs16 fs g g a4. bf,8 ~ |
  bf f' a c bf f g c, ~ |
  c g' b16 b c c d4. ef,8 ~ |
  ef bf' d f ef bf c f, ~ |
  f c' e g f c d af ~ |
  af ef' g bf af ef f bf, ~ |
  bf f' a c bf f g\glissando a\laissezVibrer |

  \time 5/4
  \repeat volta 2 {
    <a,, d>8-> a a <a d>-> a a a16 a a a a a a a |
    <a e'>8-> a a <a e'>-> a a a16 a a a a a a a |
    <a f'>8-> a a <a f'>-> a a a16 a a a a a a a |
    <a e'>8-> a a <a e'>-> a a a16 a a a a a a a |
  }

  \time 4/4
  \repeat volta 4 {
    a'8^"start fade 3rd time" cs d a e' a, cs d |
    a d e a, fs' a, d e |
    a,8 cs d a e' a, cs d |
  }
  \alternative {
    { a d e a, g' a, fs' e | }
    { a, d e a, g' a, fs' e\laissezVibrer | }
  }

  r1\fermata^"piano" \bar "|."
}


guitarTwo = \relative c''' {
  r1 |
  \repeat volta 2 R1*8
  \repeat unfold 8 r1
  \repeat unfold 15 r1
  r2 \tuplet 3/2 4 { gs8( as bs) cs( ds e) } |
  \key a \major
  \grace e16( fs2) fs4. e8 ~ |
  e2 cs16( e) \tuplet 3/2 { a^"+"( e cs) } \tuplet 6/4 { e^"+"( cs a) cs^"+"( a e) } |
  cs4. b16\glissando( a) b2 |
  \tuplet 3/2 4 { e,8 a( b) b e( fs) fs b( cs) \ottava #1 e a( b) } |
  cs4. cs8 \tuplet 3/2 { \grace cs16( d4 cs) b8( a) } |
  b2 \tuplet 3/2 4 { cs8( a) gs e d cs } |
  \tuplet 3/2 4 { d e d cs a gs } e2 \ottava #0 |
  \tuplet 3/2 4 { e,8 fs a a b cs a b cs d e fs } |
  \tuplet 3/2 4 { d e fs gs a b gs a b cs d e } |
  \ottava #1 \grace e16( fs4.) fs8 a8. fs16 ~ fs8 e8 ~ |
  e4. fs16( a) \tuplet 6/4 4 { cs^"+"(a fs) gs^"+"( e cs) ds^"+"( b a) gs^"+"( fs e) } |
  cs4. a'8 gs4 \tuplet 6/4 { cs,16 es gs cs es( gs) } |
  cs4.^"+"( \tuplet 3/2 { b16 a gs) } es4. fs16( es) |
  e!4. \grace ds16( e8 ~ e ds4) \grace cs16( ds8 ~ |
  ds cs4) b8 ~ b a4 b8 ~ |
  b2 \ottava #0 \tuplet 5/4 4 { g,16 a b cs d e d cs d e } |
  \tuplet 5/4 4 { fs g a g fs   g a b cs d   cs b cs d e } \tuplet 6/4 { fs g fs e fs g } |
  \key a \mixolydian
  a2 r2 | R1*7 | R1*8 |


}

guitarOneStaff = \new Staff \with { midiInstrument = "electric guitar (jazz)" }{ \global \guitarOne }
guitarTwoStaff = \new Staff \with { midiInstrument = "electric guitar (jazz)" }{ \global \guitarTwo }

chordExceptionMusic = {
  <c e g b d'>1-\markup { "maj9" }
  <c e g b fs'>1-\markup { "maj7" \sharp "11" }
  <c ef f g bf>1-\markup { "m7sus4" }
  <c ef gf bff>1-\markup { "dim7" }
  <c e g d'>1-\markup { "add9" }
  <c ef g d'>1-\markup { "m(add9)" }
  <c e fs as>1-\markup { \super { \sharp "11" \sharp "13" } }
  <c g>1-\markup { "5" }
  <c e g b>1-\markup { "maj7" }
  <c e g fs'>1-\markup { "add" \super { \sharp "11" } }
  <c f g>1-\markup { "sus4" }
  <c d g>1-\markup { "sus2" }
  <c ef g b>1-\markup { "m(maj7)" }
  <c ef g b d'>1-\markup { "m(maj9)" }
}

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

chordValues = \chordmode {
  r2.. a8 |

  \repeat volta 2 { \repeat unfold 5 a1 | a2.. g8:sus2 | q2.. e8:sus2 | }
  \alternative { { q2.. a8 | } { a2.. f8 } }

  f2.. g8 | g2 d4. bf8 | bf2.. c8 | c2 g4. d8 |
  d2.. e8 | e2 b | fs2..:m b8 | b2.. e8 |

  \repeat unfold 5 e1 | e2.. d8 | d2.. b8 | b2.. e8 |
  e1 | e | e2.. d8:/e | q2.. e8 | e2.. a8:/e | q2.. gs8 | gs1 | gs1 |

  a1:sus2 | q2.. e8:sus2 | q1 | q2.. a8:sus2 |
  a1:sus2 | q2.. e8:sus2 | q1 | q2.. fs8:sus2 |
  q1 | q2.. cs8:/es | q1 | q2.. e8 |
  e4. b4:sus4 b cs8:sus4 | q8 cs4:m a:1.3.5.11+ a g8 |
  g2 g:1.2.4.5 | q1 |

  R1*8 |
  R1*6 |
  a2.. fs8:7 | q1 |
  b1:m7 | q | d:maj7 | q | e:m7 | q | fs:7 | q |
  \repeat volta 2 { b1:m7 | q | d:maj7 | q | e:m7 | q | fs:7 | q | }

  \repeat volta 2 b2..:m |
  \repeat volta 2 e:m/b |
  \repeat volta 2 b |
  b:sus4 | b e8:m |

  q1 | q | q | q |
  c:1.3.5.11+ | q | q | q |
  r2. |
  f1:m | q |
  r | r | r |
  a:dim7 | q | q2. \tuplet 3/2 { q4 f8 } |

  f2.. g8 | g2 d4. bf8 | bf2.. c8 | c2 g4. ef8 |
  ef2.. f8 | f2.. af8 | af2.. bf8 | bf2.. d8:/a |

  \repeat volta 2 { q1 q4 | a1 a4 | f1:/a q4 | a1 a4 | }

  \repeat volta 4 { a2..:/g d8:/fs | q2.. a8:/e | q2.. d8:/fs |}
  \alternative {
    {  q2.. a8:/g | }
    {  q2.. a8:/g | }
  }
}

chordNames = \new ChordNames {
  \powerChords
  \set majorSevenSymbol = \markup "maj7"
  \set chordChanges = ##t
  \set chordNameExceptions = #chordExceptions
  \chordValues
}

\score {
  <<
    \chordNames
    \guitarOneStaff
    \guitarTwoStaff
  >>
  \layout {
    \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 {
  \unfoldRepeats {
    <<
      \transpose c c, \guitarOneStaff
      \transpose c c, \guitarTwoStaff
    >>
  }
  \midi {}
}