Strudelify

Brat

Green Day

KeyF♯ majorTempo185 bpm
0:00/0:00
// Brat — Green Day
// 185 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 77 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(185/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.

// bass · electric bass finger · "Electric Bass"
const bass = note(`<
  ~@3 A B C D E F C D E F C D E F G@3 H G@2 I J K C D E F C D E F C D E F C D E F G@3 H G@2 I J K C L E F C M E F C N G
  F C O G F G@3 H G@2 I J K P
>`.pickRestart({
  A: "b1@7 ~ f#1@2 f#1@2 f#1@3 ~", B: "c#2@3 ~ b1@3 ~ a#1@3 ~ g#1@3 ~", C: "f#1@3 ~ f#1@2 d#1@2 b1@3 ~ b1@2 d#1@2",
  D: "f#1!7 d#1", E: "b1@3 ~ b1@2 d#1@2 f#1@3 ~ f#1@2 c#2!2", F: "c#2!8", G: "b1@3 ~ b1@2 d#1@2 f#1@3 ~ f#1@2 d#1@2",
  H: "c#2@2 c#2@2 c#2@2 c#2@2 c#2@2 c#2@2 c#2@2 c#2!2", I: "e1!8", J: "c#2!4 c#2@2 c#2!4 c#2@2 c#2!4",
  K: "c#2 b1!2 a#1!2 g#1!2 d#1", L: "f#1!8", M: "f#1!4 f1 f#1!3", N: "g1!4 f#1 g1!2 e1", O: "f#1!4 f1 f#1!2 d#1",
  P: "f#1@7 ~@9",
})).s("gm_electric_bass_finger").gain(0.72)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@3 A B C D E F C D E F C D E F G@3 H G@2 I J K C D E F C D E F C D E F C D E F G@3 H G@2 I J K C L E F C M E F C M G
  F C M G F G@3 H G@2 I J K N
>`.pickRestart({
  A: "[b2,f#3,b3]@7 ~ [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@2 [f#2,c#3,f#3]@3 ~", // B5 F#5
  B: "[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 d#2@2", // C#5
  C: "[f#2,c#3,f#3]@3 ~ [f#2,c#3,f#3]@2 d#2@2 [b2,f#3,b3]@3 ~ [b2,f#3,b3]@2 d#2@2", D: "[f#2,c#3,f#3]!7 d#2",
  E: "[b2,f#3,b3]@3 ~ [b2,f#3,b3]@2 d#2@2 [f#2,c#3,f#3]@3 ~ [f#2,c#3,f#3]@2 [c#3,g#3,c#4]!2", F: "[c#3,g#3,c#4]!8",
  G: "[b2,f#3,b3]@3 ~ [b2,f#3,b3]@2 d#2@2 [f#2,c#3,f#3]@3 ~ [f#2,c#3,f#3]@2 d#2@2", // B5 F#5
  H: "[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 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]!2", // C#5
  I: "[e2,b2,e3]!8", J: "[c#3,g#3,c#4]!4 [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]!4",
  K: "[c#3,g#3,c#4]@3 ~@7 [c#3,g#3,c#4]@2 [c#3,g#3,c#4]@2 d#2@2", L: "[f#2,c#3,f#3]!8",
  M: "[f#2,c#3,f#3]!4 [f2,c3,f3] [f#2,c#3,f#3]!3", N: "[f#2,c#3,f#3]@7 ~@9",
})).s("gm_distortion_guitar").gain(0.72)

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

// drums · snare
const snare = s("sd").struct("<~@3 A B C@11 B C@7 B ~ C@15 B C@7 B ~ C@15 B C@7 B ~@2>".pickRestart({
  A: "~@2 x!6 ~@2 x ~ x ~@3", B: "~@3 x!5 ~@2 x!2 ~@2 x!2", C: "~ x ~ x",
})).gain(0.72)

// drums · mid tom
const mid_tom = s("mt").struct("<~@4 A ~@11 A ~@7 A ~@16 A ~@7 A ~@16 A ~@7 A ~@2>".pickRestart({
  A: "~@2 x!2",
})).gain(0.72)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@5 A B A B A B A B A B A ~ A B A B A B A ~@2 A B A B A B A@2 B A B A B A B ~ A@2 B A B A@2 ~@2 A B A B A B A B A B A
  B A B A ~ A B A B A B A ~@3
>`.pickRestart({
  A: "~ x!7", B: "x!8",
})).gain(0.72)

// drums · crash
const crash = s("cr").struct(`<
  ~@3 A ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@2 B ~ B ~ B ~ B@2 ~ B ~ B ~ B ~@2 B@2 ~ B ~ B@2 ~@2 B ~ B ~ B ~ B ~ B
  ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@2 B
>`.pickRestart({
  A: "x ~@3 x ~@2 x", B: "x",
})).gain(0.72)

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

More by Green Day