\version "2.24.0"
\language "english"

\header {
  title = "G Minor"
  composer = "Tommy Montgomery"
  copyright = "(c) 2023 Tommy Montgomery"
}

global = {
  \key g \minor
  \set Staff.printKeyCancellation = ##f
  \numericTimeSignature
  \compressEmptyMeasures
  \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 4 = 190
}

introRiff = \relative c' {
  \repeat volta 2 {
    \time 4,3 7/8 g4 g g'8( f) d | g,4 g g'8( f) d |
    \time 4/4 g,4 g g'8( f) d g, ~ | g a bf d g a bf f |
    \time 4,3 7/8 g,4 g g'8( f) d | g,4 g g'8( f) d |
  }
  \alternative {
    { \time 4/4 g,4 g g'8( f) d g, ~ | g a bf a bf a g f | }
    { \time 4/4 g4 g g'8( f) d f, ~ | f fs g bf c f, c' bf | }
  }
}

guitarOne = \relative c' {
  \global


  \introRiff

  \time 1,1,1,1,1,1 6/4
  \repeat unfold 2 {
    <c g' c>4 q8 q q q q4 q8 q q q |
    <ef bf' ef>4 q8 q q q q4 q8 q q q |
    \repeat unfold 2 {
      <ef bf' ef>8\glissando( <f c' f>) q q4 <ef bf' ef>8\glissando(
      <f c' f>4) \xNotesOn q8 q q q \xNotesOff |
    }
  }
  \alternative {
    {
      <c g' c>4 q8 q q q q4 q8 q q q |
      <f, c' f>4 q8 q q q q4 q8 q q q |
      \repeat unfold 2 {
        <f c' f>8\glissando( <g d' g>) q q4 <f c' f>8\glissando(
        <g d' g>4) \xNotesOn q8 q q q \xNotesOff |
      }
    }
    {
      <c g' c>4 q8 q q q q4 q8 q q q |
      <df af' df>4 q8 q q q q4 q8 q q q |
      a8 cs e g bf a g f e f d e cs d bf cs a bf g a \tuplet 3/2 4 { fs g a a g fs }
    }
  }

  \introRiff


  %{ solo

  \ottava #1
  c'''16( g) bf( g) f( d) g( bf) c( g) bf( g) f( d) g( bf) |
  c( g) bf( g) f( d) g( bf g) f( d) c( bf4) |
  \repeat unfold 2 { c16 df c bf c bf g fs f fs g bf } c df c bf g4 |
  g,16 g g g a a a a bf bf bf bf d d d d |
  g g g g a a a a bf bf bf bf d d d d |
  g g g g a a a a bf bf bf bf d d d d |
  \grace d8( ef4.) ef8 ~ ef( d) c d ~ |
  d1 | \ottava #0
  \tuplet 3/2 4 { g,8( ef) d bf g ef c a f d fs a } |
  g2 r2 |
  %}
}

guitarTwo = \relative c {
}

vocalMelody = \relative c'' {


}

allTheLyrics = \lyricmode {



}

guitarOneStaff = \new Staff \with { midiInstrument = "distorted guitar" midiMaximumVolume = #0.6 }{ \global \guitarOne }
guitarTwoStaff = \new Staff \with { midiInstrument = "distorted guitar" midiMaximumVolume = #0.6 }{ \global \guitarTwo }


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 ef gf bf>1-\markup { \super { "ø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"

}

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

\score {
  <<
    \chordNames
    % \vox
    % \demLyrics
    \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, \vox
      \transpose c c, \guitarOneStaff
      \transpose c c, \guitarTwoStaff
    >>
  }
  \midi {}
}