Strudelify
I Can't Get No (Satisfaction) cover art

Out Of Our Heads

I Can't Get No (Satisfaction)

The Rolling Stones

KeyE majorTempo140 bpm
0:00/0:00
// I Can't Get No (Satisfaction) — The Rolling Stones
// 140 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 127 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): Fuzz Git.
setcpm(140/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 · piano
const piano = note(`<
  A ~@3 B C D E F G H I J I K@2 L@2 M N O P Q E R E S E T E U E V E W E X E Y ~ Z AA AB AC ~ I AD@2 AE@2 AF@2 AG AH AI@2
  AJ E AK AL Z AM V AN B E V AO V AM AP AM AQ ~ AR E AS AC ~ I AD@2 AE@2 AT@2 V AU AV AW AX E AY AM AZ AL AS AL Z E BA
  AM AZ E AZ E BB ~ BC E BD E BE E BF BG BH E R E BI BJ BK BL BM BN ~
>`.pickRestart({
  A: "c#-1", B: "[e3,g#3,b3,e4] ~ [e3,g#3,e4]@5 ~, ~ b3@2 ~", C: "[d3,f#3,a3,d4]@11 ~ [d3,f#3,a3,d4]@3 ~",
  D: "[e3,g#3,b3,e4]@2 ~@2 [e3,g#3,e4]@11 ~, ~ b3@2 ~", E: "[d3,f#3,a3,d4]@13 ~@3",
  F: "[g#3,b3,e4] ~@3 [e3,g#3,e4]@10 ~@2, e3 ~ b3@4 ~@2", G: "[d3,f#3,a3,d4]@3 ~", H: "[e3,g#3,b3,e4]@11 ~@5",
  I: "~@5 e3 b3 c#4", J: "e3", K: "[e3@10 ~@3 e3 b3 c#4]/2", L: "[e3@12 ~@2 b3 c#4, ~@13 e3@2 ~]/2", M: "e3@7 ~",
  N: "b2@7 ~, a3@3 ~, f#3@7 ~@9, d#3@5 ~@11", O: "[e3,b3,e4]@14 a3 ~, g#3@9 ~@7", P: "[a3,c#4,e4]@7 ~, a2@3 ~",
  Q: "[g#3,b3,e4] ~@3 [e3,g#3,e4]@11 ~, e3@2 ~@2 b3@9 ~@3", R: "[e3,g#3,b3,e4] ~@3 [e3,g#3,e4]@11 ~, ~@4 b3@9 ~@3",
  S: "[e3,g#3] ~ [e3,g#3,e4]@5 ~, [b3,e4] ~@3 b3@8 ~@4", T: "[e3,b3] ~ [e3,g#3,b3,e4]@5 ~, [g#3,e4] ~@15",
  U: "[e3,g#3,b3] ~ [e3,g#3,e4]@5 ~, e4 ~@3 b3@8 ~@4", V: "[e3,g#3,b3,e4]@7 ~",
  W: "[e3,g#3,b3,e4] ~@3 [e3,g#3,e4]@11 ~, ~ b3@2 ~", X: "[e2,e3] ~ [e2,e3]@5 ~", Y: "[e2,e3,b3,e4]@5 ~@11",
  Z: "[e3,g#3,e4]@7 ~, b3@3 ~", AA: "[d3,d4], [f#3,a3]@3 ~",
  AB: "[e3,b3]@2 ~@2 [e3,e4]@11 ~, [g#3,e4] ~@3 [g#3,b3]@9 ~@3", AC: "[f#3,a3,d4]@13 ~@3, d3@15 ~",
  AD: "[e3@21 ~@5 e3@2 b3@2 c#4@2]/2", AE: "[e3@12 ~ e3 b3 c#4]/2", AF: "[e3@3 ~]/2", AG: "[g#3,b3,e4]@13 ~@3, e3",
  AH: "[f#3,b3,d#4]@15 ~", AI: "[[b3,e4]@13 ~@3 [a2,a3,c#4,e4]@13 ~@3, e3@29 ~@3, g#3@11 ~@21]/2",
  AJ: "[e3,g#3,b3,e4]@2 ~@2 [e3,g#3,b3,e4]@9 ~@3", AK: "[e3,g#3,e4] ~@3 [e3,g#3,b3,e4]@9 ~@3, b3 ~@7",
  AL: "[d3,d4]@7 ~, [f#3,a3]@3 ~", AM: "[d3,f#3,d4]@7 ~, a3@3 ~", AN: "[d3,f#3,a3,d4]@10 ~@2 [d3,f#3,a3,d4]@3 ~",
  AO: "[d3,f#3,d4]@15 ~, a3@13 ~@3", AP: "[e3,g#3,e4]@15 ~, b3@13 ~@3", AQ: "[e3,g#3,b3,e4] ~@7",
  AR: "[e3,g#3,e4]@15 ~, b3@3 ~", AS: "[e3,e4]@15 ~, [g#3,b3]@13 ~@3", AT: "[e3@25 ~@7]/2", AU: "[a3,b3,d#4]@7 ~",
  AV: "[g#3,b3,e4]@7 ~, e3 ~@7", AW: "[a3,c#4,e4]@13 ~@3", AX: "[b3,e4] ~ [e3,g#3,e4]@5 ~, [e3,g#3] ~@3 b3@8 ~@4",
  AY: "[g#3,b3,e4]@2 ~@2 [e3,g#3,e4]@11 ~, e3 ~@3 b3@8 ~@4", AZ: "[e3,g#3,b3,e4]@13 ~@3",
  BA: "[e3,g#3,e4]@2 ~@2 [e3,g#3,e4]@11 ~, b3 ~@3 b3@8 ~@4", BB: "[e3,g#3,b3,e4]@5 ~@11",
  BC: "[e3,g#3,e4]@7 ~, b3@11 ~@5", BD: "[e3,g#3,b3,e4] ~@3 [e3,e4]@11 ~, ~@4 [g#3,b3]@9 ~@3",
  BE: "[e3,g#3,b3,e4] ~@3 [e3,g#3,b3,e4]@9 ~@3", BF: "[e3,g#3,b3,e4] ~@3 [g#3,e4]@10 ~@2, ~ e3@3, ~ b3@2 ~",
  BG: "[d3,a3,d4]@7 ~, f#3@3 ~", BH: "[g#3,b3,e4]@13 ~@3, e3@15 ~", BI: "[e3,e4]@13 ~@3, [g#3,b3]@11 ~@5",
  BJ: "[g3,b3,d4]@13 ~@3", BK: "[a3,c#4,e4]@3 ~", BL: "[c3,g3,c4,e4]@7 ~ [d3,f#3,a3,d4]@5 ~@3",
  BM: "[e2,e3,g#3] ~ [e2,e3,g#3,b3,e4]@5 ~, [b3,e4] ~@15", BN: "[e2,e3,b3,e4]@3 ~@13",
})).s("gm_piano").gain(0.32).pan(0.6)

// chords · rock organ · "Orgel"
const rock_organ = note(`<
  ~@2 A B C D C E F B G@8 H@4 I J F B K B F L F B I B I B M N ~@2 I B K E O@8 P@4 Q B I R S B K R I T U B K V M D ~@2 I
  B W@2 X@8 Y@6 K Z AA B F B F B F R F B F R ~@2 M B F AB F E AC@2 I B F J AD@2 AE@2 AF@2 ~
>`.pickRestart({
  A: "e5, g#4@7 ~, b4@3 ~", B: "[f#4,a4]@7 ~, d5", C: "[g#4,e5]@15 ~, b4@13 ~@3", D: "[f#4,a4,d5]@13 ~@3",
  E: "[f#4,d5]@15 ~, a4@13 ~@3", F: "[g#4,b4]@7 ~, e5",
  G: "[[g#4,b4] c#5 [g#4,b4] c#5, e5@127 ~, ~@16 a4@15 ~@17 a4@15 ~]/8", // G#m
  H: "[e5@16 d#5@16 g#4@14 ~@2 [a4,c#5]@15 ~, b4@3 ~, g#4@7 ~ f#4@7 ~ e5@15 ~]/4", I: "[g#4,e5], b4@7 ~",
  J: "[f#4,a4]@13 ~@3, d5@15 ~", K: "[g#4,b4,e5]", L: "[f#4,a4]@13 ~@3, d5", M: "[g#4,e5], b4@13 ~@3", N: "[f#4,a4,d5]",
  O: "[b4 c#5 [g#4,b4] c#5, e5, g#4@30 ~@2 a4@30 ~@34 a4@29 ~@3]/8", // G#m
  P: "[g#4@15 ~ d#5@16 g#4@15 ~ [a4,c#5]@16, b4@3 ~, ~@16 f#4@13 ~@3 e5@32]/4", Q: "[g#4,b4]@13 ~@3, e5",
  R: "[f#4,a4,d5]@15 ~", S: "[g#4,b4,e5]@15 ~", T: "[f#4,d5], a4@7 ~", U: "[g#4,b4]@7 ~, e5, c5 ~@15",
  V: "~ a4@14 ~, [f#4,d5]@15 ~", W: "[[g#4,e5]@15 ~ [f#4,a4]@13 ~@3, b4@14 ~ d5@14 ~@3]/2",
  X: "[b4@32 [a4,c#5]@30 ~@2 [g#4,b4]@32 [a4,c#5]@31 ~, e5, g#4@29 ~@99]/8", // A G#m A
  Y: "[g#4@14 ~@2 d#5@16 g#4@13 ~@3 c#5@16 b4@15 ~ d5@16, b4@48 a4@14 ~@2 g#4@14 ~ f#5@17, ~@8 a4@7 ~ e5@24 a4@7 ~]/6",
  Z: "[f#4,a4,d5]@15 ~, g#4 ~@15", AA: "[b4,e5], g#4@7 ~", AB: "[f#4,a4,d5]@7 ~",
  AC: "[[g#4,e5]@15 ~ [f#4,a4]@13 ~@3, b4@14 ~ d5@16 ~]/2", AD: "[[g#4,e5] d5, b4, ~@8 g4@7 ~]/2",
  AE: "[[a4,c#5]@15 ~ c5@8 [f#4,a4]@6 ~@2, e5@25 ~@7, ~@8 g4@3 ~ d5@4]/2", AF: "[[g#4,b4,e5] ~ [g#4,b4,e5]@7 ~@7]/2",
})).s("gm_rock_organ").gain(0.22)

// chords · electric guitar clean · "E-Guitar"
const electric_guitar_clean = note(`<
  ~@2 A@2 B@2 C@2 D@2 E F G@2 E@2 G@2 E H I G J@4 K@2 L@2 J@2 M@4 L@2 N ~ L@2 O@2 E@2 G@2 E@2 G@2 E H I G M@2 L@2 P@4
  L@2 Q@2 P@2 J@2 R ~ M@2 S@2 E@2 G T U E G@2 E H I V J@2 W@2 J@2 L@2 P@2 M@2 P@2 L@2 X ~ Y@2 M@2 L@2 M@2 L@2 M@2 Z@2
  AA@2 AB@2 ~
>`.pickRestart({
  A: "[[e3,a3,b3] ~@3 [e3,b3]@5 ~ [e3,b3] ~ [c#3,c#4]@2 [d3,d4]@6 ~@2 [d3,d4] ~ [d3,d4]@3 ~ [c#3,c#4]@4]/2", // Esus4 E5 C# D C#
  B: "[[e3,b3]@2 ~@2 [e3,b3]@4 ~@2 [e3,b3] ~ [c#3,c#4]@2 [d3,d4]@7 ~ [d3,d4] ~ [d3,d4]@3 ~ [c#3,c#4]@4]/2", // E5 C# D C#
  C: "[[e3,b3] ~@3 [e3,b3]@4 ~@2 [e3,b3] ~ [c#3,c#4]@2 [d3,d4]@7 ~ [d3,d4] ~ [d3,d4]@3 ~ [c#3,c#4]@4]/2", // E5 C# D C#
  D: "[[e3,b3] ~@3 [e3,b3]@4 ~@2 [e3,b3] ~ [c#3,c#4]@2 [d3,d4]@7 ~ [d3,d4] ~ [d3,d4]@4 [c#3,c#4]@2 ~@2]/2", // E5 C# D C#
  E: "[e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~", // E5
  F: "[e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3]@2 [e3,b3] ~", // E5
  G: "[a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~", // A5
  H: "[b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~ [b3,f#4] ~", // B5
  I: "[e4,b4] ~ [e4,b4] ~ [e4,b4] ~ [e4,b4] ~ [e4,b4] ~ [e4,b4] ~ [e4,b4] ~ [e4,b4] ~", // E5
  J: "[[e3,b3] ~@3 [e3,b3]@4 ~@2 [e3,b3]@2 [c#3,c#4]@2 [d3,d4]@7 ~ [d3,d4] ~ [d3,d4]@4 [c#3,c#4]@4]/2", // E5 C# D C#
  K: "[[e3,b3]@2 ~@2 [e3,b3]@5 ~ [e3,b3]@2 [c#3,c#4]@2 [d3,d4]@6 ~@2 [d3,d4] ~ [d3,d4]@4 [c#3,c#4]@4]/2", // E5 C# D C#
  L: "[[e3,b3] ~@3 [e3,b3]@4 ~@2 [e3,b3]@2 [c#3,c#4]@2 [d3,d4]@6 ~@2 [d3,d4] ~ [d3,d4]@4 [c#3,c#4]@4]/2", // E5 C# D C#
  M: "[[e3,b3] ~@3 [e3,b3]@5 ~ [e3,b3]@2 [c#3,c#4]@2 [d3,d4]@6 ~@2 [d3,d4] ~ [d3,d4]@4 [c#3,c#4]@4]/2", // E5 C# D C#
  N: "[e3,b3] ~@15", // E5
  O: "[[e3,b3]@2 ~@2 [e3,b3]@4 ~@2 [e3,b3]@2 [c#3,c#4]@2 [d3,d4]@7 ~ [d3,d4] ~ [d3,d4]@4 c#4@4, ~@28 c#3 ~@3]/2", // E5 C# D
  P: "[[e3,b3]@2 ~@2 [e3,b3]@4 ~@2 [e3,b3]@2 [c#3,c#4]@2 [d3,d4]@6 ~@2 [d3,d4] ~ [d3,d4]@4 [c#3,c#4]@4]/2", // E5 C# D C#
  Q: "[[e3,b3]@2 ~@2 [e3,b3]@4 ~@2 [e3,b3]@2 [c#3,c#4]@2 [d3,d4]@6 ~@2 [d3,d4] ~ [d3,d4]@3 ~ [c#3,c#4]@4]/2", // E5 C# D C#
  R: "[e3,b3] ~@7", // E5
  S: "[[e3,b3] ~@3 [e3,b3]@5 ~ [e3,b3]@2 [c#3,c#4]@2 [d3,d4]@6 ~@2 [d3,d4] ~ [d3,d4]@4 c#4@4, ~@28 c#3 ~@3]/2", // E5 C# D
  T: "[a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,f#4]@2 [a3,g4]@2", // A5 D A7
  U: "e3 ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~", // E5
  V: "[a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4] ~ [a3,e4]@2", // A5
  W: "[[b2,b3] ~@3 [e3,b3]@4 ~@2 [e3,b3]@2 [c#3,c#4]@2 [d3,d4]@6 ~@2 [d3,d4] ~ [d3,d4]@4 [c#3,c#4]@4]/2", // B E5 C# D C#
  X: "[e3,b3]@2 ~@2 [e3,b3]@5 ~@7", // E5
  Y: "[[e3,b3] ~@3 e3@6 b3@2 [c#3,c#4]@2 [d3,d4]@7 ~ [d3,d4] ~ [d3,d4]@4 [c#3,c#4]@4, ~@4 b3@5 ~@23]/2", // E5 C# D C#
  Z: "[[b2,b3] ~@3 [b2,b3]@5 ~ [b2,b3]@2 [c#3,c#4]@2 [d3,d4]@7 ~ [d3,d4] ~ [d3,d4]@4 [c#3,c#4]@4]/2", // B C# D C#
  AA: "[[e3,e4] ~@3 [e3,e4]@5 ~ [e3,e4]@2 [f#3,f#4]@2 [g3,g4]@6 ~@2 [g3,g4] ~ [g3,g4]@4 [f#3,f#4]@4]/2", // E F# G F#
  AB: "[[e3,e4] ~@3 [e3,e4]@15 ~@13]/2", // E
})).s("gm_electric_guitar_clean").gain(0.28)

// other · vibraphone · "Bells"
const vibraphone = note("<~@11 A B C D A B C D ~@26 A B C D A B C D ~@26 A B C D A B ~@42>".pickRestart({
  A: "~@10 b4 ~ c#5 ~ b4 ~", B: "e4 ~@15", C: "~@10 e4 ~ f#4 ~ e4 ~", D: "b3 ~@15",
})).s("gm_vibraphone").gain(0.16).pan(0.4)

// chords · pizzicato strings · "Pizzicat"
const pizzicato_strings = note(`<
  ~@4 A B A B A B ~ C D C E@2 D ~@21 A B A B A B ~ C D C D C D ~@21 F B G B A B ~ C D C D C D ~@21 A B H B A B A B A B A
  B A B A I J K L M ~
>`.pickRestart({
  A: "~@4 [e4,g#4,b4,e5] ~@5 [e4,g#4,b4,e5] ~@5", B: "[d4,f#4,a4,d5] ~@5 [d4,f#4,a4,d5] ~@9", C: "~@10 e4 ~ b4 ~ c#5 ~",
  D: "e4 ~@15", E: "[e4@27 ~ b4 ~ c#5 ~]/2", F: "~@4 [e4,g#4,b4,e5] ~@5 [g#4,b4,e5] ~@5, ~@5 e4 ~@2",
  G: "~@4 [g#4,b4,e5] ~@5 [e4,g#4,b4,e5] ~@5, ~@2 e4 ~@5", H: "~@4 [e4,g#4,e5] ~@5 [e4,g#4,b4] ~@5, ~@2 b4 ~@2 e5 ~@2",
  I: "~@4 [g4,b4,d5,g5] ~@5 [g4,b4,d5,g5] ~@5", J: "~@4 [e4,a4,c#5,e5] ~@5 [e4,a4,c#5,e5] ~@5",
  K: "~@4 [g4,c5,e5] ~@7 [a4,d5,f#5] ~@3", L: "[e4,g#4,b4,e5] ~@3 [e4,g#4,b4,e5] ~@11", M: "[e4,g#4,b4,e5] ~@15",
})).s("gm_pizzicato_strings").gain(0.22)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@3 A B C B C B D E F G H E F G I J K L M B N B O P D Q D B R S D F D T U V W P D X R E F G Y E F G Z AA AB AC AD B AE
  AF R B R AG R S R F R S D B R AH W P AI F R E AJ G AK E F G AL AM AB F AL AN R AN AO S R F R AP R S D B R B R AQ W B R
  AN AR B AS S R AN R B R AT AU G AV AW AX ~
>`.pickRestart({
  A: "~@4 d2 c#2 b1 a1", B: "e1 ~ e1 ~ e1 b1 c#2 a1", C: "d2@2 ~@2 d2@3 ~ d2@2 c#2@2 b1@2 a1@2",
  D: "d2 ~ d2 ~ d2 c#2 b1 f#1", E: "e1 ~ e1 ~ e1 ~ e1 ~", F: "e1 ~ e1 ~ e1 b1 c#2 f#1", G: "a1 ~ a1 ~ a1 ~ a1 ~",
  H: "a1 ~ a1 ~ a1 b1 c#2 f#1", I: "a1 ~ a1 ~ a1 b1 c#2 ~", J: "e1 ~@3 e1@2 ~@2 e1@2 g#1@2 a1@4",
  K: "b1 ~ b1 ~ b1 ~ b1@2", L: "e2 ~ e2 ~ e2 c#2 b1 g#1", M: "a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1@3 ~",
  N: "d2@2 ~@2 d2 ~@3 d2@2 c#2@2 b1@2 a1@2", O: "d2@2 ~@2 d2@3 ~ d2@2 c#2@2 b1@2 f#1@2", P: "e1 ~ e1 ~ e1 b1 c#2@2",
  Q: "e1@2 ~@2 e1@2 ~@2 e1@3 ~ b1@2 c#2@2", R: "d2 ~ d2 ~ d2 c#2 b1 d1", S: "e1 ~ e1 ~ e1 ~ e1 c#2",
  T: "e1@2 e1 ~ e1 b1 c#2@2", U: "d2@3 ~ d2@2 ~@2 d2@2 c#2@2 b1@4", V: "e1 ~@7", W: "~@5 d1@2 d#1",
  X: "e1@2 ~@2 e1 ~@3 e1@2 b1@2 c#2@2 a1@2", Y: "a1 ~ a1 ~ a1 b1 c#2 d1", Z: "a1 ~@3 a1@2 ~@2 a1@2 b1@2 c#2@2 d1@2",
  AA: "e1 ~ e1 ~ e1 g#1@2 a1", AB: "b1@2 ~@2 b1@2 ~@2 b1@2 ~@2 b1@3 ~", AC: "e2 ~ e2 ~ e2 c#2 b1 f#1",
  AD: "a1@2 ~@2 a1@2 ~@2 a1@2 ~@2 a1 ~ a1@2", AE: "d2 ~ d2 ~ d2 c#2 b1@2", AF: "e1 ~@3 e1@2 ~@2 e1 ~@3 e1@2 c#2@2",
  AG: "e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1 ~ c#2@2", AH: "e1@5 ~@11", AI: "d2@3 ~ d2@2 ~@2 d2@2 c#2@2 b1@2 d1@2",
  AJ: "e1 ~@3 e1 ~@3 e1@2 b1@2 c#2@2 f#1@2", AK: "a1 ~ a1 ~ a1 b1 c#2 d2", AL: "a1 ~ a1 ~ a1 b1 c#2 e2",
  AM: "e1 ~ e1 ~ e1 ~ e1 g#1", AN: "e1 ~ e1 ~ e1 ~ b1 c#2", AO: "d2 ~ d2@2 e2 d2 c#2 d#1", AP: "e1 ~ e1 ~ e1 b1 c#2 b1",
  AQ: "e1 ~ e1 ~@5", AR: "d2 ~ d2 ~ d2 ~ d2 c#2", AS: "d2@2 ~@2 d2 ~@3 d2@2 c#2@2 b1@2 d1@2",
  AT: "e1@2 ~@2 e1@2 ~@2 e1@2 ~@2 e1@3 ~", AU: "g1@2 ~@2 g1@2 ~@2 g1@2 ~@2 g1@3 ~", AV: "c2@3 ~ c2@3 ~ d2@2 ~@2 d2@3 ~",
  AW: "e1 ~ e1 ~ e1 b1 c#2 d2", AX: "e1@5 ~@3",
})).s("gm_electric_bass_finger").gain(0.36).pan(0.6)

// drums · kick
const kick = s("bd").struct("<~@4 [x!4]!121 x ~>").gain(0.39)

// drums · hihat
const hihat = s("hh").struct("<~ [x!3 ~] ~@2 [x!8]!121 x ~>").gain(0.35)

// drums · crash
const crash = s("cr").struct(`<
  ~@4 A ~@5 A ~@11 A ~@15 A ~ A ~@3 A ~@11 A ~@15 A ~ A ~@3 A ~@11 A ~@3 A ~@11 A ~ A ~@11 A ~@3 B A ~
>`.pickRestart({
  A: "x", B: "x!2 ~@2",
})).gain(0.39)

// drums · tambourine
const tambourine = s("tb").struct("<~@4 A@11 B A@26 B A@6 B A@72 B A@2 ~@2>".pickRestart({
  A: "~@4 x!3 ~", B: "~@4 x!2 ~@2",
})).gain(0.39)

// drums · cowbell
const cowbell = s("cb").struct("<~@4 [x!3 ~] [x!4]!120 x ~>").gain(0.39)

// drums · lt
const lt = s("lt").struct("<~@3 A B@35 C B@3 C B@28 D C B@33 E B@16 F G ~>".pickRestart({
  A: "~@5 x!3", B: "x!4", C: "x ~ x ~ x!4", D: "x!3 ~ x ~ x ~", E: "x!3 ~ x!4", F: "x ~ x ~ x ~ x!2", G: "x",
})).gain(0.39)

stack(
  piano, rock_organ, electric_guitar_clean, vibraphone, pizzicato_strings, bass, kick, hihat, crash, tambourine,
  cowbell, lt
)

More by The Rolling Stones