% This is an arrangement for classical guitar of the % LINUX OUTLAWS theme song, "sudo modprobe." Thanks to % Outlaws Fabian Scherschel & Dan Lynch for the original. % To compile this and make a .pdf out of it, use the Lilypond % music engraving engine, available in most repos using % `sudo apt-get install lilypond' % % Once you have it, cd to the right directory, then run the command % `lilypond sudo-modprobe.ly' and after it's done compiling you can % view the pdf in your favorite pdf viewer. \version "2.13.20" \include "predefined-guitar-fretboards.ly" \header { title = \markup { \override #'(font-name . "Courier") { \fontsize #+2 "~$ sudo modprobe" } } composer = \markup { \override #'(font-name . "Vera") { \fontsize #-2 "Fabian Scherschel & Dan Lynch" } } poet = \markup { \override #'(font-name . "Vera") { \fontsize #-2 "arr. Jonathan Kulp" } } copyright = "Creative Commons Attribution-Share-Alike 3.0" } \paper { #(set-paper-size "letter") ragged-right = ##f ragged-last-bottom = ##t } #(set-global-staff-size 19) TAB = \markup { \raise #3.0 \sans \bold \huge \override #'(baseline-skip . 2.5) \left-align \center-column { T A B } } global = { \key e \minor %\hBeam \time 4/4 \numericTimeSignature % uncomment next two lines when Carl's code is applied %\overrideBeamSettings #'Score #'(4 . 4) #'end % #'((* . (2 2))) } twelve = \markup { \italic \teeny "12" } seven = \markup { \italic \teeny "7" } harm = \markup { \italic \tiny "natural harmonics" } rit = \markup { \italic "rit." } asusFour = \markup \fret-diagram #"f:2;6-x;5-o;4-2-1;3-2-2;2-3-3;1-o;" %%%%%%%% THE MUSIC STARTS HERE!! %%%%%%%% upper = \relative c { \tempo "Outlawdo Moderato" \global \voiceOne \bar "|:" r8 b e g b e, b' g | % 1 b8 fis g b g' b, g' b, | % 2 r8 a d fis d fis d g-> ~ | % 3 g8 g,[ d] r8 b' g r8 8 | % 4 \bar ":|" %\break e4 d8 e4 d8 e fis | % 5 g2.-4 b4-1 | % 6 \set TabStaff.minimumFret = #6 8-4 -1 \set TabStaff.minimumFret = #0 d, \set TabStaff.minimumFret = #7 d' fis d \set TabStaff.minimumFret = #0 d, b'-> ~ | % 7 b8 a g a g a g fis | % 8 4\arpeggio d'8 4 d8 e fis | % 9 g2 r4. fis8-2 % 10 d8 a d, a' d a d, b'-> ~ | % 11 b8 a,16 a' g, g' a, a' g, g' a, a' g, g' fis, fis' | % 12 e,8 \times 2/3{b'16 e g} b,8 e % 13 \times 2/3{g16 b e} g,8 | % 13 g,8 \times 2/3{b16 d g} b,8 d % 14 \times 2/3{g16 b g'} g,8 | % 14 d,8 \times 2/3{a'16 d fis} a,8 ->\arpeggio ~~ %15 8 8\arpeggio 4\arpeggio | % 15 %\break \bar "|:" 8\arpeggio % begin 16 \times 2/3{16 } 8 8 ~~ 4 | % end 16 8\arpeggio % begin 17 \times 2/3{16 } 8 ~~ 4 | % end 17 \oneVoice 8\arpeggio % begin 18 \times 2/3{16 } 8 ~~ 8 8 4 | % 18 \bar ":|" 8\arpeggio\> % begin 19 \times 2/3{16 } 8 8 ~~ 4\! | % end 19 %\break \override NoteHead #'style = #'harmonic-mixed 8^\twelve\pp ^\seven e'_\harm e e, e' e e, | % 20 8^\seven ^\asusFour ^\seven d d a d d a | % 21 8^\twelve ^\twelve b b g b b g | % 22 ^\seven ^\twelve a' a d, a' a d, | % 23 e'8 e,e' e e, e' e e, | % 24 d'8^\asusFour a d d a d d a | % 25 b8 g b b g b b g | % 26 b8 g b b g % 27 beginning \override NoteHead #'style = #'default b,_\markup { \italic \tiny "nat." } b g | % 27 end \voiceOne \set TabStaff.minimumFret = #3 8[ g'8] ~ g 8 % 28 beginning \acciaccatura bes'8 a8[ g] \acciaccatura bes a g ~ | % 28 end g2. \acciaccatura d8 e8 d ~ | % 29 d2. \acciaccatura d8 e8 \set TabStaff.minimumFret = #0 e ~ | % 30 e4. e 4 | % 31 \set TabStaff.minimumFret = #3 8[ g'8] ~ g8 % 32 beginning 4 \acciaccatura bes'8 a8 g8. a16 | % 32 end g2 \override NoteHead #'style = #'harmonic-mixed ^\twelve\fermata | % 33 \bar "|." } lower = \relative c, { \voiceTwo e1\f | % 1 r8 g4 r8 e'4 c | % 2 d1 | % 3 g,4. b d4 | % 4 e,8 b' fis' e d c b a | % 5 g2-3 g'8-0 \set TabStaff.minimumFret = #7 fis-3 e-1 c-2 | % 6 \set TabStaff.minimumFret = #0 d4 d2 d8 b8\sf-> ~ | % 7 b8 a g a g a g fis | % 8 e8 b' fis' e d8 c b a | % 9 g2 g'8 fis e c-3 | % 10 d4 d2 d8 b-> ~ | % 11 b8 a g a g a g fis | % 12 e4 b' e g | % 13 g, b d g | % 14 s1*13 c,4 c c c | % 28 g8 d' g b g b r4 | % 29 \override Staff.StringNumber #'transparent = ##t 8 4 | % 30 \revert Staff.StringNumber #'transparent e,8 b' e g b g e b | % 31 c4 c_\rit c c | % 32 g8 \set TabStaff.minimumFret = #3 d' g \set TabStaff.minimumFret = #0 b r2 | % 33 } middle = \relative c' { s1*2 | % 1-2 \voiceFour s4. a8 ~ a8 a4 b8 ~ | % 3 \voiceThree %b4. g b4 | % 4 s1*2 | % 4-5 \voiceFour b8\rest c8-1 b a s2 | % 6 s1*3 | % 7-9 \voiceThree 8[ a] \voiceFour b[ a] s2 | % 10 } %%%%%% chords for chordnames and fretboard diagrams %%%%%%%%% harmonies = \chordmode { e1:m | g | d | g | e:m | g | d | s1 e1:m | g | d | s1 | % 9-12 e1:m | g | d | e:m | g | d | %13-18 e1:m | s1 | a:sus4 | g | d | % 19-23 e1:m | a:sus4 | g | s1 | % 24-27 c4. c8:m7 s2 | g1 | d | % 28-30 e1:m | c4. c8:m7 s2 | g1 | % 31-33 } fretHarmonies = \chordmode { e1:m | g | d | g | e:m | g | d | s1 e1:m | g | d | s1 | % 9-12 e1:m | g | d | e:m | g | d | %13-18 e1:m | s1 | s | g | d | % 19-23 e1:m | s1 | g | s1 | % 24-27 c4. c8:m7 s2 | g1 | d | % 28-30 e1:m | c4. c8:m7 s2 | g1 | % 31-33 } \score { << \context ChordNames { \harmonies } \context FretBoards { \fretHarmonies } %\new StaffGroup << \context Staff = "guitar" \with { \consists "Span_arpeggio_engraver" } << \clef "treble_8" \set Staff.midiInstrument = "acoustic guitar (nylon)" \set Staff.instrumentName = "Guitar" \set Staff.connectArpeggios = ##t \context Voice = "upper" { \upper } \context Voice = "middle" { \middle } \context Voice = "lower" { \lower } >> \new TabStaff = "tabstaff" << % uncomment next line to display stems, beams, rhythms %\tabFullNotation % "moderntab" only works with the new tab support--if running % 2.12, comment it out, then uncomment next two lines. \clef "moderntab" %\override Staff.Clef #'stencil = #(lambda (grob) %(grob-interpret-markup grob TAB)) \context TabVoice = "upperTab" { \upper } \context TabVoice = "middleTab" { \middle } \context TabVoice = "lowerTab" { \lower } >> >> \layout { } \midi { \context { \Score tempoWholesPerMinute = #(ly:make-moment 120 4) } } }