Strudelify

Burn Out

Green Day

KeyF♯ majorTempo182 bpm
0:00/0:00
// Burn Out — Green Day
// 182 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 94 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): guitar1-2.
setcpm(182/4)

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

// bass · electric bass pick · "Bass"
const bass = note(`<
  ~ A@2 B@2 C@2 D@2 A@2 B@2 C@2 E@2 F@2 G H I@2 J@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 E@2 K@2 G H I@2 J@2 K@2 G H I@2 L@2 M@3
  N O@2 P ~ P ~ P ~ P ~ F@2 Q H I@2 J@2 K@2 G H I@2 L@2 M N O@4 R
>`.pickRestart({
  A: "[f#1@3 ~ f#1@3 ~ f#1@2 f#1@2 f#1@2 b1@4 b1@4 b1@4 b1@2 b1@2 f#1!2]/2",
  B: "[f#1@3 ~ f#1@3 ~ f#1@2 f#1@2 f#1@2 b1@4 b1@2 b1@2 e1@4 e1@2 e1@2 f#1!2]/2",
  C: "[f#1@3 ~ f#1@3 ~ f#1@2 f#1@2 f#1@2 b1@4 b1@2 b1@2 e1@4 e1@2 e1@2 c#2!2]/2",
  D: "[c#2@3 ~ c#2@3 ~ c#2@2 c#2@2 c#2@2 c#2@4 c#2@2 c#2@2 c#2@4 c#2@2 c#2@2 f#1!2]/2",
  E: "[c#2@3 ~ c#2@3 ~ c#2@2 c#2@2 c#2@2 c#2@4 c#2@2 c#2@2 c#2@4 c#2@2 c#2@2 b1!2]/2",
  F: "[b1@3 ~ b1@3 ~ b1@2 b1@2 b1@2 f#1@4 f#1@2 f#1@2 f#1@2 f#1@2 f#1@2 f#1@2 f#1@2]/2",
  G: "b1@3 ~ b1@2 e1!2 e1@3 ~ e1@2 f#1!2", H: "f#1@3 ~ f#1@2 f#1@4 f#1@2 f#1@2 b1!2",
  I: "[b1@2 b1@2 b1@2 b1@2 b1@2 b1@2 b1@2 e1@4 e1@2 e1@2 e1@4 e1@2 e1@2 c#2!2]/2",
  J: "[c#2@3 ~ c#2@3 ~ c#2@2 c#2@2 c#2@2 c#2@4 c#2@2 c#2@2 c#2@2 c#2@2 c#2@2 c#2@2 b1!2]/2",
  K: "[b1@2 ~@2 b1@3 ~ b1@2 b1@2 b1@2 f#1@4 f#1@2 f#1@2 f#1@2 f#1@2 f#1@2 f#1@2 f#1@2]/2",
  L: "[c#2@3 ~ c#2@3 ~ c#2@2 c#2@2 c#2@2 c#2@4 c#2@2 c#2@2 c#2@2 c#2@2 c#2@2 c#2@2 c#2@2]/2", M: "c#2!8",
  N: "c#2!5 f2 g#2 c#3", O: "c#3!8", P: "f#1!3 e1@2 f#1@2 ~", Q: "b1@3 ~ b1@2 e1!2 e1@3 ~ e1@2 f1!2",
  R: "f#1@2 f#1@2 f#1@2 e1@4 f#1@3 ~@3",
})).s("gm_electric_bass_pick").gain(0.72)

// chords · overdriven guitar · "Distortion Guitar"
const overdriven_guitar = note(`<
  ~ A@2 B@2 C@2 D E A@2 B@2 C@2 F@2 G@2 H I J@2 K@2 A@2 B@2 C@2 L@2 A@2 B@2 C@2 F@2 M@2 H I J@2 N@2 M@2 H I J@2 O P@4 Q
  P@2 R ~ R ~ R ~ R ~ G@2 H I J@2 N@2 M@2 H I J@2 O P@4 S P@2 T
>`.pickRestart({
  A: "[[f#2,c#3,f#3]@3 ~ [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 [b2,f#3,b3]@4 [b2,f#3,b3]@4 [b2,f#3,b3]@4 [b2,f#3,b3]@2 [b2,f#3,b3]@2 [f#2,c#3,f#3]!2]/2", // F#5 B5 F#5
  B: "[[f#2,c#3,f#3]@3 ~ [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 [b2,f#3,b3]@4 [b2,f#3,b3]@2 [b2,f#3,b3]@2 [e2,b2,e3]@4 [e2,b2,e3]@2 [e2,b2,e3]@2 [f#2,c#3,f#3]!2]/2", // F#5 B5 E5 F#5
  C: "[[f#2,c#3,f#3]@3 ~ [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 [b2,f#3,b3]@4 [b2,f#3,b3]@2 [b2,f#3,b3]@2 [e2,b2,e3]@4 [e2,b2,e3]@2 [e2,b2,e3]@2 [c#3,g#3,c#4]!2]/2", // F#5 B5 E5 C#5
  D: "[c#3,g#3,c#4]@3 ~ [c#3,g#3,c#4]@3 ~ [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2", // C#5
  E: "~@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [f#2,c#3,f#3]!2", // C#5 F#5
  F: "[[c#3,g#3,c#4]@3 ~ [c#3,g#3,c#4]@3 ~ [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@4 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@4 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [b2,f#3,b3]!2]/2", // C#5 B5
  G: "[[b2,f#3,b3]@3 ~ [b2,f#3,b3]@3 ~ [b2,f#3,b3]@2 [b2,f#3,b3]@2 [b2,f#3,b3]@2 [f#2,c#3,f#3]@4 [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]/2", // B5 F#5
  H: "[b2,f#3,b3]@3 ~ [b2,f#3,b3]@2 [e2,b2,e3]!2 [e2,b2,e3]@3 ~ [e2,b2,e3]@2 [f#2,c#3,f#3]!2", // B5 E5 F#5
  I: "[f#2,c#3,f#3]@3 ~ [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@4 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [b2,f#3,b3]!2", // F#5 B5
  J: "[[b2,f#3,b3]@2 [b2,f#3,b3]@2 [b2,f#3,b3]@2 [b2,f#3,b3]@2 [b2,f#3,b3]@2 [b2,f#3,b3]@2 [b2,f#3,b3]@2 [e2,b2,e3]@4 [e2,b2,e3]@2 [e2,b2,e3]@2 [e2,b2,e3]@4 [e2,b2,e3]@2 [e2,b2,e3]@2 [c#3,g#3,c#4]!2]/2", // B5 E5 C#5
  K: "[[c#3,g#3,c#4]@3 ~ [c#3,g#3,c#4]@3 ~ [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@4 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [f#2,c#3,f#3]!2]/2", // C#5 F#5
  L: "[[c#3,g#3,c#4]@3 ~ [c#3,g#3,c#4]@3 ~ [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@4 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@4 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 [f#2,c#3,f#3]!2]/2", // C#5 F#5
  M: "[[b2,f#3,b3]@2 ~@2 [b2,f#3,b3]@3 ~ [b2,f#3,b3]@2 [b2,f#3,b3]@2 [b2,f#3,b3]@2 [f#2,c#3,f#3]@4 [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]/2", // B5 F#5
  N: "[[c#3,g#3,c#4,f4]@3 ~ [c#3,g#3,c#4,f4]@3 ~ [c#3,g#3,c#4,f4]@2 [c#3,g#3,c#4,f4]@2 [c#3,g#3,c#4,f4]@2 [c#3,g#3,c#4,f4]@4 [c#3,g#3,c#4,f4]@2 [c#3,g#3,c#4,f4]@2 [c#3,g#3,c#4,f4]@2 [c#3,g#3,c#4,f4]@2 [c#3,g#3,c#4,f4]@2 [c#3,g#3,c#4,f4]@2 [b2,f#3,b3]!2]/2", // C# B5
  O: "[c#3,g#3,c#4,f4]@3 ~ [c#3,g#3,c#4,f4]@3 ~ [c#3,g#3,c#4,f4]@2 [c#3,g#3,c#4,f4]@2 [c#3,g#3,c#4,f4]@2 [c#3,g#3,c#4,f4]@2", // C#
  P: "[c#3,g#3,c#4,f4]!8", // C#
  Q: "[c#3,g#3,c#4,f#4]@2 [c#3,g#3,c#4,f#4]@2 [c#3,g#3,c#4,f#4]@2 [c#3,g#3,c#4,f#4]@2 [c#3,g#3,c#4,f#4]@2 [c#3,g#3,c#4,f#4]@2 [c#3,g#3,c#4,f#4]@2 [c#3,g#3,c#4,f#4]!2", // C#sus4
  R: "[f#2,c#3,f#3]!3 [e2,b2,e3]@2 [f#2,c#3,f#3]@2 ~", S: "[c#3,g#3,c#4,f#4]!8",
  T: "[f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [e2,b2,e3]@4 [f#2,c#3,f#3]@3 ~@3", // F#5 E5 F#5
})).s("gm_overdriven_guitar").gain(0.72)

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

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

// drums · pedal hat
const pedal_hat = s("hh").struct("<[x!2 ~@2] ~@93>").gain(0.46)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@66 [~@2 x ~@2 x ~@2] ~@27>").gain(0.46)

// drums · high tom
const high_tom = s("ht").struct("<~@63 A B A C A D A E ~@23>".pickRestart({
  A: "~@7 x", B: "~ x ~ x ~ x ~@2", C: "x!2 ~ x ~@2 x!2 ~@4 x ~ x ~", D: "~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x ~@2",
  E: "~@14 x!2",
})).gain(0.46)

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

// drums · ride bell
const ride_bell = s("rd").struct(`<
  ~@17 A B C A D E D F ~@16 G B C E H B H I G B C E H I ~@16 A B C A D E D E G B C E H I ~@9
>`.pickRestart({
  A: "~@2 x!6", B: "x!8", C: "~ x!3 ~ x!3", D: "~@2 x!5 ~", E: "~ x!7", F: "~ x ~@6", G: "~@3 x!5", H: "~ x!6 ~",
  I: "x!7 ~",
})).gain(0.46)

stack(bass, overdriven_guitar, kick, snare, pedal_hat, open_hat, mid_tom, high_tom, crash, ride_bell)

More by Green Day