Strudelify

Wanted Dead or Alive

Bon Jovi

KeyD majorTempo75 bpm
0:00/0:00
// Wanted Dead or Alive — Bon Jovi
// 75 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 61, 4/4 at bar 61) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 3 electric guitar muted (copy of ch 2 guitar harmonics, 0.125 beats late); ch 8 guitar harmonics (copy of ch 7 guitar harmonics, 0.4 beats late); ch 8 overdriven guitar (copy of ch 7 overdriven guitar, 0.4 beats late)
// note: Full arrangement: all 92 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(75/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 steel
const acoustic_guitar_steel = note(`<
  ~@4 A B C@2 D E F G H I J K L M N O P Q R S T U V B C@2 D I J K L M N O W X R Y Z AA V B AB@4 AC@2 AD AE AF AC AG@2 R
  AH AI@2 AJ@3 AK AL AM AN AO@3 AP AQ@4 AR@2 AS AT AU@5 AV AW AX AY@3
>`.pickRestart({
  A: "~ [d4,e4]@15, [d3,a3]", // Dsus2 D5
  B: "~@2 f5 a5 ~@2 e5 g5 ~@2 d5 f5 ~@2 c5 e5, d3@3 ~ d3@3 ~ d3@3 ~ d3@3 ~, ~ a5@2 ~@2 g5@2 ~@2 f5@2 ~@2 e5@2 ~",
  C: "[~@2 a4 ~@2 b4 g4 b4 ~ a4 f4@5 d3@2 a5 f5 ~@3 e5 g5 ~@2 d5 f5 ~@2 c5 e5, d3@3 ~ d3@2 ~@14 d3@3 ~ d3@3 ~ d3@3 ~, ~ c5@2 c5@3 ~@2 b4@2 ~@9 a5@4 ~@9, ~@21 g5@2 ~@2 f5@2 ~@2 e5@2 ~]/2",
  D: "~@2 a4 ~@3 g4 b4 ~@2 f4@4 a2!2, d3@3 ~ d3@3 ~@9, ~ c5@2 c5@4 ~@2 a4@5 ~@2, ~@5 b4@2 ~ b4@6 ~@2",
  E: "c3@2 d3@2 f3@2 ~@5 d4 ~ a3!3, ~@3 d3@5, ~@9 e4@7, ~@3 d4",
  F: "c3@2 d3@2 f3@2 ~@4 d4!2 ~ a3!3, ~@6 d3@9 ~, ~@9 e4@6 ~, ~@12 d4@3 ~",
  G: "c3@2 ~@2 f3@2 ~@4 d4!2 ~ a3!3, ~ d3@2 d3@5, ~@9 e4@7, ~@3 d4", H: "c3 a3@2 [d3,a3,d4]@5, ~@2 [c3,f3,c4]@7 ~@7",
  I: "[d3,a3,d4]@4 [d3,a3,d4]@3 [d3,a3,d4]!2 [d3,a3,d4]@2 [d3,a3,d4]!5", // D5
  J: "[c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@4 [g2,b2,d3,g3,d4,g4] [d3,g3,d4,g4]@3 [d3,g3,b3,d4,g4]!2, ~@11 [g2,b2]@5", // C G G5 G
  K: "[c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@4 [g2,b2,d3,g3,d4,g4] [g2,b2,d3,g3,d4,g4]@3 [d3,g3,b3,d4,g4]!2", // C G
  L: "[g2,b2,d3,g3,d4,g4]@2 [f2,c3,f3,a3,c4,f4]@3 ~ [d3,a3,d4,f#4]@2 [d3,a3,d4,e4] [d3,a3,d4,e4]@2 [d3,a3,d4,e4]!5", // G F D Dsus2
  M: "[d3,a3,d4] [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4] [d3,a3,d4]@2 [d3,a3,d4]!6", // D5
  N: "[c3,e3,g3,d4]@3 [c3,e3,g3,d4]@3 [g2,b2,d3,g3,d4]@3 [g2,b2,d3,g3,d4]@2 [g2,b2,d3,g3,d4]@3 [d3,g3,d4]!2", // C G G5
  O: "[c3,e3,g3,d4]@3 [g3,d4]@3 [g2,b2,d3,g3,d4]@3 [g2,b2,d3,g3,d4]@2 [g2,b2,d3,g3,d4]@3 [d3,g3,d4]!2, ~@3 [c3,e3]@12 ~", // C G5 G G5 C
  P: "[g2,b2,d3,g3,d4,g4]@2 [f2,c3,f3,a3,c4,f4]@2 ~@2 [d3,a3,d4,f#4]@3 ~@7", // G F D
  Q: "[c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!2 [c3,e3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]@4 [g2,b2,d3,g3,d4,g4]!2 ~@2 [d3,g3,d4,g4]!2", // C G G5
  R: "[f2,a2,c3,f3,a3,c4,f4]@2 [f2,a2,c3,f3,a3,c4,f4]!4 [d3,a3,d4,f#4]@10", // F D
  S: "[c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!2 ~@2 [g2,b2,d3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]!3 [d3,g3,d4,g4]@3 [d3,g3,d4,g4]!2, ~@11 [g2,b2]@5", // C G G5 G
  T: "c3@2 d3@2 f3@2 ~@5 d4 ~@2 d3!2, ~@6 d3@7 a3@3, ~@9 e4@7, ~@3 d4",
  U: "[c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!2 ~@2 [g2,b2,d3,g3,d4,g4]@4 [g2,b2,d3,g3,d4,g4] [d3,g3,d4,g4]@3 [d3,g3,d4,g4] [g3,d4,g4], ~@11 [g2,b2]@5", // C G G5 G
  V: "c3 d3 f3 d3@5", W: "[g2,b2,d3,g3,d4,g4]@2 [f2,c3,f3,a3,c4,f4]@2 ~@2 [d3,a3,d4,f#4]@9 ~",
  X: "[c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!2 [c3,e3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]@4 [g2,b2,d3,g3,d4,g4] [d3,g3,d4,g4]@3 [d3,g3,d4,g4]!2, ~@11 [g2,b2]@5", // C G G5 G
  Y: "[c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!2 ~@2 [g2,b2,d3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]!4 ~@2 [d3,g3,d4,g4]!2", // C G G5
  Z: "c3@2 d3@2 f3@2 d3@2 ~ e4@2 d4!2 a3 d3!2",
  AA: "[c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!2 ~@2 [g2,b2,d3,g3,d4,g4]@4 [g2,b2,d3,g3,d4,g4]!2 ~@2 [d3,g3,d4,g4] [g3,d4,g4]", // C G G5
  AB: "[~@2 a4 ~@2 b4 g4 b4 ~ a4 f4@5 ~@24 b4 ~@6 a2 ~ [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]!4 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]!4 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]!2, d3@3 ~ d3@2 ~@9 d3@5 d3@3 g5@9 d3 c5 a4 c5@7 f4@5 a2@17, ~ c5@2 c5@3 ~@2 b4@2 ~@7 a5@2 a5@9 d3 e5 c5 e5@10 a4@23, ~@18 f5@6 d3 f5 d5@10 d3 b4 g4@26, ~@21 g5 e5@5 f5@13 b4@24]/4", // D
  AC: "[c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!4 [g2,b2,d3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]!8", // C G
  AD: "[g2,b2,d3,g3,d4,g4]@2 [f2,c3,f3,a3,c4,f4]@2 ~@2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]!8", // G F D
  AE: "[d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]!14", // D
  AF: "[c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!4 [g2,b2,d3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]!6", // C G
  AG: "[~@2 a3@4 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4]!2 [d3,a3,d4,f#4]@2 [d3,a3,d4,f#4] d4 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!2 [c3,e3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]@4 [g2,b2,d3,g3,d4,g4] [d3,g3,d4,g4]@3 [d3,g3,d4,g4]!2, [g2,b2]@22 ~@5 [g2,b2]@5, [g3,g4]@15 [d3,a3,f#4]@7 ~@10, [d3,d4] c3@7 ~@8, ~ [f2,f3,c4,f4]@10 ~@5]/2", // D C G G5 G D F5
  AH: "[c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!2 ~@2 [g2,b2,d3,g3,d4,g4]@10", // C G
  AI: "[c3@2 d3@2 f3@2 d3@18 [d3,a3,d4]@4 [d3,a3,d4]@3 [d3,a3,d4]]/2", // D5
  AJ: "[[d3,a3,d4] [d3,a3,d4]@2 [d3,a3,d4]!5 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@4 [g2,b2,d3,g3,d4,g4] [d3,g3,d4,g4]@3 [d3,g3,b3,d4,g4]!2 [c3,e3,g3,d4,g4]@3 [c3,e3,g3,d4,g4]@3 [g2,b2,d3,g3,d4,g4]@4 [g2,b2,d3,g3,d4,g4] [g2,b2,d3,g3,d4,g4]@3 [d3,g3,b3,d4,g4]!2 [g2,b2,d3,g3,d4,g4]@2 [f2,c3,f3,a3,c4,f4]@3 ~ [d3,a3,d4,f#4]@2, ~@19 [g2,b2]@5 ~@24]/3", // D5 C G G5 G C G F …
  AK: "[d3,a3,d4,e4] [d3,a3,d4,e4]@2 [d3,a3,d4,e4]!5 [d3,a3,d4] [d3,a3,d4]@3 [d3,a3,d4]@3 [d3,a3,d4]", // Dsus2 D5
  AL: "[d3,a3,d4]@2 [d3,a3,d4]!6 [c3,e3,g3,d4]@3 [c3,e3,g3,d4]@3 [g2,b2,d3,g3,d4]@2", // D5 C G
  AM: "~ [g2,b2,d3,g3,d4]@2 [g2,b2,d3,g3,d4] ~@2 [d3,g3,d4]!2 [c3,e3,g3,d4]@3 [c3,e3,g3,d4]@3 [g2,b2,d3,g3,d4]@2", // G G5 C G
  AN: "~ [g2,b2,d3,g3,d4]@2 [g2,b2,d3,g3,d4] ~@2 [d3,g3,d4]!2 [g2,b2,d3,g3,d4,g4]@2 [f2,c3,f3,a3,c4,f4]@2 ~@2 [d3,a3,d4,f#4]@2", // G G5 G F D
  AO: "[~@8 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!2 [c3,e3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]@4 [g2,b2,d3,g3,d4,g4] [d3,g3,d4,g4]@3 [d3,g3,d4,g4]!2 [f2,a2,c3,f3,a3,c4,f4]@2 [f2,a2,c3,f3,a3,c4,f4]!4 [d3,a3,d4,f#4]@10 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!2 ~@2 [g2,b2,d3,g3,d4,g4]@2, ~@19 [g2,b2]@5 ~@24]/3", // C G G5 F D C G
  AP: "[g2,b2,d3,g3,d4,g4]!4 ~@2 [d3,g3,d4,g4]!2 c3@2 d3@2 f3@2 d3@2", // G G5
  AQ: "[~ e4@2 d4!2 a3 d3!2 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!2 [c3,e3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]@4 [g2,b2,d3,g3,d4,g4] [d3,g3,d4,g4]@3 [d3,g3,d4,g4]!2 [f2,a2,c3,f3,a3,c4,f4]@2 [f2,a2,c3,f3,a3,c4,f4]!4 [d3,a3,d4,f#4]@4 [d3,a3,d4,f#4]!6 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!2 [c3,e3,g3,d4,g4]@2 [g2,b2,d3,g3,d4,g4]@4 [g2,b2,d3,g3,d4,g4]!3 [d3,g3,d4,g4]!3 c3@2 d3@2 f3@2 d3@2, ~@19 [g2,b2]@5 ~@29 [g2,b2]@3 ~@8]/4", // C G G5 F D C G G5 …
  AR: "[[d3,a3,d4,f#4]!8 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!4 [g2,b2,d3,g3,d4,g4]@4 [g2,b2,d3,g3,d4,g4]!6 c3@2 d3@2 f3@2 d3@2]/2", // D C G
  AS: "[d3,a3,d4,e4]!2 [d3,a3,d4] [d3,a3,d4,f#4]!5 [c3,e3,g3,d4,g4]@2 [c3,e3,g3,d4,g4]!4 [g2,b2,d3,g3,d4,g4]@2, ~ e4@3 ~@4", // Dsus2 D5 D C G
  AT: "[g2,b2,d3,g3,d4,g4]!8 c3@2 d3@2 f3@2 d3@2", // G
  AU: "[[d3,a3,d4,f#4]!8 c3@2 d3@2 f3@2 [g2,b2,d3,g3,d4,g4]@4 [g2,b2,d3,g3,d4,g4]!6 c3@2 d3@2 f3@2 d3@4 [d3,a3,d4,f#4]!6 c3@2 d3@2 f3@2 [g2,b2,d3,g3,d4,g4]@4 [g2,b2,d3,g3,d4,g4]!6 c3@2 d3@2 f3@2 d3@10 ~@2 f5 a5 ~@2 e5 g5, ~@72 d3@3 ~ d3@3 ~, ~@73 a5@2 ~@2 g5@2 ~]/5", // D G D G
  AV: "~@2 d5 f5 ~@2 c5 e5 ~@2 a4 ~@2 b4 g4 b4, d3@3 ~ d3@3 ~ d3@3 ~ d3@2 ~@2, ~ f5@2 ~@2 e5@2 ~@2 c5@2 c5@3 ~@2",
  AW: "~ a4 f4@5 d3@2 a5 f5 ~@3 e5 g5, b4@2 ~@9 a5@4 ~, ~@12 d3@3 ~, ~@13 g5@2 ~",
  AX: "~@3 d5 f5 ~@3 c5 e5 d3 ~ c5 a4 ~ c5, ~ d3@4 d3@4 ~@7, ~@2 f5@2 ~@3 e5@2 ~@7",
  AY: "[d3 ~ b4 g4 ~ b4@2 [d3,a3,d4,f#4]@30 ~@11]/3", // D
})).s("gm_acoustic_guitar_steel").gain(0.32)

// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
  ~@5 A B@3 ~@4 C D@2 ~ E F@2 G D H D ~ D ~ A B@3 C D@2 ~ E F@2 I D J D ~ D ~ A K@5 ~@6 L@4 M N@4 O@8 P@3 ~@8 Q R S T@4
>`.pickRestart({
  A: "~@3 a4 ~@2 e4 g4 ~@2 d4 f4 ~@2 c4 e4, d3@4 d3@3 ~ d3@3 ~ d3@3 ~, ~ a4@2 ~@2 g4@2 ~@9, ~@2 f4@2 ~@5 f4@2 ~@2 e4@2 ~",
  B: "[~@2 a3 ~@3 g3 b3 ~@10 f4 ~@3 e4 g4 ~@2 d4 f4 ~@2 c4 ~@2 c4 a3 ~@3 g3 b3 ~@2 f3@6, d3@3 ~ d3@3 ~@3 f3@9 ~@2 g4@2 ~@2 f4@2 ~@2 e4@2 e4@3 ~ c4@4 ~@2 a3@7, ~ c4@2 c4@4 ~@2 a3@5 ~ d3@4 ~ d3@3 ~ d3@3 ~ d3@3 ~ d3@2 ~@2 d3@3 ~@9, ~@5 b3@2 ~ b3@6 ~@3 a4@2 a4@4 ~@14 b3@2 ~ b3@8]/3",
  C: "f#4@4 f#4@3 f#4 g4 f#4@2 e4!2 f#4!2 g4", D: "~@12 a2 b2 ~@2", E: "e4 f#4@3 f#4@3 f#4!2 [f#4,g4] e4!3 f#4!2 g4",
  F: "g4@3 g4@3 g4@3 g4@2 g4 a2 b2 g4!2", G: "~@11 d4 ~@3 b2, ~@9 e4@5 a2@2, ~@5 f#4@3, ~@3 d4, ~@13 a3@3",
  H: "~@11 a3 ~@3 a2, ~@9 f#4@3 e4@4, ~@10 d4@2 ~ d4@3, ~@7 a3", I: "~@11 d4!2 ~ a2 b2, ~@9 e4@3 ~ a3@2 ~, ~@5 f#4 ~@2",
  J: "~@9 f#4 d4 a3 e4 d4 a3 a2",
  K: "[~@2 a3 ~@3 g3 b3 ~@31 b3 ~@2 f3@32 ~@6, d3@3 ~ d3@3 ~@3 f3@17 f4@10 b3 g3@32 ~@10, ~ c4@2 c4@4 ~@2 a3@5 ~ d3@5 d3 g4 e4@2 d3 f4 d4@10 d3@32 ~@12, ~@5 b3@2 ~ b3@6 ~@3 a4@2 a4@9 d3 e4 c4 e4@9 b3@32 ~@8, ~@18 f4@5 g4@9 d3 c4 a3 c4@6 a3@32 ~@7]/5",
  L: "[~@31 a2@32 ~, ~@12 a2@17 d4@32 ~@3, ~@13 b2@17 a3@32 ~@2, ~@25 f#4@32 ~@7, ~@26 d4 a3 e4@32 ~@4]/4",
  M: "~@8 f#4@4 f#4@3 f#4",
  N: "[~@3 e4 ~ f#4 ~@15 b2@15 ~@21 f#4@3 f#4@3 f#4, g4@3 f#4@16 ~@9 e4@4, ~ f#4@3 e4@32 ~ b2@27, ~@7 g4@32 ~@25, ~@5 a2@4 a2@7]/4",
  O: "[f#4 ~ e4!2 ~ f#4 ~ g4 g4@3 g4@3 g4@3 g4@2 ~@3 g4!2 g4@3 g4@3 g4@3 g4@2 ~@3 g4 ~@12 d4 ~@3 b2@13 ~@19 a2@13 ~ b2@27, ~ g4@5 f#4@32 ~@11 e4@5 a2@14 a2@17 d4@32 ~@11, ~ f#4@3 e4@31 g4@3 ~ g4@14 a3@29 d4 a3 e4@32 ~@12, ~@19 g4@2 b2@16 b2@15 d4@29 f#4@19 a2@28, ~@20 a2@16 a2@14 f#4@19 b2@17 a3@32 ~@10]/8",
  P: "[~@5 b2@32 ~@11, ~ a2@8 ~@3]/3", Q: "~@11 a4 ~@2 e4 g4, ~@8 d3@4 d3@3 ~, ~@9 a4@2 ~@2 g4@2 ~, ~@5 f4 ~@2",
  R: "~@2 d4 f4 ~@2 c4 e4 ~@2 a3 ~@3 g3 b3, d3@3 ~ d3@3 ~ d3@3 ~ d3@3 ~, ~ f4@2 ~@2 e4@2 ~@2 c4@2 c4@4 ~, ~@13 b3@2 ~",
  S: "~@10 f4 ~@3 e4 g4, b3@6 ~@3 a4@2 a4@4 ~, ~ a3@5 ~ d3@4 ~ d3@3 ~, ~@2 f3@9 ~@2 g4@2 ~",
  T: "[~@3 d4 f4 d3@2 ~ c4 ~@14 a3@32 ~@9, ~ d3@3 ~@6 d3@6 d3@32 ~@16, ~@2 f4@2 ~@3 e4@2 e4@12 b3@32 ~@11, ~@12 c4@3 c4@32 ~@17, ~@13 a3@5 b3 g3@32 ~@13]/4",
})).s("gm_acoustic_guitar_steel").gain(0.32).pan(0.7)

// other · string ensemble 2
const string_ensemble_2 = note("<~ A@12 ~@14 A@4 ~@14 A@4 ~@36 B@7>".pickRestart({
  A: "d2/2", B: "[~@8 d2@32 d2@61 ~@11]/7",
})).s("gm_string_ensemble_2").gain(0.48)

// other · distortion guitar
const distortion_guitar = note("<~@10 A@3 ~@3 B C@2 ~@12 D ~@54 E@2 ~@4>".pickRestart({
  A: "d5/3", B: "~@3 g4@5", C: "d4/2", D: "d4", E: "[~@5 a4@19 ~@8]/2",
})).s("gm_distortion_guitar").gain(0.35)

// other · distortion guitar
const distortion_guitar_2 = note("<~@10 A@4 ~@2 B@4 ~@11 C@2 ~@59>".pickRestart({
  A: "[~ d5@24 ~@7]/4", B: "[~@4 g4@5 d4@16 ~@7]/4", C: "[~ d4@8 ~@7]/2",
})).s("gm_distortion_guitar").gain(0.11)

// chords · overdriven guitar
const overdriven_guitar = note("<~@28 A B@2 ~@8 C D E F ~@5 G H I J K L M N ~ O P O ~ Q@8 R@8 S@8 ~@7>".pickRestart({
  A: "d5@3 c5@3 g4@6 f4@4", B: "[g4@2 d4@2 d4@20 ~ g5 f5 d5 a4 g4 f#4 e4]/2", C: "~@3 g5@5",
  D: "d5@9 c5 a4!2 g4 f4 d4 c4", E: "d4 c4@3", F: "c4 d4 f4 c4@5", G: "~@9 [c3,g3,c4] ~@2 [c3,g3,c4]@4",
  H: "d3@2 c3@2 d3@2 d3@2 d3@2 d3@2 c3 a2 c3 ~", I: "a3!2 ~ a3 a3@2 f3@6 g4 [a4,c5] d5 [f5,g5]", J: "a5@2 g5 a5@4 ~",
  K: "a5 ~@5 b2@2", L: "d3@2 f3@2 d3 a2 d3@2 f3 g3 g3@2 f3@4", M: "e3@2 d3 c3 d3 f3 a3 g3 f3@6 f4 g4",
  N: "g4@2 c5 g4@2 c5 g4@2 c5 g4@2 f4@5", O: "[c3,g3]@2 ~ [g2,d3]@5", P: "[f2,c3]@2 ~ [d3,a3]@5",
  Q: "[~@8 [d3,a3]@4 ~@2 [d3,a3]@10 [c3,g3]@4 ~@2 [g2,d3]@10 [c3,g3]@4 [c3,g3]!2 [g2,d3]@10 [g2,d3]@2 [f2,c3]@2 ~@2 [d3,a3]@10 [d3,a3]@4 ~@2 [d3,a3]@10 [c3,g3]@4 ~@2 [g2,d3]@10 [c3,g3]@4 [c3,g3]!2 [g2,d3]@10 [g2,d3]@2 [f2,c3]@2 ~@2 [d3,a3]@2]/8", // D5 C5 G5 C5 G5 F5 D5 C5 …
  R: "[~@4 [c3,g3]@2 ~ [g2,d3]@5 [f2,c3]@2 ~ [d3,a3]@5 [c3,g3]@2 ~ [g2,d3]@5 c3 d3 f3 d3@5 [c3,g3]@2 ~ [g2,d3]@5 [f2,c3]@2 ~ [d3,a3]@5 [c3,g3]@2 ~ [g2,d3]@5 c3 d3 f3 d3]/8", // C5 G5 F5 D5 C5 G5 C5 G5 …
  S: "[~@4 [c3,g3]@2 ~ [g2,d3]@5 c3 d3 f3 d3@5 [c3,g3]@2 ~ [g2,d3]@5 c3 d3 f3 d3@5 [c3,g3]@2 ~ [g2,d3]@5 c3 d3 f3 d3@5 [c3,g3]@2 ~ [g2,d3]@5 c3 d3 f3 d3]/8", // C5 G5 C5 G5 C5 G5 C5 G5
})).s("gm_overdriven_guitar").gain(0.57)

// other · overdriven guitar
const overdriven_guitar_2 = note("<~@28 A@3 B ~@7 C@2 D@3 ~@4 E@2 F G H@3 I@2 ~@29 J@2 ~@4>".pickRestart({
  A: "[~@2 d5@3 c5@3 g4@6 f4@4 g4@2 d4@2 d4@20 ~ g5 f5 d5 a4 g4]/3", B: "f#4 e4 ~@14",
  C: "[~@8 g5@10 d5@9 c5 a4!2 g4 f4]/2", D: "[d4 c4 d4@4 c4@12 c4@2 d4@2 f4@2 c4@10 ~@14]/3",
  E: "[~@11 [c3,g3,c4] ~@2 [c3,g3,c4]@4 d3@2 c3@2 d3@2 d3@2 d3@2 d3@2 c3 a2]/2", F: "c3 ~ a3!3 ~ a3@2 f3@6 [g4,a4] c5",
  G: "[d5,f5] g5 a5@4 g5@2 a5@8", // Dm
  H: "[~@2 a5@2 ~@10 b2@4 d3@2 f3@2 d3 a2 d3@2 f3 g3 g3@2 f3@4 e3@2 d3 c3 d3 f3 a3 g3 f3@6]/3",
  I: "[f4 g4 g4@2 c5 g4@2 c5 g4@2 c5 g4@2 f4@5 ~@14]/2", J: "[~@7 a4@19 ~@6]/2",
})).s("gm_overdriven_guitar").gain(0.19)

// bass · fretless bass
const bass = note("<~@31 A B C D E F G H I J I K G K ~@4 A F L M N O P H I Q G R S@8 T@8 U@6 V@3 ~@6>".pickRestart({
  A: "d2@6 d2@8 a1 b1", B: "c2@6 g1@6 a1 b1 d2 g2", C: "c2@6 g2@9 d2", D: "g2@2 f2@2 ~@2 d2@8 a1 b1", E: "d2@3 d2@5",
  F: "c2@6 g1@8 d2 c#2", G: "c2@3 g2@5", H: "g2 f2 ~ d2@5", I: "c2@3 g1@5", J: "f2@3 d2@5", K: "c2 d2 f2 d2@5",
  L: "c2@4 g2 a2 g2@10", M: "g2@2 f2@2 ~@2 d2@8 d2 c2", N: "d2@6 d2@8 d2!2", O: "c2@3 b1 a#1 a1 g1@10",
  P: "c2@3 c2 e2 f2 g2@6 g2!4", Q: "f2@6 d2@8 a1 b1", R: "~@8 d2!8",
  S: "[d2!8 d2@6 d2@8 a1 b1 c2@6 g1@8 a1 b1 c2@6 g1@10 g1@2 f1@2 ~@2 d2@8 a1 b1 d2@6 d2@8 a1 b1 c2@6 g1@10 c2@6 g1@10 g1@2 f1@2 ~@2 d2@2]/8",
  T: "[~@6 a1 b1 c2@6 g1@10 f2@6 d2@10 c2@6 g2@10 c2@2 d2@2 f2@2 d2@10 c2@6 g1@10 f2@6 d2@10 c2@6 g2@10 c2@2 d2@2 f2@2 d2@2]/8",
  U: "[~@8 c2@6 g1@10 c2@2 d2@2 f2@2 d2@10 c2@4 g2 a2 g2@10 c2@2 d2@2 f2@2 d2@10 c2@2 d2@2 f2@2 g1@10 c2@2 d2@2 f2@2 d2@2]/6",
  V: "[~@4 d2 a1!2 d2 c2@2 d2@2 f2@2 g1@10 c2@2 d2@2 f2@2 d2@10 ~@8]/3",
})).s("gm_fretless_bass").gain(0.32)

// other · guitar harmonics
const guitar_harmonics = note("<~@2 A B ~@38 C ~@10 D E ~@37>".pickRestart({
  A: "~@5 a4@2 a3", B: "d4", C: "~@3 c4@5", D: "~@2 f4@2 ~@5 g4 g4@2 f4@4", E: "~@5 f4 a4 g4 f4@6 ~@2",
})).s("gm_guitar_harmonics").gain(0.5)

// chords · overdriven guitar
const overdriven_guitar_3 = note("<~@51 A B@5 ~@11 C D@2 ~@2 E@3 ~@16>".pickRestart({
  A: "~@14 a2!2", B: "[~@2 a2!2 [d3,a3] [c3,g3] d3@58 ~ c3 a2 g2 f2 e2 d4@10, ~@3 a3@37, ~@4 d3]/5",
  C: "~@11 [a4,d5]!5", D: "[[a4,d5]!2 g5@2 f5 [c5,d5] g4@2 a4@16 ~@8]/2", E: "[~@7 a5@13 ~@4]/3",
})).s("gm_overdriven_guitar").gain(0.45)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@12 ~@14 A@4 B@3 C D B E F E@2 C G C H A@3 I J B E K D B E G E@2 L ~ M N O P Q R O S T O U V Q W N X T W Q Y M N@2
  V Z A@2 AA AB ~@2
>`.pickRestart({
  A: "x ~@2 x!2 ~@3 x ~@2 x!2 ~@3", B: "x ~@5 x ~@3 x ~@4 x", C: "x!2 ~ x ~ x ~@2", D: "x ~@5 x ~@8 x",
  E: "x ~@2 x ~ x ~@2", F: "x!2 ~ x ~@4", G: "x ~ x ~@3 x ~@4 x ~@4", H: "x!4 ~@4", I: "x ~@2 x!2 ~@3 x ~@7",
  J: "x ~@9 x ~@4 x", K: "x ~ x ~@3 x ~@3 x!2 ~@4", L: "x ~@2 x ~@4", M: "~@4 x ~@2 x", N: "~@2 x ~@4 x!2 ~@5 x ~",
  O: "~@7 x!2 ~@5 x ~", P: "~@2 x ~@4 x!2 ~ x ~@3 x ~", Q: "~@2 x!2 ~@4 x ~@5 x ~", R: "x ~@6 x!2 ~@5 x ~",
  S: "~@4 x!2 ~ x", T: "~@3 x ~@4 x ~@5 x ~", U: "~@2 x ~@5 x ~@2 x ~@2 x ~", V: "~ x ~@2 x!4", W: "~ x ~@2 x ~@2 x",
  X: "~ x ~@2 x!2 ~ x", Y: "~ x ~@2 x!2 ~@2", Z: "~@8 x ~@2 x!2 ~@3", AA: "~ x ~@2 x!2 ~@4 x ~@4 x", AB: "x",
})).gain(0.36)

// drums · rim
const rim = s("rim").struct("<~@31 [~ x ~ x]!7 [~ x ~@2] ~@53>").gain(0.51)

// drums · snare
const snare = s("sd").struct(`<
  ~@38 A B C@4 ~@4 D C@3 E C@3 F C@2 G A H C@3 I C@3 J C@7 J C@3 K C@2 G ~@7
>`.pickRestart({
  A: "~@8 x!8", B: "x!2 ~ x", C: "~ x ~ x", D: "~@9 x ~@6", E: "~@4 x ~@7 x ~ x!2", F: "~@4 x ~@4 x ~@2 x ~@3",
  G: "~ x ~@2", H: "x!8 ~@4 x ~@3", I: "~@6 x!2 ~@4 x ~@3", J: "~ x ~@2 x ~@7 x ~@3", K: "x!4 ~@8 x ~@3",
})).gain(0.46)

// drums · low tom
const low_tom = s("lt").struct("<~@60 [~@8 x!8] [x!8 ~@8] ~@7 [~@7 x ~@8] ~@22>").gain(0.41)

// drums · mid tom
const mid_tom = s("mt").struct("<~@30 A ~@17 A ~@7 B ~@12 C ~@7 D ~@3 E ~@10>".pickRestart({
  A: "~@14 x!2", B: "~@7 x", C: "~@3 x ~@4", D: "~@7 x ~@8", E: "~@4 x!4 ~@8",
})).gain(0.36)

// drums · open hat
const open_hat = s("oh").struct("<~@20 A B C ~@7 D ~@16 A B C ~@39 E B F>".pickRestart({
  A: "~@8 x!8", B: "x!16", C: "x", D: "~@8 x!6 ~@2", E: "~@7 x!9", F: "x!4 ~@12",
})).gain(0.46)

// drums · high tom
const high_tom = s("ht").struct("<~@30 A ~@17 B ~@7 C ~@20 D ~@14>".pickRestart({
  A: "~@13 x ~@2", B: "~@11 x!3 ~@2", C: "~@13 x!3", D: "~@3 x ~@4",
})).gain(0.36)

// drums · crash
const crash = s("cr").struct(`<
  ~@12 A ~@18 B ~@7 C@2 ~@2 C D ~@4 B ~@2 B C B ~ C@3 E ~ A ~@3 A ~@2 F@2 G@3 F G F@4 ~ A F@3 H ~@7
>`.pickRestart({
  A: "~ x", B: "x", C: "x ~@2 x ~@4", D: "x!4 ~@4", E: "~@3 x ~@4", F: "~@4 x ~@2 x", G: "~@7 x", H: "~@4 x!4",
})).gain(0.25)

// drums · ride
// … 19 more lines

More by Bon Jovi