\version "2.22.1"
\language "english"

#(set-global-staff-size 18)

\header {
  title = "Title Theme"
  subtitle = "As heard in the game \"Shogun Showdown\" by Roboatino"
  composer = "Marllon Silva (xDeviruchi)"
  arranger = "transcribed by Tommy Montgomery (https://tmont.com)"
  tagline = ""
}

\paper {
  % system-system-spacing = #'((basic-distance . 0.1) (padding . 4))
}

global = {
  \set Staff.printKeyCancellation = ##f
  \numericTimeSignature
  \compressEmptyMeasures
  \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 = 100
  \time 3/4
  \key c \minor
}

squareLeadTheme = \relative c''' {
  g4 ef g | bf f2 ~ | f2. ~ | f4 r c'8 bf |
  af4 g d | f c2 ~ | c2. ~ | c4 r4 <ef g>8 <d f> |
  <ef g>4 <c ef> <ef g> | <g bf> <d f>2 ~ | q4. <ef g>16 <d f> <ef g>4 ~ |
  q8 <f af>16 <ef g> <g bf>4 <ef c'>8 <d bf'> |
  <f af>4 <ef g> <bf d> | <d f> <af c>2 ~ | q2.  |
}

squareLead = \relative c' {
  \global
  R2.*3 | r2 ef'8 f | \bar "||"

  \squareLeadTheme

  <g, bf>2. | <af c> | <bf d> | <bf c> | <af b> ~ | q ~ | q2 ef'8 f | \bar "||"
  \squareLeadTheme

  <g, bf>2 <ef' g>8 <d f> |
  <ef g>4 <c ef> <ef g> | <g bf> <d f>2 ~ | q4. <ef g>16 <d f> <ef g>4 ~ |
  q8 <f af>16 <ef g> <g bf>4 <ef c'>8 <d bf'> |
  <f af>4 <ef g> <bf d> | <d f> <af c>2 ~ | q2.  |

  <g bf>2. | <bf d> | <af c> | <bf d> |
  <c ef> | <f af> | <d f> |

  <e g> ~ | q ~ | q2 r4 | R2. |
  <ef af>2. ~ | q | <g bf> ~ | q |
  <f b>2. ~ | q | q |

  <d bf'!> ~ | q2 r4 | \bar "|."
}

sawArpeggios = \relative c' {
  c8 ef g bf g ef |
  bf d f g f d |
  af c ef g ef c |
  g bf d ef d bf |
}

sawMainTheme = \relative c' {
  \repeat unfold 4 \sawArpeggios
}

sawLead = \relative c' {
  \global
  \sawArpeggios
  \repeat unfold 4 \sawArpeggios
  af8 c d ef d c |
  bf d ef f ef d |
  c ef f g bf c |
  d, f af b d f |
  af b d2 ~ | d2 r4 |


  % drums/bass enters
  \repeat unfold 4 \sawArpeggios
  R2.*8 |

  g,,,8 bf d ef d bf |
  af8 c d ef d c |
  bf d ef f ef d |
  c ef f g bf c |
  af b d f af b |
  d b af f d b |

  e, g b d e g |
  b g e d b g |
  e g a c e g |
  a g e c a g |

  ef! g af! c ef! g |
  af g ef c af g |
  d f g bf d f |
  g f d bf g f |

  d f af b d f |
  af f d b af f |
  d2. |

  R2.*2 |
}

pad = \relative c {
  \global
  \clef bass

  \repeat unfold 5 {
    <c ef g>2. | <bf d f> | <af c ef> | <bf ef g> |
  }

  % 0:36

  <c ef af> | <bf d g> | <c ef f> | <b d f>2. ~ | q2. ~ | q2 r4 |
  R2.*16 |
  \repeat unfold 2 {
    <c ef g>2. | <bf d f> | <af c ef> | <bf ef g> |
  }
  <bf ef g> | <c ef af> | <bf d g> | <c ef f> | <b d f>2. ~ | q2. |

  % 1:40
  <b e g>2. ~ | q | <c e g> ~ | q |
  <c ef! af> ~ | q | <d g bf> ~ | q |
  <f af b> ~ | q ~ | q |
  <ef g bf!> ~ | q2 r4 |
}

bass = \relative c {
  \global
  \clef bass

  R2.*26 |

  \repeat unfold 6 {
    c,4 g'8[ ef] ~ ef f |
    g bf d2 |
    af4 af8 g g af8 |
    r g r f ef4 |
  }

  % 1:28
  g4 bf4 r8 bf |
  af4 ef'4 c |
  bf g' r8 bf,, |
  c4 r8 g' c,4 |
  b' r8 b f'4 |
  b4 f b, |

  e4 r8 b e4 | b g' e |
  a4 r8 e a4 | c e, a |
  af!4 r8 ef! af4 | c ef, af, |
  g'4 r8 d g4 | g d g |
  b, f' b | b,2. ~ | b2. |
  g2. ~ | g2 r4 |
}

drumBeatOne = \drummode {
  <<
    { r8 hh hh hh sn4 | r8 hh hh r sn4 | } \\
    { bd4 r4 r8 bd    | bd4 r8 bd r bd | }
  >>
}

drumkit = \drummode {
  \global

  R2.*26 |


  % 0:46
  \repeat unfold 8 {
    <<
      { r8 hh hh r sn hh | r hh hh hh sn hh16 sn | } \\
      { bd4 r8 bd r4     | bd r2                 | }
    >>

    \drumBeatOne
  }

  \repeat unfold 4 \drumBeatOne

  <<
    { hho2. | R2. | } \\
    { R2.   | bd4 r2 |}
  >>

  R2. |
}

squareLeadStaff = \new Staff \with { instrumentName = "Square" } \squareLead
leadSawStaff = \new Staff \with { instrumentName = "Square 2" } \sawLead
padStaff = \new Staff \with { instrumentName = "Saw pad" } \pad
bassStaff = \new Staff \with { instrumentName = "Bass" } \bass
drumStaff = \new DrumStaff \with { instrumentName = "Drums" } \drumkit

\score {
  <<
    \squareLeadStaff
    \leadSawStaff
    \padStaff
    \bassStaff
    \drumStaff
  >>
  \layout {
    % indent = #0
    \context {
      \Staff
      \RemoveEmptyStaves
    }
    \context {
      \Score
      \override SpacingSpanner.base-shortest-duration = #(ly:make-moment 1/10)
    }
    \context {
      \DrumStaff
      \RemoveEmptyStaves
    }
  }
}