Strudelify

Blood Runs Cold

Def Leppard

KeyE♭ majorTempo62 bpm
0:00/0:00
// Blood Runs Cold — Def Leppard
// 62 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 69 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(62/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 · electric bass pick · "untitled"
const electric_bass_pick = note("<A@2 B@2 C@4 ~@14 D@2 ~@4 E@2 ~@8 D@2 F G H I F G H J ~@14 D@4 ~@3>".pickRestart({
  A: "g4@2 g4 ~@3 f4@2 f4 bb3@2 bb3 eb4@2 eb4 eb4@2 eb4 d4@2 d4 bb3@2 bb3",
  B: "~@12 c4@2 c4 c4@2 c4 bb3@2 bb3 bb3@2 bb3", C: "~@12 c4@2 c4 ~@3 bb3@2 bb3 ~@3",
  D: "eb4@2 eb4 eb4@2 ~ d4@2 d4 d4@2 ~ c4@2 c4 c4@2 ~ bb3@2 bb3 bb3@2 ~", E: "[~ eb4@23, eb3, ~ [g3,bb3]@47]/2",
  F: "~ [b3,eb4,gb4]@23, [b2,gb3]", G: "~ [bb3,db4,gb4]@23, [db3,gb3]", H: "~ [a3,db4,e4]@23, [a2,e3]",
  I: "~ [eb4,gb4]@11, b2, ~ [gb3,b3]@23", J: "~@13 [gb3,b3]@11, b2!2, ~ [gb3,b3]@12 ~@11, ~ [eb4,gb4]@6 ~@5",
})).s("gm_electric_bass_pick").gain(0.43)

// chords · electric bass pick · "untitled" · soft notes
const electric_bass_pick_soft = note("<A@3 B C@5 ~@13 D@3 ~@13 D@3 ~@21 E@5 ~@2>".pickRestart({
  A: "[~@3 g4@2 ~@4 f4@2 ~ bb3@2 ~@4 eb4@2 ~ d4@2 ~ bb3@2 ~ g4@2 ~@4 f4@2 ~ bb3@2 ~@4 eb4@2 ~ d4@2 ~ bb3@2 bb3@3 ~@13 c4@2 c4@3 ~, ~@5 g4@19 ~@5 g4@18 ~@25, ~@11 f4@13 ~@11 f4@12 ~@25, ~@14 bb3@6 eb4@3 d4@3 bb3@3 ~@9 bb3@6 eb4@3 d4@3 ~@22]/3",
  B: "bb3@2 bb3@3 ~@13 c4@2 c4@3 ~",
  C: "[bb3@2 bb3@3 ~@10 c4@2 ~@4 bb3@2 bb3@6 ~@10 c4@2 ~@4 bb3@2 bb3@6 ~@10 c4@2 ~@4 bb3@2 bb3@6 ~@10 c4@2 ~@4 bb3@2 bb3@6 ~@19, ~@17 c4@6 ~@18 c4@6 ~@18 c4@6 ~@18 c4@6 ~@25]/5",
  D: "[~@5 eb4@6 d4@6 c4@6 bb3@6 eb4@6 d4@6 c4@6 bb3@6 ~@19]/3",
  E: "[~@5 eb4@6 d4@6 c4@6 bb3@6 eb4@6 d4@6 c4@6 bb3@6 eb4@6 d4@6 c4@6 bb3@6 eb4@6 d4@6 c4@6 bb3@6 ~@19]/5",
})).s("gm_electric_bass_pick").gain(0.29)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~ A B@5 C ~@7 D E@2 F@2 E@2 G@2 H@2 ~@3 I ~ D E@2 F@2 E@2 G@2 ~@18 F@2 E@2 G@4 ~@3
>`.pickRestart({
  A: "~@7 bb3", B: "eb4 eb4@6 bb3", C: "eb4 eb4@7", D: "~@7 ab3", E: "[bb3,eb4]/2", F: "[~ bb3@23, eb4]/2",
  G: "[eb3,bb3]", H: "[~ bb3, ~@9 eb4@2 eb4@13, ~@5 bb3 ~@6]/2", I: "~ bb3@11, eb4",
})).s("gm_distortion_guitar").gain(0.48)

// chords · distortion guitar
const distortion_guitar_2 = note(`<
  ~@3 A@5 ~@8 B C@2 D ~ E ~@5 F@3 ~@2 B C@2 D ~ E ~@2 G H I G@2 H I J K@2 L M N@2 K@2 B C@2 D ~ O ~@7
>`.pickRestart({
  A: "[c3,eb3]", B: "~@7 ab3", C: "[bb3,eb4]/2", D: "d4", E: "eb4 d4", F: "[eb2,bb2,eb3]/3", G: "[b2,gb3]",
  H: "[gb3,db4]", I: "[a2,e3]", J: "[b2,gb3] [gb3,db4]", K: "[eb2,g2]", L: "~@3 [eb3,g3], [g2,c3]",
  M: "[g2,c3], [eb3,g3]@3 ~", N: "[ab2,c3]", O: "eb4 ~",
})).s("gm_distortion_guitar").gain(0.39)

// chords · distortion guitar
const distortion_guitar_3 = note("<~@6 A@2 ~@32 B C D E B C D E F G@2 H I J K L ~@13>".pickRestart({
  A: "bb4/2", B: "~ gb4@3, b3", C: "~ gb4 gb4@6, b3", D: "~ e4@3, a3", E: "[eb4,gb4]", F: "f4@9 f4@2 eb4",
  G: "[eb4@17 ~@7 eb4@18 f4@5 eb4, ~@17 eb4@2 ~ eb4@4 ~@24, ~@9 bb4@2 bb4@10 ~@3]/2", H: "f4@16 bb4@2 f5@5 eb5",
  I: "f5@3 g5", J: "f5@3 eb5@3 f5@12 c5@2 bb4@2 g4@2", K: "bb4 f4@8 c4 bb3 f3", L: "f3",
})).s("gm_distortion_guitar").gain(0.56)

// chords · pad metallic
const pad_metallic = note(`<
  A@4 B@2 C@2 A D E A@2 F G H I D A J K L A@3 D E A@2 F G H I D A J K L A@2 ~@8 A@2 B@2 C@2 A@2 I D A J K M A@4 N@2 ~
>`.pickRestart({
  A: "[eb3,g3,bb3,eb4]", B: "[c3,eb3,g3,c4]", C: "[c3,eb3,ab3]", D: "[f3,bb3,d4,f4]", E: "[ab3,c4,eb4]",
  F: "[f3,bb3,d4]", G: "[g3,c4,eb4,g4]", H: "[g3,bb3,d4,g4]", I: "[eb3,ab3,c4,eb4]", J: "[eb3,f3,bb3,d4]",
  K: "[eb3,g3,c4,eb4]", L: "[eb3,ab3,c4,eb4] [f3,bb3,d4]", M: "[eb3,ab3,c4,eb4] ~", N: "[eb3,g3,bb3,eb4]/2",
})).s("gm_pad_metallic").gain(0.32)

// chords · pad warm
const pad_warm = note(`<
  A@4 B@2 C@2 A D E F@2 G H I J D A K L M A@3 D E A@2 G H I J D A K L M A@2 N O P N@2 O P Q A@2 B@2 C@2 A@2 J D A K L M
  A@4 R@2 ~
>`.pickRestart({
  A: "[eb3,g3,bb3,eb4]", B: "[c3,eb3,g3,c4]", C: "[c3,eb3,ab3]", D: "[f3,bb3,d4,f4]", E: "[ab3,c4,eb4]",
  F: "[~ [eb3,g3,bb3,eb4], [eb3,g3,bb3,eb4] ~, ~ eb5@2 ~]/2", G: "[f3,bb3,d4]", H: "[g3,c4,eb4,g4]",
  I: "[g3,bb3,d4,g4]", J: "[eb3,ab3,c4,eb4]", K: "[eb3,f3,bb3,d4]", L: "[eb3,g3,c4,eb4]",
  M: "[eb3,ab3,c4,eb4] [f3,bb3,d4]", N: "[b1,b2,b3,eb4,gb4,b4]", O: "[gb2,gb3,db4,gb4,a4,db5]",
  P: "[a1,a2,a3,db4,e4,gb4,a4]", Q: "[b3,eb4,gb4,b4] [gb3,b3,eb4,gb4], [b1,b2]", R: "[eb3,g3,bb3,eb4]/2",
})).s("gm_pad_warm").gain(0.4)

// bass · fretless bass
const bass = note(`<
  ~@2 A@2 B@2 C@2 ~@3 A ~@10 A@2 ~@3 A ~@10 A@2 ~ D E F ~ D E G A@2 B@2 C@2 A@2 ~@6 A@4 ~@3
>`.pickRestart({
  A: "~@3 bb2@3 f3@2 ~ eb3@6 bb2@3 f3@6", B: "c2 g2 eb3 d3@2 c3@2 g2", C: "ab1 ab2@2 ab2@2 ab2 c3 eb3",
  D: "gb2@12 gb2@2 ~ gb2@3 ab2@6", E: "a2@7 a2", F: "b2@3 ~", G: "b2 ~",
})).s("gm_fretless_bass").gain(0.4)

// bass · fretless bass
const bass_2 = note(`<
  ~@2 A@2 B@2 C@2 D E C D@2 E B F C E D E B G A@2 H I C D J K L M N O P Q R G A@2 S T U V S T U W A@2 B@2 C@2 A@2 N O P
  Q R X A@4 Y@2 ~
>`.pickRestart({
  A: "eb1 eb1@7", B: "c2", C: "ab1", D: "eb1", E: "bb1", F: "g1", G: "ab1 bb1", H: "eb1@3 eb1", I: "bb1@3 f2",
  J: "eb1@3 f2", K: "bb1@3 eb2", L: "c2@3 eb2", M: "g1@2 d2 g2@5", N: "ab1@11 eb2 ab1@2 ~ ab1@9",
  O: "bb1@11 eb2 bb1@2 ~ bb1@9", P: "eb1@12 eb1@2 ~ eb1@9", Q: "bb1@11 bb1 bb1@2 ~ bb1@8 g1", R: "c2@12 c2@2 ~ c2@9",
  S: "b1@11 gb1 b1@9 db2@3", T: "gb1", U: "a1", V: "b1@3 gb2", W: "b1 gb2", X: "ab1 ~", Y: "eb1/2",
})).s("gm_fretless_bass").gain(0.57)

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

// drums · snare
const snare = s("sd").struct(`<
  ~@22 A B A@3 C A@3 C A B A@3 C A B A@3 C A@3 C A C A C A C A D A B A@3 E A C A B ~@3
>`.pickRestart({
  A: "~ x ~ x", B: "~@6 x ~@11 x ~@2 x ~ x", C: "~@6 x ~@11 x ~@4 x", D: "~@6 x ~@10 x!5 ~ x", E: "~ x ~@2",
})).gain(0.45)

// drums · hihat
const hihat = s("hh").struct("<~@22 A@3 B@3 A B@3 A C A D@2 E D F ~@8 A G D C D B D H D@5 I D J D J ~@3>".pickRestart({
  A: "~@3 x ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x", B: "x ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x",
  C: "x ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x ~@2 x!2 ~ x", D: "~@2 x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x",
  E: "~@2 x!2 ~ x!2 ~ x!2 ~ x ~@2 x!2 ~ x!2 ~ x!2 ~ x", F: "~@2 x!2 ~ x!2 ~ x!2 ~ x!5 ~ x ~@2 x ~@3",
  G: "~@3 x ~ x!2 ~ x!2 ~ x!5 ~ x!2 ~ x!2 ~ x", H: "~@2 x!2 ~ x!2 ~ x!2 ~ x!2 ~ x!2 ~ x ~@6",
  I: "~@2 x!2 ~ x!2 ~ x!2 ~ x!2 ~@11", J: "x ~ x!2 ~ x!2 ~ x!2 ~ x!5 ~ x!2 ~ x!2 ~ x",
})).gain(0.2)

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

// drums · ride
const ride = s("rd").struct("<~@40 [~ x!7]!7 [~ x!3 ~ x!3] ~@21>").gain(0.35)

stack(
  electric_bass_pick, electric_bass_pick_soft, distortion_guitar, distortion_guitar_2, distortion_guitar_3,
  pad_metallic, pad_warm, bass, bass_2, kick, snare, hihat, crash, ride
)

More by Def Leppard