Strudelify

Before You Accuse Me

Eric Clapton

KeyF majorTempo120 bpm
0:00/0:00
// Before You Accuse Me — Eric Clapton
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 4 "Electric Guitar Jazz" named as a guitar, played on electric guitar jazz (its flute patch is not one)
// note: Full arrangement: all 101 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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(`<
  ~@3 A@2 B C@2 D@2 E@2 F G H I J K L@2 M N O@2 P Q R S T U V W X@2 Y@2 Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO
  AP AQ AR AS AT@2 AU@2 AV AW AX AY AP AQ AR AS AT@2 AZ@2 BA AW AX AY AP AQ AR AS AT@2 AZ@2 BB AW AX BC AD AE AF AG AH
  AI AJ AK BD AM AN BE@2
>`.pickRestart({
  A: "[[a3,c4,eb4,f4]@40 ~@2 [a3,c4,eb4,f4]@5 ~, f2@38 ~@2 f2@7 ~]/2", // F7
  B: "[d4,ab4,c5]@16 ~@2 [d4,ab4,c5]@5 ~, bb2@15 ~ bb2@6 ~@2", // Dm7b5
  C: "[[a3,eb4,g4]@16 ~@2 [a3,eb4,g4]@4 ~@2 [a3,eb4,g4]@2 ~@2 [a3,eb4,g4]@3 ~ [a3,eb4] ~@3 [a3,eb4,g4]@12, f2@15 ~ f2@4 ~@2 f2@9 ~@3 f2@13 ~]/2", // Am7b5 Adim Am7b5
  D: "[[d4,ab4,c5]@16 ~@2 [d4,ab4,c5]@4 ~@2 [d4,c5]@2 ~@2 [d4,ab4,c5]@2 ~@2 ab4 ~@3 [d4,ab4,c5]@11 ~, bb2@14 ~@2 bb2@5 ~ bb2@9 ~@3 bb2@14, ~@24 ab4 ~@23]/2", // Dm7b5 D7 Dm7b5
  E: "[[f2,a3,eb4,g4]@15 ~@3 [a3,eb4,g4]@4 ~@2 [a3,eb4,g4]@2 ~@2 [a3,eb4,g4]@2 ~@2 [a3,eb4,g4] ~@3 [a3,eb4,g4]@2 ~@2 [a3,eb4,g4]@2 ~@6, ~@16 f2@5 ~ f2@8 ~@4 f2@9 ~@5]/2", // F7 Am7b5
  F: "[e4,bb4,d5]@4 ~@2 [e4,bb4,d5]@3 ~@3 [e4,bb4,d5]@2 ~@2 [e4,bb4] ~ c3@2 [e4,bb4,d5]@2 ab2 ~, c3@2 ~", // Em7b5 Edim Em7b5
  G: "[bb2,ab4,c5]@5 ~ [d4,ab4,c5]@4 ~@2 [d4,ab4,c5]@4 ~@2 [d4,g4,ab4,c5]@4 ~@2, d4@3 ~@13 bb2@5 ~@3", // Fm Dm7b5 Csus2
  H: "[f2,a3,eb4,f4]@10 ~@2 [a3,eb4,f4]@3 ~ [a3,eb4,f4]@3 ~ eb4@2 f2@2, ~@10 f2@10 a3 ~@3", // F7
  I: "~@4 bb3@2 b3@2 ~@2 [c4,e4,g4,bb4,d5]@11 ~@3", J: "[a4,eb5,g5]@16 ~@2 [eb5,g5]@4 a4 ~, f3@15 ~ f3@7 ~, ~@6 a4 ~",
  K: "[bb2,f4,ab4,c5]@8 ~ [f4,ab4,c5]@2 ~, ~@8 bb2@3 ~", // Fm
  L: "[[a4,eb5,g5]@10 ~@2 [a4,eb5,g5]@3 ~ [a4,eb5,g5]@3 ~ [a4,eb5] ~@3 [a4,eb5,g5]@15 ~ [a4,b4,eb5,g5] ~@7, f3@4 ~ f3@5 ~ f3@10 ~@3]/2", // Am7b5 Adim Am7b5 Ebaug
  M: "[f5,ab5,bb5,eb6] ~ [f5,ab5,bb5,eb6] ~ [f5,ab5,bb5] ~ [f5,ab5,bb5,eb6] ~ [f5,ab5,bb5,eb6] ~ [f5,ab5,bb5,eb6] ~ [f5,ab5,bb5,eb6] ~ [f5,ab5,bb5,eb6] ~ [f5,ab5,bb5,eb6] ~ [f5,ab5,bb5,eb6] ~ [f5,ab5,bb5,eb6] ~ [ab5,eb6]@2, bb2@22 [f5,bb5] ~", // Fm7 Bb7 Fm7 Ab5 Bb5
  N: "[f5,ab5,bb5,eb6]@3 ~ [f5,ab5,bb5,eb6]@2 ~@2 [f5,ab5,bb5,eb6]@2 ~@2 [f5,ab5,bb5,eb6]@4 ~@2 [f5,ab5,bb5,eb6]@3 ~@3, bb2@11 ~ bb2@10 ~@2", // Fm7
  O: "[[a4,c5,eb5]@3 ~ eb5@4 a4@2 ~@2 [a4,c5,eb5]@5 ~ [a4,c5,eb5]@5 ~ [a4,eb5,g5]@10 ~@2 [a4,eb5,g5]@3 ~ [a4,eb5,g5]@6 ~@2, f2@5 f2@16 ~@3, ~@2 c5@3 ~@19, ~@4 a4@2 ~@18 f3@9 ~ f3@12 ~@2]/2", // Adim Am7b5
  P: "[g5,b5] ~ [g5,c6] ~ [e5,g5,c6] ~ [e5,g5,c6] ~ [g5,c6] ~ [g5,c6] ~ [g5,b5] ~ [g5,c6] ~ [e5,g5,c6] ~ [e5,g5,c6] ~ [g5,c6] ~ [g5,c6] ~, c3, e5 ~@3 e5 ~ e5 ~@3 e5 ~", // G C5 C C5 G C5 C C5
  Q: "[g5,b5] ~ [g5,c6] ~ [f5,g5,c6] ~ [f4,c5]@3 ~ ab4@2 a4@2 ~@2 f4 ~ ab4@3 ~ f4@2, bb2, f5 ~@4 f4@2 ~@5", // G C5 Fsus2 F5
  R: "[a4,eb5,g5]@9 ~ [a4,eb5,g5] ~@7 [a4,eb5,g5]@5 ~, f2@13 ~@3 f2@6 ~@2", // Am7b5
  S: "~@4 eb4@2 e4@3 ~ [e4,g4,bb4,c5]@12 ~@2, ~@10 c4@7 ~@7", T: "a4@15 ~ [a4,eb5,g5]@3 ~@5",
  U: "[bb4,d5,f5,ab5]@15 ~ [bb4,d5,f5] ~@7, bb2@8 ab5 ~@3", // Bb7 Bb
  V: "[a4,eb5,g5]@3 ~ [a4,eb5,g5]@4 ~@4 [a4,eb5,g5]@9 ~@3, f3@8 ~@2 f3@11 ~@3", // Am7b5
  W: "[a4,eb5,g5]@8 ~@2 [a4,eb5] ~@7 [a4,eb5,g5]@5 ~, f3@10 g5@2 ~@4 f3@5 ~@3", // Am7b5 Adim Am7b5
  X: "[[d5,ab5,bb5,d6] ~ [d5,ab5,bb5,d6] ~ [d5,ab5,bb5,d6] ~ [d5,ab5,bb5,d6] ~ [d5,ab5,bb5,d6] ~ [d5,ab5,bb5,d6] ~ [d5,ab5,bb5,d6] ~ [d5,ab5,bb5,d6] ~ [d5,ab5,bb5,d6] ~ [d5,ab5,bb5,d6] ~ [d5,ab5,bb5] ~ [d5,ab5,bb5,d6] ~ [d5,ab5,bb5,d6]@2 ~@2 [d5,ab5,bb5,d6]@5 ~@3 [d5,ab5,bb5,d6]@4 ~@2 [d5,ab5,bb5,d6]@4 ~@2, bb2@16 ~ bb2@6 ~]/2", // Bb7
  Y: "[ab5@2 a5 ~ [c5,f5,ab5] ~ ab5@2 [g5,a5] ~ [c5,f5,ab5] ~ [c5,f5,ab5]@2 a5 ~ [c5,f5,ab5] ~ [c5,f5,ab5]@4 ~@2 [c5,eb5,ab5]@3 ~ [c5,eb5,ab5]@3 ~ [c5,eb5,ab5] ~@3 [c5,eb5,ab5]@2 ~@2 [c5,eb5,ab5]@4 ~@4, f2@11 f2@5 ~ f2@5 ~@2, [c5,f5]@2 ~ [c5,f5]@2 ~@19]/2", // Fm Gsus2 Fm Ab F5
  Z: "[f5,b5]@2 c6 ~ [f5,c6] ~ [f5,b5] ~ [f5,c6] ~ [f5,c6] ~ [f5,b5] ~ [f5,c6] ~ [f5,c6] ~ [f5,b5]@2 [f5,c6] ~ [f5,c6] ~, [c3,g3]", // Fdim F5 Fdim F5 Fdim F5 Fdim F5 …
  AA: "[eb5,ab5]@2 [eb5,bb5] ~ [eb5,bb5] ~ [eb5,ab5] ~ [eb5,bb5] ~ [eb5,bb5] ~ [eb5,ab5] ~ [eb5,bb5] ~ [eb5,bb5] ~ [eb5,ab5]@2 bb5 ~ [eb5,bb5] ~, bb2@17 ~ bb2@5 ~", // Ab5 Eb5 Ab5 Eb5 Ab5 Eb5 Ab5 Eb5
  AB: "[a4,c5,eb5,g5]@5 ~ [a4,c5,eb5,g5]@2 ~ [a4,c5,eb5,g5]@2 [a4,c5,eb5,g5], f2@9 ~ f2@6 f2@7 ~", // Am7b5
  AC: "~@2 bb3 b3@2 [e4,g4,bb4,c5]@6 ~", // C7
  AD: "[c4,f4]@3 ~ [c4,eb4,f4,a4]@2 ~@6 [c4,eb4,f4,a4]@3 ~ [f2,c4,eb4,f4,a4]@2 f2@5 ~, [f2,f3]@13 ~@3 f3 ~@7", // F5 F7 F
  AE: "[f5,c6,f6]@3 ~ [f5,c6,f6]@3 ~ bb5@2 ab5@2 bb5@2 ab5@2 [d3,f3,ab3] ~ ab5@2 bb5 ~ f5 ~, [d3,f3,ab3]@13 ~@3 f5@2 ~@6", // F5 Ddim
  AF: "[f2,f3,a4,c5,eb5,f5]@2 ~@2 [f2,c5,eb5,f5]@4 a4@2 c5@2 [f2,f3,a4,c5,eb5,f5]@3 ~ [f2,f3,a4,c5,eb5,f5]@3 ~ a4@2 ~@2, ~@2 [f3,a4] ~@9, ~@4 gb2 ~@19", // F7 F
  AG: "[f2,f3,c5,eb5,ab5] ~ [f2,f3,c5,eb5,ab5] ~ [f2,f3,c5,eb5,ab5] ~ [f2,f3,c5,eb5,ab5] ~ [f2,f3,c5,eb5,ab5] ~ [f2,f3,c5,eb5,ab5] ~ [f2,f3,c5,eb5,ab5] ~ [f2,f3,c5,eb5,ab5] ~ [f2,f3,c5,eb5,ab5] ~ [f2,f3,c5,eb5,ab5] ~ [f2,f3,c5,eb5,ab5] ~ [f2,f3,c5,eb5,ab5] ~", // Fm7
  AH: "[c5,d5,f5,ab5]@2 ~@2 [c5,d5,f5,ab5]@2 ab5 ~ g5@2 f5@2 [c5,d5,f5,ab5]@2 ~@2 [c5,d5,f5,ab5]@2 ~@4 [d3,ab3,c4]@2, [d3,ab3,c4]@5 ~", // Dm7b5
  AI: "ab5 ~ g5@2 ab5@2 f5@2 ab5 ~ f5@2 [f5,ab5]@2 ~@2 [c5,d5,f5,ab5]@3 ~@5, ~@2 [d3,ab3,c4]@7 ~@3, ~@12 [c5,d5] ~@11", // Fm Dm7b5 Csus2
  AJ: "[a3,eb4,f4,ab5]@2 c5@2 [a3,eb4,f4,f5]@2 eb5@2 ab4@2 a4@2 eb5@2 d5@2 [a3,f4,db5]@2 c5 ~ ab4@2 a4@2, ~@16 eb4 ~@7", // F7 Aaug
  AK: "eb5 ~@3 eb5@2 d5@2 c5 ~ [a3,eb4,f4]@2 ~@4 [a3,eb4,f4]@3 ~@5, ~@5 c5@2 ~@5", // F7
  AL: "e5@2 [g5,c6] ~ [e5,g5,c6] ~ [e5,g5,c6] ~ [g5,c6] ~ [g5,c6] ~ [g5,c6] ~ [e5,g5,c6] ~ [e5,g5,c6] ~ [e5,g5,c6] ~ [e5,g5,c6] ~ [e3,bb3,d4,g5,c6] ~, bb3@5 ~, g5 ~@7 e5@4 ~@10 e5@2", // C5 C C5 C Em7b5
  AM: "[gb5,bb5] [g5,b5]@2 ~ [gb5,bb5]@2 [f5,bb5]@2 ab5@2 f5@2 g5@2 eb5 ~ [d3,ab3,c4,eb5] ~ [f4,b4]@2 bb4@2 ab4@2, [d3,ab3,c4]@7 ~ f5 ~@3, ~@12 c5@7 ~@5", // Gb G Gb Bb5 Ab Fdim Dm7b5
  AN: "[a3,eb4,f4]@3 ~ [a3,eb4,f4]@2 [c6,f6]@2 eb6 ~ f6@2 [a3,eb4,f4,eb6]@2 c6@2 [a3,eb4,f4]@2 c6@2 bb5@2 ab5 ~, ~@12 c6 ~@3 eb6 ~@7", // F7 F5 F7
  AO: "f5@3 ~ bb4@2 b4@3 ~ [e4,g4,bb4,c5]@12 ~@2", // C7
  AP: "[a4,eb5,f5]@8 ~@2 [a4,eb5,f5] ~@7 [a4,eb5,f5]@4 ~@2, f2@12 ~@4 f2@5 ~@3", // F7
  AQ: "[bb2,d4,ab4,c5]@8 ~@2 [bb2,d4,ab4,c5] ~@7 [bb2,d4,ab4,c5]@5 ~", // Bb7
  AR: "[a5,c6,eb6] ~ [a5,c6,eb6] ~ [a5,c6,eb6] ~ [a5,c6,eb6] ~ [a5,c6,eb6] ~ [a5,c6,eb6] ~ [a5,c6,eb6] ~ [a5,c6,eb6] ~ [a5,c6,eb6] ~ [a5,c6,eb6] ~ [a5,c6,eb6] ~ [a5,c6,eb6] ~, f2@23 ~", // Adim
  AS: "[a5,eb6,f6] ~ [a5,eb6,f6] ~ [a5,eb6,f6] ~ [a5,eb6,f6] ~ [a5,eb6,f6] ~ [a5,eb6,f6] ~ [a5,eb6,f6] ~ [a5,eb6,f6] ~ [a5,eb6,f6] ~ [a5,eb6,f6] ~ [a5,eb6,f6] ~ [a5,eb6,f6] ~, f2@23 ~", // F7
  AT: "[[d4,ab4,c5]@3 ~ [d4,ab4,c5]@2 ~@2 ab4@2 ~@2 [d4,ab4,c5]@3 ~ [d4,ab4,c5]@2 ~@2 ab4@2 ~@2 [d4,ab4,c5]@8 ~@2 [d4,ab4,c5] ~@3 ab4 ~@3 [d4,ab4,c5]@4 ~@2, bb2@7 ~ d4 ~ bb2@9 ~ d4 ~ bb2@13 ~@5 bb2@6 ~@2]/2", // Dm7b5
  AU: "[[a4,eb5,g5]@10 ~@2 [a4,eb5,g5]@2 ~@2 [a4,eb5,g5]@3 ~ eb5@2 ~@2 [a4,eb5,g5]@8 ~@2 [a4,eb5,g5] ~@3 eb5@2 ~@2 [a4,d5,eb5,g5]@5 ~, f2@8 ~@2 f2@10 ~@2 f2@13 ~@5 f2@7 ~]/2", // Am7b5 Dsus4
  AV: "[g4,bb4,c5,e5]@8 ~@2 [g4,bb4,c5,e5]@3 ~@5 [g4,bb4,c5,e5]@3 ~ c3@2, c3@17 ~@7", // C7
  AW: "f5@2 c6 ~ [f5,c6] ~ f5@2 c6 ~ [f5,c6] ~ [f5,b5] ~ [f5,c6] ~ c6 ~ [f5,b5] ~ b5 ~ [f5,c6] ~, bb2, b5 ~@5 b5 ~@17", // F5 Fdim F5 Fdim F5
  AX: "[a4,eb5,f5]@3 ~ [a4,eb5,f5]@2 ~@2 [a4,eb5] ~@3 [a4,eb5,f5]@10 ~@2, f2@4 ~ f2@7", // F7 Adim F7
  AY: "[a4,eb5,f5,g5] ~@3 bb2@2 b2@3 ~ [c3,e4,g4,bb4,c5]@11 ~@3", // Am7b5 C7
  AZ: "[[a4,eb5,g5]@10 ~@2 [a4,eb5,g5]@2 ~@2 [a4,eb5,g5]@3 ~ eb5@2 ~@2 [a4,eb5,g5]@8 ~@2 [a4,eb5,g5] ~@3 eb5@2 ~@2 [a4,eb5,g5]@5 ~, f2@8 ~@2 f2@10 ~@2 f2@13 ~@5 f2@7 ~]/2", // Am7b5
  BA: "[e4,g4,bb4,c5]@8 ~@2 [e4,g4,c5] ~@9 c3@2 ~@2, c3@17 ~@7, ~@10 bb4@2 ~@6 [e4,g4,bb4,c5]@5 ~", // C7 C C7
  BB: "[g4,bb4,c5,e5]@7 ~@3 [g4,bb4,c5,e5] ~@5 [g4,bb4,c5,e5]@6 c3@2, c3@17 ~@7", // C7
  BC: "[a4,eb5,f5,g5] ~@3 bb2@2 b2@3 ~ [c3,e4,bb4,c5]@11 ~@3", // Am7b5 C7
  BD: "e5@2 [g5,c6] ~ [e5,g5,c6] ~ [e5,g5,c6] ~ [g5,c6] ~ [g5,c6] ~ [e5,g5,c6] ~ [e5,g5,c6] ~ [e5,g5,c6] ~ [e5,g5,c6] ~ [g5,c6] ~ [e3,bb3,d4,g5,c6] ~, c4@5 ~, g5 ~@7 e5@2 ~@10 e5@2 ~@2", // C5 C C5 C C5 Em7b5
  BE: "[f5@3 ~ bb4@2 b4@3 ~ [f3,a3,c4,eb4]@26 ~@12, ~@5 f2@7 ~@12]/2", // F7
})).s("gm_piano").gain(0.31).pan(0.4)

// bass · electric bass finger · "Basso"
const bass = note(`<
  ~@3 A B C D E F G H I J K L M N O D P F G H I J K L M B Q D R F G H I J K L M S O D T F G H I J K L M B O D R F G H I
  J K L M U O D P F G V I J K L W X O D P F G H I J K L Y X Z D AA F G V I J K AB@3
>`.pickRestart({
  A: "f1 ~@3 f1@2 a1@5 ~ c2@5 ~ a1@5 ~", B: "f1@2 a1@2 c2@2 f1 ~", C: "bb1@5 ~ d2@6 f2@6 g2@5 ~",
  D: "f1@5 ~ a1@6 c2@6 a1@4 ~@2", E: "f1@5 ~ a1@6 c2@5 ~ d2@4 c2 ~", F: "bb1 ~ bb1 d1@3 f1@3 g1@3",
  G: "bb1@2 ~@2 bb1@2 d1@5 ~ f1@6 g1@4 ~@2", H: "f1 ~ f1 a1@3 c2@3 d2@3", I: "f1@5 ~ a1@6 c2@6 d2@5 ~",
  J: "c2@2 ~@2 c2@2 e2@6 g2@6 c3@5 ~", K: "bb2 ~ bb2 d2@3 f2@3 g2@2 ~", L: "f2 ~@3 f2@2 a2@5 ~ c3@6 d3@4 a2@2",
  M: "~@4 bb1@2 b1@4 c2@13 ~", N: "f1@5 ~ a1@6 c2@6 f1@3 ~@3", O: "bb1@6 d2@6 f2@6 g2@5 ~",
  P: "f1@5 ~ a1@6 c2@6 d2@3 ~ c2 ~", Q: "bb1@6 d2@5 ~ f2@6 g2@5 ~", R: "f1@5 ~ a1@6 c2@6 d2@4 c2 ~",
  S: "f1@6 a1@6 c2@6 ~@2 f1@3 ~", T: "f2@2 ~@2 f2@2 eb2@3 ~@3 d2@6 c2@6", U: "f1@6 a1@6 c2@6 f1@5 ~",
  V: "f1@2 ~@2 f1@2 a1@6 c2@5 ~ d2@6", W: "~@4 bb1@2 b1@3 ~ c2@13 ~", X: "f1 a1 c2 f1", Y: "f1@4 bb1@2 b1@4 c2@13 ~",
  Z: "bb1@6 d2@5 ~ f2@5 ~ g2@5 ~", AA: "f2@2 ~@2 f2@2 ~@2 eb2@4 d2@6 c2@5 ~",
  AB: "[f2 ~@3 f2@2 a2@5 ~ c3@6 d3@4 a2@5 ~ bb1@2 b1@3 ~ f1@26 ~@12]/3",
})).s("gm_electric_bass_finger").gain(0.57)

// chords · electric guitar clean · "Gtr. Clean"
const electric_guitar_clean = note(`<
  ~@3 A@2 B A@2 B@2 A@2 C B D E A B A@2 B@2 A@2 C B D E A B A@2 B@2 A@2 C B D E A B A@2 B@2 A@2 C B D E A B A@2 B@2 A@2
  C B D F A B A@2 B@2 A@2 C B D E A B A@2 B@2 A@2 C B D E A B A@2 B@2 A@2 C B D G@2
>`.pickRestart({
  A: "~@4 [f3,a3,c4,f4] ~@5 [f3,a3,c4,f4] ~@5 [f3,a3,c4,f4] ~@5 [f3,a3,c4,f4] ~", // F
  B: "~@4 [f3,bb3,d4,f4] ~@5 [f3,bb3,d4,f4] ~@5 [f3,bb3,d4,f4] ~@5 [f3,bb3,d4,f4] ~", // Bb
  C: "~@4 [g3,c4,e4,g4] ~@5 [g3,c4,e4,g4] ~@5 [g3,c4,e4,g4] ~@5 [g3,c4,e4,g4] ~", // C
  D: "~@4 [f3,a3,c4,f4] ~@5 [f3,a3,c4,f4] ~@5 [f3,a3,c4,f4] ~@5 [f3,a3,c4] ~", // F
  E: "~@10 [e3,bb3,d4,g4]@11 ~ [e3,bb3,d4,g4] ~", F: "~@10 [e3,bb3,e4,g4]@11 ~ [e3,bb3,e4,g4] ~",
  G: "[~@5 [f3,a3,c4,eb4]@13 ~@6]/2", // F7
})).s("gm_electric_guitar_clean").gain(0.31).pan(0.7)

// chords · overdriven guitar · "Gtr. Overd"
const overdriven_guitar = note(`<
  A B C D E F G H I J K L M N O P E F G H Q J K L M N R P E F S T U J V W M N X P Y Z Y AA I J V AB M N R P E F AC H AD
  J K L M N AE P E F AF AG AD J AH AI M N AE P AJ AK@2 AL AM@2 AN@2 AO AP AQ@2 Y F Y AR U J V AB M N AS AT@2
>`.pickRestart({
  A: "~@8 c4 f4 ~ f4", B: "ab4 ~ ab4 f4 eb4 c4 f4 eb4 c4!2 ab3 a3",
  C: "f3 ~@3 f3@2 bb2@2 b2@2 c3@6 c3@2 c3@2 d3@2 f3@2",
  D: "[f2,c3] ~@3 [f2,c3] ~ [f2,c3] ~@3 [f2,c3] ~ [f2,c3] ~@3 [f2,c3] ~ c3 ~@3 [f2,c3] ~", // F5
  E: "[f2,c3] ~@3 [f2,c3] ~ [f2,c3] ~@3 [f2,c3] ~ [f2,c3] ~@3 [f2,c3] ~ [f2,c3] ~@3 [f2,c3] ~", // F5
  F: "[bb2,f3] ~@3 f3 ~@3 bb2 ~ [bb2,f3] ~ [bb2,f3] ~@3 [bb2,f3] ~ [bb2,f3] ~@3 [bb2,f3]@2", // Bb5
  G: "[f2,c3]@2 ~@2 [f2,c3] ~ [f2,c3] ~@3 [f2,c3] ~ [f2,c3] ~@3 [f2,c3] ~ [f2,c3] ~@3 [f2,c3]@2", // F5
  H: "[f2,c3]@2 ~@2 [f2,c3] ~ [f2,c3] ~@3 [f2,c3] ~ [f2,c3] ~@3 [f2,c3] ~ [f2,c3]@5 ~", // F5
  I: "[bb2,f3]@2 ~@2 [bb2,f3] ~ [bb2,f3] ~@3 [bb2,f3] ~ [bb2,f3] ~@3 bb2 ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~", // Bb5
  J: "[bb2,f3]@2 ~@4 [bb2,f3]@2 ~@2 [bb2,f3] ~ [bb2,f3] ~@3 [bb2,f3] ~ [bb2,f3]@4 ~@2", // Bb5
  K: "[f2,c3]@2 ~@2 [f2,c3] ~ [f2,d3]@3 ~ f2 ~ [f2,c3]@2 ~@2 [f2,c3] ~ [f2,c3]@2 ~@2 [f2,c3] ~", // F5 Dm F5
  L: "[f2,c3] ~@3 [f2,c3] ~ [f2,c3] ~@3 [f2,c3] ~ [f2,c3]@2 ~@2 [f2,c3] ~ [f2,c3]@5 ~", // F5
  M: "[c3,g3]@3 ~ [c3,g3] ~ [c3,g3]@2 ~@2 [c3,g3] ~ [c3,g3] ~@3 [c3,g3] ~ [c3,g3]@5 ~", // C5
  N: "[bb2,f3]@2 ~@2 bb2 ~ [bb2,f3] ~@3 [bb2,f3] ~ [bb2,f3] ~@3 [bb2,f3] ~ [bb2,f3]@4 ~@2", // Bb5
  O: "[f2,c3]@2 ~@2 c3 ~ f3 ~ f3 ~ f3@2 eb3@2 c3@2 eb3@2 c3@2 bb2@2 ab2@2", P: "f2 ~ bb2 b2@2 c3@5 ~@2",
  Q: "~@2 [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~@3 [bb2,f3] ~ [bb2,f3] ~@3 bb2 ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~", // Bb5
  R: "[f2,c3]@2 ~@2 c3 ~ f3@2 f3 ~ f3 ~ eb3@2 c3@2 eb3@2 c3@2 bb2@2 ab2@2", // F5
  S: "[f2,c3]@2 ~@2 [f2,c3] ~ [c4,eb4]@5 ~ [c4,f4]@2 ~@2 [f2,c3] ~ [f2,c3] ~@3 [f2,c3]@2", // F5 Cm F5
  T: "[f2,c3]@2 ~@2 [f2,c3] ~ [c4,eb4]@5 ~ f4 ~@3 [f2,c3] ~ [f2,c3]@5 ~", // F5 Cm F5
  U: "~@2 [bb2,f3]@2 [bb2,f3] ~ [bb2,f3] ~@3 [bb2,f3] ~ [bb2,f3] ~@3 bb2 ~ [bb2,f3] ~ [bb2,f3] ~ [bb2,f3] ~", // Bb5
  V: "[f2,c3]@2 ~@2 [f2,c3] ~ [c4,eb4]@5 ~ [c4,f4]@2 ~@2 [f2,c3] ~ [f2,c3]@2 ~@2 [f2,c3] ~", // F5 Cm F5
  W: "[f2,c3] ~@3 [f2,c3] ~ [c4,eb4]@5 ~ [c4,f4]@2 ~@2 [f2,c3] ~ [f2,c3]@5 ~", // F5 Cm F5
  X: "[f2,c3]@2 ~@2 c3 ~ f3@2 f3 ~ f3 ~ eb3@2 c3@2 eb3 ~ c3@2 bb2@2 ab2@2", // F5
  Y: "d4 [eb4,a4]!2 d4 [eb4,a4]!2 d4 [eb4,a4]!2 d4 [eb4,a4]!2", // Ebdim
  Z: "[bb2,f3] ~@3 f3 ~ bb2 ~@3 [bb2,f3] ~ [bb2,f3] ~@3 [bb2,f3] ~ [bb2,f3] ~@3 [bb2,f3]@2", // Bb5
  AA: "[a4,c5]!3 [ab4,c5] [a4,c5]!2 [ab4,c5] [a4,c5]!2 [ab4,c5] [a4,c5]!2", // Am Ab Am Ab Am Ab Am
  AB: "[f2,c3] ~@3 [f2,c3] ~ [c4,eb4]@4 ~@2 [c4,f4]@2 ~@2 [f2,c3] ~ [f2,c3]@5 ~", // F5 Cm F5
  AC: "[f2,c3]@2 ~@2 [f2,c3] ~ [f2,c3] ~@3 [c4,f4] ~ [f2,c3] ~@3 [f2,c3] ~ [f2,c3] ~@3 [c4,f4] ~", // F5
  AD: "~@2 [bb2,f3]@2 [bb2,f3] ~ [bb2,f3] ~@3 [bb2,f3] ~ [bb2,f3] ~@3 bb2 ~ [bb2,f3] ~ [bb2,f3] ~ [d4,ab4] ~", // Bb5 Ddim
  AE: "[f2,c3]@2 ~@2 c3 ~ f3@2 f3 ~ f3@2 eb3@2 c3@2 eb3@2 c3@2 bb2@2 ab2@2", // F5
  AF: "[f2,c3]@2 ~@2 [f2,c3] ~ eb4@4 f2@2 f4@3 ~ [f2,c3] ~ [f2,c3] ~@3 [f2,c3]@2", // F5
  AG: "[f2,c3]@2 ~@2 [f2,c3] ~ eb4@4 [f2,c3] ~ f4@3 ~ [f2,c3] ~ [f2,c3]@5 ~", // F5
  AH: "[f2,c3]@2 ~@2 [f2,c3] ~ eb4@5 ~ f4@3 ~ [f2,c3] ~ [f2,c3]@2 ~@2 [f2,c3] ~", // F5
  AI: "[f2,c3] ~@3 [f2,c3] ~ eb4@4 [f2,c3] ~ f4@3 ~ [f2,c3] ~ [f2,c3]@5 ~", // F5
  AJ: "f4@2 f4 eb4 c4 ab4 f4 eb4 c4 f4 eb4 c4",
  AK: "[bb3@5 ~ bb3@3 ~ ab3 ~ bb3@3 ~ ab3@2 f3@4 eb3@6 f4@2 eb4@2 c4@2 ab4@2 f4@2 eb4@2 c4@2 f4@2 eb4@2 c4@2]/2",
  AL: "bb3@3 f4 ab4!2 f4 ab4!3 f4 ab4",
  AM: "[ab5@3 ~ ab5@14 f5@4 eb5@6 ~@2 c5@2 bb4@2 f4@2 bb4@3 ~ bb4@3 ~ ab4@2 f4@2]/2",
  AN: "[ab4@4 ~@2 ab4@4 f4@5 ~@3 eb4@4 c4@6 ~@2 ab3@4 f3@5 ~@5 f4@2 ab4@2]/2", AO: "eb5@5 ~ bb4@7 ~@11",
  AP: "bb4 ab4 f4 ab4 f4 eb4 f4 eb4 c4 eb4 c4 bb3",
  AQ: "[~@2 bb3@2 b3@2 c4@2 eb4 ~ f4@3 ~ ab4@2 f4@2 bb4@2 f4 ~ c5@7 ~@19]/2",
  AR: "[ab4,c5] [a4,c5]!2 [ab4,c5] [a4,c5]!2 [ab4,c5] [a4,c5]!2 [ab4,c5] [a4,c5]!2", // Ab Am Ab Am Ab Am Ab Am
  AS: "[f2,c3]@2 ~@4 [a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [eb4,ab4,b4] ~ [eb4,ab4,b4] ~ [eb4,ab4,b4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~", // F5 Am F Abm Gm
  AT: "[[c4,f4,a4] ~ bb3@3 f3@13 ~@6]/2", // F
})).s("gm_overdriven_guitar").gain(0.35)

// chords · electric guitar muted · "Gtr. Muted"
const electric_guitar_muted = note(`<
  ~@3 A B C D E F G H I J G K L M N O P Q R S T U R V L M N O P Q R S T U R V L M N O P Q R S T U R V L M N O P Q R S T
  U R V L M N O P Q R S T U R V L M N O P Q R S T U R V L M N O P Q R S T U R V W ~
>`.pickRestart({
  A: "[f2,c3] ~@3 [f2,c3] ~ [f2,a2] ~@3 [f2,c3] ~ [f2,c3] ~@3 [f2,c3] ~ [f2,a2] ~ [f2,c3] ~ [f2,c3] ~", // F5 F F5 F F5
  B: "[f2,c3] ~@3 [f2,c3] ~ [f2,a2] ~@3 [f2,c3] ~ [f2,c3] ~@3 [f2,c3] ~ [f2,c3]@5 ~", // F5 F F5
  C: "[bb2,f3]@2 ~@2 [bb2,f3] ~ [bb2,d3]@2 ~@2 [bb2,f3] ~ [bb2,f3] ~@3 [bb2,f3] ~ [bb2,f3]@5 ~", // Bb5 Bb Bb5
  D: "[f2,c3]@2 ~@2 [f2,c3] ~ [f2,a2]@2 ~@2 [f2,c3] ~ [f2,c3]@2 ~@2 [f2,c3] ~ c3@2 d3@2 c3 ~, ~@18 f2@5 ~", // F5 F F5
  E: "[f2,c3]@2 ~@2 [f2,c3] ~ [f2,c3]@2 ~@2 [f2,c3] ~ [f2,c3]@2 ~@2 [f2,c3] ~ [f2,c3]@2 d3 ~@3", // F5
  F: "[bb2,f3]@2 ~@2 [bb2,f3] ~ [bb2,d3]@2 ~@2 [bb2,f3] ~ [bb2,f3]@3 ~ [bb2,f3] ~ [bb2,g3]@3 ~ [bb2,f3] ~", // Bb5 Bb Bb5 Eb Bb5
  G: "[bb2,f3]@2 ~@2 [bb2,f3] ~ [bb2,d3]@3 ~ [bb2,f3] ~ [bb2,f3]@3 ~ [bb2,f3] ~ [bb2,g3]@3 ~ [bb2,f3]@2", // Bb5 Bb Bb5 Eb Bb5
  H: "[f2,c3]@3 ~ [f2,c3] ~ [f2,a2] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3]@2 ~@2 [f2,c3] ~ [f2,d3]@2 ~@2 [f2,c3] ~", // F5 F F5 Dm F5
  I: "[f2,c3]@2 ~@2 [f2,c3] ~ [f2,a2] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3]@3 ~ [f2,c3] ~ [f2,c3]@3 ~@3", // F5 F F5
  J: "[c3,g3]@2 ~@2 [c3,g3] ~ [c3,e3]@2 ~@2 [c3,g3] ~ [c3,g3]@3 ~ [c3,g3] ~ g3@2 a3@2 g3 ~, ~@18 c3@5 ~", // C5 C C5
  K: "[f2,c3]@2 ~@2 [f2,c3] ~ [f2,a2]@2 ~@2 c3 ~ [f2,c3]@2 ~@2 [f2,c3] ~ [f2,d3]@2 ~@2 [f2,c3]@2", // F5 F F5 Dm F5
  L: "~@4 bb2@2 b2@2 g3 ~ [c3,g3]@13 ~", // C5
  M: "[f2,c3] ~@3 [f2,c3] ~ [f2,c3] ~@3 [f2,c3] ~ [f2,c3] ~@3 [f2,c3] ~ [f2,c3]@5 ~", // F5
  N: "[bb2,f3]@2 ~@2 [bb2,f3] ~ [bb2,f3]@2 ~@2 [bb2,f3] ~ [bb2,f3] ~@3 [bb2,f3] ~ [bb2,f3]@5 ~", // Bb5
  O: "[f2,c3]@2 ~@2 [f2,c3] ~ [f2,c3]@2 ~@2 [f2,c3] ~ [f2,c3]@2 ~@2 [f2,c3] ~ c3@2 d3@2 c3 ~, ~@18 f2@5 ~", // F5
  P: "[f2,c3]@2 ~@2 [f2,c3] ~ [f2,c3]@2 ~@2 [f2,c3] ~ [f2,c3]@2 ~@2 [f2,c3] ~ c3@2 d3 ~@3, ~@9 f2@2 ~", // F5
  Q: "[bb2,f3]@2 ~@2 [bb2,f3] ~ [bb2,f3]@2 ~@2 [bb2,f3] ~ [bb2,f3]@3 ~ [bb2,f3] ~ [bb2,f3]@3 ~ [bb2,f3] ~", // Bb5
  R: "[bb2,f3]@2 ~@2 [bb2,f3] ~ [bb2,f3]@3 ~ [bb2,f3] ~ [bb2,f3]@3 ~ [bb2,f3] ~ [bb2,f3]@3 ~ [bb2,f3]@2", // Bb5
  S: "[f2,c3]@3 ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3]@2 ~@2 [f2,c3] ~ [f2,c3]@2 ~@2 [f2,c3] ~", // F5
  T: "[f2,c3]@2 ~@2 [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3] ~ [f2,c3]@3 ~ [f2,c3] ~ [f2,c3]@3 ~@3", // F5
  U: "[c3,g3]@2 ~@2 [c3,g3] ~ [c3,g3]@2 ~@2 [c3,g3] ~ [c3,g3]@3 ~ [c3,g3] ~ g3@2 a3@2 g3 ~, ~@18 c3@5 ~", // C5
  V: "[f2,c3]@2 ~@2 [f2,c3] ~ [f2,c3]@2 ~@2 c3 ~ [f2,c3]@2 ~@2 [f2,c3] ~ [f2,c3]@2 ~@2 [f2,c3]@2", // F5
  W: "~@4 bb2@2 b2@2 ~@2 [f2,c3]@9 ~@5", // F5
})).s("gm_electric_guitar_muted").gain(0.38).pan(0.4)

// drums · kick
const kick = s("bd").struct("<~@3 A@24 B A@11 B A@3 ~ A@7 B A@11 B A@11 B A@11 B A@3 ~ A@7 C ~>".pickRestart({
  A: "x ~@5 x ~@4 x", B: "x ~@4 x ~@5 x", C: "x ~@4 x ~@6",
})).gain(0.6)

// drums · snare
const snare = s("sd").struct("<~@2 A B@36 C B@3 D B@7 C B@39 D B@7 E F>".pickRestart({
  A: "~@8 x ~@2 x", B: "~ x ~ x", C: "~@2 x!2 ~@4 x!2 ~@2", D: "x!12", E: "~@2 x!2 ~@8", F: "~ x",
})).gain(0.54)

// drums · low tom
const low_tom = s("lt").struct("<~@99 [~@14 x ~@2 x ~@2 x ~@2 x] [~@2 x ~@2 x ~@2 x ~@2 x ~@12]>").gain(0.3)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@3 A@2 B A B A@3 B@2 A B A@3 B A B A B A@3 B C D B A B A@3 B A B A C D B A E D B A@3 B A F D A B@2 A@3 B A@3 C D A@2
// … 30 more lines

More by Eric Clapton