Strudelify
86 cover art

1995 · Insomniac

86

Green Day

KeyE majorTempo190 bpm
0:00/0:00
// 86 — Green Day
// 190 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 3 "B" overdriven guitar (copy of ch 2 "Billy J. A." distortion guitar); ch 5 "Mike D. 2" electric bass pick (copy of ch 4 "Mike D." electric bass pick)
// note: Full arrangement: all 132 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): "SOLO!".
setcpm(190/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 · "Billy J. A."
const distortion_guitar = note(`<
  ~@4 A B C D E B C D E F G H I J K F L F G H M N E O P Q R D E Q R D E B C D E B C D E B C D E B C D E F G H I J K F L
  F G H M N E O P Q R D E Q R D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E B C D E S ~ T K E B C D E B C
  D E B C D E B C D E T ~
>`.pickRestart({
  A: "a5!2 g5!2 e5!2 d5!2 b4!2 a4!2 f4!2 e4!2",
  B: "[e3,b3,e4]@3 ~ [e3,b3,e4] ~ [e3,b3,e4]@3 ~ [e3,b3,e4] ~ [e3,b3,e4] ~ [e3,b3,e4] ~", // E5
  C: "[g#2,d#3,g#3]@3 ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3]@3 ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~ [g#2,d#3,g#3] ~", // G#5
  D: "[a2,e3,a3]@3 ~ [a2,e3,a3] ~ [a2,e3,a3]@3 ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~", // A5
  E: "[a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~", // A5
  F: "[e2,b2,e3]@3 ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] ~", // E5
  G: "[e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] ~", // E5
  H: "[b2,f#3,b3]@3 ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~", // B5
  I: "~@2 [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3]@3 ~", // B5
  J: "[a2,e3,a3]@3 ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~", // A5
  K: "~@2 [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~", // A5
  L: "[e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [a2,e3,a3] ~ [a2,e3,a3]@3 ~", // E5 A5
  M: "[b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~", // B5
  N: "[a2,e3,a3]@3 ~ [a2,e3,a3]@3 ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~ [a2,e3,a3] ~", // A5
  O: "[e2,b2,e3]@3 ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [a2,e3,a3]@3 ~ [e2,b2,e3]@2", // E5 A5 E5
  P: "~@2 [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3] ~ [e2,b2,e3]@3 ~ [e2,b2,e3]@3 ~", // E5
  Q: "[b2,f#3,b3]@3 ~ [b2,f#3,b3]@3 ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3]@2", // B5
  R: "~@2 [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3]@3 ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~", // B5
  S: "[b2,f#3,b3]@3 ~ [b2,f#3,b3]@3 ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [a2,e3,a3] ~", // B5 A5
  T: "[b2,f#3,b3]@3 ~ [b2,f#3,b3]@3 ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [a2,e3,a3]@2", // B5 A5
})).s("gm_distortion_guitar").gain(0.6).pan(0)

// bass · electric bass pick · "Mike D."
const bass = note(`<
  ~@5 A B C D E B C F G@2 H@2 I@2 G J G@2 H@2 K L M N O P C Q O P C R A B C D E B C F A B C D E B C F G@2 H@2 I@2 G J
  G@2 H@2 K L M N O P C Q O P C R A B C D E B C F A B C D E B C F A B C D E B C F A B C D E B C F S T U V W A B C D E B
  C F A B C D E B C F U ~
>`.pickRestart({
  A: "e2@3 ~ e2 ~ e2@3 ~ e2 ~ e2 ~ f#2 ~", B: "g#1@3 ~ g#1 ~ g#1@3 ~ g#1 ~ g#1 ~ g#1 ~",
  C: "a1@3 ~ a1 ~ a1@3 ~ a1 ~ a1 ~ a1 ~", D: "a1 ~ a1 ~ b1 ~ b1 ~ c#2 ~ c#2 ~ d#2 ~ d#2 ~",
  E: "e2@4 ~@2 g#2@3 ~ a2@3 ~ b2 ~", F: "g#1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~",
  G: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~", H: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~",
  I: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~", J: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ a1 ~ a1@3 ~",
  K: "a1@3 ~ a1@3 ~ a1 ~ a1 ~ a1 ~ a1 ~", L: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ b1 ~",
  M: "e1@3 ~ e1@3 ~@3 a1 ~ b1 ~ e1@2", N: "~@2 e1 ~ e1 ~ e1 ~ e1@3 ~ e1@3 ~", O: "b1@3 ~ b1@3 ~ b1 ~ b1 ~ b1 ~ b1@2",
  P: "~@2 b1 ~ b1 ~ b1@3 ~ b1 ~ b1 ~ c#2 ~", Q: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ b1 ~ a1 ~",
  R: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ b1 ~ b1 ~ b1 ~", S: "b1@3 ~ d#2@3 ~ e2 ~ d#2 ~ b1 ~ a1 ~",
  T: "~@2 e2 ~ d#2@3 ~ e2 ~ d#2 ~ b1 ~ a1 ~", U: "b1@3 ~ d#2@3 ~ e2 ~ d#2 ~ b1 ~ a1@2",
  V: "~@2 a1 ~ b1 ~ b1 ~ c#2 ~ c#2 ~ d#2 ~ d#2 ~", W: "e2 ~ e2 ~ f#2 ~ f#2 ~ g#2 ~ g#2 ~ a2 ~ a2 ~",
})).s("gm_electric_bass_pick").gain(0.64).pan(0)

// other · piano · "Jason Puentes"
const piano = note("<[c5@3 ~@13] ~@131>").s("gm_piano").gain(0.4)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@3 B C@3 D C@3 E F G H I F G F J F G H G H G H K H L C M H L C N C@3 D C@3 D C@3 D C@3 E F G H I F G F J F G H G H
  G H K H L C M H L C N C@3 D C@3 D C@3 D C@3 E C@16 L O L I E C@3 D C@3 D C@3 D C@3 E L ~
>`.pickRestart({
  A: "x!2 ~@2 x!2 ~@2", B: "x!2 ~@6", C: "x ~@2 x ~ x ~ x", D: "x!2 ~ x!3 ~ x", E: "x!4", F: "x ~@3 x!2 ~@2",
  G: "x!2 ~ x ~ x ~ x", H: "x ~@3 x!2 ~ x", I: "~ x ~@2 x!2 ~ x", J: "x!2 ~ x ~@3 x", K: "~ x ~ x ~@4",
  L: "~ x ~ x ~ x ~ x", M: "~ x ~ x ~ x ~@2", N: "~ x ~@6", O: "~@5 x ~@2",
})).gain(0.8)

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

// drums · low tom
const low_tom = s("lt").struct("<~ A@3 B ~@15 C ~@15 D ~@23 C ~@15 D ~@55>".pickRestart({
  A: "x ~ x ~ x ~ x!3 ~ x ~ x ~ x!2", B: "x!2 ~@6", C: "~@5 x!2 ~", D: "~@3 x!2 ~@3",
})).gain(0.8)

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

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

// drums · ride bell
const ride_bell = s("rd").struct("<~@29 A B C B A B C ~@33 A B C B A B C ~@56>".pickRestart({
  A: "~ x!7", B: "x!8", C: "~ x ~@2 x ~@2 x",
})).gain(0.8)

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

More by Green Day