\version "2.22.1"
\language "english"

#(set-global-staff-size 18)

\header {
  title = "Exploring the Unknown"
  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 = 228
  \time 4/4
  \key b \minor
}

squareLead = \relative c' {
  \global
  cs'1 | cs2 d | cs1 | cs2 d | e1 ~ | e | R1 | r2 r4 d | \bar "||"

  cs4. b8 ~ b4 e ~ | e2.  d4 | cs4. d8 ~ d4 b ~ | b2. d4 |
  cs4. b8 ~ b4 as | b2 cs | e4 d cs d | b2. d4 |
  cs4. b8 ~ b4 e ~ | e2.  d4 | e4. fs8 ~ fs4 d ~ | d2. b8 cs |
  d4. e8 ~ e4 fs | e4 a, b d | b1 ~ | b2. cs8 d | \bar "||"

  cs4. b8 ~ b4 e ~ | e8 fs4. ~ fs4 e | cs4. d8 ~ d4 b ~ | b2 cs4 d |
  cs4. b8 ~ b4 as | b2 cs4 d | e d cs d | b2. cs4 |

  d4. cs8 ~ cs4 e ~ | e2. cs4 | e4. fs8 ~ fs4 d ~ | d2. b4 |
  d4. e8 ~ e4 fs | e a, b d | b1 | e4. e8 ~ e4 e | e2 as,8 cs d e |

  % 0:44
  \key d \minor
  \bar "||"
  \repeat unfold 2 {
    d2. cs8 d | e2 g | f4 g, a d | cs2 d |
    e2. e8 f | g4. f8 ~ f4 d | cs2 e | d2. a4 |
    d2. a4 |
  }
  \alternative {
    {
      bf2 g' | f4. a,8 ~ a4 d | cs2. cs8 d |
      e4. d8 ~ d4 b | cs4. e8 ~ e4 g | f1 ~ | f2 bf,8 cs d e |
    }
    {
      % 1:10
      bf2. g4 | a4. cs8 ~ cs4 g' | f2. cs8 d |
      e2 cs | a cs | d1 ~ | d |
    }
  }

  \bar "||"

  % 1:18
  <g, a>1 | <gs b> | <a c> ~ | q |
  <a f'> | <b g'> | <cs a'> ~ | q |

  \key a \major
  \bar "||"

  \repeat unfold 2 {
    d4. cs8 ~ cs4 d | b2. a8 b | cs4. b8 ~ b4 a | b1 |
    a4. b8 ~ b4 e | cs2 b4 a | b1 | a2 gs |
    fs2. gs4 | gs1 | a2. b4 | b2. e,4 |
    a2 cs | d e |
  }
  \alternative {
    {
      cs1 ~ | cs |
    }
    {
      cs1 ~ | cs2. d4 |
    }
  }

  e1 ~ | e |

  \bar "|."


}

sawLead = \relative c' {
  \global
  <fs a>1\arpeggio ~ | q1 |
  <e a>1\arpeggio ~ | q1 |
  <a cs>1\arpeggio ~ | q1 |
  <fs as>4. q8 ~ q4 q | q4. q8 ~ q4 r |

  R1*15 |
  e8 fs b cs fs cs b fs |

  e fs b cs e fs b cs | e cs b fs e cs b fs |
  e cs e g a cs e g | a g e cs a g e cs |
  b' e, b' e g e b g | e a e' a b a d, c |
  as cs! e g as g e cs | b d fs a! b a fs d |

  a fs b cs e fs a cs | e cs a fs e cs a fs |
  e cs e g a cs e g | a g e cs a g e cs |
  d g b d d, g b d | fs, a d e fs, a d e |
  <e, fs a>4. q8 ~ q4 q | <e fs as>4. q8 ~ q4 q |
  q2 r2 |

  \key d \minor
  <d f a>4. q8 ~ q4 r4 | <cs e a>2 q |
  <bf d g>4. q8 ~ q q4. | <cs e a>2 q |
  <d f a>4. q8 ~ q4 q | <d f bf>4. q8 ~ q4 q |
  <cs e a>4. q8 ~ q8 q4. | <d f a>2 <f a c!> |

  <d f bf>4. q8 ~ q4 q | <d g bf>2 q |
  <f a c>4. q8 ~ q4 q | <a d>4. <a e'>8 ~ q4 <a f'> |
  <gs b e>4. q8 ~ q4 q | <a cs e>4. q8 ~ q4 q |
  <f a d>2 <f a cs> | <f a b> <f a cs> |

  <d f a>4. q8 ~ q4 r4 | <e g c>2 q |
  <d g bf>4. q8 ~ q q4. | <e a cs>2 q |
  <f a c!>4. q8 ~ q4 q | <g bf d>4. q8 ~ q4 q |
  <a cs e>2 q | <f a d> <f a cs> |

  <f a c!>4. q8 ~ q4 q | <d g bf>4. q8 ~ q4 q |
  <e a cs>4. q8 ~ q4 q | <f a c!>2 <f a d> |
  <e a cs>2 q | q <a cs e> |
  <a d g>4. q8 ~ q4 q | <a d fs>4. q8 ~ q4 q |

  <cs e>1 | <d fs> | <c? e> ~ | q |
  <c e> | <b d> | <a cs e> ~ | q |

  \key fs \minor

  \repeat unfold 2 {
    <b e g >1 | <cs fs a> | <fs a cs> | <ds gs b> |
    <cs e gs> | <cs fs a> | <ds gs b> | <cs fs a> |

    <fs a cs>2 <e a b> | <cs e gs>2 <e a cs> |
    <fs a cs>2 <e a b> | <fs a cs>1 |
    q | q |
    <cs fs a> | <a cs fs > |
  }

  <cs fs a>1 ~ | q1 |
}

pad = \relative c' {
  \global
  \clef treble

  R1*8 |

  <fs b d>1 ~ | q | <g b e> ~ | q |
  <fs b d> |<g b e> | <as cs fs> | <fs b d> |

  <fs a cs> ~ | q | <fs a e'> ~ | q |
  <g b d> | <fs a cs> | <g b ~ cs> | <d fs b> |

  R1*32 |
}

bass = \relative c {
  \global
  \clef bass

  b4 fs'8 fs b,8 b fs'4 | b,8 b fs'4 b,8 b fs'4 |
  a,4 e'8 e a,8 a e'4 | a,8 a e'4 a,8 a e'4 |
  g,4 d'8 d g,8 g d'4 | g,8 g d'4 g,8 g d'4 |
  fs4. fs8 ~ fs4 fs | fs8 fs fs e e e fs4 |

  \repeat unfold 2 {
    b,4 fs'8 fs b,8 b fs'4 | b,8 b fs'4 b,8 b fs'4 |
    a,4 e'8 e a,8 a e'4 | a,8 a e'4 a,8 a e'4 |
    fs,4 cs'8 cs fs,8 fs cs'4 | fs,8 fs as4 fs8 fs as4 |
    fs4 d'8 d fs,8 fs d'4 | b8 b fs'4 b,8 b fs'4 |

    b,4 fs'8 fs b,8 b fs'4 | b,8 b fs'4 b,8 b fs'4 |
    a,4 e'8 e a,8 a e'4 | a,8 a e'4 a,8 a e'4 |
    g,4 b8 b g8 g b4 | fs8 fs d'4 fs,8 fs cs'4 |

  }
  \alternative {
    {
      g4 d'8 d g,8 g d'4 | b8 b fs'4 b,8 b fs'4 |
    }
    {
      b,4 fs'4 b,8 b fs'4 | fs8 fs, fs fs' fs, fs fs' fs, |
    }
  }

  fs2 as'2\glissando |

  \key d \minor

  d,4 a' d,8 d a'4 | a,8 a e'4 a,8 a e'4 |
  g,4 d' g,8 g d'4 | a8 a e'4 a,8 a e'4 |
  f,4 d'4 f,8 f d'4 | f,8 f d'4 f,8 f d'4 |
  a4 e'4 a,8 a e'4 | d4 a'4 d,8 d a'4 |

  bf,4 f' bf,8 bf f'4 | bf,8 bf g'4 bf,8 bf g'4 |
  a,4 f' a,8 a f'4 | a,8 a e'4 a,8 a e'4 |
  gs,4 b gs8 gs b4 | a4 e' a,8 a e'4 |
  d4 a' d,8 d a'4 | d,8 d a'4 d,8 d a'4 |

  bf,4 f'4 bf,8 bf f'4 | c4 g' c,8 c g'4 |
  g,4 d' g,8 g d'4 | a8 a e'4 a,8 a e'4 |
  f,4 c' f,8 f c'4 | g4 d' g,8 g d'4 |
  a4 e'4 a,8 a e'4 | bf4 f'4 bf,8 bf f'4 |

  f,4 d' f,8 f d'4 | g,4 d' g,8 g d'4 |
  a4 e'4 a,8 a e'4 | d4 a' d,8 d a'4 |
  a,4 e'4 a,8 a e'4 | a,4 e'4 a,8 a e'4 |
  d4 a' d,8 d a'4 |  d,4 a' d,8 d a'4 |

  cs,4 a'4 cs,8 cs a'4 | b, gs' b,8 b gs'4 |
  a,4 e'4 a,8 a e'4 | g,4 d' g,8 g d'4 |
  f,4 d' f,8 f d'4 | g,4 d' g,8 g d'4 |
  a4 e'4 a,8 a e'4 | a,8 a e'4 a,8 a e'4 |

  \key a \major
  \repeat unfold 2 {
    a,4. e'8 ~ e4 a | g,4 d' g2 |
    fs,4 cs'8 fs8 ~ fs fs cs4 | e,4. e'8 ~ e b' e,4 |
    cs4. gs'8 ~ gs4 cs4 | d, a d2 |
    e4 b8 gs' ~ gs e b4 | e,4 b'8 e ~ e b' e,4 |

    fs,4. cs'8 ~ cs4 fs | cs4 gs' cs2 |
    d,4 a'8 fs ~ fs e d4 | e4 b8 e ~ e b' e,4 |
    a,4. a'8 ~ a4 e | d4 a a'2 |
  }
  \alternative {
    {
      fs4 cs8 a' ~ a fs cs4 | a4 cs8 a' ~ a fs cs4 |
    }
    {
      fs,4 fs' cs8 cs fs4 | fs,4 fs' cs4 fs |
    }
  }

  b,1 ~ | b |


}

drumMainBeat = \drummode {
  <<
    { r4 sn hh sn | r sn r sn | } \\
    { bd4 r bd8 bd r4 | bd8 bd r4 bd8 bd r4 | }
  >>
}

drumSecondBeat = \drummode {
  <<
    { r4 sn r sn | r sn r sn | } \\
    { bd4 r bd8 bd r4 | bd8 bd r4 bd8 bd r4 | }
  >>
}

drumThirdBeat = \drummode {
  <<
    { r8 hh hh sn hh hh r hh | sn hh hh hh sn hh r sn | } \\
    { bd4 r r bd | r2 r4 bd8 r | }
  >>

  <<
    { r8 hh hh r sn hh r sn | r hh sn r sn hh sn sn } \\
    { bd4 r8 bd r4 bd4 | bd4 r8 bd r2 }
  >>
}


drumkit = \drummode {
  \global

  \repeat unfold 3 \drumMainBeat

  <<
    { sn8 r r sn r4 sn8 r | sn8 sn r sn sn r sn8 sn | } \\
    { r8 bd bd r bd bd r bd | r4 bd8 r r bd r4}
  >>

  \repeat unfold 15 \drumMainBeat
  <<
    { r4 sn hh sn | sn8 r r sn r r sn r | cyms2. r8 sn | } \\
    { bd4 r bd8 bd r4 | r8 bd bd r bd bd r bd | R1 | }
  >>

  % 0:43
  \repeat unfold 16 \drumMainBeat
  \repeat unfold 3 \drumMainBeat
  <<
    { r4 sn hh sn | sn8 sn sn sn sn sn sn sn | } \\
    { bd4 r bd8 bd r4 | R1 | }
  >>

  % 1:26
  \repeat unfold 7 \drumThirdBeat

  <<
    { r8 hh hh sn hh hh r hh | sn hh hh hh sn hh r sn | } \\
    { bd4 r r bd | r2 r4 bd8 r | }
  >>

  % 1:58
  <<
    { sn8 sn sn r sn sn sn r | sn8 sn sn r sn sn sn sn | cymc1 | R1 | } \\
    { r4 r8 bd r4 r8 bd | r4 r8 bd r2 | R1 | R1 | }
  >>

}

squareLeadStaff = \new Staff \with { instrumentName = "Lead" } \squareLead
leadSawStaff = \new Staff \with { instrumentName = "Square" } \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
    }
  }
}