\version "2.18.2"
\language "english"

\header {
  title = "Zenithia"
  composer = "Tommy Montgomery"
  copyright = "(c) 2019 Tommy Montgomery"
}

global = {
  \key cs \minor
  \set Staff.printKeyCancellation = ##f
  \numericTimeSignature
  \compressFullBarRests
  \omit Voice.StringNumber
  \override TupletBracket #'bracket-visibility = #'if-no-beam
  \override MultiMeasureRest.expand-limit = #3
  \override Score.ChordName.font-name = #"Noto Serif"
  \override Score.ChordName.font-size = #0
  \time 4/4
  \tempo 4 = 112
}

guitarOne = \relative c' {
  \repeat volta 2 {
    cs4\staccato cs\staccato \tuplet 6/4 { cs16 cs cs cs cs cs } cs4\staccato |
    \tuplet 6/4 { cs16 cs cs cs cs cs } cs4\staccato \tuplet 6/4 4 { cs16 ds e fs gs a a gs fs e ds cs } |
  }

  e4\staccato e\staccato \tuplet 6/4 { e16 e e e e e } e4\staccato |
  \tuplet 6/4 { e16 e e e e e } e4\staccato \tuplet 6/4 4 { e16 fs gs a b cs cs b a gs fs e } |

  e4\staccato e\staccato \tuplet 6/4 { e16 e e e e e } e4\staccato |
  \tuplet 6/4 { e16 e e e e e } e4\staccato \tuplet 6/4 4 { e16 fs gs a b cs ds e fs gs a b } |

  cs4\staccato cs\staccato \tuplet 6/4 { cs16 cs cs cs cs cs } cs4\staccato |
  \tuplet 6/4 { cs16 cs cs cs cs cs } cs4\staccato \tuplet 6/4 4 { cs,16 ds e fs gs a a gs fs e ds cs } |

  \bar "||"

  cs8. ds16 ~ ds8 e ~ e fs e ds |
  cs8.( ds32 cs\glissando b8)\staccato cs ~ cs4 gs16 b cs b |
  cs8. ds16 ~ ds8 e ~ e fs e ds |
  cs8.( ds32 cs\glissando b8)\staccato cs ~ cs4 cs16 ds e gs |

  a16( fs) ds a'( fs) ds a'8 ~ a4 gs16 a gs fs |
  gs16( e) cs gs'( e) cs gs'8 ~ gs4 fs16 gs fs e |
  fs( ds) b fs b ds gs( e) cs gs cs e ds e fs gs |
  a( fs) ds bs a bs ds fs a( fs) ds fs a bs ds( bs)|

  cs8. ds16 ~ ds8 e ~ e fs e ds |
  cs8.( ds32 cs\glissando b8)\staccato cs ~ cs4 \tuplet 6/4 { ds,16 e fs gs a b } |
  cs8. ds16 ~ ds8 e ~ e fs e ds |
  cs8.( ds32 cs\glissando b8)\staccato cs ~ cs4 cs16 ds e gs |

  \tuplet 6/4 4 { a( fs) ds a ds fs a( fs) ds } a'8 ~ a4 gs16 a gs fs |
  \tuplet 6/4 4 { gs( e) cs gs cs e gs( e) cs } gs'8 ~ gs4 fs16 gs fs e |
  fs8. e16 ~ e8 ds ~ ds cs16 b a gs fs e |
  <<
    { r2 gs,16 a bs cs ds e ds cs } \\
    { ds cs bs cs ds bs gs8 ~ gs2 | }
  >>

  % piano solo
  \bar "||"
  ds'16^"piano solo" e ds cs ds cs b! a gs a gs fs gs fs e cs |
  ds e ds cs ds cs b a \clef bass gs a gs fs gs fs e ds |
  cs ds cs bs cs ds e fs a gs a bs \clef treble ds cs e fs  |
  a gs a bs ds cs e fs a gs a bs ds cs bs a |

  gs a fs e ds cs cs' cs, b! cs a gs fs e e' e, |
  ds e cs b a gs gs' gs, \clef bass fs cs fs gs a gs fs a |
  \clef treble gs( a bs ds) b( bs ds fs) d( ds fs a) es( fs a bs) |
  gs( a bs ds) b( bs ds fs) d( ds fs a) es( fs a bs) |

  cs( a cs ds e) fs,( a ds cs) ds,( fs a gs) gs,( a b |
  cs a cs ds e) fs,( a ds cs) ds,( fs a gs) gs,( a b) |
  \tuplet 6/4 4 { a cs fs a cs fs a fs cs a cs fs a cs fs a fs cs a fs cs a fs cs } |
  \tuplet 6/4 4 { a( b cs ds e fs gs a b cs ds e) a,( b cs ds e fs gs a b a gs fs) } |

  \tuplet 5/4 4 { gs( b gs fs e) cs( e cs b a) fs'(a fs e ds) b( ds b a gs) } |
  \tuplet 6/4 4 {
    fs'( b, a) e'( a, gs) ds'( gs, fs) cs'( fs, e)
    b'( e, ds) a'( ds, cs) gs'( cs, b) fs'( b, a) |
  }
  gs a bs ds cs e fs a gs a bs ds cs e fs a |
  \tuplet 6/4 4 {
    gs a gs fs e ds cs bs a gs fs e
    ds fs a bs ds fs a, bs ds fs a bs
  }

  % guitar solo
  \grace { cs,16 e gs } cs4 ds8\staccato e8 ~ e fs e\staccato ds\staccato |
  cs8.( ds32 cs\glissando b8) cs ~ cs4 \tuplet 6/4 { ds,16 e fs gs a b } |
  cs4 ds8\staccato e8 ~ e fs e\staccato fs\staccato |
  gs4 a8 gs ~ gs4. fs16( gs) |

  gs( e) e cs cs gs gs e e ds ds cs cs b b a |
  \tuplet 6/4 4 { a16( b cs) ds( e fs) gs( a b) cs( ds e) e( ds cs) b( a gs) } \tuplet 3/2 { fs( e ds) } cs8 ~ |
  cs4. b8 ~ b4 r8 b16 b |
  b cs e fs a gs fs gs \tuplet 6/4 4 { cs( b) gs fs gs b e( cs) b gs b ds } |

  cs4\glissando cs,8  gs' ~ gs4 r8 fs16( gs) |
  \grace gs8 a4( gs8) fs ~ fs2 |
  \tuplet 6/4 4 { cs,16 ds e fs gs a gs a b cs ds e gs, a b cs ds e ds e fs gs a b } |
  \tuplet 6/4 4 { cs, ds e fs gs a \ottava #1 gs a b cs ds e gs, a b cs ds e ds e fs gs a b } |

  cs4 ds8\staccato e ~ e ds4 e8\staccato |
  \grace e8 fs4.( e8\staccato) ds4 e8 cs ~ |
  cs4. a16 b \tuplet 6/4 4 { cs b a gs fs e fs gs fs e ds cs } |
  \tuplet 6/4 { bs cs ds cs bs a } gs4 \ottava #0 r2 |

  \repeat volta 2 R1*8 |

  ds,16 e fs gs a ds, e fs gs a ds, e fs gs a ds, |
  e fs gs a ds, e fs gs a ds, e fs gs a ds, e |
  fs gs a ds, e fs gs a ds, e fs gs a ds, e fs |
  gs a ds, e fs gs a ds, e fs gs a ds, e fs gs |

  fs gs a b cs fs, gs a b cs fs, gs a b cs fs, |
  gs a b cs fs, gs a b cs fs, gs a b cs fs, gs |
  a b cs fs, gs a b cs fs, gs a b cs fs, gs a |
  b cs fs, gs a b cs fs, gs a b cs fs, gs a b |

  bs cs ds e fs bs, cs ds e fs bs, cs ds e fs bs, |
  cs ds e fs bs, cs ds e fs bs, cs ds e fs bs, cs |
  ds e fs bs, cs ds e fs bs, cs ds e fs bs, cs ds |
  e fs bs, cs ds e fs bs, cs ds e fs bs, cs ds e |

  fs gs a fs gs fs gs a fs gs fs gs a fs gs fs |
  gs a fs gs fs gs a fs gs fs gs a fs gs fs gs |
  a fs gs fs gs a fs gs fs gs a fs gs fs gs a |
  fs gs fs gs a fs gs fs gs a fs gs fs gs a fs |

  r2 r4 r8 gs16( a |
  gs) fs gs a bs( cs bs) a bs cs ds( e ds) cs ds e |
  fs2 r4 r8 a,,16 gs |
  fs gs a cs fs gs a cs fs cs gs' cs, a' cs, fs cs |
  gs'2 r4 r8 gs,, |
  gs'16 gs gs( fs) ds gs8. gs16 gs gs( fs) ds b'8. |
  r2 r4 \tuplet 6/4 { fs,16( a) cs fs a cs } |
  \tuplet 6/4 4 {
    fs( cs) a fs cs a
    fs gs a a gs fs
    gs( bs) ds gs bs ds
    gs( ds) bs gs ds bs
  } |
  cs2 r2 |



  R1*7 |
  R1*3 |
  r2 \tuplet 6/4 4 { cs16 ds e fs gs a a gs fs e ds cs } |

  \bar "||"

  cs8. ds16 ~ ds8 e ~ e fs e ds |
  cs8.( ds32 cs\glissando b8)\staccato cs ~ cs4 gs16 b cs b |
  cs8. ds16 ~ ds8 e ~ e fs e ds |
  cs8.( ds32 cs\glissando b8)\staccato cs ~ cs4 cs16 ds e gs |

  a16( fs) ds a'( fs) ds a'8 ~ a4 gs16 a gs fs |
  gs16( e) cs gs'( e) cs gs'8 ~ gs4 fs16 gs fs e |
  fs8. e16 ~ e8 ds ~ ds4 ds16 e fs gs |
  a8. gs16 ~ gs8 fs ~ fs4 fs16 gs a b |

  cs8. ds16 ~ ds8 e ~ e fs e ds |
  cs8.( ds32 cs\glissando b8)\staccato cs ~ cs4 \tuplet 6/4 { ds,16 e fs gs a b } |
  cs8. ds16 ~ ds8 e ~ e fs e ds |
  cs8.( ds32 cs\glissando b8)\staccato cs ~ cs4 cs16 ds e gs |

  \tuplet 6/4 4 { a( fs) ds a ds fs a( fs) ds } a'8 ~ a4 gs16 a gs fs |
  \tuplet 6/4 4 { gs( e) cs gs cs e gs( e) cs } gs'8 ~ gs4 fs16 gs fs e |
  fs8. e16 ~ e8 ds ~ ds4 \tuplet 6/4 { b16 cs ds e fs gs } |
  a8. gs16 ~ gs8 fs ~ fs4 fs16( cs) a fs |

  gs2 r2 |
  R1*6 |
  \ottava #1 \tuplet 6/4 4 { gs16( bs) ds gs bs ds gs( ds) bs gs ds bs cs( e) gs cs e gs } cs4 \ottava #0 |
  R1*4 |


}

guitarTwo = \relative c' {
  \repeat volta 2 { R1*2 }
  R1*6

  \repeat unfold 2 { <cs gs'>8. <b fs'>16 ~ q8 <cs gs'> ~ q <b fs'> <cs gs'> <b fs'> | }
  <a e'>8. <a ds>16 ~ q8 <a e'> ~ q <a ds> <a e'> <a ds> |
  <fs cs'>8. <fs b>16 ~ q8 <fs cs'> ~ q <fs b> <fs cs'> <fs ds'> |

  <a e'>16 q q q r <a e'> <a ds>8 ~ q4 q16 q r8 |
  <gs cs gs'>16 q q q r <gs cs gs'> <gs ds' gs>8 ~ q4 q16 q r8 |
  <fs b fs'>4. <gs cs gs'>8 ~ q4 <a ds a'>4 |
  <gs ds' gs>1 |

  \repeat unfold 2 { <cs gs'>8. <b fs'>16 ~ q8 <cs gs'> ~ q <b fs'> <cs gs'> <b fs'> | }
  <a e'>8. <a ds>16 ~ q8 <a e'> ~ q <a ds> <a e'> <a ds> |
  <fs cs'>8. <fs b>16 ~ q8 <fs cs'> ~ q <fs b> <fs cs'> <fs ds'> |

  <a e'>16 q q q r <a e'> <a ds>8 ~ q4 q16 q r8 |
  <gs cs gs'>16 q q q r <gs cs gs'> <gs ds' gs>8 ~ q4 q16 q r8 |
  <fs b fs'>4. <gs cs gs'>8 ~ q4 <a ds a'>4 |
  <gs ds' gs>1 |

  <cs a'>4 cs16 cs <cs gs'>8 ~ q8 cs16 cs cs cs cs cs |
  <cs a'>4 cs16 cs <cs gs'>8 ~ q8 cs16 cs ds e ds cs |
  <bs fs'>4 bs16 bs <bs gs'>8 ~ q8 bs16 bs bs bs bs bs |
  <bs fs'>4 bs16 bs <bs gs'>8 ~ q8 bs16 bs bs cs ds bs |
  <cs a'>4 cs16 cs <cs gs'>8 ~ q8 cs16 cs cs cs cs cs |
  <cs a'>4 cs16 cs <cs gs'>8 ~ q8 cs16 cs ds e ds cs |
  <bs fs'>4 bs16 bs <bs gs'>8 ~ q8 bs16 bs bs bs bs bs |
  <bs fs'>4 bs16 bs <bs gs'>8 ~ q8 bs16 bs ds cs bs gs |

  <a e'>4 a16 a <a ds>8 ~ q4. a16 a |
  <a fs'>4 a16 a <a e'>8 ~ q8 a16 a <a ds>8 a16 a |
  <fs cs'>4 fs16 fs <fs b>8 ~ q4. fs16 fs |
  <fs cs'>4 <fs b> <fs cs'> <fs ds'> |
  <a e'>4 a16 a <a ds>8 ~ q4. a16 a |
  <a fs'>4 a16 a <a e'>8 ~ q8 a16 a <a ds>8 a16 a |
  <gs ds' gs>4 gs16 gs <gs ds' gs>8 ~ q2 |
  gs16 a bs cs ds e fs gs a gs fs e ds cs bs gs |

  \repeat unfold 2 {
    \repeat unfold 2 { <cs gs'>8. <b fs'>16 ~ q8 <cs gs'> ~ q <b fs'> <cs gs'> <b fs'> | }
    <a e'>8. <a ds>16 ~ q8 <a e'> ~ q <a ds> <a e'> <a ds> |
    fs16 fs fs gs gs gs a a a gs gs gs a a b b |
  }

  \repeat unfold 2 { <a e'>16 q q q r <a e'> <a ds>8 ~ q4 q16 q r8 | }
  \repeat unfold 2 { <gs cs gs'>16 q q q r <gs cs gs'> <gs ds' gs>8 ~ q4 q16 q r8 | }

  \repeat unfold 2 { <a e'>16 q q q r <a e'> <a ds>8 ~ q4 q16 q r8 | }
  <fs b fs'>4. <gs cs gs'>8 ~ q4 <a ds a'>4 |
  <gs ds' gs>4 r fs8 gs a4 |

  \repeat volta 2 {
    \repeat unfold 2 {
      gs16 gs gs a r fs r gs gs gs a r fs r gs gs |
      gs a r fs r gs8 a16 bs ds cs e ds fs a fs |
      gs16 gs gs a r fs r gs gs gs a r fs r gs gs |
    }
    \alternative {
      { gs a r fs r ds'8( bs16) a fs gs cs, ds bs a fs | }
      { gs' a r fs r cs'8( bs16) a fs ds bs a gs fs a | }
    }
  }

  gs8 r r gs r4 gs8 r |
  r8 \tuplet 3/2 8 { a16 gs fs a gs fs } gs8 r4 gs8 r |
  r gs r4 \tuplet 6/4 { a'16 gs fs e ds cs } \tuplet 3/2 { cs ds e } ds8 |
  gs, gs' cs, ds bs cs a gs |

  fs8 r r fs r4 fs8 r |
  r8 \tuplet 3/2 8 { a16 gs fs gs fs e } fs8 r4 fs8 r |
  r8 fs8 r4 \tuplet 6/4 { a'16 gs fs e ds cs } \tuplet 3/2 { b a gs } fs8 |
  r fs16 fs <gs ds' gs>16\glissando( <a e' a>8) q16 q q <gs ds' gs>\glissando( <fs cs' fs> ~ q) q q q |

  \repeat unfold 2 {
    gs16 gs gs a r fs r gs gs gs a r fs r gs gs |
    gs a r fs r gs8 a16 bs ds cs e ds fs a fs |
    gs16 gs gs a r fs r gs gs gs a r fs r gs gs |
  }
  \alternative {
    { gs a r fs r ds'8( bs16) a fs gs cs, ds bs a fs | }
    { gs' a r fs r cs'8( bs16) a fs ds bs a gs fs a | }
  }

  <gs ds' gs>16 q q <a e' a> ~ q <fs cs' fs>8 <gs ds' gs>16 q q <a e' a>8 <fs cs' fs>8 <gs ds' gs> ~ |
  q4 r r2 |
  <gs ds' gs>16 q q <a e' a> ~ q <fs cs' fs>8 <gs ds' gs>16 q q <a e' a>8 <fs cs' fs>8 <fs cs' fs> ~ |
  q4 r r2 |
  <gs ds' gs>16 q q <a e' a> ~ q <fs cs' fs>8 <gs ds' gs>16 q q <a e' a>8 <fs cs' fs>8 <gs ds' gs> ~ |
  q4 r r2 |
  <gs ds' gs>16 q q <a e' a> ~ q <fs cs' fs>8 <gs ds' gs>16 q q <a e' a>8 <fs cs' fs>4 |
  r1 |

  cs'16^"clean" cs cs b b b cs cs cs cs b b cs cs b b |
  cs cs cs b b b cs cs cs cs b b cs cs b b |
  a a a gs gs gs a a a a gs gs a a gs gs |
  fs fs fs gs gs gs a a a gs gs gs a a b b |
  cs^"dist" cs cs b b b cs cs cs cs b b cs cs b b |
  cs cs cs b b b cs cs cs cs b b cs cs b b |
  a a a gs gs gs a a a a gs gs a a gs gs |
  <fs b fs'>4. <gs cs gs'>8 ~ q4 <a ds a'>4 |

  <gs ds' gs>1 ~ | q |
  q1 ~ | q2 r2 |

  R1*8 | R1*6 |
  <fs b fs'>4 fs16 fs <fs b fs'>8 ~ q fs16 fs <fs b fs'>4 |
  a4. gs8 ~ gs4 fs |

  \bar "||"

  gs16 gs gs a r fs r gs gs gs a r fs r gs gs |
  gs a r fs r gs8 a16 bs ds cs e ds fs a fs |
  gs gs gs a r fs r gs gs gs a r fs r gs gs |
  gs a r fs r gs8 a16 bs ds cs e ds fs a fs |
  gs gs gs a r fs r gs gs gs a r fs r gs gs |
  gs a r fs r gs8 a16 bs ds cs e ds fs a fs |
  gs gs gs a r fs r gs gs gs a r fs r gs8 |
  r1 |

  cs,,,4\staccato cs\staccato \tuplet 6/4 { cs16 cs cs cs cs cs } cs4\staccato |
  \tuplet 6/4 { cs16 cs cs cs cs cs } cs4\staccato \tuplet 6/4 4 { cs16 ds e fs gs a a gs fs e ds cs } |
  cs4\staccato cs\staccato \tuplet 6/4 { cs16 cs cs cs cs cs } cs4\staccato |
  \tuplet 6/4 { cs16 cs cs cs cs cs } cs4\staccato r2 |

  \bar "|."


}

guitarOneStaff = \new Staff \with { midiInstrument = "distorted guitar" midiMaximumVolume = #0.7 }{ \global \guitarOne }
guitarTwoStaff = \new Staff \with { midiInstrument = "distorted guitar" midiMaximumVolume = #0.7 }{ \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 { "°7" }
  <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 bf>1-\markup { "7" }
  <c e g b>1-\markup { "maj7" }
  <c ef g bf>1-\markup { "m7" }
  <c f g>1-\markup { "sus4" }
  <c d g>1-\markup { "sus2" }
  <c e g bf df'>1-\markup { "7" \super { \flat "9" } }
  <c e g f'>1-\markup { "add11" }
}

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

chordValues = \chordmode {
  \global
  \powerChords
  \set chordNameExceptions = #chordExceptions
  \set majorSevenSymbol = \markup "maj7"

  \repeat volta 2 { cs1:1.5 | q | }
  \repeat unfold 6 q |

  \repeat unfold 2 {
    cs1:m | q | a:1.3.5.11+ | fs:m6 |
    fs:m6/a | cs4.:m/gs gs8:1.5 q2 | b4. cs:m a4:1.3.5.11+ | gs1:1.3.5.7.9- |
  }

  cs1:m | q | gs:7/bs | q |
  cs1:m | q | gs:7/bs | q |


  a:1.3.5.11+ | q | fs:m6 | q1 |
  a:1.3.5.11+ | q | gs:1.5 | gs:1.3.5.7.9- |

  cs:m | q | a:1.3.5.11+ | fs:m |
  cs:m | q | a:1.3.5.11+ | fs:m |



  \repeat unfold 2 { a4.:1.5 a8:1.3.5.11+ q2 | }
  \repeat unfold 2 { cs4.:1.5 gs8:1.5 q2 | }
  \repeat unfold 2 { a4.:1.5 a8:1.3.5.11+ q2 | }
  b4.:1.5 cs:1.5 a4:1.3.5.11+ | gs2 r2 |

  %{

  \repeat volta 2 { \repeat unfold 8 { gs1:1.3.5.7.9- | } }
  \repeat unfold 4 q1 |
  \repeat unfold 4 fs:m |
  \repeat unfold 8 gs1:1.3.5.7.9- |

  gs8.:1.5 a8:1.5 fs:1.5 gs8.:1.5 a8:1.5 fs:1.5 gs8:1.5 | q1 |
  gs8.:1.5 a8:1.5 fs:1.5 gs8.:1.5 a8:1.5 fs4:1.5 | q1 |
  gs8.:1.5 a8:1.5 fs:1.5 gs8.:1.5 a8:1.5 fs:1.5 gs8:1.5 | q1 |
  gs8.:1.5 a8:1.5 fs:1.5 gs8.:1.5 a8:1.5 fs4:1.5 | r1 |

  cs1:m | q | a:1.3.5.11+ | fs:m |
  cs1:m | q | a:1.3.5.11+ | b4.:1.5 cs:1.5 a4:1.3.5.11+ |

  gs1:7 | q | gs:7/fs | q |

  cs1:m | q | a:1.3.5.11+ | fs:m6 |
  fs:m6/a | cs4.:m/gs gs8:1.5 q2 | b4. cs:m a4:1.3.5.11+ | gs1:1.3.5.7.9- |
  cs1:m | q | a:1.3.5.11+ | fs:m6 |
  fs:m6/a | cs4.:m/gs gs8:1.5 q2 | b1 | fs:m |

  \repeat unfold 7 gs1:1.3.5.7.9- |
  gs2 cs:m |

  cs1:1.5 | q | q | q |
%}

}

chordNames = \new ChordNames {
  \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 {}
}