white noise: Expand!
authorrekado <rekado@elephly.net>
Wed, 14 Oct 2015 18:03:54 +0000 (20:03 +0200)
committerrekado <rekado@elephly.net>
Wed, 14 Oct 2015 18:03:54 +0000 (20:03 +0200)
04-white-noise.ly

index 2a7e7503c9d11574d68e265ffadcce2ba8fc2e59..145fbf5af7806bbcb74eaa893354c07a2ef6d849 100644 (file)
@@ -10,7 +10,7 @@
 \f
 bassBeautyA = \relative fis,, {
   d4. fis ~ fis4 | e4. gis a4 |
-  d,4. ~ d cis4  | fis1       |
+  d,2. cis4      | fis1       |
 }
 
 bassBeautyB = \relative fis,, {
@@ -31,25 +31,81 @@ bassTheme = \relative fis,, {
 }
 
 bassThunder = \relative fis,, {
-  fis8. e16 fis8. e16 fis8. e16 fis8 e8 |
-  fis8. e16 fis8. e16 fis8. e16 fis8 e8 |
-  fis8. e16 fis8. e16 fis8. e16 fis8 e8 |
-  d8-. d-. d-. d-. d-. d-. d-. d-.      |
+  fis8 e16 fis8 e16 fis8 e16 fis8 e16 fis8 e |
+  fis8 e16 fis8 e16 fis8 e16 fis8 e16 fis8 e |
+  fis8 e16 fis8 e16 fis8 e16 fis8 e16 fis8 e |
+  d-. d-. d-. d-. d-. d-. d-. d-.            |
 }
 
+\f
+keysIntro = \relative c' {
+  <d fis a>2 <cis fis a>  <b e gis>1
+  <d fis a> <cis fis a>
+  % \chordmode {
+  %   d2 fis:m e1
+  %   d1 fis:m
+  % }
+}
+
+keysPadWithoutEnd = \relative c' {
+  <cis fis a>2. ~ <cis fis a>2 ~ | <cis fis a>2. ~ <cis fis a>2 |
+  <b e gis>2.  ~ <b e gis>2 ~    | <b e gis>2.  ~ <b e gis>2    |
+  <b d fis>2.  ~ <b d fis>2 ~    | <b d fis>2.  ~ <b d fis>2    |
+  <a d fis>2.  ~ <a d fis>2 ~    |
+  % \chordmode {
+  %   fis4*10:m
+  %   e4*10
+  %   b4*10:m
+  %   d4*5
+  % }
+}
+
+keysPad = \relative c' {
+  <cis fis a>2. ~ <cis fis a>2 ~ | <cis fis a>2. ~ <cis fis a>2 |
+  <b e gis>2.  ~ <b e gis>2 ~    | <b e gis>2.  ~ <b e gis>2    |
+  <b d fis>2.  ~ <b d fis>2 ~    | <b d fis>2.  ~ <b d fis>2    |
+  <a d fis>2.  ~ <a d fis>2 ~    | <a d fis>2.  ~ <a d fis>2    |
+  % \chordmode {
+  %   fis4*10:m
+  %   e4*10
+  %   b4*10:m
+  %   d4*10
+  % }
+}
+
+keysThunder = \relative c'' {
+  a8 gis16 a8 gis16 a8 gis16 a8 gis16 a8 gis |
+  a8 gis16 a8 gis16 a8 gis16 a8 gis16 a8 gis |
+  a8 gis16 a8 gis16 a8 gis16 a8 gis16 a8 gis |
+  d-. d-. d-. d-. d-. d-. d-. d-.            |
+}
+
+%% TODO
+stickThunder = \relative c'' {
+  a8 gis16 a8 gis16 a8 gis16 a8 gis16 a8 gis |
+  a8 gis16 a8 gis16 a8 gis16 a8 gis16 a8 gis |
+  a8 gis16 a8 gis16 a8 gis16 a8 gis16 a8 gis |
+  d-. d-. d-. d-. d-. d-. d-. d-.            |
+}
+
+
+whiteNoise = { R1*5 } % TODO: how long?
+
+\f
 bass = {
+  \set Staff.midiInstrument = #"electric bass (finger)"
   \clef "bass_8"
   \key fis \minor
 
   \relative fis,, {
-    \time 4/4 r1*4 \bassBeautyA
+    \time 4/4 R1*4 \bassBeautyA
 
     \time 5/4 \repeat volta 2 \bassThemeWithoutEnd
     \alternative {
       { r8 d   r4 d'8 d d, e e r8 | }
       { r8 d   r4 fis4 ~ fis2     | }
     }
-    r1*5 % TODO: white noise, how long?
+    \whiteNoise
 
     \time 4/4                 \bassThunder
 
@@ -64,15 +120,15 @@ bass = {
     %% sweet and quiet
     %% solo
 
-
     %% april?
-    d,2 r8 e4. | fis2. r4 |
-    d2 e fis  r8 gis a cis
-    d2 r8 e4 b8 cis2. r4 b2 
-
-    r8 cis4 e,8 fis1
-    d2 r8 e4. fis2. r4 fis8 e r4 e2 fis r8 gis a cis d2 r8 e4 b8 cis2. r4 b2 r8 cis4 e,8 fis1 fis8 r8*5
+    \relative fis,, {
+      d,2 r8 e4. | fis2. r4 |
+      d2 e fis  r8 gis a cis
+      d2 r8 e4 b8 cis2. r4 b2
 
+      r8 cis4 e,8 fis1
+      d2 r8 e4. fis2. r4 fis8 e r4 e2 fis r8 gis a cis d2 r8 e4 b8 cis2. r4 b2 r8 cis4 e,8 fis1 fis8 r8*5
+    }
 
     %{
     %% fast and weird
@@ -88,42 +144,118 @@ bass = {
   }
 }
 
-\f
-keysIntro = <<
-  \chords {
-    d2 fis:m e1
-    d1 fis:m
+keyboard = {
+  \set Staff.midiInstrument = #"pad 8 (sweep)"
+  \set Staff.midiMinimumVolume = #0.4
+  \set Staff.midiMaximumVolume = #0.6
+
+  \key fis \minor
+  \time 4/4 \repeat unfold 2 \keysIntro
+  \time 5/4 \repeat volta 2 \keysPadWithoutEnd
+  \alternative {
+    {
+      \relative c' {
+        <a d fis>2.\repeatTie  ~ <a d fis>2 |
+      }
+    }
+    {
+      \relative c' {
+        <a d fis>2\repeatTie <cis fis a>2. |  % TODO
+      }
+    }
   }
-  \relative c'' {
-    r1 r1 r1 r1
+
+  \whiteNoise
+  \time 4/4 \keysThunder
+  \time 5/4 \repeat volta 2 \keysPad
+  \time 4/4 \keysThunder
+  \time 5/4 \repeat volta 2 \keysPad
+}
+
+%% TODO
+stickTheme = \relative c {
+  fis'4. cis a' cis8*7 d2 
+  gis,4. e d' cis8*7 a4 gis
+  fis4. d gis a8*9 r4
+  fis4. d gis e8*5 gis4 a4. r8
+}
+
+stick = {
+  \set Staff.midiInstrument = #"electric guitar (jazz)"
+  \key fis \minor
+  \time 4/4 { R1*8 }
+  %% silly but I have to mimick the repeats for the other voices to
+  %% make the notes line up.
+  \time 5/4 \repeat volta 2 {
+    r2. r2 | r2. r2 | r2. r2 | r2. r2 |
+    r2. r2 | r2. r2 | r2. r2 |
   }
->>
-
-keysPad = <<
-  \chords {
-    fis4*10:m
-    e4*10
-    b4*10:m
-    d4*10
+  \alternative {
+    {r2. r2 | }
+    {r2. r2 | }
   }
-  \relative c'' {
-    <cis fis a>2. ~ <cis fis a>2 ~ <cis fis a>2. ~ <cis fis a>2
-    <b e gis>2.  ~ <b e gis>2 ~ <b e gis>2.  ~ <b e gis>2
-    <b d fis>2.  ~ <b d fis>2 ~ <b d fis>2.  ~ <b d fis>2
-    <a d fis>2.  ~ <a d fis>2 ~ <a d fis>2.  ~ <a d fis>2
+
+  \whiteNoise
+  \stickThunder
+  \repeat volta 2 \stickTheme
+  \stickThunder
+  \repeat volta 2 \stickTheme
+
+  %% TODO: this is terrible and I would never play this
+  \relative c' {
+    <d a >2 
+    <cis fis, >2 <gis' fis, >2 
+    <a e, >2 d,1 cis
+
+    <d a >2 
+    <cis fis, >2 <gis' fis, >2 
+    <a e, >2 d,1 cis
   }
->>
 
-keyboard = {
-  \key fis \minor
-  \time 4/4 \repeat unfold 2 \keysIntro
-  \time 5/4 \repeat volta 2 \keysPad
+  %% TODO: move to keyboard?
+  \repeat unfold 4 \relative c'' {
+    d'8 a' d a  e' a, d e,,
+    fis, cis' gis' a gis cis, fis, e
+    d' a' d a  e' a, d e,,
+    fis cis' gis' a gis cis, fis, e
+  }
 }
 
+
 \f
+%% Two scores are needed: one with unfolded repeats for MIDI and the
+%% other with regular repeats for notation.
+\score {
+  \unfoldRepeats {
+    <<
+      \new Staff \keyboard
+      \new Staff \bass
+      \new Staff \stick
+    >>
+  }
+  \midi {
+    \tempo 4 = 120
+  }
+}
+
 \score {
   <<
-    \new Staff \keyboard
-    \new Staff \bass
+    \new Staff = "keyboard"    { \keyboard }
+    \new Staff = "bass"        { \bass }
+    \new Staff = "grand stick" { \stick }
   >>
+  \layout {
+    \tempo 4 = 120
+    \context { 
+      %% add the RemoveEmptyStaffContext that erases rest-only staves
+      \Staff \RemoveEmptyStaves 
+    }
+    \context {
+      \Score
+      %% Remove all-rest staves also in the first system
+      \override VerticalAxisGroup.remove-first = ##t
+      %% If only one non-empty staff in a system exists, still print the starting bar
+      \override SystemStartBar.collapse-height = #1
+    }
+  }
 }