Strudelify
(Do Not) Stand in the Shadows cover art

Rebel Yell

(Do Not) Stand in the Shadows

Billy Idol

KeyD majorTempo172 bpm
0:00/0:00
// (Do Not) Stand in the Shadows — Billy Idol
// 172 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 11 electric guitar muted (copy of ch 8 electric guitar muted); ch 13 electric guitar jazz (copy of ch 12 electric guitar jazz, 0.25 beats late)
// note: Full arrangement: all 140 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 29.
setcpm(172/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, A@4 for four bars: edit a riff to change every repeat.

// chords · overdriven guitar
const overdriven_guitar = note(`<
  ~@9 A@2 B C@5 D E F G D H I J K L M N O L M N O L P N O Q P N R E F G D H I J K L M N O L M N O L P N O Q P N R E F G
  D H I J K E F G D H I J K S@4 T@4 U@4 V@2 W X L M N O L M N O L P N O Q P N R E F G D H I J K E F G D H I J K Y Z AA
  AB AC AD AE AF@2 ~
>`.pickRestart({
  A: "[~@14 [a#2,f3,a#3] [f3,a#3] [f3,a#3]@14 [a2,e3,a3]!2, ~@15 a#2@14 ~@3]/2", B: "[a2,e3,a3]@14 ~ [c3,f3], ~@7 f2",
  C: "[~ f2@13 b2!2 b2@11 c3 [c#3,d3] [d#3,e3] [a#2,e3,a#3] [a#2,f3] [a#2,f3]@14 c3!2 [c3,g3]@14 [d3,a3,d4] [a3,d4] [a3,d4]@16, [c3,f3]@13 ~ e3@13 ~@4 a#3@15 c4@15 ~@19, ~@14 e2@2 e2@14 ~@16 g3@2 ~@15 d3@17]/5", // Dmaj7 Emaj7 A#dim A#5 C5 D5 F5
  D: "[d3,a3,d4]", E: "[d3,a3,d4]@14 d#4 [e3,e4]", F: "[e3,b3,e4]@14 a#3 [g#3,a3]", G: "[c3,g3,c4]@14 c#3 d3",
  H: "[d3,a3,d4]@14 d#4 e4", I: "[e3,b3,e4]@7 ~", J: "[c3,g3,c4]@14 a#3 a3", K: "[a2,e3,a3]",
  L: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ a3@2 g3@2 f#3@2", M: "e3 ~ e3 ~ e3 ~ e3 ~ e3 ~ e3 ~ e3 ~ e3 ~",
  N: "c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~", O: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ a2 ~",
  P: "e3 ~ e3 ~ e3 ~ e3 ~ e3 ~ f#3@2 g3@2 f#3@2", Q: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ a3@2 g3@2 f#3 ~",
  R: "[d3,a3,d4]@12 c#4 ~@3", // D5
  S: "[[g2,d3,g3]@4 [g2,g3]@4 [g2,g3]@2 g2@2 g2 ~ [d3,g3]@4 d3@2 g2@2 g2@2 [g2,d3]@4 g2@2 [g2,g3]@6 [g2,d3,g3]@2 [g2,d3,g3]@2 d3@2 d3@4 g3@4 ~@2 d3@2 [g2,d3]@2 d3@2 [g2,d3]@2 [g2,d3,g3]@4, ~@2 d3@3 [d3,g3]@2 g2@3 d3@2 ~@2 d3@4 ~@2 [g2,g3]@3 g2@4 ~@5, ~@9 g3@5 ~@9 d3@3 ~@6, ~@25 g3@3 g3@2 ~@2]/4", // G5 G G5 G G5 G
  T: "[[d3,a3,d4]@30 ~ [d3,a3,d4]@32 ~]/4", // D5
  U: "[g2@4 ~@2 d3@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@2 [g2,d3]@4 g2@2 [g2,d3,g3]@2 g2 ~ g2@2 g2@2 g2@2 [g2,d3]@6 g2@2 g2 ~@3 [g2,d3]@4 [g2,d3,g3]@6 [g2,g3]@4 [g2,g3]@4 [g2,d3,g3]@4, [d3,g3]@6 g3@4 ~@4 g3@6 ~@2 d3@6 ~@8 d3@6 ~@10 d3@7 ~@5, ~@2 g2@2 ~@9 g3@2 g3@4 g3@4 ~@9]/4", // G5 G G5
  V: "[[d3,a3,d4]@31 ~]/2", W: "e3!2 [a2,e3,a3]!2, [a2,a3] ~", X: "[a2,e3,a3]@5 ~@11",
  Y: "[a#2,f3,a#3]@2 [a#2,f3,a#3]@3 [a#2,f3,a#3] [a#2,f3,a#3]@2", // A#5
  Z: "e3@2 e3 [a2,e3,a3]@2 [a2,a3] [a2,a3]@2, [a2,a3]@6 ~@4 e3@5 ~", // A5 A
  AA: "[f3,c4,f4] [f3,c4]!2 [f3,c4,f4]@2 [f3,c4,f4] [f3,c4,f4]@2, ~ f4@2 ~@5", // F5
  AB: "[e3,b3,e4]!3 [e3,b3,e4]@2 [e3,b3,e4] [e3,b3,e4]@2", // E5
  AC: "a#3 ~ a#2 [f3,a#3]@2 a#3 [a#2,a#3]@2, f3@6 ~@4 f3@5 ~, a#2@2 ~ a#2@3 ~@2, ~ a#3@2 ~@5", // A#5 A#
  AD: "f4@2 f4@2 [g3,c4,f4]@2 [c3,g3,c4,e4]@4 c#3 [d3,c#4] [d3,a3,d4,f#4]@4, c3@3 ~@5, [g3,c4] ~@3", // Csus4 C Dmaj7 D C5
  AE: "[d3,a3,d4,f#4]@2 ~ [d3,a3,d4,f#4]@2 ~ [d3,a3,d4,f#4]@2", // D
  AF: "[~ [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]@2 ~]/2", // D
})).s("gm_overdriven_guitar").gain(0.22).pan(0)

// chords · overdriven guitar · soft notes
const overdriven_guitar_soft = note(`<
  ~@13 A ~ B ~@2 C D E ~ F G H ~@16 I C D E ~ F G H ~@16 I C D E ~ F G H ~ C D E ~ F G H ~@2 J ~@6 K L M ~@4 N ~@15 I C
  D E ~ F G H ~ C D E ~ F G H ~@6 O ~@4
>`.pickRestart({
  A: "~@11 f3 [f#3,g3] [g#3,a3] ~@2", B: "~@13 d3 ~@2", C: "~@14 [d#3,a#3] b3", D: "~@14 d#3 [d3,g3]",
  E: "~@14 c#4 [g#3,a3]", F: "~@14 a#3 b3", G: "~@14 [d#3,a#3,d#4] [c3,c#3,d3,g3,g#3,a3]", H: "~@14 [f3,f#3,b3] e3",
  I: "~@12 g#3 [c#3,g3,c4] [c3,f#3,b3] [b2,f3]", J: "~@6 g3 ~", K: "~@5 g3@2 ~", L: "~@3 g3!2 ~ d3 ~", M: "~@4 g2 ~@3",
  N: "~@5 [g#2,g3,g#3] [g2,f#3] ~@9", O: "~@11 [g#3,f4] ~@4",
})).s("gm_overdriven_guitar").gain(0.1).pan(0)

// bass · electric bass finger
const bass = note(`<
  ~@10 A B C D A E F G H I J H@2 I J K L I J M L I J N L I J M L I J N H I J H@2 I O K L I J M L I J N L I J M L I J N H
  I J H@2 I O K H P J H@2 I J K Q@4 H@4 Q@4 H@2 K R L I J M L I J N L I J M L I J N H I J H@2 I O K H S J N H S J T U V
  W X U J Y Z@2 ~
>`.pickRestart({
  A: "a#1 ~ a#1@3 ~ a#1 ~ a#1 ~ a#1@4 a#1 ~", B: "a1 ~ a1@3 ~ a1 ~ a1 ~ a1@3 ~ a1@2",
  C: "f1 ~ f1@3 ~ f1 ~ f1 ~ f1@3 ~ f1@2", D: "e1 ~ e1@3 ~ e1 ~ e1 ~ e1@3 ~ e1@2", E: "c2 ~ c2@3 ~ c2 ~ c2 ~ c2@4 c2 ~",
  F: "d2 ~ d2@3 ~ d2 ~ d2 ~ d2@3 ~ d2 ~", G: "d2 ~ d2@3 ~ d2 ~ d2 ~ d2 ~ d2@2 d2@2",
  H: "d2 ~ d2@2 d2@2 d2@2 d2@2 d2@2 d2@2 d2@2", I: "e2 ~ e2@2 e2@2 e2@2 e2@2 e2@2 e2@2 e2@2",
  J: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~", K: "a1@2 a1 ~ a1 ~ a1@2 a1@2 a1@2 a1 ~ a1@2",
  L: "d2@2 d2@2 d2 ~ d2 ~ d2@2 a2@2 g2@2 f#2@2", M: "d2 ~ d2@2 d2 ~ d2 ~ d2 ~ d2 ~ d2@2 a1@2",
  N: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2@2 a1 ~", O: "c2@2 c2@2 c2@2 c2@2 c2 ~ c2 ~ c2 ~ c2@2",
  P: "e2@2 e2@2 e2@2 e2@2 e2@2 e2 ~ e2@2 e2@2", Q: "g1@2 g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~", R: "a1 ~@3",
  S: "e2 ~ e2@2 e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~", T: "a2 ~ a2@2 g2@2 a2@2 g2@2 f#2@2 e2@2 d2@2",
  U: "a#1 ~ a#1 ~ a#1 ~ a#1 ~ a#1 ~ a#1 ~ a#1 ~ a#1 ~", V: "a1@2 a1 ~ a1@2 a1@2 a1@2 a1 ~ a1@2 a1@2",
  W: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~", X: "e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~ e1 ~",
  Y: "d2@4 c2 ~ d2@4 c2 ~ d2@4", Z: "[c2 ~ d2@4 c2 ~ d2@4 c2 ~ d2@4 c2 ~ d2@4 c2 ~ d2@4 c2 ~]/2",
})).s("gm_electric_bass_finger").gain(0.44)

// chords · overdriven guitar
const overdriven_guitar_2 = note(`<
  ~@13 A ~@10 B ~@8 C D ~@13 B ~@8 C D ~@13 B ~@7 B ~ E F@2 G ~@2 H@2 I J K L ~@2 M ~@8 C D ~@13 B ~@7 B ~@2 N ~@2 O P Q
  R S ~
>`.pickRestart({
  A: "~@12 f3 [c3,c#3,f#3] [d3,d#3,g3] e3", B: "~@15 a#3", C: "~@2 [a3,g4]!2", D: "[a3,f#4]@2 [a3,f#4]@2 [a3,f#4] ~@3",
  E: "~@6 d3 ~", F: "[~@5 [g2,d3,g3] ~ d3@2 ~@5 g2 ~]/2", G: "~@2 g2@3 ~@3, ~ g3 ~@2", H: "[d4@29 ~@3]/2",
  I: "~@2 d3@3 ~@3", J: "~@4 d3!2 ~@2", K: "~@3 d3@2 ~ g2 ~", L: "~@5 d3 ~@2", M: "~ a3@2 ~, ~ a2 ~@2", N: "~@3 e3",
  O: "~@2 f3 ~@3 f3@2", P: "~@2 c4@2 ~@8 [c3,g3] c#3 [d3,c#4]@2", Q: "~@2 d3 ~@2 d3 ~@2", R: "d3 ~@2 d3 ~@2 d3 ~",
  S: "~ d3 ~@2 d3 ~@2 d3",
})).s("gm_overdriven_guitar").gain(0.22).pan(1)

// chords · overdriven guitar · soft notes
const overdriven_guitar_soft_2 = note(`<
  ~@13 A ~@5 B C ~ D ~ E ~@16 F ~ B C ~ D ~ E ~@16 F ~ B C ~ D ~ E ~@2 B C ~ D ~ E ~ G H I ~@4 J ~ K ~ L ~@3 M ~@15 F ~
  B C ~ D ~ E ~@2 B C ~ D ~ E ~@6 N O P Q@2
>`.pickRestart({
  A: "~@14 [g#3,a3] ~", B: "~@15 [a#3,c#4,d#4]", C: "~@15 c#4", D: "~@15 [d#3,a#3,d#4]", E: "~@15 f3",
  F: "~@10 [g#3,c#4] [g3,c4] [f#3,b3] ~@3", G: "~@4 d3 ~@3, ~@3 g3@2 ~@3", H: "~@3 d3 ~@4", I: "~@5 g2 ~@2",
  J: "~@12 g#3 [c#3,f#3,g3] c3 ~", K: "~ d3 ~@6", L: "~@5 g3 ~@2", M: "~@4 g#3 ~@11", N: "~@13 g#3 [a3,d4]@2",
  O: "~@5 [a3,d4] ~@5 [a3,d4] ~@4", P: "~ [a3,d4] ~@5 [a3,d4] ~@5 [a3,d4] ~@2",
  Q: "[~@3 [a3,d4] ~@5 [a3,d4] ~@5 [a3,d4]@2 ~@15]/2", // D5
})).s("gm_overdriven_guitar").gain(0.1).pan(1)

// other · flute
const flute = note(`<
  ~@42 A B C D A E C F ~@16 G B C D H I C B G E C D G E J@2 ~@32 G B C D G E C K G L C M N O P K ~@10
>`.pickRestart({
  A: "~ a4 g4@2 f#4@2 e4 d4", B: "e4@2 e4@5 ~@9", C: "~ g4 f#4@2 e4@2 a3!2", D: "d4@2 d4@5 ~@9",
  E: "e4 e4@2 f#4@2 e4@2 ~", F: "d4 d4@3 ~@4", G: "~ a4 g4@2 f#4@2 d4!2", H: "~ g4@2 f#4!3 e4 d4",
  I: "e4@2 e4@4 f#4@4 e4@5 ~", J: "[c4@10 c4@4 a3@8 a4@4 g4 f4 [c4,d4,e4] b3 ~@2]/2", K: "e4 e4@4 ~@3",
  L: "e4 e4@2 ~@5", M: "d4 d4@2 ~@3 a4!2", N: "a4@2 d4@5 ~@5 a4@2 a4@2", O: "a4@2 d4@5 ~@9", P: "~ g4 f#4@2 e4@2 d4!2",
})).s("gm_flute").gain(0.22)

// chords · overdriven guitar
const overdriven_guitar_3 = note(`<
  ~@18 A B C D E B F G H ~@3 H ~@2 I J K ~ L M K ~ N A B C D E B F G H ~@3 H ~@2 I J K ~@2 H K ~ N A B C D E B F G A B C
  D E B F G O@3 P Q R S T U V W@2 X Y Z@3 ~@3 H ~@2 I J K ~@2 H K ~ N A B C D E B F G A B C D E B F G ~@10
>`.pickRestart({
  A: "d3 [a3,d4,g4]", B: "e3 [a3,d4,g4]", C: "c3 [d4,g4]", D: "d3@3 [a3,d4,g4] ~ [a3,d4,g4] ~ [a3,d4,g4]",
  E: "[d3,a3,d4,f#4]@8 [d4,g4]@7 ~", F: "c3 [a3,d4,g4]", G: "d3@3 [a3,e4,a4]@2 [e4,a4]!2 ~, ~@5 a3@2 ~",
  H: "~@5 a3 g3 f#3", I: "~@2 [a3,d4,g4]!2", J: "[a3,d4,f#4]!3 ~", K: "~@5 f#3 g3 f#3", L: "~@8 f#5@2 d5@2 f#5@2 d5 ~",
  M: "f#5 d5 ~@3 a3 g3 f#3", N: "[d3,a3,d4]@11 c#4 g3 c4 ~@2",
  O: "[~@2 [d5,g5] ~ d5 ~@4 g5!2 [d5,g5] g5!4 g5 [d5,g5] g5!3 [d5,g5]!3, ~@3 g5@2 g5@2 g5@2 ~@15, ~@6 d5@2 d5@3 ~@2 d5@2 d5@2 ~@7]/3", // G5
  P: "[e5,a#5]@4 [e5,a#5]@2 [e5,a#5]@2 [e5,a#5]@5 ~@3", Q: "~ d3@2 f#3@2 a3 g3 d4",
  R: "e4@2 f#4@2 g4@2 a4@3 ~ d5@2 e5@2 f#5@2", S: "g5@2 a5@3 ~ d4 ~ e4 ~ f#4 ~ g4 ~ a4 ~",
  T: "d4 ~ f#4 ~ a3 ~ a3 ~ g3 ~ f#3 ~ d3 ~ a2 ~", U: "[g#2,c#4] ~ g2 ~ d4@2 c4@2 b3@2 g3@4 ~@2, d4 ~@7",
  V: "c#4 d4@3 d4@2 c4@2 b3@2 g3@4 ~@2", W: "[c#4@2 d4 c4 d4 c#4 d4 c4@2 ~ d3 c3 b2 g2 d3 c3]/2",
  X: "b2@2 f#5!4 [d5,f#5] ~ d5!2 f#5!4 [d5,f#5] ~", Y: "~ d5 [d5,f#5] f#5!3 [d5,f#5] ~@2 d5 [d5,f#5] ~@2 f#5!3",
  Z: "[~ [a2,e3]!3 [a2,e3]@3 [a2,e3]@2 [a2,e3] c3@11 a3 g3 f#3]/3", // A5
})).s("gm_overdriven_guitar").gain(0.25).pan(0.4)

// chords · overdriven guitar · soft notes
const overdriven_guitar_soft_3 = note(`<
  ~@20 A ~ A ~@18 B ~@2 A ~ A ~@18 B ~@2 A ~ A ~@5 A ~ A ~@4 C D E F G H ~@5 I J ~@17 B ~@2 A ~ A ~@5 A ~ A ~@13
>`.pickRestart({
  A: "~ a3", B: "~@11 g#3 c#3 [c3,f#3,b3] b2 ~", C: "~@4 d5 ~@3", D: "~@2 d5@2 d5 ~@3",
  E: "~@13 [c#5,d5,d#5,g5,g#5,a5] [a4,a#4,b4,c5,d#5,e5,f5,f#5] d5", F: "~@7 a3", G: "~@9 [f#4,g4,g#4] ~@6",
  H: "~@5 [g5,g#5] f#5 ~@9", I: "~@7 d5 ~@7 d5", J: "d5 ~@6 d5!2 ~@2 f#5!2 ~@3",
})).s("gm_overdriven_guitar").gain(0.16).pan(0.4)

// other · overdriven guitar
const overdriven_guitar_4 = note("<~@80 A B C@2 D@2 E F G H I@3 J K L M N@2 ~@2 O ~@2 P Q ~@34>".pickRestart({
  A: "~@7 a5", B: "g5@2 a5 ~ a5@2 g5@2 a5@2 g5@2 a5@2 a5@2",
  C: "[c#5 g5 ~ d5 ~@4 g5!2 [d5,g5]!2 g5!4, ~ d5@2 ~@2 d5@2 d5@3 ~@2 d5@2 d5@2, ~ g5!3 ~@4]/2", // G5
  D: "[[d5,g5]@2 g5@2 g5@2 [d5,g5]@2 [d5,g5]@2 [d5,g5]@2 [d5,g5]@2 [e5,a#5]@4 [e5,a#5]@2 [e5,a#5]@2 [e5,a#5]@5 d#5 ~@4, ~ d5@2 ~@13]/2", // G5 Edim
  E: "d3@2 f#3@2 a3 g3 [a3,d4] e4", F: "f#4@2 g4@2 a4@3 [f#4,g4,g#4] d5@2 e5@2 f#5@2 g5@2",
  G: "a5@3 [g5,g#5] [d4,f#5] ~ e4 ~ f#4 ~ g4 ~ a4 ~ d4 ~", // G#maj7 D
  H: "f#4 ~ a3 ~ a3 ~ g3 ~ f#3 ~ d3 ~ a2 ~ [g#2,c#4] ~, ~@7 d4", // C#5
  I: "[g2 ~ d4@2 c4@2 b3@2 g3@4 ~@2 c#4 d4@3 d4@2 c4@2 b3@2 g3@4 ~@2 c#4@4 d4@2 c4@2 d4@2 c#4@2 d4@2 c4@4]/3",
  J: "~ d3 c3 b2 g2 d3 c3 b2", K: "f#5!4 [d5,f#5] d5!3 f#5!4 [d5,f#5] d5!3",
  L: "[d5,f#5] f#5!3 [d5,f#5] d5!3 [d5,f#5] f#5!5 ~@2", M: "[a2,e3]!3 [a2,e3]@3 [a2,e3]@2", N: "[[a2,e3] c3@11 ~@4]/2",
  O: "c#2@4 d2@2 d2 ~ c#2@4 d2@2 d2@2", P: "d5@2 a4@3 d5@3 a4@3 d5@3 a4@2", Q: "d5@3 a4@2 d5@3 a4@3 d5@3 a4@2",
})).s("gm_overdriven_guitar").gain(0.45)

// other · overdriven guitar · soft notes
const overdriven_guitar_soft_4 = note(`<
  ~@85
  [~@11 [c#5,d5,g5,g#5,a5] [a4,a#4,b4,c5,d#5,e5,f5,f#5] d5 ~@2]
  ~@17
  [~@13 a4@3]
  ~@36
>`).s("gm_overdriven_guitar").gain(0.15)

// other · electric guitar muted
const electric_guitar_muted = note(`<
  ~@26 A B C D A B C D A B C E A B C D F ~@7 A B C D A B C D A B C E A B C D F ~@15 G@4 A@4 G@4 A@2 H I A B C D A B C D
  A B C E A B C D F ~@15 J H K B J C L M N ~
>`.pickRestart({
  A: "d3!8", B: "e3@2 e3@2 e3 ~ e3@2 e3@2 e3@2 e3@2 e3@2", C: "c3!8", D: "d3!7 a2",
  E: "d3 ~ d3@2 d3 ~ d3@2 d3@2 d3@2 d3@2 a2@2", F: "d3@3 ~@13", G: "g2!8", H: "a2!8", I: "a2 ~@7",
  J: "a#2@2 a#2@2 a#2@2 a#2@2 a#2 ~ a#2@2 a#2@2 a#2@2", K: "f3@2 f3@2 f3@2 f3@2 f3 ~ f3@2 f3@2 f3@2",
  L: "d3@3 ~ c3@2 d3@3 ~ c3@2 d3@3 ~", M: "c3@2 d3@3 ~ c3@2 d3@3 ~ c3@2 d3@2", N: "~@2 c3@2 d3@3 ~ c3@2 d3@3 ~ c3@2",
})).s("gm_electric_guitar_muted").gain(0.19).pan(0)

// other · lead 1 square
const lead_1_square = note(`<
  ~@18 A B C D A B C E F@4 ~@12 G H C D G H I J K@3 ~@13 G H C D G H C J G H C D G H C L@2 ~@31 G H C D G H C J G H C D
  G H C J M ~@9
>`.pickRestart({
  A: "d6", B: "a5", C: "g5@2 f#5 e5", D: "d5 a4", E: "e5", F: "[d5@53 ~@11]/4", G: "d6 d5", H: "a5 d5", I: "g5@3 g5",
  J: "e5@2 d5 c#5", K: "[d5@5 ~]/3", L: "[e5@9 ~@7]/2", M: "d5@7 ~@9",
})).s("gm_lead_1_square").gain(0.22).pan(0.3)

// other · electric guitar jazz
const electric_guitar_jazz = note("<A B C D B A E A F G ~@130>".pickRestart({
  A: "d5 ~ g4 ~ a4 g4 d4 ~ e4 ~ a3 ~ b3 a3 e3 ~", B: "e4 ~ g4 ~ a4 ~ b4 ~ d5 ~ g4 ~ a4 ~ b4 ~",
  C: "d5 ~ g4 ~ a4 ~ d4 ~ e4 ~ a3 ~ b3 a3 e3 ~", D: "g3 ~ a3 ~ b3 ~ d4 ~ e4 ~ a3 ~ b3 ~ d4 ~",
  E: "e4 ~ g4 ~ a4 ~ d4 ~ e4 ~ g4 ~ a4 ~ b4 ~", F: "e4 ~ g4 ~ a4 ~ d4 ~ e4 ~ g4 ~ a4 ~ g4 ~",
  G: "e4 ~ g4 ~ a4 ~ b4 ~ d5 ~ e5 ~ g5 ~ a5 ~",
})).s("gm_electric_guitar_jazz").gain(0.22).pan(0.3)

// other · electric guitar jazz
const electric_guitar_jazz_2 = note("<[d4!16]!10 ~@130>").s("gm_electric_guitar_jazz").gain(0.17)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note("<A B@6 C@3 ~@130>".pickRestart({
  A: "~ a#4@12 ~@2 [a2,e3], [a#2,f3,a#3,d4,f4]@13 ~@3", // A5 A#
  B: "[~ a4@11 ~@5 e4@13 ~@3 g4@24 ~@7 [d4,f4,a#4]@12 ~@5 a4@11 ~@3 [a2,f3], [g3,c4,e4]@12 ~@3 a2@15 ~ e2@31 ~@34, ~@15 f3@13 ~@3 b2@26 ~@6 [a#2,f3,a#3]@14 ~@2 [a2,e3,g3]@13 ~@4, ~@16 [a3,c4]@12 ~@4 g3@29 ~@19 [c4,e4]@12 ~@4, ~@16 [e3,d4]@13 ~@19]/6", // A# Dm C A#5 A7 Am C E7
  C: "[~ e4@13 ~@2 [d4,g4]@31 ~, [a3,c4]@13 ~ e2@34, ~@7 b2@16 ~, ~@15 [e3,g3]@32 ~]/3", // G5 Am Em
})).s("gm_acoustic_guitar_steel").gain(0.29)

// drums · kick
const kick = s("bd").struct(`<
  ~@9 A B@15 C B@15 C B@7 D B@15 D B@7 D B@7 E B@14 F A B@23 D B@7 D B@5 G H I E ~
>`.pickRestart({
  A: "~@5 x ~@2", B: "x!2", C: "x ~@2 x", D: "x", E: "~ x!2 ~ x!2 ~ x", F: "x ~@3 x ~ x!2", G: "x ~@3 x ~@2 x",
  H: "x ~ x!2 ~ x!2 ~", I: "x!2 ~ x!2 ~ x!2",
})).gain(0.49)
// … 69 more lines

More by Billy Idol