Strudelify

Wake Up Dead Man

U2

KeyD minorTempo101 bpm
0:00/0:00
// Wake Up Dead Man — U2
// 101 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 117 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 30.
setcpm(101/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 · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  A@7 B C@7 B D@5 E F@3 E G@5 B C@7 B D@5 E F@3 E G@5 B C@7 B D@5 E F@3 E G@5 B C@7 B D@5 E F@3 E F@3 E F@3 E F@3 E F@3
  E ~@3
>`.pickRestart({
  A: "[ab3@4 ~@2 ab3 ~ ab3@4 ~@2 ab3 ~ ab3@4 ~@2 ab3 ~ ab3@4 ~@2 ab3 ~ ab3@4 ~@2 ab3 ~ ab3@4 ~@2 ab3 ~ ab3@4 ~@2 ab3 ~ ab3@4 ~@4 gb3@4 ~@2 gb3 ~ gb3@4 ~@2 gb3 ~ gb3@4 ~@2 gb3 ~ gb3@4 ~@4 e3@4 ~@2 e3 ~ e3@4 e3@2 eb3@2, ~@2 [b3,eb4]@3 ~ [b3,eb4]@3 ~ [b3,eb4]@3 ~ [b3,eb4]@3 ~ [b3,eb4]@3 ~ [b3,eb4]@3 ~ [b3,eb4]@3 ~ [b3,eb4]@3 ~ [bb3,db4]@3 ~ [bb3,db4]@3 ~ [bb3,db4]@3 ~ [bb3,db4]@3 ~ [ab3,b3,e4]@3 ~@3]/7", // B Bbm E
  B: "db3@4 ~@2 db3 ~ db3@4 db3@2 gb2@2, ~@2 [e3,ab3,e4]@3 ~@3", // E
  C: "[b2@4 ~@2 b2 ~ b2@4 ~@2 gb2 ~ gb2@4 ~@2 gb2 ~ gb2@4 ~@4 ab3@4 ~@2 ab3 ~ ab3@4 ~@2 ab3 ~ ab3@4 ~@2 ab3 ~ ab3@4 ~@4 gb3@4 ~@2 gb3 ~ gb3@4 ~@2 gb3 ~ gb3@4 ~@2 gb3 ~ gb3@4 ~@4 e3@4 ~@2 e3 ~ e3@4 e3@2 eb3@2, ~@2 [eb3,gb3,b3,eb4]@3 ~ [eb3,gb3,b3,eb4]@3 ~ [gb3,bb3,db4,gb4]@3 ~ [gb3,bb3,db4,gb4]@3 ~ [b3,eb4]@3 ~ [b3,eb4]@3 ~ [b3,eb4]@3 ~ [b3,eb4]@3 ~ [bb3,db4]@3 ~ [bb3,db4]@3 ~ [bb3,db4]@3 ~ [bb3,db4]@3 ~ [ab3,b3,e4]@3 ~@3]/7", // B Gb B Bbm E
  D: "[b2@4 ~@2 b2 ~ b2@4 ~@2 gb2 ~ gb2@4 ~@2 gb2 ~ gb2@4 ~@2 gb2 ~ ab2@4 [eb3,ab3,b3,eb4]@6 ab2@2 [eb3,ab3,b3,eb4] ~ [eb3,ab3,b3,eb4]@6 ~@4 ab2@4 ~@4 gb2@4 ~@2 gb2 ~ gb2@4 e3@2 eb3@2, ~@2 [eb3,gb3,b3,eb4]@3 ~ [eb3,gb3,b3,eb4]@3 ~ [gb3,bb3,db4,gb4]@3 ~ [gb3,bb3,db4,gb4]@3 ~@9 [eb3,ab3,b3,eb4]@3 ~ [eb3,ab3,b3,eb4]@3 ~ [gb3,bb3,db4]@3 ~@3]/5", // Abm B Gb Abm Gb
  E: "[db3,e3,ab3,db4,e4]@2 [e3,ab3,db4,e4]@3 [e3,ab3,db4,e4] ~ gb2, ~@3 [e3,ab3,db4,e4]", // Dbm
  F: "[ab2@4 [eb3,ab3,b3,eb4]@6 ab2@2 [eb3,ab3,b3,eb4] ~ [eb3,ab3,b3,eb4]@6 ~@4 ab2@4 ~@4 gb2@4 ~@2 gb2 ~ gb2@4 e3@2 eb3@2, ~@10 [eb3,ab3,b3,eb4]@3 ~ [eb3,ab3,b3,eb4]@3 ~ [gb3,bb3,db4]@3 ~@3]/3", // Abm Gb
  G: "[ab3@4 ~@2 ab3 ~ ab3@4 ~@2 ab3 ~ ab3@4 ~@2 ab3 ~ ab3@4 ~@4 gb3@4 ~@2 gb3 ~ gb3@4 ~@2 gb3 ~ gb3@4 ~@2 gb3 ~ gb3@4 ~@4 e3@4 ~@2 e3 ~ e3@4 e3@2 eb3@2, ~@2 [b3,eb4]@3 ~ [b3,eb4]@3 ~ [b3,eb4]@3 ~ [b3,eb4]@3 ~ [bb3,db4]@3 ~ [bb3,db4]@3 ~ [bb3,db4]@3 ~ [bb3,db4]@3 ~ [ab3,b3,e4]@3 ~@3]/5", // B Bbm E
})).s("gm_acoustic_guitar_nylon").gain(0.23)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  A@4 B@2 C D E F A@2 B@2 C D E F A@2 F G A@2 F G A@2 B@2 C D E F A@2 B@2 C D E F A@2 F G A@2 F G A@2 B@2 C D E F A@2
  B@2 C D E F A@2 F G A@2 F G A@2 B@2 C D E F A@2 B@2 C D E F A@2 F G A@2 F G A@2 F G A@2 F G A@2 F G A@2 F G ~@3
>`.pickRestart({
  A: "[ab4,b4,eb5]/2", B: "[gb4,bb4,db5]/2", C: "[e4,ab4,b4]", D: "[e4,ab4,db5]", E: "[gb4,b4,eb5]", F: "[gb4,bb4,db5]",
  G: "[f4,ab4,db5]", // Db
})).s("gm_string_ensemble_1").gain(0.03)

// chords · distortion guitar
const distortion_guitar = note("<~@44 A ~@3 A ~@19 A ~@3 A ~@19 A ~@3 A ~@3 A ~@3 A ~@3 B@3 ~ C@3 ~@2>".pickRestart({
  A: "~@6 b3 bb3", B: "[~@6 db4 db4@11 ~@6]/3", C: "[~@6 db4 db4@17]/3",
})).s("gm_distortion_guitar").gain(0.19)

// bass · electric bass finger
const bass = note(`<
  ~@26 A B A C A C D@2 A B A C A C D@2 E F G H E F G H A B A C A C D@2 A B A C A C D@2 E F G H E F G H A B A C A C D@2 A
  B A C A C D@2 E F G H E F G H E F G H E F G H E F G H E F G H I J@2
>`.pickRestart({
  A: "gb2 ab2@2 ~@4 ab2", B: "gb2 ab2 eb2@4 ~ ab2", C: "gb2 ab2 db2@4 ~ ab2", D: "gb2 ab2 gb2@4 ~ ab2",
  E: "gb2 ab2@2 eb2@2 gb2@2 ab2", F: "gb2 ab2 db2 eb2@2 gb2@2 ab2", G: "gb2@3 ab2@3 b2@2", H: "db3@3 ab2@2 b2 db3 eb2",
  I: "gb2 ab2@2 eb2@2 gb2 ab2@2", J: "ab2/2",
})).s("gm_electric_bass_finger").gain(0.27)

// other · electric guitar muted
const electric_guitar_muted = note("<~@34 A B C B C B C B ~@16 A B C B C B C B ~@51>".pickRestart({
  A: "~@4 db4 ~@3 ab3@2 ~@6", B: "~@2 ab3@2 db4 ~@3 ab3 ~@7", C: "~@2 ab3@2 db4 ~@3 ab3@2 ~@6",
})).s("gm_electric_guitar_muted").gain(0.23)

// other · celesta
const celesta = note("<~@50 A@8 B@8 ~@51>".pickRestart({
  A: "[~@3 ab5@2 gb5@6 eb6 eb6@7 bb5@3 gb5@7 eb6@6 ab5@2 gb5@6 eb6 eb6@7 bb5@3 gb5@7 eb6@3]/8",
  B: "[~@3 ab5@2 gb5@6 eb6 eb6@7 bb5@3 gb5@7 eb6@6 ab5@2 gb5@6 eb6 eb6@7 bb5@3 gb5@7 ~@3]/8",
})).s("gm_celesta").gain(0.1)

// other · electric guitar clean
const electric_guitar_clean = note("<~@102 A B C D A B C D A B C D E ~@2>".pickRestart({
  A: "ab2 bb2", B: "b2 eb3", C: "gb2 bb2", D: "db3@6 b2 bb2", E: "ab2 ~",
})).s("gm_electric_guitar_clean").gain(0.31)

// drums · kick
const kick = s("bd").struct(`<
  ~@42 A B A B A B A B ~@16 A B A B A@3 C A@15 B A B A B A@3 C A B A B A@3 C A@3 C A@3 C A B ~
>`.pickRestart({
  A: "x ~@2 x ~ x ~@2", B: "x", C: "x ~@2 x ~@4",
})).gain(0.37)

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

// drums · low tom
const low_tom = s("lt").struct("<~@74 A B A B A B A B A B A B A B A ~@28>".pickRestart({
  A: "~@4 x ~@7 x!2 ~@2", B: "~ x ~ x",
})).gain(0.31)

// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<~@75 A B A ~ A B A ~ A B A ~ A B ~@28>".pickRestart({
  A: "~@9 x ~@6", B: "~@3 x ~@12",
})).gain(0.19)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@41 A ~ B ~ C ~ B ~ C ~@15 A ~ B ~ C ~ D ~ E ~@15 F ~ B ~ C ~ D ~ E ~ B ~ C ~@3 E ~@3 E ~@3 E G H ~
>`.pickRestart({
  A: "~@6 x!2 ~ x!2 ~ x!3 ~", B: "~@5 x!2 ~@8 x", C: "~@5 x!2 ~@4 x ~@3 x", D: "~@15 x", E: "~@11 x ~@3 x",
  F: "~@6 x!2 ~ x!2 ~ x!4", G: "~@13 x ~@2", H: "~@12 x!2 ~@2",
})).gain(0.31)

// drums · mid tom · soft notes
const mid_tom_soft = s("mt").struct("<~@75 A B A ~ A B A ~ A B A ~ A B ~@28>".pickRestart({
  A: "~@2 x ~@5 x ~@6 x", B: "~@9 x ~@6",
})).gain(0.19)

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

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@41 A ~ B ~ B ~ B ~ B ~@15 A ~ B ~ B ~ C ~ C ~ D ~ D ~ D ~ D ~ D ~ D ~ D ~ A ~ B ~ B ~ C ~ C ~ B ~ B ~@3 C ~@3 C ~@3
  C E@2 ~
>`.pickRestart({
  A: "x ~@2 x!2 ~@11", B: "x ~ x!2 ~@6 x ~@3 x ~", C: "~@5 x ~ x", D: "~@7 x", E: "~@3 x",
})).gain(0.31)

// drums · high tom · soft notes
const high_tom_soft = s("ht").struct("<~@75 A B A ~ A B A ~ A B A ~ A B ~@28>".pickRestart({
  A: "~ x ~@14", B: "~ x",
})).gain(0.19)

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

// drums · ride
const ride = s("rd").struct("<~@42 A ~ A ~ A ~ A ~@68>".pickRestart({
  A: "x!6 ~@2",
})).gain(0.37)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@42 A B A B A B A B ~@16 A C A C A@3 D ~@16 A C A C A@3 D A C A C A@3 D A@3 D A@3 D E ~@2
>`.pickRestart({
  A: "x!8", B: "~@4 x!2 ~@2", C: "x!4", D: "x!5 ~@3", E: "x!7 ~",
})).gain(0.25)

stack(
  acoustic_guitar_nylon, string_ensemble_1, distortion_guitar, bass, electric_guitar_muted, celesta,
  electric_guitar_clean, kick, snare, low_tom, low_tom_soft, mid_tom, mid_tom_soft, open_hat, high_tom, high_tom_soft,
  crash, ride, tambourine
)

More by U2