Strudelify
Lay Down Sally cover art

1978 · Slowhand

Lay Down Sally

Eric Clapton

KeyA majorTempo186 bpm
0:00/0:00
// Lay Down Sally — Eric Clapton
// 186 bpm, 4/4, key A major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 170 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(186/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, A@4 for four bars: edit a riff to change every repeat.

// chords · clavinet
const clavinet = note(`<
  ~@7 A B C B C B C B C B C B C D E B F B C D E G H I J D K G H L M I N D O G H P Q R C B C B C S T B C B C D O B C B C
  D O G H I N D U H G P V I N D O G W P X Y@19 Z AA Y@11 B C B C D AB B F B C D O G H I N AC O G AD P AE I N D O G H AF
  M AG I O D H AH AI AJ AK N D O G AL P X D H AM X D AN AO ~
>`.pickRestart({
  A: "~@6 [a3,c#4,e4]@2 ~@4 [a3,c#4,g4] ~@3, ~@6 g4 ~@5 e4@2 ~@2", B: "~@4 [a3,c#4,e4,g4] ~@5 [a3,c#4,e4,g4] ~@5",
  C: "[a3,c#4,e4,g4] ~@5 [a3,c#4,e4,g4] ~@5 [c#4,g4]@2 ~@2, ~@12 [a3,e4] ~@3", D: "~@4 [a3,d4,f#4] ~@5 [a3,d4,f#4] ~@5",
  E: "[a3,d4,f#4] ~@5 [a3,d4,f#4] ~@5 [a3,d4] ~@3, ~@6 f#4 ~", // D D5
  F: "[a3,e4,g4] ~@5 [a3,c#4,e4,g4] ~@5 [a3,e4,g4] ~@3, c#4 ~@5 c#4 ~", // A7
  G: "~@4 [b3,e4,g#4] ~@5 [b3,e4] ~@5, ~@5 g#4 ~@2", H: "[b3,e4,g#4] ~@5 [b3,e4,g#4] ~@5 [b3,e4] ~@3, ~@6 g#4 ~",
  I: "~@4 [a3,c#4,e4] ~@5 [a3,c#4,e4] ~@5", J: "[a3,c#4] ~@5 [a3,c#4,e4] ~@5 [c#4,e4]@2 ~@2, e4@2 ~@10 a3 ~@3",
  K: "[a3,d4,f#4] ~@5 [a3,d4,f#4] ~@5 [a3,d4,f#4]@2 ~@2", L: "~@4 [c#4,e4]@3 ~@3 [d4,f#4]@2 ~@4, ~@4 a3 ~@5 a3 ~@5",
  M: "[a3,c#4,e4]@3 ~ a3 ~ [a3,f#4]@2 ~@2 [a3,c#4,e4]@4 ~@2, ~@6 d4 ~@9", // A D A
  N: "[a3,c#4,e4] ~@5 [a3,c#4] ~@5 [a3,c#4,e4] ~@3, ~@3 e4 ~@4", // A
  O: "[a3,d4,f#4] ~@5 [a3,d4] ~@5 [a3,d4] ~@3, ~@3 f#4 ~@2 f#4 ~", // D D5
  P: "~@4 [a3,c#4] ~@5 [d4,f#4]@2 ~@4, ~@4 e4@2 ~@4 a3 ~@5", // A D
  Q: "[a3,c#4,e4] ~@5 [a3,d4,f#4] ~@5 [c#4,e4]@2 ~@2, ~@12 a3 ~@3", // A D C#m
  R: "~@2 [c#4,e4,g4] ~@2 [c#4,g4] ~@2, ~@4 a3 ~@5 [a3,e4] ~@5", // C#dim A5
  S: "~@2 [a3,c#4,g4] ~@2 [a3,c#4,g4] ~@2, ~@4 e4 ~@5 e4 ~@5", // A7
  T: "[a3,c#4,e4,g4]@2 ~@4 [c#4,g4]@2 ~@4 [a3,e4,g4] ~@3, ~@6 [a3,e4] ~@5 c#4@2 ~@2", // A7 C#dim A7 A5
  U: "[a3,d4,f#4] ~@5 [a3,d4] ~@3 [d4,f#4]@2 ~@4, ~@6 f#4@2 ~@2 a3 ~@5", // D D5 D
  V: "[a3,e4] ~@5 [d4,f#4]@2 ~@2 [a3,c#4,e4]@2 ~@4, c#4@2 ~@4 a3 ~@9", // A5 D A
  W: "[b3,e4,g#4] ~@5 [e4,g#4]@2 ~@4 [e4,g#4]@2 ~@2, ~@6 b3 ~@5 b3 ~@3", // E
  X: "[a3,c#4,e4] ~@5 [a3,c#4,e4] ~@3 [c#4,e4]@2 ~@4, ~@10 a3 ~@5", Y: "~@4 [a3,c#4,e4,g4] ~@7 [a3,c#4,e4,g4] ~@3",
  Z: "~@4 [a3,c#4,e4,g4] ~@7 [a3,e4,g4] ~@3, ~@6 c#4 ~", AA: "~@2 [a3,g4] ~@3 [a3,c#4,e4,g4] ~, ~@4 [c#4,e4] ~@11",
  AB: "[a3,d4,f#4] ~@5 [a3,d4] ~@5 [d4,f#4]@2 ~@2, ~@6 f#4@2 ~@4 a3 ~@3", // D D5 D
  AC: "[a3,d4,f#4] ~@3 [a3,d4,f#4] ~@5 [a3,d4,f#4] ~@5", // D
  AD: "[b3,e4] ~@5 [b3,e4] ~@3 [b3,e4,g#4]@4 ~@2, g#4 ~@2 g#4 ~@4", // E5 E
  AE: "[a3,c#4] ~@5 [a3,d4,f#4]@2 ~@2 [a3,c#4,e4]@2 ~@4, e4 ~@7", AF: "~@4 [c#4,e4]@4 ~@4 [a3,d4,f#4] ~@3, ~@2 a3 ~@5",
  AG: "~@4 [a3,c#4,e4] ~@7 [a3,c#4,e4] ~@3", AH: "~@4 [b3,e4] ~@3 [b3,e4] ~@3 [b3,e4] ~@3, ~@2 g#4 ~ g#4 ~ g#4 ~",
  AI: "~@4 [c#4,e4]@2 ~@4 [a3,d4,f#4] ~@5, ~@4 a3 ~@11", AJ: "[c#4,e4] ~@2 [d4,f#4] ~ [a3,c#4,e4]@2 ~, a3 ~@5 a3 ~@9",
  AK: "~@4 [a3,d4,f#4] ~@5 [a3,c#4] ~@5, ~@5 e4 ~@2", AL: "[b3,e4,g#4] ~@5 [b3,e4,g#4] ~@3 [b3,e4] ~@5, ~@5 g#4 ~@2",
  AM: "~@4 [a3,c#4,e4] ~@5 [a3,d4] ~@5, ~@5 f#4 ~@2", // A D5
  AN: "[b3,e4,g#4] ~@5 [b3,e4,g#4]@2 ~@4 [b3,e4]@2 ~@2, ~@12 g#4 ~@3", // E E5
  AO: "[a3,c#4,e4] ~@3 [b3,e4,g#4] ~ [a3,c#4,e4]@9 ~", // A E A
})).s("gm_clavinet").gain(0.14)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~@7 A B C B D B D B D E F G H I J K L M N I J O P Q R S T U P Q L V R S T W P X B X B X B X B X B E F G H I J K L M N
  I J O P Q R S T U P Q L V R S T W P X Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y Z Y E F G H I J K
  L M N I J O P Q R S T U P Q L V R S T W P X L Q R S T U P Q L V R S T W P X AA AB AC L AA J AC AD ~
>`.pickRestart({
  A: "~@14 e2 ~", B: "a2@2 ~@2 e2 ~ f#2 ~", C: "a2@2 ~@2 g2 ~ f#2 ~", D: "a2@4 ~@2 a2 ~ g2@2 ~@2 f#2@2 ~@2",
  E: "a1@4 ~@2 a1 ~ e2@7 ~", F: "a2@4 ~@2 a2 ~ e2@4 ~@2 e2 ~", G: "a1@2 ~@2 e2 ~ f#2 ~",
  H: "a2@4 ~@2 a2 ~ f#2@2 ~@2 e2@2 ~@2", I: "d2 ~ a1 ~", J: "d2@4 ~@2 d2 ~ a1@2 ~@2 d2@2 ~@2", K: "a2@2 ~@2 f#2 ~ e2 ~",
  L: "a1@4 ~@2 a1 ~ e2@4 ~@4", M: "a1 ~ e2 ~", N: "a2@4 ~@2 a2 ~ e2@3 ~ d#2@3 ~", O: "e2 ~ b1 ~",
  P: "e2@4 ~@2 e2 ~ f#2@3 ~ g#2@3 ~", Q: "a2 ~ e2 ~", R: "a2@2 ~@2 a1@3 ~ b1@3 ~ c#2@3 ~",
  S: "d2@4 ~@2 d2 ~ a1@2 ~@2 b1@2 ~@2", T: "d2@3 ~ c#2@3 ~ d2@3 ~ d#2@4", U: "e2@4 ~@2 e2 ~ b1@4 ~@4",
  V: "a1@4 ~@2 a1 ~ e2@4 ~@2 e2 ~", W: "e2@4 ~@2 e2 ~ b1@4 ~@2 d#2@2", X: "a2@4 ~@2 a2 ~ g2@2 ~@2 f#2@4",
  Y: "a1@2 ~@2 g2 ~ f#2 ~", Z: "a2@4 ~@2 e2 ~ g2@2 ~@2 e2@2 ~@2", AA: "a1@4 ~@2 a1 ~ b1@3 ~ c#2@3 ~",
  AB: "d2@4 ~@2 d2 ~ a1@3 ~ d2@3 ~", AC: "e2@4 ~@2 e2 ~ b1@2 ~@2 e2@2 ~@2", AD: "a1@3 ~ g#1 ~ a1@6 ~@4",
})).s("gm_fretless_bass").gain(0.38)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  A ~ B@2 A ~ C@2 A ~ D E@2 ~ D F ~@4 G H ~@7 I J K L ~@3 M ~@2 K N ~@3 A O P Q R O P Q R O S ~@12 I J K L ~@3 M ~@2 K N
  ~@5 T U V W X Y@2 Z AA AB AC AD@3 AE AF@2 AG AH AI@2 AJ AK AL@2 AM AN AO@2 AP AQ@2 ~@13 I J K N ~@3 M ~@2 K N ~@3 A
  ~@2 K N ~@3 M ~@2 K N ~@3 A K N ~ A K N ~@3
>`.pickRestart({
  A: "~@4 a3 ~@5 a3 ~@3 a3 ~", B: "[~@4 a3 ~@5 e3 ~@3 a2@10 a3 ~@3 f#3 ~@3, ~@14 a3 ~@17]/2",
  C: "[~@4 a3 ~@5 e3 ~@3 a2@9 ~ a3 ~@3 f#3 ~@3, ~@14 a3 ~@17]/2", D: "~@4 a3 ~@5 e3 ~@3 a3 ~",
  E: "[~@4 f#2@4 [a2,a3] ~@3 f#3 ~ a2@6 a3 ~@5 a3 ~@3 a3 ~, ~@5 f#2@2 ~@9]/2", // A
  F: "~@4 f#2@4 a3 ~@3 f#3 ~@3, ~@8 a2@7 ~", G: "~@4 d4 ~@5 d4 ~@5", H: "d4 ~@5 d4 ~@3 d4 ~@5",
  I: "~@2 e2@5 ~ f#2 ~@3 g#2@2 ~@2", J: "a2 ~@3", K: "~@4 a2@3 ~ b2@2 ~@2 c#3@2 ~@2", L: "d3 ~@3",
  M: "~@4 a3 ~@5 g3 ~@3 a3 ~", N: "d3@3 ~@13", O: "~@5 f#2@3", P: "a2@4 [e3,a3] ~@9 a3 ~",
  Q: "~@8 a3 ~@3 f#3 ~@3, ~@5 f#2@3", R: "a2@4 [e3,a3] ~@5 a3 ~@3 a3 ~", S: "a2@4 [e3,a3] ~@11",
  T: "~@2 a3@2 g3 ~@3 f#3@4 e3 ~ e3@2", U: "~@2 c#3 ~ d3@4 d3@2 c#3@2 d3@4", V: "d3 c#3 a2 g2 a2@2 a2 g2",
  W: "c#3 e3 a3@2 a3 g3 e3@2", X: "a3 ~@7",
  Y: "[~@2 e4@2 c#5@2 e4 ~ b4@2 e4 ~ a4@2 f#4@4 e4@2 c#4@2 a3@2 d4@4 c#4@2 a3@2]/2",
  Z: "d4@2 a3@2 ~@2 a3@4 c#4 ~ c#4@2 a3 ~", AA: "d4 ~ c#4 ~@7 a3 ~@5", AB: "a3@4 ~@2 g3@2 a3@2 g3 ~@3 c4 ~",
  AC: "~@2 c4 ~ c#4@2 d4 ~ d#4@2 a4@2 g4@2 e4 ~",
  AD: "[~@2 e4@2 a4 ~ g4 ~ a4 ~ g4 ~@3 d4@4 c4 ~@13 g4@4 ~@2 g4@4 g4@2 e4@2 c#4 ~, ~@14 e4@3 ~ e4@2 ~@4]/3",
  AE: "d4@2 c#4 ~@5 a3@7 ~", AF: "[g3@2 e3@4 c#3@2 d3 ~ c#3@2 ~@2 e3@4 ~@10 a4@2 a4 ~]/2",
  AG: "a4@4 a4 ~ g4 ~ a4@4 a4@2 g4 ~", AH: "a4@2 a4 ~@3 a4@4 c5@2 ~@4",
  AI: "[~@4 a4@2 a4@2 c5@2 a4@2 g4@2 a4@6 ~@4 d5@2 c5 ~ e5@2 ~@2]/2", AJ: "e5@4 d5@3 ~@7 e5@2",
  AK: "~@2 c5 ~ d5@4 c5@2 a4 ~ c5@4", AL: "[a4@2 g4@2 e4@4 a3@2 e3@2 c4 ~ a3@5 ~@9 a3 ~ g3 ~]/2",
  AM: "a3 ~ c4@3 ~ g4@2 a4@2 g4 ~@3 e4 ~", AN: "~ e4 d4 c#4 d4 c#4 ~ c#4",
  AO: "[~@2 d4@2 e4@2 g4@2 ~@2 g4@2 e4@2 c#4@4 a3@2 ~@8 a3@2 c4 ~]/2", AP: "d4@2 d4@2 c4@2 a3 ~",
  AQ: "[~@2 c4@2 b3@2 a3@2 g3@2 e3@2 g3@2 e3@4 c3@2 d3 ~@3 c3@4 a2@2 ~@2]/2",
})).s("gm_electric_guitar_muted").gain(0.26).pan(0.3)

// bass · electric bass pick · "PICK BASS"
const bass_2 = note(`<
  A B A B A B A B A B A B A B A B A B A B C D A B A B C E F G A B C E F G A B A B C E F G A B A B A B A B A B A B A B C
  D A B A B C E F G A B C E F G A B A B C E F G A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B
  A B C D A B A B C E F G A B C E F G A B A B C E F G A B A B C E F G A B A B C E F G A B C G A B C G H ~
>`.pickRestart({
  A: "a2@2 ~@2 [f#2,c#3]@2 ~@2 e2@2 ~@2 [f#2,c#3] ~ a2@2, ~@14 a3 ~", // F#5
  B: "a2@2 [f#2,a3] ~ [f#2,c#3]@2 ~@2 g2@2 ~@2 [f#2,c#3]@2 ~@2", // F#m F#5
  C: "d3@2 ~@2 [b2,f#3]@2 ~@2 a2@2 ~@2 [b2,f#3] ~ d3@2, ~@14 d4 ~", // B5
  D: "d3@2 [b2,d4] ~ [b2,f#3]@2 ~@2 a2@2 ~@2 f#2@2 ~@2", E: "d3@2 [b2,d4] ~ [b2,f#3]@2 ~@2 a2@2 ~@2 [b2,f#3]@2 ~@2",
  F: "e3@2 ~@2 [c#3,g#3]@2 ~@2 b2@2 ~@2 [c#3,g#3] ~ e3@2, ~@14 e4 ~", G: "e3 ~ [c#3,e4] ~ e2@2 ~@2 f#2@2 ~@2 g#2@2 ~@2",
  H: "[a2,e3]@2 ~@2 [g#2,e3] ~ [a2,e3]@9 ~", // A5 C#m A5
})).s("gm_electric_bass_pick").gain(0.24).pan(0.9)

// bass · electric bass pick · "PICK BASS"
const bass_3 = note(`<
  A B C@2 A B C@2 A B C@2 A B C@2 D@4 E F D@4 G H I@2 D@2 J@2 K L M B D@2 N O K L P B Q@2 P B R@2 P B D@4 O@2 D@4 O@2
  I@2 D@2 S O I@2 T B D@2 S O K I D@2 U V W X Y Z AA AB AC AD AE AF@3 AG AH@2 AI AJ AK@2 AL AM AN@2 AO AP AQ@2 AR AS@2
  AT@4 O@2 AT@4 O@2 AU@2 AT@2 O@2 K AU T B AT@2 O@2 K AU AV B AT@2 O@2 K AU T B AT@2 O@2 K AU AV B O K AV B O K AW ~
>`.pickRestart({
  A: "a2@3 ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~@3 [e3,a3] ~", B: "~ g3!3 f#3 g3 f#3 g3",
  C: "[a2@3 ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ e3@4 a3@5 ~ [e3,a3] ~ [e3,a3] ~ [e3,a3] ~ e3@2 f#3@2 e3@2, ~@26 a3 ~@5]/2", // A5
  D: "[e3,a3]@2 e3@2 [c#3,e3,a3] ~ [e3,a3]@2 [e3,a3]@2 [e3,a3]@2 [c#3,e3,a3] ~ [e3,a3]@2", // A5 A A5 A A5
  E: "~@4 [a3,d4] ~@5 [a3,d4]@6", F: "[a3,d4] ~@5 [a3,d4] ~@3 [a3,d4]@6",
  G: "~@4 [b3,d4] ~@5 [a3,d4]@2 [a3,d4] ~ [a3,d4]@2", H: "[a3,d4]@4 ~@2 [a3,d4]@4 [a3,d4]@2 [f#3,a3,d4] ~ [f#3,d4]@2",
  I: "[e3,b3]@2 e3@2 [e3,g#3,b3] ~ [e3,b3]@2 [e3,b3]@2 [e3,b3]@2 [e3,g#3,b3] ~ [e3,b3]@2", // E5 E E5 E E5
  J: "[[f#3,b3,d4] ~@3 [f#3,b3,d4] ~@3 [f#3,a3,d4]@2 [f#3,a3,d4]@2 [f#3,a3,d4] ~ [f#3,a3,d4]@4 [f#3,a3,d4]@2 [f#3,b3,d4] ~ [f#3,a3,d4]@2 [f#3,a3,d4]@2 [f#3,a3,d4]@2 [f#3,b3,d4] ~ [f#3,a3,d4]@2]/2", // Bm D Bm D Bm D
  K: "[e3,g#3,b3] ~@3 [e3,g#3,b3]@5 ~ [e3,g#3,b3] ~ [e3,g#3,b3] ~@3", // E
  L: "[e3,b3]@2 ~@2 [e3,g#3,b3] ~@3 [e3,b3]@2 ~@2 [e3,g#3,b3] ~@3", // E5 E E5 E
  M: "a2@3 ~ [c#3,e3,a3]@4 ~@2 [c#3,e3,g3] ~@3 [c#3,e3,a3] ~", // A C#dim A
  N: "[f#3,b3,d4] ~@3 [f#3,b3,d4] ~@3 [f#3,a3,d4]@2 [f#3,a3,d4]@2 [f#3,b3,d4] ~ [f#3,a3,d4]@2", // Bm D Bm D
  O: "[f#3,a3,d4]@2 [f#3,a3,d4]@2 [f#3,b3,d4] ~ [f#3,a3,d4]@2 [f#3,a3,d4]@2 [f#3,a3,d4]@2 [f#3,b3,d4] ~ [f#3,a3,d4]@2", // D Bm D Bm D
  P: "a2@3 ~ [e3,a3] ~ [e3,a3] ~ e3 ~ [e3,a3] ~@3 [e3,a3] ~", // A5
  Q: "[~@4 [e3,a3] ~ [e3,a3] ~ e3 ~ e3@4 a3@4 [e3,a3] ~ e3 ~ [e3,a3] ~ [e3,a3] ~ e3@2 f#3@2 e3@2, ~@26 a3 ~@5]/2", // A5
  R: "[a2@3 ~ [e3,a3] ~ [e3,a3] ~ e3 ~ e3@4 a3@4 [e3,a3] ~ e3 ~ [e3,a3] ~ [e3,a3] ~ e3@2 f#3@2 e3@2, ~@26 a3 ~@5]/2", // A5
  S: "[f#3,b3,d4] ~@3 [f#3,b3,d4] ~@3 [f#3,a3,d4]@2 [f#3,a3,d4]@2 [f#3,a3,d4] ~ [f#3,a3,d4]@2", // Bm D
  T: "a2@3 ~ [e3,a3]@4 ~@2 [e3,g3] ~@3 [e3,a3] ~", U: "~@2 a3 ~ g3 ~@3 f#3@4 e3 ~ e3@2",
  V: "~@2 c#3 ~ d3@4 d3@2 c#3@2 d3@4", W: "d3 c#3 a2 g2 a2@2 a2 g2", X: "c#3 e3 a3@2 a3 g3 e3@2", Y: "a3 ~@15",
  Z: "~ e4 c#5 e4 b4 ~ a4 f#4", AA: "~ e4 c#4 a3 d4@2 c#4 a3", AB: "d4@2 a3@2 ~@2 a3@4 c#4 ~ c#4@2 a3 ~",
  AC: "d4 ~ c#4 ~@7 a3 ~@5", AD: "a3@4 ~@2 g3@2 a3@2 g3 ~@3 c4 ~", AE: "~@2 c4 ~ c#4@2 d4 ~ d#4@2 a4@2 g4@2 e4 ~",
  AF: "[~@2 e4@2 a4 ~ g4 ~ a4 ~ g4 ~@3 d4@4 c4 ~@13 g4@4 ~@2 g4@4 g4@2 e4@2 c#4 ~, ~@14 e4@3 ~ e4@2 ~@4]/3",
  AG: "d4@2 c#4 ~@5 a3@7 ~", AH: "[g3@2 e3@4 c#3@2 d3 ~ c#3@2 ~@2 e3@4 ~@10 a4@2 a4 ~]/2",
  AI: "a4@4 a4 ~ g4 ~ a4@4 a4@2 g4 ~", AJ: "a4@2 a4 ~@3 a4@4 c5 ~@5",
  AK: "[~@4 a4@2 a4@2 c5@2 a4@2 g4@2 a4@6 ~@4 d5@2 c5 ~ e5@2 ~@2]/2", AL: "e5@4 d5@3 ~@7 e5@2",
  AM: "~@2 c5 ~ d5@4 c5@2 a4 ~ c5@4", AN: "[a4@2 g4@2 e4@4 a3@2 e3@2 c4 ~ a3@5 ~@9 a3 ~ g3 ~]/2",
  AO: "a3 ~ c4@3 ~ g4@2 a4@2 g4 ~@3 e4 ~", AP: "~ e4 d4 c#4 d4 c#4 ~ c#4",
  AQ: "[~@2 d4@2 e4@2 g4@2 ~@2 g4@2 e4@2 c#4@4 a3@2 ~@8 a3@2 c4 ~]/2", AR: "d4@2 d4@2 c4@2 a3 ~",
  AS: "[~@2 c4@2 b3@2 a3@2 g3@2 e3@2 g3@2 e3@4 c3@2 d3 ~@3 c3@4 a2@2 ~@2]/2",
  AT: "[e3,a3]@2 ~@2 [c#3,e3,a3] ~ a3@2 [e3,a3]@2 a3@2 [c#3,e3,a3] ~ a3@2", // A5 A A5 A
  AU: "[e3,b3]@2 ~@2 [e3,g#3,b3] ~ b3@2 [e3,b3]@2 b3@2 [e3,g#3,b3] ~ b3@2", // E5 E E5 E
  AV: "a2@3 ~ [e3,a3] ~ a3 ~@3 [e3,a3] ~@3 [e3,a3] ~", AW: "[e3,a3,c#4] ~ [e3,g#3,b3] [e3,a3,c#4]@5",
})).s("gm_electric_bass_pick").gain(0.12).pan(0.1)

// bass · electric bass pick · "PICK BASS" · soft notes
const bass_soft = note(`<
  ~@16 A@4 ~@2 A@4 ~@2 B@2 A@2 ~@3 C ~ D A@2 ~@3 C E ~ E F E ~ E F E ~ A@4 ~@2 A@4 ~@2 B@2 A@2 ~@2 B@2 ~@2 A@2 ~@3 B A@2
  ~@5 G ~@26 H@4 ~@2 H@4 ~@2 I@2 H@2 ~@3 I ~@2 H@2 ~@3 I J ~ H@2 ~@3 I ~@2 H@2 ~@3 I J ~@3 J ~@5
>`.pickRestart({
  A: "~ a3 ~@6", B: "~ b3 ~@6", C: "~ [e3,b3] ~ [e3,b3] ~ [e3,b3] ~ [e3,b3]", D: "~ e3@7", E: "~@8 a3 ~@7",
  F: "~@4 a3 ~@11", G: "~@10 e4 ~@5", H: "~ [e3,a3] ~ e3 ~ e3 ~ e3", I: "~ [e3,b3] ~ e3 ~ e3 ~ e3",
  J: "~@6 e3 ~ [e3,a3] ~@7", // A5
})).s("gm_electric_bass_pick").gain(0.07).pan(0.1)

// bass · electric bass pick · "PICK BASS"
const bass_4 = note(`<
  ~@2 A@2 ~@2 A@2 ~@3 B@2 ~@2 C ~@13 D E F G ~@6 F H ~@4 I J I J I J I J I J ~@12 D E F G ~@6 F H ~@50 D E F H ~@6 F H
  ~@6 F H ~@6 F H ~@4 F H ~@2 F H ~@3
>`.pickRestart({
  A: "[~@7 a2@5 ~@4]/2", B: "[~@4 f#2@4 a2 ~ f#2@4 a2@7 ~@11]/2", C: "~@4 f#2@4 a2@7 ~",
  D: "~@2 e2@5 ~ f#2 ~@3 g#2@2 ~@2", E: "a2 ~@3", F: "~@4 a2@3 ~ b2@2 ~@2 c#3@2 ~@2", G: "d3 ~@3", H: "d3@3 ~@13",
  I: "~@5 f#2@3", J: "a2@4 [e3,a3] ~@11",
})).s("gm_electric_bass_pick").gain(0.34)

// drums · kick
const kick = s("bd").struct("<~@8 [x!2]!160 [x ~@2 x ~@4] ~>").gain(0.45)

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@7 A ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B@2 ~ B ~ B ~ B ~ B@2 ~ B ~ B ~ B ~ B ~ B
  ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B@2 ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B@2 ~ B ~ B ~ B ~
  B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B@3 ~ B ~ B ~ B ~ B ~ B ~ B ~ B@3 ~ B ~ B ~ B ~@2
>`.pickRestart({
  A: "~@7 x", B: "~@3 x ~@4",
})).gain(0.25)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@7 A B@13 C B@15 C B@7 C B@7 C B@5 C B@5 C B C B@15 D B@8 E B E B@3 C B@5 C B@6 C B@3 C B@5 C B@7 C B@7 D B@7 C B@19
  F B@2 ~@2
>`.pickRestart({
  A: "x!2 ~ x!3 ~@2", B: "~@3 x ~@3 x", C: "~@3 x ~@4", D: "~@6 x ~@7 x!2", E: "~@6 x!2 ~@6 x ~", F: "~@7 x",
})).gain(0.1)

// drums · crash
// … 5 more lines

More by Eric Clapton