Strudelify
Sympathy for the Devil cover art

Beggars Banquet

Sympathy for the Devil

The Rolling Stones

KeyE majorTempo100 bpm
0:00/0:00
// Sympathy for the Devil — The Rolling Stones
// 100 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 190 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/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 · "A.PIANO 1"
const piano = note(`<
  ~@10 A B C D A B C D A B C D A B E F G H I F G H I J K L M N O P Q R O P S T O U V W X Y V W Z X AA AB AC O AD AE AF O
  AG AH AI AJ U AK AL AM AN V W X Y V W Z X AO AP AQ AR@2 AS AT AU AV AW AX AY@2 AZ BA BB BC V W X Y V W Z X AA AB AC O
  AD AE AF O AG AH AI AJ U AK AL AM BD V W X Y V W Z X BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX@2 BY
  BZ CA@2 CB CC CD CE CF CG CH CI CJ CK CH CI CJ CL CM CN CO CP CQ CR CS CT CU ~@3 A ~@7
>`.pickRestart({
  A: "[e4,g#4,b4]", B: "[d4,f#4,a4]", C: "[c#4,e4,g#4]", D: "[b3,d#4,g#4]", E: "[c#4,e4,a4]",
  F: "[b3,e4,g#4]@7 [c#4,e4,a4]", G: "[b3,e4,g#4]", H: "[d#4,f#4,b4]@7 [b3,e4,g#4]", I: "[d#4,f#4,b4]@3 [c#4,e4,a4]",
  J: "[b3,e4,g#4]@10 [c#4,e4,a4]@3 [c#4,e4,a4]@3", K: "[b3,e4,g#4]@10 [b3,e4,g#4]@3 [b3,e4,g#4]@3",
  L: "[b3,e4,g#4]@4 [e4,g#4,b4]@3 [b3,e4,g#4]@3 [e4,g#4,b4]@3 [b3,e4,g#4]@3", // E
  M: "[a3,d4,f#4]@4 [d4,f#4,a4]@3 [a3,d4,f#4]@3 [d4,f#4,a4]@3 [a3,d4,f#4]@3", // D
  N: "[a3,c#4,e4]@4 [a3,c#4,e4]@3 [a3,c#4,e4]@3 [a3,c#4,e4]@3 [a3,c#4,e4]@3", // A
  O: "[b3,e4,g#4]@4 [b3,e4,g#4]@3 [b3,e4,g#4]@3 [c#4,e4,a4]@3 [b3,e4,g#4]@3", // E A E
  P: "[e4,g#4,b4]@4 [e4,g#4,b4]@3 [e4,g#4,b4]@3 [e4,g#4,b4]@3 [e4,g#4,b4]@3", // E
  Q: "[d4,f#4,a4]@4 [d4,f#4,a4]@3 [d4,f#4,a4]@3 [d4,f#4,a4]@3 [c#4,e4,a4]@3", // D A
  R: "[c#4,e4,a4]@3 ~ [c#4,e4,a4]@8 [c#4,e4,a4]@4", // A
  S: "[d4,f#4,a4]@4 [d4,f#4,a4]@3 [d4,f#4,a4]@3 [d4,f#4,a4]@3 [d4,f#4,a4]@3", // D
  T: "[c#4,e4,a4]@4 [c#4,e4,a4]@3 [c#4,e4,a4]@5 [c#4,e4,a4]@4", // A
  U: "[b3,e4,g#4]@4 [b3,e4,g#4]@3 [b3,e4,g#4]@3 [b3,e4,g#4]@3 [b3,e4,g#4]@3", // E
  V: "[b3,d#4,f#4]@4 [b3,d#4,f#4]@6 [b3,e4,g#4]@3 [b3,e4,g#4]@3", // B E
  W: "[b3,d#4,f#4]@4 [b3,d#4,f#4]@4 [b3,d#4,f#4]@3 [b3,d#4,f#4]@3 [c#4,e4,a4]@2", // B A
  X: "[b3,e4,g#4]@4 [b3,e4,g#4]@6 [c#4,e4,a4]@3 [b3,e4,g#4]@3", Y: "[b3,e4,g#4]!2 [b3,e4,g#4]@2",
  Z: "[b3,e4,g#4]@4 [b3,e4,g#4]@6 [c#4,e4,a4]@3 [c#4,e4,a4]@3", // E A
  AA: "[e4,g#4,b4]@4 [b3,e4,g#4]@6 [b3,e4,g#4]@3 [b3,e4,g#4]@3", // E
  AB: "[a3,d4,f#4]@4 [a3,d4,f#4,g#4]@3 [a3,d4,f#4]@3 [a3,d4,f#4]@3 [a3,d4,f#4]@3", // D
  AC: "[a3,c#4,f#4]@4 [a3,c#4,f#4]@4 [a3,c#4,f#4]@3 [a3,c#4,f#4]@3 [a3,c#4,f#4]@2", // F#m
  AD: "[b3,e4,g#4]@4 [b3,e4,g#4] [b3,e4,g#4]@2 [b3,e4,g#4]@3 [c#4,e4,a4]@3 [b3,e4,g#4]@3", // E A E
  AE: "[a3,d4,f#4]@4 [a3,d4,f#4]@3 [a3,d4,f#4]@3 [a3,d4,f#4,g#4]@3 [a3,d4,f#4]@3", // D
  AF: "[c#4,e4,a4]@4 [a3,c#4,e4]@5 c#4 [a3,c#4,e4]@3 [a3,c#4,e4]@3", // A
  AG: "[b3,e4,g#4]@5 [b3,e4,g#4]@3 [b3,e4,g#4]@5 [b3,e4,g#4]@3", // E
  AH: "[a3,d4,f#4]@4 [a3,d4,f#4]@4 [a3,d4,f#4]@2 [a3,d4,f#4] [a3,d4,f#4]@2 [a3,d4,f#4,g#4]@3", // D
  AI: "[c#4,e4]@2 a3@2 [a3,c#4,e4]@4 [a3,c#4,e4]@3 [a3,c#4,e4]@3 [a3,c#4,e4]@2", // C#m A
  AJ: "[e4,g#4]@2 b3@2 [e4,g#4]@2 b3 [e4,g#4]@2 [c#4,e4,a4]@3 [b3,e4,g#4]@3 ~", // E A E
  AK: "[d4,f#4]@2 a3@2 [d4,f#4] a3@2 [d4,f#4]@3 [a3,d4,f#4]@3 [a3,d4,f#4]@3", // D
  AL: "[c#4,e4,a4]@4 [a3,c#4,e4]@3 [a3,c#4,e4]@2 [a3,c#4,e4]@3 [a3,c#4,e4]@2 [a3,c#4,e4]@2", // A
  AM: "[b3,e4,g#4]@2 b3@2 [b3,e4,g#4]@3 [b3,e4,g#4]@3 [c#4,e4,a4]@3 [b3,e4,g#4]@3", // E A E
  AN: "[e4,g#4]@2 b3@2 [e4,g#4]@2 b3 [e4,g#4]@2 b3 [e4,g#4]@2 [b3,e4,g#4]@2 [b3,e4,g#4]@2", // E
  AO: "g4 g#4 e4@2 g4 g#4 e4@2 g4 g#4 e4@3 [e4,g#4,b4]@3", // E
  AP: "[f#4,a4]@2 d4@2 [f#4,a4]@2 d4@2 g4 a4 [e4,g#4]@2 [d4,f#4]@4", // F#m E D
  AQ: "~@2 c4 [c#4,e4] c4 [c#4,e4]@2 [c#4,e4]@3 [d#4,f#4]@2 c4@2 [c#4,e4]@2", // C#m D#m C#m
  AR: "~@2 [b4,d5]@2 [a4,c#5]@2 [g#4,b4]@3 [a4,c#5]@3 g4@3 ~", // Bm A G#m A
  AS: "~@2 b4 [a4,c5]!2 [g4,b4]@3 [f#4,a4]@3 [f#4,b4]@3 [f#4,a4]@2", // Am G F#m B5 F#m
  AT: "~@2 f#4 [e4,g4]@2 [d#4,f#4]@3 [c#4,e4]@3 [d#4,f#4]@3 [c#4,e4]@2", // Em D#m C#m D#m C#m
  AU: "~@2 a#3 [b3,e4]!2 [b3,e4]@3 [b3,e4]@2 [b3,e4]@2 [a3,c#4]@2 [g#3,b3]@2", // E5 A G#m
  AV: "~@2 [b4,d5]@2 [b4,d5]@3 [b4,d5]@3 [a4,c#5] g4 [g#4,b4]@4", // Bm A G#m
  AW: "~@2 [a4,c5]@2 [a4,c5]@3 [a4,c5]@3 [g4,b4]@2 [f#4,a4]@4", // Am G F#m
  AX: "~@2 [c#5,e5]@2 [c#5,e5]@3 [c#5,e5]@3 [b4,d5]@2 [a4,c#5]@4", // C#m Bm A
  AY: "~@2 a#4 [b4,d#5] e4 a#4 [b4,d#5] e4 a#4 [b4,d#5] e4 a#4 [b4,d#5] e4 a#4 [b4,d#5]", // B
  AZ: "~@2 g#4 [a4,c5] d4 g#4 [a4,c5] d4 g#4 [a4,c5] e4 g#4 [a4,c5] e4 g#4 [a4,c5]", // Am
  BA: "~@2 [e5,g5]@2 [e5,g5]@3 [e5,g5]@3 [d5,f#5]@2 c5 [c#5,e5] a4 [c#5,e5]", // Em D C#m
  BB: "~@2 [b4,d#5]@2 [b4,d#5]@3 [b4,d#5]@3 [a4,c#5]@2 a#4 [g#4,b4] e4 [g#4,b4]", // B A G#m
  BC: "~@2 a#4 [g#4,b4] e4 [a4,c#5]@3 a#4 [g#4,b4] e4 [a4,c#5] [a4,c#5]@2 [g#4,b4]@2", // G#m A G#m A G#m
  BD: "~@2 [g#3,b3]@2 [g#3,b3]@2 [g#3,b3]!2 [g#3,b3]@4 [g#3,b3]@4", // G#m
  BE: "a#4 [g#4,b4] e4@2 [b4,d5]@3 [b4,d5]@3 [a4,c#5]@2 a4 [g#4,b4] e4 [g#4,b4]", // G#m Bm A G#m
  BF: "~@2 [a4,c5]@2 [a4,c5]@3 [a4,c5]@3 [g4,b4]@2 f4 [f#4,a4] d4 [f#4,a4]", // Am G F#m
  BG: "~@2 [e4,g4]@2 [e4,g4]@3 [e4,g4]@3 [d4,f#4]@2 c4 [c#4,e4] a3 [c#4,e4]", // Em D C#m
  BH: "~@2 [e4,g#4]@3 [f#4,a4]@3 [g#4,b4]@3 [f#4,a4]@3 [e4,g#4]@2", // E F#m G#m F#m E
  BI: "~@2 [g#4,b4] [b4,d5]@3 [a4,c#5]@2 [g4,a#4] [g#4,b4]@2 [a4,c#5]@3 [g#4,b4]@2", // G#m Bm A Gm G#m A G#m
  BJ: "~@2 [g#4,b4] [a4,c5]@2 [g4,b4]@3 [f4,g4] [f#4,a4]@2 [g4,b4]@3 [f#4,a4]@2", // G#m Am G Fsus2 F#m G F#m
  BK: "~@2 [e4,g4]@2 [e4,g4]@3 [e4,g4]@3 [d#4,f#4]@2 c4 [c#4,e4] a3 [c#4,e4]", // Em D#m C#m
  BL: "~@2 [b3,d4]!3 [b3,d4]@2 [b3,d4]!3 [b3,d4]@2 [b3,d4]@2 [a3,c#4]@2", // Bm A
  BM: "~@2 [b4,d5]@2 [b4,d5] [b4,d5]@2 [b4,d5]@3 [b4,d5]@2 [a4,c#5]@2 g4 [g#4,b4]", // Bm A G#m
  BN: "~@2 [a4,c5]@2 [a4,c5]@3 [a4,c5]@2 [a4,c5]@3 [g#4,b4]@2 f4 [f#4,a4]", // Am G#m F#m
  BO: "~@2 [e4,g4]!3 [e4,g4]@2 [e4,g4]@2 [e4,g4]@2 [d#4,f#4]@3 c4 [c#4,e4]", // Em D#m C#m
  BP: "~@2 g4 [g#4,b4] g4!2 [g#4,b4] d4 g4 [g#4,b4] d4 [g#4,b4] d4 [g#4,b4] d4 [g#4,b4]", // G#m
  BQ: "g4 [g#4,b4] d4 [g4,b4] [g#4,b4] d4 g4 [g#4,b4] d4 g4 [g#4,b4] d4 g4 [g#4,b4] d4@2", // G#m G G#m
  BR: "f4 [f#4,a4] c4 f4 [f#4,a4] c4 f4 [f#4,a4] c4 f4 [f#4,a4] c4 f4 [f#4,a4] c4@2", // F#m
  BS: "~@2 [e5,g5]@2 [e5,g5]@3 [e5,g5]@3 [d5,f#5]@2 c5 [c#5,e5] a4@2", // Em D C#m
  BT: "~@2 [b4,d5]@2 [b4,d5]@3 [b4,d5]@3 [a4,c#5]@2 g4@2 [g#4,b4]@2", // Bm A G#m
  BU: "[b4,e5]@2 [a4,d#5]@2 [g#4,b4]@3 [b4,e5]@3 [a4,c#5]@2 [g#4,b4]@3 [g#4,b4]", // E5 Adim G#m E5 A G#m
  BV: "~@2 [a4,c5]@2 [a4,c5]@3 [a4,c5]@3 [g4,b4]@2 f4@2 [f#4,a4]@2", // Am G F#m
  BW: "[c#5,e5]@2 [c#5,e5]@3 [b4,d5]@3 [e5,g5]@3 [d5,f#5]@3 [c#5,e5] a4", // C#m Bm Em D C#m
  BX: "~@2 [b4,d5]!2 [b4,d5]@3 [b4,d5]!2 [b4,d5]@2 [b4,d5]@2 [b4,d5]@2 [b4,d5]", // Bm
  BY: "~@2 [a4,c5]!2 [a4,c5]@3 [a4,c5]@2 [a4,c5]@2 [a4,c5] [a4,c5]@2 [a4,c5]@2", // Am
  BZ: "~@2 [e5,g5]@2 [e5,g5]@3 [e5,g5]@3 [d5,f#5]@2 c5@2 [c#5,e5]@2", // Em D C#m
  CA: "~@2 [a4,c#5] [b4,d5]@2 [a4,c#5]@3 [g#4,b4]@3 [a4,c#5]@3 [g#4,b4]@2", // A Bm A G#m A G#m
  CB: "~@2 [a4,c5]@3 [g4,b4]@3 [f#4,a4]@3 [g4,b4]@3 [f#4,a4]@2", // Am G F#m G F#m
  CC: "~@2 [e4,g4]@2 [e4,g4]@3 [e4,g4]@3 [d4,f#4]@2 c4 c#4 a3@2", // Em D
  CD: "g#4 [a4,b4] [c5,c#5] [d5,d#5] [e5,f5] [f#5,g5] [g#5,a5] [a#5,b5] [c6,c#6] [d6,d#6] [e6,f6] [f#6,g6] [g#6,a6] [a#6,b6] c7 ~", // Asus2 C#maj7 D#maj7 Fmaj7 Gmaj7 Amaj7 Bmaj7 C#maj7 …
  CE: "d3@2 [e3,f3,g3] [a3,b3,c4,d4,e4] [d4,f4,f#4,g4,a4,b4] [a4,c5,c#5,d5,e5,f5] [e5,g5,a5,b5,c6,d6] [e6,f6,g6,a6] [a6,b6,c7] ~ b6 [e6,f6,g6,a6] [a5,b5,c6,d6] [c5,d5,e5,f5,g5] [d4,e4,f4,g4,a4,b4,d5,e5] [f3,g3,a3,b3,c4,d4,e4,f4]", // Em Am G7 Dm7 Em7 Fmaj7 Am Fmaj7 …
  CF: "[c3,d3,e3] ~@2 d3 e3 [f3,g3,a3,b3] [c4,d4,e4,f4,g4] [f4,g4,a4,b4,c5,d5,e5] [d5,f5,g5,a5,b5,c6,d6] [c6,d6,e6,f6,g6,a6,b6,c7] a6 [b6,c7] [f6,g6,a6] [b5,c6,d6,e6] [c5,d5,e5,f5,g5,a5,d6] [d4,e4,f4,g4,a4,b4,d5]", // C G7 C Fmaj7 Dm7 Cmaj7 F Cmaj7 …
  CG: "[g3,a3,b3,c4,d4] [e3,f3] [e5,g5]@2 [e5,g5]@3 [e5,g5]@3 [d5,f#5]@2 c5 [c#5,e5] a4 [c#5,e5]", // G Fmaj7 Em D C#m
  CH: "~@2 a#4 [b4,d5] e4 a#4 [b4,d5] e4 a#4 [b4,d5] e4 a#4 [b4,d5] e4 a#4 [b4,d5]", // Bm
  CI: "e4 a#4 [b4,d5] e4 a#4 [b4,d5] e4 a#4 [b4,d5] e4 a#4 [b4,d5] e4 a#4 [b4,d5] e4", // Bm
  CJ: "d4 g#4 [a4,c5] d4 g#4 [a4,c5] d4 g#4 [a4,c5] d4 g#4 [a4,c5] c4 g#4 [a4,c5] d4", // Am
  CK: "~@2 [e4,g4]@2 [e4,g4]@3 [e4,g4]@3 [d4,f#4]@2 [d4,f#4]@2 [c#4,e4]@2", // Em D C#m
  CL: "a3 d#4 [c#4,e4] a3 d#4 [c#4,e4] a3 d#4 [c#4,e4] a3 d#4 [c#4,e4] a3 d#4 [c#4,e4] a3", // C#m
  CM: "~@2 [g#4,b4]@2 [g#4,b4]@3 [g#4,b4]@3 [a4,c#5]@3 [g#4,b4]@2 [g#4,b4]", // G#m A G#m
  CN: "~@2 a#5 [b5,d#6]!2 [a5,c#6]@3 [g#5,b5]@3 [a5,c#6]@3 [g#5,b5]@2", // B A G#m A G#m
  CO: "~@2 [d5,f#5,a5]!3 [d5,f#5,a5]@2 [d5,f#5,a5]@3 [e5,g5]@2 f5 [d5,f#5]@3", // D Em D
  CP: "~@2 [a4,c#5]!3 [a4,c#5]@2 [a4,c#5]@3 [b4,d5]@2 [a4,c#5]@3 [a4,c#5]", // A Bm A
  CQ: "~@2 [b4,e5]@2 [b4,e5]@3 [b4,e5]@5 [a4,c#5]@2 [a4,c#5]!2", // E5 A
  CR: "~@2 [b5,d6]@2 [b5,d6]@3 [b5,d6]@3 [a5,c#6]@2 [g#5,b5]@4", // Bm A G#m
  CS: "~@2 [a4,c#5]@2 [a4,c#5]@3 [a4,c#5]@3 [g5,b5]@2 [f#5,a5]@4", // A G F#m
  CT: "~@2 [e5,a5,c#6]@2 [e5,a5,c#6]@3 [b5,d6]@3 [b5,d6]@2 [a5,c#6]@2 [a5,c#6]@2", // A Bm A
  CU: "[g#5,b5]@2 [a5,c#6]@2 [g#5,b5]@2 [a5,c#6] [g#5,b5]@3 [a5,c#6]@2 [g#5,b5]@2 [a5,c#6]@2", // G#m A G#m A G#m A G#m A
})).s("gm_piano").gain(0.5).pan(0.3)

// other · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~@81 A@2 B C D E F G H I J@2 K L M@3 ~@38 N O ~ P I ~@2 Q@2 R S E T@2 U@2 V@2 W X@3 Y ~ Z@2 ~@3 AA AB AC AD ~ AE ~ AF
  I AG AH AI ~@13
>`.pickRestart({
  A: "[~@5 e6 d6 g5 b5 a5 e5@22]/2", B: "~@2 e6 g5 b5 a5@2 g5 e5@8", C: "~@10 e5@2 g5 a5 ~@2",
  D: "a5 b5 ~@8 e5@2 g5 a5 ~@2", E: "d6 e6 ~@14", F: "a5@2 b5@2 a5@8 g5@3 g#5", G: "e5 ~",
  H: "~@2 [g5,a5] e5 a5 ~@2 a5 g5 e5 d5 g5@2 e5@3", I: "~@2 e5@2 g5 a5@2 a5 b5 a5@2 g5 a5 g5 e5@2",
  J: "[~@2 e5@2 a5 a5@3 a5 b5 a5@2 g5 a5 g5@10 e5@8, ~@5 b5 ~@26]/2", K: "~@4 e5 ~@3", L: "~@4 e5@2 ~@2 e5 e5@2 e5 ~@4",
  M: "[~@2 e5@2 g5 a5@2 a5 b5 a5@3 g5 a5 g5@8 e5 d5 e5 g5 a5@2 a5 a5@2 e5@9 e5@8]/3", N: "~@2 [a5,b5] a5 g5 e5@2 ~@9",
  O: "~@8 b5 a5 g5 e5@5", P: "~@2 e6 g5 b5 a5 e5@2 ~@8", Q: "~@2 e6@2 ~ d6@3 g5@3 e5@5",
  R: "~@2 e6@2 ~ d6@3 g5@3 e5@3 d5@2", S: "e5@4 ~@6 e6@2 d6 b5@3", T: "[~ d6 e6@10 ~@4]/2",
  U: "[~@2 a5 b5 ~ a5@3 g5 a5@2 g5@13 ~@8]/2", V: "[~@11 b5 a5 g5 e5@6 ~@12]/2", W: "~@2 e5@2 g5 a5@3 ~@8",
  X: "~ e5 ~@6", Y: "~@2 e5@2 g5 a5@2 a5 b5@2 a5@2 g5@4", Z: "[~ a5 b5 a5@9 ~@4]/2", AA: "~ b4 c#5 e5 ~@4",
  AB: "~@10 b5@5 g5", AC: "e5 ~@7", AD: "~@2 d5@2 e5@2 d5@2 g4@3 e4@5", AE: "~ e5@7", AF: "e5",
  AG: "~@2 a5 b5 a5@2 g5 b5@2 a5@2 g5 a5 g5 e5@2", AH: "~@14 e5 d5", AI: "b4 a4 e4@6 ~@8",
})).s("gm_electric_guitar_jazz").gain(0.72).pan(0.4)

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

// drums · mid tom
const mid_tom = s("mt").struct("<[x ~ x ~ x!6 ~ x!5]!182 x ~@7>").gain(0.48)

// drums · crash
const crash = s("cr").struct("<~@131 x!4 ~@55>").gain(0.72)

// drums · congas
const congas = s("conga:18").struct("<~@2 [~ x ~@3 x ~@2]!181 ~@7>").gain(2.56)

// drums · congas
const congas_2 = s("conga:33").struct("<~ [~@14 x!2] [~@6 x!2 ~@6 x!2]!181 ~@7>").gain(2.56)

// drums · shaker
const shaker = s("sh").struct("<[~ x ~ x ~ x ~ x]!3 [x!16]!178 [x!15 ~] ~@8>").gain(0.72)

stack(piano, electric_guitar_jazz, bass, mid_tom, crash, congas, congas_2, shaker)

More by The Rolling Stones