\version "2.24.3"

#(set-default-paper-size '(cons (* 210 mm) (* 5000 mm)))

\header {
  tagline = #f
}

vox = \relative {
  \time 4/4
  \key cis \minor
  \tempo 4 = 180
  \newSpacingSection
  \override Score.SpacingSpanner.spacing-increment = #0.1
  \partial 256 s256 |
  \newSpacingSection
  \revert Score.SpacingSpanner.spacing-increment
  \bar "||"
  \xNotesOn
  s1*4 |
  \time 3/4
  a'4\ff 4 4 |
  \afterGrace gis2\glissando { \hideNotes dis16 } \unHideNotes r4 |
  b'4 b2 |
  \time 4/4
  s1*4 |
  \time 3/4
  a4 a2-. |
  gis4 gis2-. |
  b4. b |
  \time 4/4
  \tempo 4 = 170
  \afterGrace b4.\glissando { \hideNotes fis16 } \unHideNotes r8 r2 |
  s1*3 |
  \time 3/8
  s4. |
  \bar "||"
}

lyricsOne = \lyricmode {
  Thou -- sands of birds, lur -- \markup { \concat { kin \char ##x2019 . } }
  Shal -- low wa -- ters, sailed too far.
}

gtrOneVoiceOne = \relative {
  \time 4/4
  \key cis \minor
  \partial 256 s256 |
  r4.\ff e8 dis4. e8 |
  dis4. e8 dis2 |
  r4. b8\glissando\mf^\markup { \italic { distortion off } } cis\5 cis\5 r b\glissando |
  cis8\5 cis\5 r b\glissando cis\5 cis\5 r4 |
  \time 3/4
  \repeat tremolo 6 { <a cis gis' cis>8\ff^\markup { \italic { distortion on } } } |
  \repeat tremolo 6 <gis cis b'\3 dis\2>8 |
  \repeat tremolo 6 <b' e gis b>8 |
  \time 4/4
  r4. e,8 dis4. e8 |
  dis4. e8 dis2 |
  r4. b8\glissando\mf^\markup { \italic { distortion off } } cis\5 cis\5 r b\glissando |
  cis8\5 cis\5 r b\glissando cis\5 cis\5 r4 |
  \time 3/4
  \repeat tremolo 6 { <a cis gis' cis>8\ff^\markup { \italic { distortion on } } } |
  \repeat tremolo 6 <gis cis b'\3 dis\2>8 |
  \repeat tremolo 6 <b' e gis b>8 |
  \time 4/4
  \repeat unfold 4 { r4. gis8\glissando b\3 cis b\3( fis) | }
  \time 3/8
  s4. |
}

gtrOneVoiceTwo = \relative {
  \time 4/4
  \key cis \minor
  \partial 256 s256 |
  <cis, gis'>2 q |
  q q |
  <dis gis>8 q r2. |
  s1 |
  \time 3/4
  s2.*3 |
  \time 4/4
  <cis gis'>2 q |
  q q |
  <dis gis>8 q r2. |
  s1 |
  \time 3/4
  s2.*3 |
  \time 4/4
  <cis a'>8.\f q r8 r2 |
  \repeat unfold 3 { <cis a'>8. q r8 r2 | }
  \time 3/8
  <cis a'>8. q |
}

gtrTwo = \relative {
  \time 4/4
  \key cis \minor
  \partial 256 s256 |
  s1*2 |
  r4.\mf^\markup { \italic { distortion off } } <gis, cis a'>8 q q r8 q |
  q q r8 q q q r4 |
  \time 3/4
  \repeat tremolo 6 { <a' cis>8^\markup { \italic { distortion on } } } |
  \repeat tremolo 6 <dis b'>8 |
  \repeat tremolo 6 <gis e'>8 |
  \time 4/4
  s1*2 |
  r4.^\markup { \italic { distortion off } } <gis,, cis a'>8 q q r8 q |
  q q r8 q q q r4 |
  \time 3/4
  \repeat tremolo 6 { <a' cis>8^\markup { \italic { distortion on } } } |
  \repeat tremolo 6 <dis b'>8 |
  \repeat tremolo 6 {
    <gis e'>8^\markup {
      \left-align {
        \hspace #4
        \concat { \char ##x2191 \char ##x00bc }
      }
    }
  } |
  \time 4/4
  r4.\f cis,,8( e4) gis8( fis) |
  \repeat unfold 3 { r4. cis8( e4) gis8( fis) | }
  \time 3/8
  s4. |
}

bass = \relative {
  \time 4/4
  \key cis \minor
  \partial 256 s256 |
  cis,,4.\ff e'8 cis,4. 8 |
  cis4. 8 4. 8 |
  gis'8 8 r8 gis\mf gis gis r gis |
  gis8 gis r gis a gis e cis |
  \time 3/4
  \repeat tremolo 6 { a'8\ff } |
  \repeat tremolo 6 cis8 |
  \repeat tremolo 6 b8 |
  \time 4/4
  cis,4. e'8 dis4. e8 |
  cis,4. 8 4. 8 |
  gis'8 8 r8 gis\mf gis gis r gis |
  gis8 gis r gis a gis e cis |
  \time 3/4
  \repeat tremolo 6 { a'8\ff } |
  \repeat tremolo 6 cis8 |
  \repeat tremolo 6 b8 |
  \time 4/4
  cis,8.\f cis r8 r2 |
  \repeat unfold 2 { cis8. cis r8 r2 | }
  gis'8. gis r8 r2 |
  \time 3/8
  a8. a |
}

kitOne = \drummode {
  \time 4/4
  \partial 256 s256 |
  cymc8 cymr cymr-> cymr <sn cymr>-> cymr cymr-> cymr |
  cymr8-> cymr cymr-> cymr <sn cymr>-> cymr cymr4-> |
  cymc4 hh\halfopen <sn hh>\halfopen hh\halfopen |
  hh4\halfopen hh\halfopen \acciaccatura sn8 sn2 |
  \time 3/4
  cymc4 <sn cymr>-> <sn cymr>-> |
  \repeat percent 2 { <sn cymr>-> <sn cymr>-> <sn cymr>-> | }
  \time 4/4
  cymc2 <sn cymr>4-> cymr |
  cymr4-> cymr <sn cymr>-> cymr |
  cymc4 hh\halfopen <sn hh>\halfopen hh\halfopen |
  hh4\halfopen hh\halfopen \acciaccatura sn8 sn2 |
  \time 3/4
  cymc4 <sn cymr>-> <sn cymr>-> |
  \repeat percent 2 { <sn cymr>-> <sn cymr>-> <sn cymr>-> | }
  \time 4/4
  cymc8. cymc r8 sn16-> sn sn sn sn-> sn sn sn |
  \repeat percent 3 { cymc8. cymc r8 <sn hho>16-> sn sn sn sn-> sn sn sn | }
  \time 3/8
  cymc8. cymc \breathe |
}

kitTwo = \drummode {
  \time 4/4
  \partial 256 s256 |
  bd4.\ff bd8 r4. bd8 |
  bd4. bd8 r4. bd8 |
  bd8 bd r bd\mf r bd r bd |
  r8 bd r bd r2 |
  \time 3/4
  bd8\ff bd r bd r bd |
  \repeat percent 2 { r bd r bd r bd | }
  \time 4/4
  \repeat unfold 2 { bd4. bd8 r4. bd8 | }
  bd8 bd r bd\mf r bd r bd |
  r8 bd r bd r2 |
  \time 3/4
  bd8\ff bd r bd r bd |
  \repeat percent 2 { r bd r bd r bd | }
  \time 4/4
  bd8.\f bd r8 r2 |
  \repeat percent 3 { bd8. bd bd8 r2 | }
  \time 3/8
  bd8. bd |
}

fullScore = <<
  \new Staff = "voxStaff" \with {
    midiInstrument = "marimba"
    midiPanPosition = #0.0
  } <<
    \clef "treble"
    \new Voice = "vox" { \vox }
    \new Lyrics \lyricsto "vox" { \lyricsOne }
  >>

  \tag #'folded {
    \new GrandStaff <<
      \new Staff \with {
        midiInstrument = "overdriven guitar"
        midiPanPosition = #-1.0
      } <<
        \clef "treble_8"
        \new Voice = "g1v1" { \voiceOne \gtrOneVoiceOne }
        \new Voice = "g1v2" { \voiceTwo \gtrOneVoiceTwo }
      >>
      \tag #'tablature {
        \new TabStaff <<
          \set Staff.stringTunings = \stringTuning <cis, gis, cis fis ais dis'>
          \clef moderntab
          \new TabVoice = "g1v1" { \voiceOne \gtrOneVoiceOne }
          \new TabVoice = "g1v2" { \voiceTwo \gtrOneVoiceTwo }
        >>
      }
    >>
  }
  \tag #'unfolded {
    \new GrandStaff <<
      \new Staff \with {
        midiInstrument = "overdriven guitar"
        midiPanPosition = #-1.0
      } <<
        \clef "treble_8"
        \new Voice = "g1v1" { \unfoldRepeats { \voiceOne \gtrOneVoiceOne } }
        \new Voice = "g1v2" { \unfoldRepeats { \voiceTwo \gtrOneVoiceTwo } }
      >>
      \tag #'tablature {
        \new TabStaff <<
          \set Staff.stringTunings = \stringTuning <cis, gis, cis fis ais dis'>
          \clef moderntab
          \new TabVoice = "g1v1" { \voiceOne \gtrOneVoiceOne }
          \new TabVoice = "g1v2" { \voiceTwo \gtrOneVoiceTwo }
        >>
      }
    >>
  }

  \tag #'folded {
    \new GrandStaff <<
      \new Staff \with {
        midiInstrument = "distorted guitar"
        midiPanPosition = #1.0
      } {
        \clef "treble_8"
        \gtrTwo
      }
      \tag #'tablature {
        \new TabStaff {
          \set Staff.stringTunings = \stringTuning <cis, gis, cis fis ais dis'>
          \clef moderntab
          \gtrTwo
        }
      }
    >>
  }
  \tag #'unfolded {
    \new GrandStaff <<
      \new Staff \with {
        midiInstrument = "distorted guitar"
        midiPanPosition = #1.0
      } {
        \clef "treble_8"
        \unfoldRepeats { \gtrTwo }
      }
      \tag #'tablature {
        \new TabStaff {
          \set Staff.stringTunings = \stringTuning <cis, gis, cis fis ais dis'>
          \clef moderntab
          \gtrTwo
        }
      }
    >>
  }

  \tag #'folded {
    \new GrandStaff <<
      \new Staff \with {
        midiInstrument = "electric bass (pick)"
        midiPanPosition = #0.0
      } {
        \clef "bass_8"
        \bass
      }
      \tag #'tablature {
        \new TabStaff {
          \set Staff.stringTunings = \stringTuning <cis,, gis,, cis, fis,>
          \clef moderntab
          \bass
        }
      }
    >>
  }
  \tag #'unfolded {
    \new GrandStaff <<
      \new Staff \with {
        midiInstrument = "electric bass (pick)"
        midiPanPosition = #0.0
      } {
        \clef "bass_8"
        \unfoldRepeats { \bass }
      }
      \tag #'tablature {
        \new TabStaff {
          \set Staff.stringTunings = \stringTuning <cis,, gis,, cis, fis,>
          \clef moderntab
          \bass
        }
      }
    >>
  }

  \tag #'folded {
    \new DrumStaff \with { drumStyleTable = #weinberg-drums-style } <<
      \new DrumVoice { \voiceOne \kitOne }
      \new DrumVoice { \voiceTwo \kitTwo }
    >>
  }
  \tag #'unfolded {
    \new DrumStaff \with { drumStyleTable = #weinberg-drums-style } <<
      \new DrumVoice { \unfoldRepeats { \voiceOne \kitOne } }
      \new DrumVoice { \unfoldRepeats { \voiceTwo \kitTwo } }
    >>
  }
>>

\score {
  \removeWithTag #'unfolded
  \fullScore

  \layout {
    indent = 0
    \omit Voice.StringNumber

    \context {
      \Score
      \override Glissando.minimum-length = #4
      \override Glissando.springs-and-rods = #ly:spanner::set-spacing-rods
      \override Glissando.thickness = #2
    }

    \context {
      \StaffGroup
      \RemoveAllEmptyStaves
    }
  }
}

\score {
  \removeWithTag #'folded
  \removeWithTag #'tablature
  \fullScore

  \midi { }
}
