Strudelify

Jumpin' Jack Flash

The Rolling Stones

KeyB minorTempo142 bpm
0:00/0:00
// Jumpin' Jack Flash — The Rolling Stones
// 142 bpm, 4/4, key B minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 111 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): CLEAN GTR.
setcpm(142/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 · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  A B C D E F G@2 H I@2 J K I@2 L K M@4 N O P Q R S T U V W I@2 L K I@2 L K M@4 N O P Q R S T U V W X Y Z AA AB AC AD AE
  AF V W I@2 L K I@2 L K M@12 N O P Q R S T U V W AG AH AI AJ AG AK AL AM AN AO AP AQ AR AO AS AT ~
>`.pickRestart({
  A: "[b2,f#3,b3,f#4,b4] b2!2 [b2,f#3,b3,f#4,b4] b2!2 [b2,f#3,b3,f#4,b4] b2", // B5
  B: "[e3,b3,e4]@2 e3@2 e3@2 [a2,e3,a3,e4,a4]@2 [a2,e3]@2 [a2,e3]@2 [a2,e3,a3,e4,a4]@2 [b2,f#3,b3,f#4,b4] [b2,b3,b4]", // E5 A5 B5 B
  C: "[b2,f#3,b3,f#4,b4] [b2,f#3]!2 [b2,f#3,b3,f#4,b4] [b2,f#3]!2 [b2,f#3,b3,f#4,b4] [b2,f#3]", // B5
  D: "[e3,b3,e4] e3!2 [a2,e3,a3,e4,a4] [a2,e3]!4", // E5 A5
  E: "[b2,f#3,b3,f#4,b4] [b2,f#3]!2 [b2,f#3,b4] [b2,f#3]!2 [b2,f#3,b4] [b2,f#3]", // B5
  F: "[e3,b3,e4] [e3,b3]!2 [a2,e3,a3,e4,a4] [a2,e3]!4", G: "[b2,f#3,b3,f#4,b4]@14 [b2,f#3,b3,b4] [b3,b4]",
  H: "[b2,f#3,b3,f#4,b4]@7 ~", // B5
  I: "[[f#3,b3] ~@3 f#3@6 [e3,a3]@2 [f#3,b3]@2 d4@4 [e3,a3]@2 [f#3,b3]@2 a3@3 ~ [e3,a3]@2 [f#3,b3]@2 [a3,d4]@2, ~@4 b3 ~@9 a3 ~@7 d4 ~@9]/2", // B5 A5 B5 A5 B5 A5 B5 D5
  J: "[f#3,b3] ~@3 [f#3,b3]@6 [d3,e3,a3] ~ [f#3,b3]@2 a3@2, ~@14 d4 ~", // B5 Dsus2 B5
  K: "~@2 [e3,a3]@2 [f#3,b3]@2 a3@3 ~ [e3,a3]@2 [f#3,b3]@2 [a3,d4]@2, ~@6 d4 ~@9", // A5 B5 A5 B5 D5
  L: "[f#3,b3] ~@3 [f#3,b3]@6 [e3,a3]@2 [f#3,b3]@2 a3@2, ~@14 d4 ~", // B5 A5 B5
  M: "[[f#3,b3] ~@3 [f#3,b3]@6 [e3,a3]@2 [f#3,b3]@2 [a3,d4]@4 [e3,a3]@2 [f#3,b3]@2 [a3,d4]@4 [e3,a3]@2 [f#3,b3]@2 [a3,d4]@2]/2", // B5 A5 B5 D5 A5 B5 D5 A5 …
  N: "[d3,a4,d5], [a3,d4] ~@15", O: "[a2,a3,e4,a4]@15 ~", P: "[e3,b3,b4]@15 ~, e4@13 ~@3",
  Q: "[b2,f#3,b4], b3@7 ~, f#4@3 ~", R: "[d3,a3,d4,a4]@15 ~, d5@13 ~@3", S: "[a2,e4,a4], a3@7 ~",
  T: "[e3,b3,b4]@7 b4, e4@3 ~", U: "[b2,f#3,b3,f#4]@14 [b2,f#3,b3,f#4,b4] [b2,b3,b4]",
  V: "[b2,f#3,b3,f#4,b4]@13 ~ [b2,f#3,b3,f#4,b4] [b2,b3,b4]", W: "[b2,b3,b4]@15 ~, [f#3,f#4]@13 ~@3",
  X: "[b2,f#3,b3,f#4,f#5] b4 f#3 [b3,f#5]@3 f#5 b4", Y: "[e3,b3,e4,g#5]@2 f#5 [b4,e5]@2 f#5 [e3,g#5] b3",
  Z: "[b2,f#3,b3,f#4,b4,f#5]@2 b4@2 [b2,f#3,b3,f#4]@2 f#5@4 b4@2 f#5@2 [b3,b4] b4", // B5 B
  AA: "[e3,e4,g#5]@2 f#5@2 b3@2 [e4,e5]@3 b4 [f#4,f#5]@2 [b3,g#5]@2 [e4,b4]@2, ~@6 c5 ~@9", // E F# E E5
  AB: "[b2,f#3,b3,f#4,f#5] ~ b4 ~ [b2,f#3,b3,f#4,b4]@2 f#5@2 b4@2 b4@2 f#5@2 [b3,b4]@2", // B5 B
  AC: "[e3,e4,g#5]@2 [b3,f#5] [f#4,e5] b4 [e4,f#5] [b3,g#5] [e4,b4]", // E B5 F#7 Esus2 E E5
  AD: "[b2,f#3,b3,f#4,f#5] ~ b4 ~ [b2,f#3,b3,f#4,b4]@2 f#5@6 [f#5,g#5]@2 [b3,b4]@2", // B5 F#sus2 B
  AE: "[e3,g#5]@2 [b3,b4]@2 [e4,f#5]@2 [f#4,e5]@2 b4 ~ [e4,f#5] b4 [b3,g#5]@2 [e4,b4]@2", // E B Esus2 F#7 Esus2 E E5
  AF: "[b2,f#3,b3,f#4,f#5] ~ b4 ~ [b2,f#3,b3,f#4,b4]@2 f#5 b4@2 ~ b4@2 f#5@2 [b2,f#3,b3,f#4,b4] [b2,b3,b4]", // B5 B
  AG: "[b2,f#3,b3,f#4]", AH: "[e3,b3,e4,g#4]", AI: "[b2,f#3,b3,f#4]@15 b3", AJ: "[e3,b4]", AK: "[e3,b3,f#4,b4]",
  AL: "[b2,f#3,b3,f#4]@4 e6 ~ e6 ~ e6@3 ~ e6@3 ~", AM: "[e3,b3,e4,b4,e6]@2 d6 ~ d6@2 c#6@2 g#4@2 [e4,b5]@4 b3@2",
  AN: "[b2,f#3,f#4,b4,e6]@2 e6 ~ e6@3 ~ e6@3 ~ e6@2 d6 ~", AO: "[b2,e3,b3,e4,b4,d6]@2 c#6@3 ~ b5@9 ~",
  AP: "[b2,f#3,b3,f#4,b4,e6]@2 e6 ~ e6 ~ e6 ~ e6@4 d6 ~ c#6 ~", AQ: "[b2,e3,b3,e4,b4,d6]@2 c#6@4 b5@8 b3 ~",
  AR: "[b2,f#3,b3,f#4,b4,e6]@2 e6 ~ e6@3 ~ e6@4 d6@2 c#6 ~", AS: "~@4 e6@3 ~ e6@4 d6 ~ c#6 ~",
  AT: "[b2,e3,b3,e4,b4,d6]@2 c#6@3 ~ b5@4 b3@2 e3@2 e4@2", // E7
})).s("gm_overdriven_guitar").gain(0.12).pan(0.9)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@3 A B C D E F G H I J G J G K G L G M N O P Q R O S T D F G H I J G J G K G L G M N O P Q R O S T D F B U@6 V@2 D F
  G H I J G J G K G L G M G L G M G L G M N O P Q R O S T D F B U@4 W@2 X Y Z AA AB AA Z Y AC ~
>`.pickRestart({
  A: "e3@6 d3@5 ~ c#3@4", B: "b2", C: "e3@3 d3@3 c#3@2", D: "b2@7 b2", E: "b2@13 ~ b2@2", F: "b2@3 b2",
  G: "b1 ~@3 b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~", H: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1@2 a1 ~",
  I: "b1 ~@3 b1@2 b1 ~ b1 ~ b1 ~ b1 ~ b1 ~", J: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1@2 a1@2",
  K: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ a1 ~", L: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ a1@2",
  M: "b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1@2 c2 ~", N: "d2@3 ~ d2@2 d2 ~ d2 ~ d2 ~ d2@2 c#2@2",
  O: "a1@3 ~ a1 ~ a1 ~ a1 ~ a1@2 d2@2 d#2@2", P: "e2@3 ~ e2@4 e2 ~ e2 ~ e2@2 d2@2",
  Q: "b1@3 ~ b1 ~ b1 ~ b1 ~ b1 ~ b1@2 c#2@2", R: "d2@3 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2@2 c#2@2",
  S: "e2@3 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ d2@2", T: "b2@13 ~ b2@2, g2 ~@15", U: "[e3@3 d3@2 c#3@2 a2@9]/2",
  V: "[b2@3 b2@2 b2@2 a2@8 b2]/2", W: "[e3@3 d3@2 c#3@2 a2@4 a2 a2@4]/2", X: "b2@3 b2@2 b2@2 f#2",
  Y: "b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~", Z: "b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ a2@2",
  AA: "b2@2 b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~ b2 ~", AB: "b2 ~ b2 ~ b2 ~ a2 ~ a2 ~ a2@2 b2@2 a2@2",
  AC: "a2 ~ a2 ~ a2 ~ b2 ~ b2 ~ b2 ~ b2 ~ a2@2",
})).s("gm_electric_bass_finger").gain(0.36)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@21 A B C@4 D ~@15 A B C@4 D ~@6 E ~@3 F G ~@22 A B C@4 D ~@4 H ~@12 I ~@2
>`.pickRestart({
  A: "~ a4 f#5 a4 e5 [a4,d5]@2 a4", B: "~ e4 ~ e4 b4 e4@2 e4, ~@2 c#5@2 ~ a4@3",
  C: "[~@2 e4@2 d5@2 e4@2 ~@2 e4@3 ~ f#4@4 f#4@2 ~@2 f#4@2 ~@2 f#4@3 ~ f#4@4 a4@2 ~@2 a4@2 e5@2 d5@4 a4@4 e4@2 ~@2 e4@2 ~@2 e4@3 ~ e4@2, ~@8 c#5@5 ~@7 d5@4 c#5@5 ~@7 f#5@4 ~@18 a4@6, ~@10 b4@8 ~@8 b4@8 ~@8 a4@3 ~@7 c#5@4 b4@4 ~@4]/4",
  D: "~ e4 ~ e4 ~ e4@2 ~, ~ d5 c#5 ~, ~@5 b4 ~@2", E: "~@8 b3 ~@7", F: "~@10 b3@3 ~@3", G: "~@6 b3 ~@9", H: "f#3 ~@15",
  I: "e5 ~ c#5@3 ~@7 e2 ~ e3@2, [b1,f#2,f#3], b3@7 ~, b2@9 ~ b2@4 ~@2, ~@2 e5 ~@3 b4@9 ~", // B5
})).s("gm_electric_guitar_clean").gain(0.14).pan(0.8)

// chords · celesta
const celesta = note("<~@21 A B C@4 D@2 ~@14 A B C@4 D@2 ~@33 A B C@4 D@2 ~@19>".pickRestart({
  A: "~ a5 f#6 a5 e6 [a5,d6]@2 a5", B: "~ e5 ~ e5 b5 e5@2 e5, ~@2 c#6@2 ~ a5@3",
  C: "[~@2 e5@2 d6@2 e5@2 ~@2 e5@3 ~ f#5@4 f#5@2 ~@2 f#5@2 ~@2 f#5@3 ~ f#5@4 a5@2 ~@2 a5@2 e6@2 d6@4 a5@4 e5@2 ~@2 e5@2 ~@2 e5@3 ~ e5@2, ~@8 c#6@5 ~@7 d6@4 c#6@5 ~@7 f#6@4 ~@18 a5@6, ~@10 b5@8 ~@8 b5@8 ~@8 a5@3 ~@7 c#6@4 b5@4 ~@4]/4",
  D: "[e5 ~ e5@2 ~@2 e5@2 ~@2 e5@4 ~@2 [b2,b5]@14 ~@2, ~ d6 c#6 ~ f#5@4, ~@10 b5@2 ~@2 b4@15 ~@3]/2", // B
})).s("gm_celesta").gain(0.37).pan(0.3)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@53 A@8 B@4 ~@29 C@8 ~@9>".pickRestart({
  A: "[~@16 a4@6 g#4@6 e4@4 f#4@16 e4@6 ~ d4@9 f#4@16 a4@6 g#4@6 e4@4 f#4@16 g#4@4 f#4@2 e4@4 f#4@2 g#4@4, [b1,b2,b3,b4]]/8", // B
  B: "[~@32 b2@17 ~@15, f#4@25 ~@7, ~@8 f#2@17 ~@7, ~@17 b1@33 ~@14]/4",
  C: "[f#5@16 a5@6 g#5@6 e5@4 f#5@16 e5@6 d5@10 f#5@16 a5@6 g#5@6 e5@4 f#5@31 ~, [b4,b5]@127 ~]/8", // B
})).s("gm_string_ensemble_1").gain(0.22).pan(0.7)

// chords · percussive organ · "ORGAN 2"
const percussive_organ = note(`<
  ~@3 A B@3 C D E@2 F@2 G@2 H@2 I@2 J@2 K L@2 M N O@2 P ~@2 E@2 F@2 G@2 H@2 I@2 J@2 K L@2 M N O@2 Q R S ~@11 E@2 F@2 G@2
  H@2 I@2 J@2 E@2 F@2 G@2 H@2 T U@3 N O@2 Q R S ~@17
>`.pickRestart({
  A: "~@10 [d2,e2] [f2,g2,a2] [b2,c3,d3] [e3,f3,g3] [a3,b3,c4,d4] [e4,f4]", // Dsus2 F Bm Em D7 Fmaj7
  B: "[[g4,a4] ~@15 e5@6 a5@10 f#5@14 [b4,f#5,b5]@2, [b4,b5]@23 ~, f#5 ~@2]/3", C: "[b4,f#5,b5]@13 ~ [b4,f#5,b5]@2",
  D: "[f#5,b5]@7 ~, b4@11 ~@5", // B5
  E: "[[b3,f#5,b5] ~@3 b4 ~ b3 ~ b3 ~ [b3,e5,a5] ~ [b4,f#5,b5] ~ a5@2 b3 ~ [b3,e5] ~ [b4,f#5,b5] ~ b3 ~ b3 ~ [b3,e5] ~ [b4,f#5] ~ [a5,d6]@2, ~@4 [f#5,b5]@6 ~@4 d6@5 ~@13, ~@14 b3 ~@3 a5@2 ~@2 [a5,d6]@4 a5@2 b5@2 b3 ~]/2", // B5 Esus4 B5 E5 B5 E5 B5 D5 …
  F: "[[b3,f#5,b5] ~ b3 ~ b4 ~ b3 ~ b3 ~ [b3,e5] ~ [b4,f#5] ~ b3 ~ b3 ~ [b3,e5] ~ [b4,f#5] ~ b3 ~ b3 ~ [b3,e5] ~ [b4,f#5] ~ [a5,d6]@2, ~@4 [f#5,b5]@6 a5@2 b5@2 [a5,d6]@4 a5@2 b5@2 [a5,d6]@4 a5@2 b5@2 b3 ~]/2", // B5 E5 B5 E5 B5 E5 B5 D5 …
  G: "[[b3,f#5,b5] ~ b3 ~ b4 ~ b3 ~ b3 ~ [b3,e5] ~ [b4,f#5,b5] ~ b3 ~ b3 ~ [b3,e5] ~ [b4,f#5,b5] ~ b3 ~ b3 ~ [b3,e5] ~ [b4,f#5,b5] ~ [b3,a5] ~, ~@2 [f#5,b5]@3 a5 ~ [a5,d6]@2 a5 ~ [a5,d6]@2 a5 ~ d6]/2", // B5 E5 B5 E5 B5 E5 B5 B7 …
  H: "[[b3,f#5,b5] ~ b3 ~ b4 ~ b3 ~ b3 ~ [b3,e5] ~ [b4,f#5,b5] ~ a5@2 b3 ~ [b3,e5] ~ [b4,f#5,b5] ~ b3 ~ b3 ~ [b3,e5] ~ [b4,f#5] ~ [b3,a5] ~, ~@4 [f#5,b5]@6 a5@2 ~@2 d6@5 ~@11 d6@2, ~@14 b3 ~@3 a5@2 ~@2 [a5,d6]@4 a5@2 b5@2 ~@2]/2", // B5 E5 B5 E5 B5 E5 B5 B7 …
  I: "[[b3,b5] ~ b3 ~ b4 ~ b3 ~ b3 ~ [b3,e5] ~ [b4,f#5] ~ b3 ~ b3 ~ [b3,e5] ~ [b4,f#5,b5] ~ b3 ~ b3 ~ [b3,e5] ~ [b4,f#5] ~ [b3,a5] ~, ~@2 [f#5,b5]@3 a5 b5 [a5,d6]@2 a5 ~ [a5,d6]@2 a5 b5 d6]/2", // B E5 B5 E5 B5 E5 B5 B7 …
  J: "[[b3,f#5,b5] ~ b3 ~ b4 ~ b3 ~ b3 ~ [b3,e5] ~ [b4,f#5,b5] ~ b3 ~ b3 ~ [b3,e5] ~ [b4,a5] ~ b3 ~ b3 ~ [b4,e5] ~ [b3,b4] ~ b3 ~, ~@2 b5@3 a5 ~ [a5,d6]@2 b5 ~ [a5,d6]@2 a5 b5@2, ~@2 f#5@2 ~@10 f#5 ~]/2", // B5 E5 B5 E5 B7 E5 B D5
  K: "d4@4 d5 ~ d4 ~ d4@3 ~ d5 ~ d4 ~, [f#5,a5,d6]", // D
  L: "[a3 ~@3 a4 ~ a3 ~ a3 ~ a3 ~ a4 ~ a3 ~ e3 ~ e3 ~ e4 ~ e3 ~ e3 ~ e3 ~ e4 ~ [e3,e4] ~, [e5,e6], [a5,c#6]@15 ~ [g#5,b5]@16]/2", // E A G#m
  M: "b3 ~ b3 ~ b4 ~ b3 ~ b3 ~ b3 ~ b4 ~ [b3,b4] ~, [f#5,b5]", // B B5
  N: "d4 ~ d5 ~ d5 ~ d4 ~ d4 ~ d4@2 d5 ~ d4 ~, [f#5,a5,d6]", // D
  O: "[a3 ~ a3 ~ a4 ~ a3 ~ a3 ~ a3 ~ a4 ~ a3 ~ e3 ~ e3 ~ e4 ~ e3 ~ e3 ~ e3 ~ e4 ~ e3 ~, [e5,e6]@31 ~, [a5,c#6]@15 ~ [g#5,b5]@15 ~]/2", // E A G#m
  P: "[b2,b3]@3 ~, f#5, b5@7 ~", Q: "[b2,b3]@6 ~ [b3,b5], f#5, b5@14 b4 ~",
  R: "[b3,b4,f#5,b5]@13 ~ [b4,b5]@2, ~@14 [b3,f#5] ~", // B5 B B5
  S: "[b3,b4,f#5]@10 [d5,e5,f5] [g4,a4,b4,c5] [b3,c4,d4,e4,f4] [f3,g3,a3] [b2,c3,d3,e3] [f2,g2,a2], b5@9 ~@7", // B5 Dm Cmaj7 Bdim F Cmaj7 F
  T: "[b3,b5] ~ b3 ~ [b4,d5] ~ [b3,d4] ~ d4@2 [b3,e5] ~ [b4,d5,f#5] ~ [b3,d4,d6] ~, d6@7 ~, a5@5 a5 b5 a5, [d4,f#5]@2 [f#5,b5]@3 ~@3, ~@8 b3 ~@7", // B Bm E5 Bm D B5
  U: "[[a3,b3,a5] ~ [b3,e5] ~ [a4,b4,f#5,b5] ~ [a3,b3] ~ [a3,b3] ~ [a3,b3,e5] ~ [a4,b4,f#5] ~ [a3,b3,a5] ~ [e3,b3,f#5,b5] ~ [e3,b3] ~ [e4,b4] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3,e5] ~ [e4,b4,f#5,b5] ~ [e3,b3,e4] ~ b5@2 [b3,e5] ~ [b4,a5] ~ b3 ~ b3 ~ [b3,b4,e5] ~ [b3,b4] ~ [b3,b4] ~, e6@2 ~, c#6@15 ~ g#5@16 b3 ~@15, e5 a5 ~ [a5,d6]@2 a5 b5 d6 ~@2 b5@3 a5 ~ [a5,d6]@2 b5 ~ [a5,d6]@2 a5 b5@2, ~@10 f#5@2 ~@4 f#5@6 f#5 ~]/3", // Asus2 E5 B7 Asus2 B7 Asus2 Esus2 E5 …
})).s("gm_percussive_organ").gain(0.19).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~@3 [~@7 x] [x ~@2 x!2 ~@2 x]!106 [x!2]>").gain(0.54)

// drums · snare
const snare = s("sd").struct("<~@3 [~@3 x] [~ x ~ x]!3 [~@2 x ~@2 x!2 ~]!2 [~ x ~ x]!102>").gain(0.6)

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

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@8 A ~@3 A ~@3 A ~@3 A ~@9 B C ~@2 D ~ A ~ A ~ A ~@22 A ~ A ~ A ~ A ~ A ~ A ~ D ~ A ~ A ~ A ~ A ~@27
>`.pickRestart({
  A: "~@7 x", B: "~@5 x ~@2", C: "x", D: "~@5 x ~ x",
})).gain(0.3)

// drums · crash
const crash = s("cr").struct(`<
  ~@21 A ~@2 B A ~@2 A@3 ~@11 B A ~@2 B A ~@2 A@3 ~@15 C ~@15 A ~@2 B A ~ A@2 ~@19
>`.pickRestart({
  A: "x", B: "~@7 x", C: "~ x ~@2",
})).gain(0.3)

// drums · ride
const ride = s("rd").struct("<~@21 A B@2 C D B@2 ~@15 D B@2 C D B@2 ~@34 D B@2 C D B D ~@20>".pickRestart({
  A: "~@2 x!6", B: "x!8", C: "x!7 ~", D: "~ x!7",
})).gain(0.3)

// drums · tambourine
const tambourine = s("tb").struct("<~@21 [~ x ~ x]!7 ~@15 [~ x ~ x]!7 ~@3 [x!16]!11 ~@47>").gain(0.3)

stack(
  overdriven_guitar, bass, electric_guitar_clean, celesta, string_ensemble_1, percussive_organ, kick, snare, hihat,
  open_hat, crash, ride, tambourine
)

More by The Rolling Stones