Strudelify

One for the Razorbacks

Green Day

KeyB majorTempo183 bpm
0:00/0:00
// One for the Razorbacks — Green Day
// 183 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 120 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(183/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/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.

// chords · distortion guitar · "Billie Joe - Elec. Guitar"
const distortion_guitar = note(`<
  A B C D A E F G H I J@2 K@2 L M H I J@2 K@2 N@2 O@2 P@2 O@2 P@2 O@2 P@2 O@2 Q R H I J@2 K@2 L M H I J@2 K@2 N@2 O@2
  P@2 O@2 P@2 O@2 P@2 O@2 Q R H I J@2 K@2 L M H I J@2 K@2 S T ~@32
>`.pickRestart({
  A: "b3@6 b3@4 d#4@3 e4@3, [b2,f#3]", B: "f#4@6 f#4@4 e4@3 d#4@3, [f#2,c#3]", C: "b3@3 b3@2 d#4 f#4 d#4, [b2,f#3]",
  D: "e4@6 b4@4 g#4@3 b4@3, [e2,b2]", E: "f#4@6 a#3@4 b3@3 c#4@3, [f#2,c#3]",
  F: "[f#3,b3]@6 ~@4 b3@3 d#4@3, b2, ~@3 f#3@5", // B5
  G: "[b2,f#3,b3]@2 b2 ~ [b2,f#3] ~ [b2,f#3] ~ [b2,f#3,b3] ~ [b2,f#3,b3] ~ [b2,f#3,b3]@2 [b2,f#3,b3]@2", // B5
  H: "[b2,f#3,b3]@2 [b2,f#3,b3] [b2,f#3,b3]@2 [b2,f#3,b3]!3", // B5
  I: "[f#2,c#3,f#3]@2 [f#2,c#3,f#3] [f#2,c#3,f#3]@2 [f#2,c#3,f#3]!3", // F#5
  J: "[[b2,f#3,b3]!3 [b2,f#3,b3]@2 [b2,f#3,b3]!2 [e2,b2,e3]@2 [e2,b2,e3]!7]/2", // B5 E5
  K: "[[b2,f#3,b3]!2 [b2,f#3,b3]@2 [b2,f#3,b3]!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,f#3]!3]/2", // B5 F#5
  L: "[b2,f#3,b3]!2 [b2,f#3,b3]@2 [b2,f#3,b3]!4", // B5
  M: "[f#2,c#3,f#3]@2 [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~", // F#5
  N: "[[b2,f#3,b3]!2 [b2,f#3,b3]@2 [b2,f#3,b3]!3 [b2,f#3,b3]@2 [b2,f#3,b3]!7]/2", // B5
  O: "[[f#2,c#3,f#3]!2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]!3 [e2,b2,e3]@2 [e2,b2,e3]!2 [e2,b2,e3]@2 [e2,b2,e3]!3]/2", // F#5 E5
  P: "[[f#3,b3,d#4]!2 [f#3,b3,d#4]@2 [f#3,b3,d#4]!3 [f#3,b3,d#4]@2 [f#3,b3,d#4]!7]/2", Q: "[f#3,b3,d#4]!8",
  R: "[f#3,b3,d#4]!5 ~@3", S: "[b2,f#3,b3]!8", T: "[b2,f#3,b3]!5 ~@3",
})).s("gm_distortion_guitar").gain(0.26)

// bass · electric bass pick · "Mike - Bass Guitar"
const bass = note(`<
  A B A C A B A D E F G@2 H@2 I J E F G@2 H@2 K@2 L@2 M@2 L@2 M@2 L@2 M@2 L@2 N O E F G@2 H@2 I J E F G@2 H@2 K@2 L@2
  M@2 L@2 M@2 L@2 M@2 L@2 N O E F G@2 H@2 I J E F G@2 H@2 N O ~@32
>`.pickRestart({
  A: "b1", B: "f#1", C: "e1", D: "b1@2 b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1@2 b1@2", E: "b1@2 b1 b1@2 b1!2 d#2",
  F: "f#1@2 f#1 f#1@2 g#1 a#1 f#1", G: "[b1!3 b1@2 b1!2 e1@2 e1 f#1!2 g#1!2 a#1!2]/2",
  H: "[b1!2 b1@2 b1 a#1 g#1 f#1@2 f#1!2 f#1@2 g#1 a#1 f#1]/2", I: "b1!2 b1@2 b1!2 a#1 g#1",
  J: "f#1@2 f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~", K: "[b1!2 b1@2 b1!3 b1@2 b1 c#2 b1 d#2 c#2 b1!2]/2",
  L: "[f#1!2 f#1@2 f#1 c#2 f#1 e1@2 e1!2 e1@2 f#1 g#1 e1]/2", M: "[b1!2 b1@2 b1!3 b1@2 b1 c#2 b1 f#2 e2 d#2 b1]/2",
  N: "b1!8", O: "b1!5 ~@3",
})).s("gm_electric_bass_pick").gain(0.26)

// chords · distortion guitar · "Billie Joe - Elec. Guitar"
const distortion_guitar_2 = note("<~@88 A B C@2 D@2 E F A B C@2 D@2 G@2 H@2 I@2 H@2 I@2 H@2 I@2 H@2 J K>".pickRestart({
  A: "[b2,f#3,b3]@2 [b2,f#3,b3] [b2,f#3,b3]@2 [b2,f#3,b3]!3", // B5
  B: "[f#2,c#3,f#3]@2 [f#2,c#3,f#3] [f#2,c#3,f#3]@2 [f#2,c#3,f#3]!3", // F#5
  C: "[[b2,f#3,b3]!3 [b2,f#3,b3]@2 [b2,f#3,b3]!2 [e2,b2,e3]@2 [e2,b2,e3]!7]/2", // B5 E5
  D: "[[b2,f#3,b3]!2 [b2,f#3,b3]@2 [b2,f#3,b3]!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,f#3]!3]/2", // B5 F#5
  E: "[b2,f#3,b3]!2 [b2,f#3,b3]@2 [b2,f#3,b3]!4", // B5
  F: "[f#2,c#3,f#3]@2 [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~ [f#2,c#3] ~", // F#5
  G: "[[b2,f#3,b3]!2 [b2,f#3,b3]@2 [b2,f#3,b3]!3 [b2,f#3,b3]@2 [b2,f#3,b3]!7]/2", // B5
  H: "[[f#2,c#3,f#3]!2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]!3 [e2,b2,e3]@2 [e2,b2,e3]!2 [e2,b2,e3]@2 [e2,b2,e3]!3]/2", // F#5 E5
  I: "[[f#3,b3,d#4]!2 [f#3,b3,d#4]@2 [f#3,b3,d#4]!3 [f#3,b3,d#4]@2 [f#3,b3,d#4]!7]/2", J: "[f#3,b3,d#4]!8",
  K: "[f#3,b3,d#4]!5 ~@3", // B
})).s("gm_distortion_guitar").gain(0.26)

// bass · electric bass pick · "Mike - Bass Guitar"
const bass_2 = note("<~@88 A B C@2 D@2 E F A B C@2 D@2 G@2 H@2 I@2 H@2 I@2 H@2 I@2 H@2 J K>".pickRestart({
  A: "b1@2 b1 b1@2 b1!2 d#2", B: "f#1@2 f#1 f#1@2 g#1 a#1 f#1", C: "[b1!3 b1@2 b1!2 e1@2 e1 f#1!2 g#1!2 a#1!2]/2",
  D: "[b1!2 b1@2 b1 a#1 g#1 f#1@2 f#1!2 f#1@2 g#1 a#1 f#1]/2", E: "b1!2 b1@2 b1!2 a#1 g#1",
  F: "f#1@2 f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~ f#1 ~", G: "[b1!2 b1@2 b1!3 b1@2 b1 c#2 b1 d#2 c#2 b1!2]/2",
  H: "[f#1!2 f#1@2 f#1 c#2 f#1 e1@2 e1!2 e1@2 f#1 g#1 e1]/2", I: "[b1!2 b1@2 b1!3 b1@2 b1 c#2 b1 f#2 e2 d#2 b1]/2",
  J: "b1!8", K: "b1!5 ~@3",
})).s("gm_electric_bass_pick").gain(0.26)

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

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

// drums · hihat
const hihat = s("hh").struct("<[~ x!3] [x!4]!3 [~ x!3] [x!4]!2 ~@113>").gain(0.26)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@7 A ~@23 B ~@31 B ~@47 B ~@8>".pickRestart({
  A: "~ x ~@2", B: "~@15 x",
})).gain(0.26)

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

// drums · high tom
const high_tom = s("ht").struct("<~@23 A ~@7 B ~@23 A ~@7 B ~@39 A ~@7 B ~@8>".pickRestart({
  A: "~@12 x!4", B: "~@7 x",
})).gain(0.26)

// drums · ride bell
const ride_bell = s("rd").struct(`<
  ~@24 A B C D A B C E A B C D A B ~@18 A B C D A B C E A B C D A B ~@34 A B C D A B C E A B C D A B ~@2
>`.pickRestart({
  A: "~ x!6 ~", B: "~ x!7", C: "~ x ~ x!4 ~", D: "~ x!5 ~@2", E: "~ x!3 ~@4",
})).gain(0.26)

// drums · splash
const splash = s("cr").struct(`<
  ~@8 A ~ B ~ B ~ C ~ A ~ B ~ B ~ D ~ B ~ D ~ B ~ D ~ B ~ D ~ B ~ A ~ A ~ B ~ B ~ C ~ A ~ B ~ B ~ D ~ B ~ D ~ B ~ D ~ B
  ~ D ~ B ~ A ~ A ~ B ~ B ~ C ~ A ~ B ~ B ~@3 A ~ B ~ B ~ C ~ A ~ B ~ B ~ D ~ B ~ D ~ B ~ D ~ B ~ D ~ B ~ A E
>`.pickRestart({
  A: "x", B: "x ~@6 x", C: "x!2 ~@2", D: "x ~ x ~@4 x", E: "~ x",
})).gain(0.26)

stack(
  distortion_guitar, bass, distortion_guitar_2, bass_2, kick, snare, hihat, low_tom, mid_tom, open_hat, high_tom,
  ride_bell, splash
)

More by Green Day