Strudelify

Jaded

Green Day

KeyD♭ majorTempo160 bpm
0:00/0:00
// Jaded — Green Day
// 160 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 4/4 at bar 2) are rendered on a constant 4/4 grid of one bar per cycle
// note: duplicate parts dropped: ch 2 "Overdriven Guitar" overdriven guitar (copy of ch 11 "Distortion Guitar" distortion guitar)
// note: Full arrangement: all 59 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(160/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
const distortion_guitar = note(`<
  A@11 B C@2 D@2 C E F G A@9 B C@2 D@2 C E F G A@7 B C@2 D@2 C E F G A@3 H I
>`.pickRestart({
  A: "[ab2,eb3,ab3]@2 [ab2,eb3,ab3] [ab2,eb3,ab3]@2 [ab2,eb3,ab3] [ab2,eb3,ab3]@2 [gb2,db3,gb3]@2 [gb2,db3,gb3]@2 [db3,ab3,db4]!2 [db3,ab3,db4]@2", // Ab5 Gb5 Db5
  B: "[ab2,eb3,ab3]@2 [ab2,eb3,ab3] [ab2,eb3,ab3]@2 [ab2,eb3,ab3] [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2 [ab2,eb3,ab3]@2", // Ab5
  C: "[db3,ab3,db4]@2 [db3,ab3,db4] [db3,ab3,db4]@2 [db3,ab3,db4] [db3,ab3,db4]@2 [db3,ab3,db4]@2 [db3,ab3,db4] [db3,ab3,db4]@2 [db3,ab3,db4] [db3,ab3,db4]@2", // Db5
  D: "[ab2,eb3,ab3]@2 [ab2,eb3,ab3]@3 [ab2,eb3,ab3] [ab2,eb3,ab3]@2 [gb2,db3,gb3]@2 [ab2,eb3,ab3] [ab2,eb3,ab3]@2 [ab2,eb3,ab3] [ab2,eb3,ab3]@2", // Ab5 Gb5 Ab5
  E: "[db3,ab3,db4]@2 [db3,ab3,db4] [db3,ab3,db4]@2 [db3,ab3,db4] [db3,ab3,db4]@2 [db3,ab3,db4]@2 [db3,ab3,db4] [db3,ab3,db4]@2 [db3,ab3,db4] [d3,a3,d4]@2", // Db5 D5
  F: "[eb3,bb3,eb4]@2 [eb3,bb3,eb4] [eb3,bb3,eb4]@2 [eb3,bb3,eb4] [eb3,bb3,eb4]@2 [eb3,bb3,eb4]@2 [eb3,bb3,eb4] [eb3,bb3,eb4]@2 [eb3,bb3,eb4] [eb3,bb3,eb4]@2", // Eb5
  G: "[eb3,bb3,eb4]!8", // Eb5
  H: "[ab2,eb3,ab3]@2 [ab2,eb3,ab3] [ab2,eb3,ab3]@2 [ab2,eb3,ab3] [ab2,eb3,ab3]@2 [gb2,db3,gb3]@3 [db3,ab3,db4]@2 [db3,ab3,db4] [db3,ab3,db4]@2", // Ab5 Gb5 Db5
  I: "[ab2,eb3,ab3] ~@7", // Ab5
})).s("gm_distortion_guitar").gain(0.72)

// bass · electric bass finger · "Bass"
const bass = note("<~@2 A@9 B C@2 D E C F G H A@9 B C@2 D E C F G H A@7 B C@2 D E C F G H A@3 I J>".pickRestart({
  A: "ab1@2 ab1 ab1@2 ab1 ab1@2 gb1@2 gb1@2 db2!2 db2@2", B: "ab1@2 ab1 ab1@2 ab1 ab1@2 ab1@2 ab1@2 bb1@2 c2@2",
  C: "db2@2 db2 db2@2 db2 db2@2 db2@2 db2 db2@2 db2 db2@2", D: "ab1@2 ab1@3 ab1 ab1@2 gb1@2 ab1 ab1@2 ab1 ab1@2",
  E: "ab1@2 ab1@3 ab1 ab1@2 gb1@2 ab1@2 bb1@2 c2@2", F: "db2@2 db2 db2@2 db2 db2@2 db2@2 db2 db2@2 db2 d2@2",
  G: "eb2@2 eb2 eb2@2 eb2 eb2@2 eb2@2 eb2 eb2@2 eb2 eb2@2", H: "eb2!8",
  I: "ab1@2 ab1 ab1@2 ab1 ab1@2 gb1@3 gb1 db2!2 db2@2", J: "ab1 ~@7",
})).s("gm_electric_bass_finger").gain(0.72)

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@11 A ~@7 A ~@9 A ~@7 A ~@2 A ~@4 A ~@7 A ~@3 B ~>".pickRestart({
  A: "~@8 x!6 ~@2", B: "~@8 x ~@2 x ~ x ~@2",
})).gain(0.72)

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

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

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

// drums · ride bell
const ride_bell = s("rd").struct("<~@12 A@2 B@2 A@2 C ~@27 A@2 B@2 A@2 C ~@6>".pickRestart({
  A: "~ x!7", B: "~@2 x!6", C: "~ x!3 ~ x!3",
})).gain(0.72)

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

More by Green Day