Strudelify
Change the World cover art

1999

Change the World

Eric Clapton

KeyE majorTempo98 bpm
0:00/0:00
// Change the World — Eric Clapton
// 98 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 86, 4/4 at bar 86) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 94 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): g4.
setcpm(98/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 nylon · "g1"
const acoustic_guitar_nylon = note(`<
  A@6 B@2 C@6 D@8 E@2 F@2 G H G I J K@2 L@8 M@6 N@6 F@2 G H G I J O P@2 K@2 Q@8 F@2 G H G I J O J O J R@4 S@6
>`.pickRestart({
  A: "[~ g3 ~@6 f#2@4 ~@2 g2@4 g2@2 ~@20 f#2@4 ~@2 g3 ~@18 g3 ~@6 f#2@4 ~@2 g2@4 ~@12 g2@2, e2@4 ~@2 e2@4 ~@2 f#2@4 ~@4 g2@2 ~@10 g2@4 ~@2 g2@4 ~@2 f#2@4 ~@5 b3@2 ~@5 b3@4 ~@2 [b2,g#3]@8 ~@4 b3@8 a3@8 ~@2, ~ [b2,g#3]@4 ~@2 [d3,b3]@4 d3@2 d3@2 b3@2 ~@3 [e3,a3]@4 ~ e4@3 e4@2 ~ e4@2 ~@3 [e3,a3]@4 ~@5 b3@2 ~, ~@8 [e3,a3]@8 ~@5 a3@2 ~ b3@4 a3@4 ~@2 [d3,b3]@8 ~@4 [b2,g#3]@8 e2@4 e2@4 ~@2 e2@4 ~@2 e2@4 ~@2 f#2@4 ~@2 g2@4 ~@10, ~@39 d3@3 d3@2 ~@2 d3@2]/6", // E G A5 G E
  B: "[~@8 [f#2,e3]@3 ~@3 [b2,f#3,a3,b3,e4]@16 ~@2, g2@2 ~ g2@2 ~ f#2@2 ~@8, ~@2 [d3,b3]@8 ~ e3@3 ~@18, ~@4 a3@3 ~@9]/2", // F#7 Bsus4 G
  C: "[~@27 b3 b3@2 ~@15 g3 ~@45 b3 b3@2 b3@2, e2@4 ~@2 e2@4 ~@2 e2@4 ~@5 b3@2 ~@7 b3@4 [d3,b3]@8 ~@4 [b2,g#3]@8 ~@12 [b2,g#3]@8 ~@4 [d3,b3]@8 d3@4 d3@2 ~@4, ~@2 [b2,g#3]@8 ~@4 [d3,b3]@8 d3@4 d3@2 ~@4 e2@4 ~@2 e2@4 ~@2 e2@4 ~@4 e2@4 e2@4 e2@4 e2@4 ~@2 e2@4 ~@2 e2@4 ~@5 b3@2 ~@9, ~@4 [c#3,a3]@4 ~ e4@3 e4@2 ~@6 [c#3,a3]@4 ~ e4@2 b3@2 e4@2 g#3@2 ~@3 [c#3,a3]@4 ~ e4@3 e4@2 ~@2]/6", // G E G E G F#m
  D: "[~@13 g3 ~@8 g#3@2 ~@22 e4@4 ~@10 g3@2 ~@61 b3 ~@2 e4@2, e2@4 ~@2 e2@4 ~@2 e2@4 ~@4 e2@4 ~@2 e2@8 ~@6 [f#3,d4]@8 ~@2 e4@4 ~@2 e4@4 ~@12 [f#3,d4]@8 ~@24 [c#3,a3]@8 ~@5 b3@2 ~@5 b3@4, ~ [d3,b3]@4 ~@2 [b2,g#3]@4 ~@5 a2@2 ~ a2@2 ~ a2@2 ~@2 a2@2 ~ a2 ~@2 a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~@3 a2@2 e2@2 ~ e2@2 ~@11, ~@8 [c#3,a3]@8 ~@2 e4@4 ~@2 g#3@4 ~@2 e3@4 [e3,c#4]@8 ~@4 g3@8 g3@4 ~ e3@2 ~ g3@4 [g3,e4]@8 ~@4 c#4@8 c#4@12 ~@10 e4@4 ~@2 e4@6 e4@4 ~@4, ~@39 e3@3 e3@2 ~@3 b2@2 [b2,g#3]@4 ~@2 [d3,b3]@4 d3@2 d3 ~@2]/8", // D F#m G E F#m C#m C E …
  E: "[~@7 [f#2,f#3,c4,d#4,g#4]@2 [f#2,f#3,c4,d#4,g#4]!2 [f#2,f#3,c4,d#4,g#4]@2 [f#2,f#3,c4,d#4,g#4] [f#2,f#3,c4,d#4,g#4]@2, e2@2 ~ e2@2 ~@11, ~ [d3,b3]@4 ~@11, ~@2 [c#3,a3]@3 ~@3]/2", // G#7 G F#m
  F: "[[f#2,c#3,e3,a3,c#4,f#4]@2 [f#2,c#3,e3,a3,c#4,f#4]@2 [f#2,c#3,e3,a3,c#4,f#4]@4 [g#2,f#3,c4,d#4,g#4]@2 [g#2,f#3,c4,d#4,g#4]@2 [g#2,f#3,c4,d#4,g#4]@2 [c#3,e3,g#3,c#4,e4,g#4]@4 [c#3,e3,g#3,c#4,e4,g#4]@2 [c#3,e3,g#3,c#4,e4,g#4]@2 [c#3,e3,g#3,c#4,e4,g#4]@2 [c#3,e3,g#3,c#4,e4,g#4]@3 [c#3,e3,g#3,c#4,e4,g#4] [c#3,e3,g#3,c#4,e4,g#4]@2 [c#3,e3,g#3,c#4,e4,g#4]@2]/2", // F#m7 G#7 C#m
  G: "[d#3,a3,c#4,f#4]@3 [d#3,a3,c#4,f#4] [d#3,a3,c#4,f#4]@2 [d#3,a3,c#4,f#4]@2 [g#2,f#3,c4,d#4,g#4]@3 [g#2,f#3,c4,d#4,g#4] [g#2,f#3,c4,d#4,g#4]@2 [g#2,f#3,c4,d#4,g#4]@2", // D#m7b5 G#7
  H: "[c#3,e3,g#3,b3,e4,g#4]!3 [c#3,e3,g#3,b3,e4,g#4]@2 [c#3,e3,g#3,b3,e4,g#4]!3", // C#m7
  I: "[c#3,e3,g#3,b3,e4,g#4] [c3,d#3,g3,a#3,d#4,g4] [b2,d3,f#3,a3,d4,f#4]!2", // C#m7 Cm7 Bm7
  J: "[a2,e3,a3,c#4,e4]@2 [a2,e3,a3,c#4,e4]!2 [g#2,f#3,b3,e4]@2 [g#2,f#3,b3,e4]@2", // A E
  K: "[[g#2,e3,b3] [g2,e3,a#3] [f#2,e3,a3]@6]/2", // E Edim F#m7
  L: "[~ g3 ~@6 f#2@4 ~@2 g2@4 g2@2 ~@20 f#2@4 ~@2 g3 ~@44 b3 b3@2 ~@15 g3 ~@16 g#3@2, e2@4 ~@2 e2@4 ~@2 f#2@4 ~@4 g2@2 ~@10 g2@4 ~@2 g2@4 ~@2 f#2@4 ~@5 b3@2 ~@5 b3@4 ~@2 [b2,g#3]@8 ~@4 [d3,b3]@8 d3@4 d3@2 ~@4 e2@4 ~@2 e2@4 ~@2 e2@4 ~@4 e2@4 e2@4 e2@4, ~ [b2,g#3]@4 ~@2 [d3,b3]@4 d3@2 d3@2 b3@2 ~@3 [e3,a3]@4 ~ e4@3 e4@2 ~ e4@2 ~@3 [c#3,a3]@4 ~ e4@3 e4@2 ~@6 [c#3,a3]@4 ~ e4@2 b3@2 e4@2 ~, ~@8 [e3,a3]@8 ~@5 a3@2 ~ b3@4 a3@4 ~@2 [d3,b3]@8 ~@4 [b2,g#3]@8 e2@4 e2@4 ~@2 e2@4 ~@2 e2@4 ~@2 e2@4 ~@5 b3@2 ~@7 b3@4 [d3,b3]@8 ~@4 [b2,g#3]@8 ~@10]/8", // E G E G A5 F#m A5 G …
  M: "[~@27 b3 b3@2 ~@15 g3 ~@8 g#3@2 ~@22 e4@4 ~@10 g3@2 g3@2, e2@4 ~@2 e2@4 ~@2 e2@4 ~@5 b3@2 ~@7 b3@4 [d3,b3]@8 ~@4 [b2,g#3]@8 ~@10 a2@4 ~@2 a2@4 ~@2 a2@4 ~@4 a2@4 ~@2 a2@2 ~@4, ~ [b2,g#3]@4 ~@2 [d3,b3]@4 d3@2 d3 ~@2 e2@2 ~ e2@2 ~ e2@2 ~@2 e2@2 ~ e2@4 ~@3 [f#3,d4]@4 ~ e4@2 ~ e4@2 ~@2, ~@8 [c#3,a3]@8 ~@2 e4@6 e4@4 ~@12 [c#3,a3]@8 ~@2 e4@4 ~@2 g#3@4 ~@2 e3@4 [e3,c#4]@8 ~@4 g3@8 g3@4 ~ e3@2 ~@3]/6", // G E G D F#m C#m
  N: "[~@59 b3 ~@18 [f#2,f#3,c4,d#4,g#4]@4 [f#2,f#3,c4,d#4,g#4]@2 [f#2,f#3,c4,d#4,g#4]@2 [f#2,f#3,c4,d#4,g#4]@4 [f#2,f#3,c4,d#4,g#4]@2 [f#2,f#3,c4,d#4,g#4]@4, a2@2 ~ a2@2 ~ a2@2 ~ a2@2 ~@3 a2@2 e2@2 ~ e2@2 ~@11 e2@2 ~ e2@2 ~@11, ~ [g3,e4]@4 ~@2 c#4@4 c#4@6 ~@5 e4@2 ~ e4@3 e4@2 ~ e4@2 ~@15, ~@8 [f#3,d4]@8 ~@24 [c#3,a3]@8 ~@5 b3@2 ~@5 b3@4 ~@8 [c#3,a3]@12 ~@12, ~@7 e3@3 e3@2 ~@3 b2@2 [b2,g#3]@4 ~@2 [d3,b3]@4 d3@2 d3 ~@3 [d3,b3]@4 ~@11]/6", // G#7 C D F#m E G
  O: "[g#2,e3,b3] [g2,e3,a#3] [f#2,e3,a3]!2", // E Edim F#m7
  P: "[~@6 e2 ~ [a2,e3,a3,c#4,e4]@2 [a2,e3,a3,c#4,e4]!2 [g#2,f#3,b3,e4]@2 [g#2,f#3,b3,e4]@2, e2@2 ~ e2@2 ~@2 e2@2 ~@7, ~ [b2,g#3]@4 ~@11, ~ [c#3,a3] ~@2]/2", // A E F#m
  Q: "[~ g3 ~@6 f#2@4 ~@2 g2@4 g2@2 ~@20 f#2@4 ~@2 g3 ~@18 g3 ~@6 f#2@4 ~@2 g2@4 g2@2 ~@20 [f#2,e3]@3 ~@3 [g#2,f#3,c4,d#4,g#4]@4 [g#2,f#3,c4,d#4,g#4]@2 [g#2,f#3,c4,d#4,g#4]@2 [g#2,f#3,c4,d#4,g#4]@4 [g#2,f#3,c4,d#4,g#4]@2 [g#2,f#3,c4,d#4,g#4]@4, e2@4 ~@2 e2@4 ~@2 f#2@4 ~@4 g2@2 ~@10 g2@4 ~@2 g2@4 ~@2 f#2@4 ~@5 b3@2 ~@5 b3@4 ~@2 [b2,g#3]@8 ~@4 [d3,b3]@8 d3@4 d3@4 b3@4 [d3,b3]@8 ~ e3@3 ~@18, ~@2 [b2,g#3]@8 ~@4 [d3,b3]@8 d3@4 d3@4 b3@4 ~@6 [e3,a3]@8 ~@2 e4@6 e4@4 ~@2 e4@4 ~@6 [e3,a3]@8 ~@5 a3@2 ~ b3@4 a3@4 g#2@4 ~@2 g#2@4 ~@2 f#2@4 ~@16, ~@8 [e3,a3]@8 ~@5 a3@2 ~ b3@4 a3@4 ~@2 [d3,b3]@8 ~@4 [b2,g#3]@8 e2@4 e2@4 ~@2 e2@4 ~@2 e2@4 ~@2 f#2@4 ~@4 g2@2 ~@10 g1@8 a3@6 ~@18]/8", // F#7 G#7 E G E G A5 G …
  R: "[[g#2,e3,b3]@4 [g2,e3,a#3]@4 [g2,d3,a3]@32 ~ g3 ~@6 f#2@4 ~@2 g2@4 g2@2 ~@2 d3@2, ~@20 e2@2 ~ e2@2 ~ f#2@2 ~@2 g2 ~, ~@21 [b2,g#3]@4 ~@2 [d3,b3]@4 ~, ~@48 [e3,a3]@8 ~@5 a3@2 ~]/4", // E Edim Gsus2 E G A5
  S: "[~@3 b3@2 ~@7 [e2,b2,d3,g#3]@35 ~, b3@4 a3@4 ~@6 e4@4 ~@6 g3 ~@71, ~ d3@2 ~@2 [g2,d3,b3]@4 ~@39, ~ [f#2,e3,a3] ~@4]/6", // E7 G F#m7
})).s("gm_acoustic_guitar_nylon").gain(0.36).pan(0.2)

// other · banjo · "g2"
const banjo = note("<~@37 A B A B A B A B C D C D A B E@2 ~@12 A B A B A B E@2 ~@21>".pickRestart({
  A: "d4 e4!3 e4@2 e4@2 d4 e4!3 e4@2 e4@2", B: "d4 e4!3 e4@2 e4@2 e4@2 e4!2 e4@2 e4@2, ~@8 d4 ~@7",
  C: "g4 a4!3 a4@2 a4@2 g4 a4!3 a4@2 a4@2", D: "g4 a4!3 a4@2 a4@2 a4@2 a4!2 a4@2 a4@2, ~@8 g4 ~@7",
  E: "[d4 e4!3 e4@2 e4@2 d4 e4!3 e4@2 [d#4,f#4,c5]@4 [d#4,f#4,c5] ~ [d#4,f#4,c5] ~ [d#4,f#4,c5] ~ [d#4,f#4,c5] ~ [d#4,f#4,c5] ~ [d#4,f#4,c5] ~ [d#4,f#4,c5] ~]/2", // Cdim
})).s("gm_banjo").gain(0.19).pan(1)

// other · acoustic guitar steel · "g3"
const acoustic_guitar_steel = note(`<
  ~@4 A@2 B@4 ~@3 C@2 D@2 ~@2 E F ~@2 G@2 ~@2 H@2 ~ I@2 ~ J@2 K@2 L@2 ~ M N ~@2 O ~@3 P Q ~@2 R ~@3 S@2 ~@3 T ~@3 U V
  W@2 X Y Z@3 ~@2 AA ~@2 AB@4 AC@2 AD@4 AE AF AG ~@2
>`.pickRestart({
  A: "[~@2 b4 a4@3 d5 b4@9, ~@14 a4 ~@17]/2", B: "[~@2 b4@4 b4 [g4,a4] a4@2 g4@2 e4 d4 b3@12 a3 b3 d4@2 e3@30 ~@4]/4",
  C: "[~@5 b4@11]/2", D: "[~@6 g4 e4@9]/2", E: "~@5 a4 g4 ~", F: "e4 ~",
  G: "[~@3 f#4@2 ~@3, ~ g#4@2 c#4@2 e4@2 ~@9, ~ c4 d#4 ~@5]/2",
  H: "[~@3 c#5@3 c#5@3 ~@7, ~@3 f#4 ~@4, ~@12 g#4 ~@19]/2", I: "[~@7 e4@2 ~@7, ~@5 b3 e4 ~@9, ~@11 c#4@2 f#4@2 ~@17]/2",
  J: "[~@2 b3 a3@3 d4 b3@9]/2", K: "[~@2 b3@4 b3 [g3,a3] a3@2 g3@2 e3 d3 e3@6 a2 b2 d3@2 a2 [a2,a#2] g2@2 d3@2 e3@2]/2",
  L: "[e3@3 ~]/2", M: "~@4 g#4@4 e4 d4 a3 b3 a3@3 g3", N: "e3", O: "~@8 a4 g#4 g4 g#4@3 ~@2",
  P: "~@8 a#4 [a#4,b4] e4!2 g4@2 e4 c#4", Q: "e4", R: "~ [f#3,c4] [c4,d#4] [d#4,g#4]@3 g#4 f#4",
  S: "[~@3 c#5@3 g#4 b4@3 ~@6]/2", T: "~@2 b3 c#4 e4 f#4 e4@8 ~@2", U: "~ b4!2 [b4,d5]!5",
  V: "a4@3 g4 a4@2 g4@3 g#4 a4@2 ~@4",
  W: "[a4@2 g4@2 e4@2 ~ d4 e4@3 d4 b3 [g3,a3] e3@4 e3 g3 b3@2 d4@2 d4 e4 g4 e4 a4@2 g4@2, ~@3 b3 ~@12]/2", // Gsus2
  X: "e4@4 ~@2 b4 d5 d#5 e5@2 [d#5,e5] e5 d#5 b4 a#4", Y: "a4 g4 e4 a4@3 g4@3 e4 e4@2 e4 ~@3",
  Z: "[~@2 b4@2 g5@4 e5@2 c#5@2 e5@2 [c5,d#5]@6 g#4@2 f#5@3 e5@3 c#5 c5 c#5@6 ~@12]/3", AA: "~@3 c#5!2 e5 f#5 e5",
  AB: "[~@10 b3 c#4 e4@2 e4@10 ~@2 e4@2 e4@2 e4@6 ~@2 g#4@2 a4@4 f#4@2 e4 e4@7 b3 c#4 e4 ~ e4 f#4 e4!2 e4@2]/4",
  AC: "[e4@4 ~@2 f#4 g#4 b4@4 ~ c#5 [b4,e5]@10 ~@6 b2@2, ~@6 [b4,e5] ~@9]/2", // E5
  AD: "[d3@2 a3@2 b3@2 a3@2 b3@12 ~@8 b3@2 a3@6 d4@2 b3@18 ~@2 b3@4 b3 [g3,a3]]/4", // Gsus2
  AE: "a3@6 g3 e3 [d3,e3]@2 d3 b2 a2 [a2,a#2] g2 e2", AF: "e3 d3 b2 a#2 ~ a2 g2@4 e2@6, ~@6 a2 ~@9", AG: "e3@7 ~",
})).s("gm_acoustic_guitar_steel").gain(0.71)

// chords · distortion guitar · "g4"
const distortion_guitar = note("<~@31 A@2 ~@30 A@2 ~@29>".pickRestart({
  A: "[~ b4@3]/2",
})).s("gm_distortion_guitar").gain(0.1).pan(1)

// bass · acoustic bass · "bass"
const bass = note(`<
  ~ A@2 B@2 C@3 D@4 E@4 F@4 G@2 H@2 I@2 J K L M N O@2 P@4 Q R Q S T U T V W X W Y Z AA AB@2 AC AD AE AF AG AH AI AJ AK
  AL AM@2 ~@8 AC AD AE AF AG AH AN AO AP AQ AR AS@2 AT AU@2 AV@2 ~@3
>`.pickRestart({
  A: "[~ e4@5 e4@4 ~@6]/2", B: "[~@5 f#3!2 e4@5 ~@4]/2", C: "[~@6 e4@8 e4@10 ~ e4 d4 b3 b3@16 b1@4]/3",
  D: "[~@22 e3@2 e3 f3 e3 d3 e3@20 ~@10 b1 c#2 e2@2 e1@2, e1@29 ~@3]/4", E: "[~@11 e3@18 e2 d2 e2, e1]/4",
  F: "[a1@24 c#2@3 e2@3 a2@26 a1 ~ a1 ~ a1@2 b1@2]/4", G: "[~@21 d3 e3@10, e1]/2",
  H: "[e1@6 ~@3 g#3@2 ~@3 g#1 ~, ~@7 g#1@7 ~@2, ~@11 d#3@5]/2", I: "[f#1@3 ~ g#1@2 ~ c#2@4 g#2 g#2@2 c#3@2]/2",
  J: "d#2@6 f#2 g2 g#2@6 ~@2", K: "c#2@3 c#1 c#1@2 g#1 c#2", L: "d#2@6 f#2 ~ g#1@6 ~@2",
  M: "c#2 ~@3 c2 ~@3 b1@6 f#1 g#1", N: "a1@4 g#1@3 ~", O: "[a1@3 ~ g#1@3 ~ f#1@18 b1 ~ b1 c#2 e2@2]/2",
  P: "[~@14 e4@10 ~@2 g4@2 f#4@2 e4@16 e1@14 e2 ~ e2 ~, e1@23 ~@9]/4", Q: "e2@2 ~@2 e2@2 ~@4 e2!2 ~@2 e2@2",
  R: "e2@2 ~@2 e2@2 ~@4 d4 e4@3 e2@2", S: "e2@2 ~@2 e2@2 ~@6 b2 c#3 e3@2", T: "e2 ~ e2 ~@2 e2 ~ e2",
  U: "e2@2 ~@2 e2@2 ~@4 d4 e4@3 d4 e4", V: "e2@2 ~@2 e2@2 ~@4 e2!2 f#2@2 g#2@2",
  W: "a2@2 ~@2 a2@2 ~@2 a2@2 a2 e3 a3@2 a2@2", X: "a2@2 ~@2 a2@2 ~ e2 a2@2 a2!2 g3@2 a3@2",
  Y: "a2@2 ~@2 a2@2 ~@2 a2@2 a2 e2 a2@2 b2@2", Z: "e2@2 ~@2 e2@2 ~@4 e2 e2@2 ~ e2@2",
  AA: "e2@2 ~@8 d4 e4 d4@2 e4@2, ~ e2@3", AB: "[e2@2 ~@2 e2@2 ~@2 e2 ~ e2!2 e2@2 g#2@8 c2@2 c2@3 g#1 c2 d#2 f#2@2]/2",
  AC: "f#1@2 c#2 f#1 g#1 g#2 ~ c#2", AD: "c#1@4 ~@2 c#1@2 ~@2 g#1@2 c#2@2 e2 c#2",
  AE: "d#2@4 ~ d#2 f#2 [g#1,g#2]@7 g#2 d#2", AF: "c#2@4 c#3@3 b2 g#2 e2@2 c#2@3 c#2!2",
  AG: "d#2@4 ~ d2 d#2@2 g#1@6 g#2@2", AH: "c#2@3 c#2 c2@4 b1@4 e2 f#2 e2@2", AI: "a1@3 a1 g#1@3 ~",
  AJ: "g#1@4 g1@4 f#1@4 b1 c#2 e2@2", AK: "e1@4 ~@2 e1@2 e1@2 e2@4 c#2 b1", AL: "a1@4 a1@4 g#1@6 ~ e1",
  AM: "[g#1@4 g1@4 f#1@16 ~@2 b1@2 b1 c#2 e2@2]/2", AN: "a1@2 ~ a1 g#1@3 g#2",
  AO: "g#1@2 ~@2 g1@2 ~@2 f#1@2 c#2 f#2@3 f#1 g#1", AP: "a1@4 f#2@2 e2@2 g#1@5 g#2 e2 b1",
  AQ: "g#1@2 ~@2 g1@2 ~ e1 f#1@2 c#2 f#2@2 c#2 f#1 g#1", AR: "a1@3 a1 e2@2 a2@2 g#1@4 g#1@2 ~@2",
  AS: "[g#1@2 g1@2 ~@3 b3@5 b4@4, ~ g1@2 ~]/2", AT: "~ b1 b2@2 e1@4",
  AU: "[f#1@2 e1!2 f#1@2 g1@8 g2@4 d2 e2 g2@2 e2@2 ~@4 g1@4]/2", AV: "[~@2 f#1@6 e1@21 ~@3]/2",
})).s("gm_acoustic_bass").gain(0.4).pan(1)

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

// drums · rim
const rim = s("rim").struct(`<
  A@3 B A B C D A@2 E F A@2 E ~ A G E H A B A ~@7 A G ~ A@3 B ~@3 I A@3 G J K L M A@2 C ~@9 A@2 ~@9 A ~@6 C N G O A ~@2
  P A Q G ~@4
>`.pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@7 x!3 ~", C: "~@2 x ~@3 x!2", D: "~@7 x", E: "~@2 x ~@4 x", F: "~@4 x ~@9 x!2",
  G: "~ x ~@2", H: "~ x!2 ~", I: "~@12 x!3 ~", J: "~ x ~ x ~ x ~ x", K: "~@2 x ~@3 x ~@3 x ~@2 x!2 ~",
  L: "~@4 x ~ x ~@5 x!3 ~", M: "~@4 x!3 ~@9", N: "x!4", O: "x ~@3 x ~@3 x ~@3 x!3 ~", P: "~@3 x",
  Q: "~@4 x!5 ~@3 x ~@3",
})).gain(0.48)

// drums · snare
const snare = s("sd").struct(`<
  ~@15 A ~ B ~ B ~@3 C D E F G H B ~@2 B ~@11 B ~@7 G I J C G K ~ L M ~@2 N B I C@2 O I C I ~ I J C G K ~@3 B@2 ~ N ~ P
  ~ Q ~@2 R ~@2
>`.pickRestart({
  A: "~@8 x ~ x ~ x!3 ~", B: "~@12 x!3 ~", C: "~ x ~ x", D: "~@4 x!3 ~@5 x!2 ~@2", E: "~@2 x ~ x ~@7 x!3 ~",
  F: "~@4 x ~ x ~@5 x!2 ~@2", G: "~@4 x ~@7 x!3 ~", H: "~@3 x!2 ~@6 x!2 ~@3", I: "~@2 x ~@3 x!2",
  J: "~@4 x ~@7 x!2 ~@2", K: "~@4 x!3 ~@5 x ~ x!2", L: "x!3 ~@3 x ~", M: "x ~@3 x ~@3 x ~@3 x!3 ~", N: "x!3 ~",
  O: "~@4 x ~@2 x ~ x ~@2 x ~@3", P: "~@4 x!2 ~ x ~@8", Q: "~@4 x!5 ~@7", R: "~@7 x",
})).gain(0.48)

// drums · low tom
const low_tom = s("lt").struct("<~@29 A ~@28 B ~@19 B ~@4 C D ~ E ~ F ~@5>".pickRestart({
  A: "~@4 x!8 ~@4", B: "~@13 x!2 ~", C: "~@6 x!2 ~@2 x!2 ~@2 x!2", D: "x ~@3 x!3 ~ x ~@7", E: "x!3 ~@3 x ~@9",
  F: "x!4 ~@4 x ~@7",
})).gain(0.48)

// drums · hihat
const hihat = s("hh").struct("<~@23 A@6 ~ B C ~ D ~@31 E A@6 ~@22>".pickRestart({
  A: "x!8", B: "~ x!3 ~ x!3", C: "~ x!3 ~@4", D: "x", E: "x ~ x ~ x ~ x ~ x ~ x ~ x!2 ~@2",
})).gain(0.48)

// drums · mid tom
const mid_tom = s("mt").struct("<~@29 [x!4 ~@11 x] ~@28 [~@12 x ~@2 x] ~@19 [~@12 x ~@2 x] ~@15>").gain(0.48)

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

// drums · ride
const ride = s("rd").struct("<~@4 x ~@56 [~ x!3] [x!4] [x!2 ~@2] ~@30>").gain(0.48)

// drums · vibraslap
const vibraslap = s("vibraslap:0").struct("<~@6 [~@7 x] ~@15 [~@7 x] ~@71>").gain(5.64)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@6 [~@7 x] ~@87>").gain(2.43)

stack(
  acoustic_guitar_nylon, banjo, acoustic_guitar_steel, distortion_guitar, bass, kick, rim, snare, low_tom, hihat,
  mid_tom, crash, ride, vibraslap, cabasa
)

More by Eric Clapton