\version "2.18.2"
\language "english"

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

global = {
  \key af \mixolydian
  \time 2/2
  \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
  \override Score.LyricText.font-name = #"Noto Serif"
  \override Score.LyricText.font-size = #0
  \tempo "Slowly" 2 = 48
}

\parallelMusic #'(right left) {
  \global r8 af'' c df ef df c af |
  \global \clef treble af' ef' af bf c df ef c |

  gf'4. ef8 f2 |
  ef8 ef, gf bf af df, ef4 |

  r8 af, c df ef df c af |
  af, ef' af bf c df ef c |

  ff'4. ef8 df2 |
  df8 c bf af ff af bf4 |

  r8 af c df ef df c af |
  af, ef' af bf c df ef c |

  gf'4. af8 f2 |
  ef8 ef, gf bf af df, ef4 |


}

guitarOne = \relative c' {

}

vocalMelody = \relative c'' {
}

allTheLyrics = \lyricmode {
  hi
}

vox = \new Staff \with { midiInstrument = "voice oohs" midiMinimumVolume = #0.7 } {
  <<
    \new Voice = "vocalMelody" { \clef treble \global \vocalMelody }
  >>
}

demLyrics = \new Lyrics \lyricsto "vocalMelody" {
  <<
    \new Lyrics {
      \set associatedVoice = "vocalMelody"
      \allTheLyrics
    }
  >>
}

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" }
  <c e g b d' f' a'>1-\markup { "maj13" }
}

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

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

  % piano intro
  af1 | ef2:m df:1.3.5.9 |
  af1 | df2:m df:m6 |
  af1 | ef2:m df:1.3.5.9 |


}

guitarOneStaff = \new Staff \with { midiInstrument = "electric guitar (jazz)" } { \global \guitarOne }
pianoStaff = \new PianoStaff \with {
  instrumentName = "Piano"
} <<
  \new Staff = "right" \with {
    midiInstrument = "acoustic grand"
  } \relative c' \right
  \new Staff = "left" \with {
    midiInstrument = "acoustic grand"
  } { \clef bass \relative c \left }
>>

chordNames = \new ChordNames {
  \set chordChanges = ##t
  \chordValues
}

\score {
  <<
    \chordNames
    % \vox
    \pianoStaff
    \guitarOneStaff
  >>
  \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 {
    <<
      \vox
      \pianoStaff
      \guitarOneStaff
    >>
  }
  \midi {}
}