Strudelify

Tight Wad Hill

Green Day

KeyG♯ minorTempo196 bpm
0:00/0:00
// Tight Wad Hill — Green Day
// 196 bpm, 4/4, key G# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 4/4 at bar 1) are rendered on a constant 4/4 grid of one bar per cycle
// note: duplicate parts dropped: ch 15 "BJ-Guitar 2" overdriven guitar (copy of ch 13 "BJ-Guitar 1" distortion guitar)
// note: Full arrangement: all 98 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(196/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · distortion guitar · "BJ-Guitar 1"
const distortion_guitar = note(`<
  ~ A B A C D E A F A G A H D I J K L M J N L M J N L O L O P Q R S A B A C D E A F A G A H D I J K L M J N L M J N L O
  L O P Q R T A B A C D E A F A G A H D I J K L M J N L M J N L O L O P Q R S U
>`.pickRestart({
  A: "[g#2,d#3,g#3]@3 ~ [g#2,d#3,g#3]@3 ~ [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2", // G#5
  B: "~@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@3 ~ [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]!2", // G#5
  C: "~@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@3 ~ [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3]!2", // G#5
  D: "[f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@3 ~ [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2", // F#5
  E: "~@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]!2", // F#5
  F: "~@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3]@2 [f#2,c#3,f#3]@3 ~ [f#2,c#3,f#3]@3 ~", // G#5 F#5
  G: "~@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@3 ~ [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2", // G#5
  H: "~@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@3 ~ [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3]@2", // G#5
  I: "~ [f#2,c#3,f#3]!7", J: "[g#2,d#3,g#3]@3 ~ [g#2,d#3,g#3]@3 ~ [g#2,d#3,g#3]@2 [f#2,c#3,f#3]@3 ~ [g#2,d#3,g#3]@2",
  K: "~@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]!2", // G#5
  L: "[b2,f#3,b3]@3 ~ [b2,f#3,b3]@2 [b2,f#3,b3]@3 ~ [b2,f#3,b3]@2 [b2,f#3]@2 [f#2,c#3,f#3]@2", // B5 F#5
  M: "~@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@3 ~ [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2", // F#5
  N: "~ [g#2,d#3,g#3]!6 [g#2,d#3]", // G#5
  O: "~@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@3 ~ [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3]@2", // F#5
  P: "[b2,f#3,b3]@15 ~", Q: "[f#2,c#3,f#3]@15 ~",
  R: "[g#2,d#3,g#3]@3 ~ [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2", // G#5
  S: "[g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3,g#3]@2 [g#2,d#3]@2 [f#2,c#3,f#3]@3 ~ [f#2,c#3,f#3]@3 ~", // G#5 F#5
  T: "[g#2,d#3,g#3]!8", U: "[g#2,d#3,g#3]@3 ~@13",
})).s("gm_distortion_guitar").gain(0.72).pan(0)

// bass · electric bass pick · "Mike-Bass"
const bass = note(`<
  ~ A B A C D E A F A B A C D E G H I J G K I J G K I L I L M N O P A B A C D E A F A B A C D E G H I J G K I J G K I L
  I L M N O Q A B A R D E A F S T U V D W G H I J G K I J G K I L I L M N O P X
>`.pickRestart({
  A: "g#1@3 ~ g#1@3 ~ g#1@2 g#1@2 g#1@2 g#1@2", B: "~@2 g#1@2 g#1@3 ~ g#1@2 g#1@2 g#1@2 g#1@2",
  C: "~@2 g#1@2 g#1@3 ~ g#1@2 g#1@2 g#1@2 d#1@2", D: "f#1@2 f#1@2 f#1@2 f#1@3 ~ f#1@2 f#1@2 f#1@2", E: "~ f#1!7",
  F: "~@2 g#1@2 g#1@2 d#1@2 f#1@3 ~ f#1@3 ~", G: "g#1@3 ~ g#1@3 ~ g#1@2 f#1@3 ~ g#1@2", H: "~ g#1!7",
  I: "b1@3 ~ f#2@2 b1@3 ~ b1@2 b1@2 f#1@2", J: "~@2 c#2@2 f#1@2 f#1@3 ~ f#1@2 f#1@2 f#1@2", K: "~ g#1!6 d#1",
  L: "~@2 f#1@2 f#1@2 f#1@3 ~ f#1@2 f#1@2 f#1@2", M: "b1@15 ~", N: "f#1@15 ~",
  O: "g#1@3 ~ g#1@2 g#1@2 g#1@2 g#1@2 g#1@2 g#1@2", P: "g#1@2 g#1@2 g#1@2 d#1@2 f#1@3 ~ f#1@3 ~", Q: "g#1!8",
  R: "~ g#2!2 f#2!2 g#2!2 d#1", S: "g#1@3 ~ d#2@2 d#2@2 g#2@2 g#2@2 d#2@2 g#1@2", T: "~ g#1 d#2!2 g#2!2 d#2 g#1",
  U: "g#1!2 d#2!2 g#2!2 d#2 g#1", V: "~ g#1 d#2!2 g#2!2 d#2 d#1", W: "~ f#1 a#1!2 c2!2 a#1 f#1", X: "g#1@3 ~@13",
})).s("gm_electric_bass_pick").gain(0.72)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B C D E F A G A B C D E F A G H F A D H F A G H F H F I@2 A G A B C D E F A G A B C D E F A G H F A D H F A G H F
  H F I@2 A G A B C D E F A G A B C D E F A G H F A D H F A G H F H F I@2 A G ~
>`.pickRestart({
  A: "x ~@3 x!2 ~ x", B: "~ x ~@3 x ~ x", C: "x ~@4 x ~ x", D: "~ x ~@2 x!2 ~ x", E: "x!2 ~ x ~ x ~ x",
  F: "~ x ~ x ~ x ~ x", G: "~ x ~ x ~@4", H: "x ~@2 x ~ x ~ x", I: "x!4",
})).gain(0.46)

// drums · snare
const snare = s("sd").struct(`<
  A B@7 C B@7 D B@7 D B@4 E ~ B C B@7 C B@7 D B@7 D B@4 E ~ B F B@7 C B@7 F B@7 D B@4 E ~ B C G
>`.pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~ x!3", D: "~@4 x ~@3 x!3 ~ x ~ x!2", E: "~@6 x!3 ~@3 x ~@3", F: "~@4 x ~@3 x!8",
  G: "x",
})).gain(0.46)

// drums · low tom
const low_tom = s("lt").struct("<~@29 A B ~@30 A B ~@30 A B ~@3>".pickRestart({
  A: "~@10 x!2 ~@2 x!2", B: "~@12 x ~ x!2",
})).gain(0.46)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@30
  [~@4 x ~ x ~ x!2 ~ x ~@4]
  ~@31
  [~@4 x ~ x ~ x!2 ~ x ~@4]
  ~@31
  [~@4 x ~ x ~ x!2 ~ x ~@4]
  ~@3
>`).gain(0.46)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~ A B C B D A C E C B C B D B F E C B F B C B F B C G C G ~@4 C B C B D A C E C B C B D B F B C B F B C B F B C G C G
  ~@4 C B C B D A C E C B C B D B F B C B F B C B F B C G C G ~@5
>`.pickRestart({
  A: "x!7 ~", B: "x!8", C: "~ x!6 ~", D: "~ x!7", E: "x!4 ~@4", F: "~ x!4 ~@3", G: "x!2 ~@6",
})).gain(0.46)

// drums · crash
const crash = s("cr").struct(`<
  A B ~ C ~ D B C E C ~ C ~ D ~ F ~ C ~ F ~ C ~ F ~ C ~ C ~ D@2 G H C ~ C ~ D B C E C ~ C ~ D ~ F ~ C ~ F ~ C ~ F ~ C ~
  C ~ D@2 G I C ~ C ~ D B C E C ~ C ~ D ~ F ~ C ~ F ~ C ~ F ~ C ~ C ~ D@2 G H D
>`.pickRestart({
  A: "~@3 x", B: "~@7 x", C: "x ~@6 x", D: "x", E: "~@2 x!2", F: "x ~@4 x ~ x", G: "x!4", H: "x ~ x!3 ~ x ~",
  I: "x ~ x!2 ~@4",
})).gain(0.46)

// drums · ride bell
const ride_bell = s("rd").struct("<~@26 A ~ A ~@29 A ~ A ~@29 A ~ A ~@5>".pickRestart({
  A: "~ x!3",
})).gain(0.46)

stack(distortion_guitar, bass, kick, snare, low_tom, mid_tom, open_hat, crash, ride_bell)

More by Green Day