Strudelify
Stuck With Me cover art

1995 · Insomniac

Stuck With Me

Green Day

KeyE♭ majorTempo189 bpm
0:00/0:00
// Stuck With Me — Green Day
// 189 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 106 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(189/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · "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, A@4 for four bars: edit a riff to change every repeat.

// other · distortion guitar · "Guitar"
const distortion_guitar = note(`<
  A B C D A B C D E F G H I H I H A J K L I H I H M N O P Q R S T M U@2 P V W X Y O P Z H I H I AA AB AC G H I H I H M
  AD O AE M AD O P M N O P V W A B V@2 A B V D A B C D A B V@2 ~@4 M U@2 P M R S AF@2 R O P V W X Y
>`.pickRestart({
  A: "eb3@3 ~ eb3@3 ~ eb3 ~ eb3 ~ eb3@3 ~", B: "eb3@3 ~ eb3 ~ c3@2 ~@2 bb2@6", C: "ab2@3 ~ ab2@3 ~ ab2 ~ ab2 ~ ab2@3 ~",
  D: "ab2@3 ~ ab2 ~ ab2@3 ~ ab2 ~ ab2@4", E: "eb3@3 ~ eb3 ~ eb3 ~ eb3 ~ eb3 ~ eb3 ~ eb3 ~",
  F: "eb3 ~ eb3 ~ eb3@3 ~ eb3@3 ~ eb3@4", G: "bb2@3 ~ bb2@3 ~ bb2 ~ bb2 ~ bb2 ~ bb2@2",
  H: "~@2 bb2 ~ bb2@3 ~ bb2@3 ~ bb2@3 ~", I: "ab2@3 ~ ab2@3 ~ ab2@3 ~ ab2@2 bb2@2",
  J: "eb3@3 ~ eb3 ~ eb3@3 ~ eb3 ~ eb3@4", K: "bb2@3 ~ bb2@3 ~ bb2 ~ bb2 ~ bb2@3 ~",
  L: "bb2@3 ~ bb2 ~ bb2@3 ~ bb2 ~ bb2@4", M: "c3@3 ~ c3@3 ~ c3@3 ~ c3 ~ c3@2", N: "~@2 c3 ~ c3@3 ~ c3@3 ~ c3@4",
  O: "eb3@3 ~ eb3@3 ~ eb3@3 ~ eb3 ~ eb3@2", P: "~@2 eb3 ~ eb3@3 ~ eb3@3 ~ eb3@4", Q: "c3@3 ~ c3@3 ~ c3@3 c3 ~@2 c3@2",
  R: "~ c3 ~@2 c3@3 ~ c3@3 ~ c3@4", S: "eb3@3 ~ eb3@3 ~ eb3@3 eb3 ~ eb3@3", T: "~ eb3 ~@2 eb3@3 ~ eb3@3 ~ eb3@3 ~",
  U: "[~@2 c3 ~ c3@3 ~ c3@3 ~ c3@3 eb3@3 ~@2 eb3@3 ~ eb3@3 ~ eb3 ~ eb3@2]/2", V: "ab2@3 ~ ab2@3 ~ ab2@3 ~ ab2@3 ~",
  W: "bb2@3 ~ bb2@3 ~ bb2@3 ~ bb2@4", X: "eb3@3 ~ eb3@3 ~ eb3@3 ~ eb3@3 ~", Y: "eb3@2 ~@2 eb3@3 ~ eb3@2 ~@6",
  Z: "bb2@3 ~ bb2@3 ~ bb2@3 ~ bb2 ~ bb2@2", AA: "~@2 bb2 ~ bb2@3 ~ bb2 ~ bb2 ~ bb2@4",
  AB: "eb3 ~ eb3 ~ eb3 ~ eb3 ~ eb3 ~ eb3 ~ eb3 ~ eb3@2", AC: "~@2 eb3 ~ eb3 ~ eb3 ~ eb3@3 ~ eb3@4",
  AD: "~@2 c3 ~ c3@3 ~ c3@3 ~ c3@3 ~", AE: "~@2 eb3 ~ eb3@3 ~ eb3@3 ~ eb3@3 ~",
  AF: "[~@2 eb3 ~ eb3@3 ~ eb3@3 ~ eb3@3 c3@3 ~@2 c3@3 ~ c3@3 ~ c3 ~ c3@2]/2",
})).s("gm_distortion_guitar").gain(0.51)

// bass · electric bass pick · "Bass"
const bass = note(`<
  A B C D A B E@2 F ~ G H I H I H J K@2 H I L M H N O P Q@2 R J S N T U V W X Y Z J V AA AB AC AD M H F ~ AE H I L AC H
  N AF P AG N T AH S N AI J AJ W X A B C AK Y AL AM AN Y B AO@2 A AP AQ E AR@2 AS AT AU AF P AV N AW J AX@2 T J V W X Y
  Z
>`.pickRestart({
  A: "eb2@3 ~ eb2@3 ~ eb2 ~ eb2 ~ eb2@3 ~", B: "eb2@3 ~ eb2 ~ c2@2 ~@2 bb1@4 ~@2", C: "ab1@3 ~ ab1@3 ~@3 g1@3 ~@3",
  D: "f1@3 ~@2 g1@3 ~@4 ab1@3 ~", E: "ab1 ~ ab1 ~ g1 ~ g1 ~ f1 ~ f1 ~ g1 ~ g1@2", F: "eb2 ~@7",
  G: "bb1@3 ~ bb1@3 ~ bb1!2 ~ bb1 ~@2 bb1@2", H: "~@2 bb1 ~ bb1@3 ~ bb1@3 ~ bb1@3 ~",
  I: "ab1@3 ~ ab1@3 ~ ab1@3 ~ ab1 ~ bb1@2", J: "eb2@3 ~ eb2@3 ~ eb2@3 ~ eb2 ~ eb2@2",
  K: "[~@2 eb2 ~ eb2@3 ~ eb2@2 ~ eb2@4 bb1@3 ~@2 bb1@3 ~ bb1@3 bb1 ~@2 bb1@2]/2",
  L: "~@2 bb1 ~ bb1@3 ~ d2@2 ~ c2@2 d2@2 ~, ~@5 db2 ~@2", M: "ab1@3 ~ ab1@3 ~ ab1@2 ~@2 ab1@2 bb1@2",
  N: "c2@3 ~ c2@3 ~ c2@3 ~ c2 ~ c2@2", O: "~@2 c2 ~ c2@2 ab1@8 ~@2", P: "~@4 bb1 ~ bb1@2 ~@4 eb2 ~ eb2@2",
  Q: "[~@4 bb1 ~ bb1@2 ~@3 eb2 ~ eb2 ~ c2@3 ~@2 c2@3 ~ c2@3 ~ c2 ~ c2@2]/2", R: "~@2 c2 ~ c2@3 c2@3 ~@2 c2@3 ~",
  S: "~@2 eb2 ~ c2 ~ c2 ~ db2 ~ db2 ~ d2 ~ d2 ~", T: "~ c2 ~@2 c2@3 ~ c2@3 ~ c2@3 ~",
  U: "eb2@3 eb2@3 ~@2 eb2@3 eb2 ~ eb2@3", V: "~ eb2 ~@2 eb2@3 ~ eb2@3 ~ eb2@3 ~", W: "ab1@3 ~ ab1@3 ~ ab1@3 ~ ab1@4",
  X: "bb1@3 ~ bb1@3 ~ bb1@3 ~ bb1@3 ~", Y: "eb2@3 ~ eb2@3 ~ eb2@3 ~ eb2@3 ~", Z: "eb2@3 ~ eb2@3 ~ eb2@2 ~@6",
  AA: "bb1@3 ~ bb1@3 ~ bb1@3 bb1 ~@2 bb1@2", AB: "~ bb1 ~@2 bb1@3 ~ bb1@3 ~ bb1@4",
  AC: "ab1@3 ~ ab1@3 ~ ab1@2 ~ ab1@2 ~ bb1@2", AD: "~@2 bb1 ~ bb1@3 d2@2 ~@2 c2@2 d2@2 ~, ~@5 db2 ~@2",
  AE: "bb1@3 ~ bb1@3 ~ bb1@3 ~ bb1 ~ bb1@2", AF: "~@2 c2 ~ c2@2 ab1@10", AG: "~@3 bb1 ~ bb1@2 ~@5 eb2!2 ~@2",
  AH: "eb2@3 ~ eb2@3 ~ eb2@2 ~@2 eb2 ~ eb2@2", AI: "~ c2 ~ c2@2 ab1@9 ~@2", AJ: "~ eb2 ~@2 eb2@3 ~ eb2@3 eb2@4 ~",
  AK: "f1@3 ~@3 g1@4 ~@2 ab1@3 ~", AL: "eb2@3 eb2@2 c2@3 ~@2 bb1@5 ab1", AM: "~ ab1 ~@2 g1 ~ g1 ~ f1 ~ f1 ~ g1 ~ g1 ~",
  AN: "ab1 ~ ab1 ~ g1 ~ g1 ~ f1 ~ f1 ~ g1@4", AO: "[ab1@3 ab1@4 ~@3 g1@3 ~@2 f1@4 ~@2 g1@3 ~@3 ab1@3 ~@2]/2",
  AP: "eb2@3 ~ eb2 ~ c2@2 ~@2 bb1@4 ~ ab1", AQ: "~ ab1 ~ g1 ~ g1 ~ f1 ~ f1 ~@2 g1 ~ g1 ~",
  AR: "[eb1 ~ eb1 ~ g1 ~ g1@2 bb1 ~@2 bb1 ~ c2 ~ c2@2 eb2 ~ eb2 ~ c2 ~ c2 ~@2 bb1!2 ~ g1 ~ g1]/2",
  AS: "~ eb1 ~ eb1 ~ g1 ~ g1@2 ~ bb1!2 ~@2 g1 ~", AT: "g1 ~ eb1 ~ eb2 ~ c2 ~ c2 ~@2 bb1 ~ bb1 ~ g1",
  AU: "~ g1 ~@2 c2@3 ~ c2@3 ~ c2 ~ c2@2", AV: "~@4 bb1 ~ bb1@2 ~@3 eb2 ~ eb2 ~@2", AW: "~ c2 ~ c2@2 ~ ab1@3 ~@3 ab1@4",
  AX: "[~ eb2 ~@2 c2 ~ c2 ~ db2 ~ db2 ~ d2 ~ d2 c2@2 ~@3 c2@3 ~ c2@3 ~ c2 ~ c2@2]/2",
})).s("gm_electric_bass_pick").gain(0.51)

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

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

// drums · low tom
const low_tom = s("lt").struct(`<
  ~@47
  [~@12 x!4]
  ~@38
  [x ~@3 x ~@4 x ~@3 x ~@2]
  [~ x ~@3 x ~@3 x ~@4 x ~]
  [~ x ~ x ~ x ~ x]!2
  ~@16
>`).gain(0.51)

// drums · mid tom
const mid_tom = s("mt").struct("<~@47 [~@8 x ~ x!2 ~@4] ~@58>").gain(0.51)

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

// drums · crash
const crash = s("cr").struct(`<
  A B ~ A@2 ~ A C ~@2 A B D ~ E ~ E ~ E ~ E B F B ~@2 A B ~@2 A B F ~ E ~ A@2 G A@2 B ~ B D ~ E ~ A ~ A B D B F B D ~
  H@2 E ~ A ~ I B D ~ E D ~ J C ~ A@2 E B ~ K C ~ C ~ A@2 L M N O I ~ E ~ A B P ~ E ~ E ~ A@2 Q R
>`.pickRestart({
  A: "x", B: "~@15 x", C: "x ~@14 x", D: "~@7 x", E: "x ~@6 x", F: "~@13 x ~@2", G: "x!3 ~", H: "x!2", I: "~ x ~@6",
  J: "~@3 x ~@4", K: "~ x ~@14", L: "x ~@3 x ~@3 x ~@4 x ~@2", M: "~ x ~@3 x ~@4 x ~@3 x ~", N: "~ x ~ x ~ x ~ x",
  O: "~@3 x ~@3 x ~@3 x ~@3 x", P: "~@7 x ~@8", Q: "x!4", R: "x ~@3 x ~@2 x ~@8",
})).gain(0.51)

// drums · ride
const ride = s("rd").struct("<~@39 [~@8 x ~ x ~ x ~@2 x] ~@66>").gain(0.26)

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

More by Green Day