Strudelify
Tears in Heaven cover art

1992 · Rush (Music from the Motion Picture Soundtrack)

Tears in Heaven

Eric Clapton

KeyA majorTempo79 bpm
0:00/0:00
// Tears in Heaven — Eric Clapton
// 79 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 85 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(79/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.

// bass · fretless bass · "Bass"
const bass = note(`<
  ~@13 A B C D E F G@3 H I@3 J K@4 L M N O P ~ Q@3 R S@4 T@4 U@2 V ~ W@2 X Y L M N D Z ~ AA@3 AB AC@3 Y AD@3 AE AF B AG
  O E ~ AH@3 AI
>`.pickRestart({
  A: "~@2 c#3@2 ~@2 a3@9 ~", B: "~ c#3 ~ g#3@5", C: "~ c#3 ~ g3@5", D: "~@2 b2 c#3", E: "~ d3 ~ a3@5",
  F: "~@2 a3 ~ a3@3 ~ a3@5 ~@3", G: "[c#4@8 b3@6 a3@8 g#3 a3 g#3@4 e3@2 a3@10 e3@8]/3", H: "a2@15 ~",
  I: "[c#3@8 b2@3 ~ b2@2 a2@6 a3@4 g#3@4 e3@2 a3@16 ~@2]/3", J: "e3@15 ~",
  K: "[c#3@8 b2@2 ~@2 b2@2 a2@8 g#3 a3 g#3@4 e3@2 a3@13 ~@3 e3@18]/4", L: "~ c#3@2 a3@5", M: "~ c#3@2 g#3@5",
  N: "~ c#3@2 g3@5", O: "~@3 a#2 b2@2 c#3@2", P: "~ d3@2 a3@5",
  Q: "[c#3@8 e3@6 a3@8 g#3 a3 g#3@4 e3@2 a3@6 ~ a3@3 e3@8]/3", R: "a2@7 ~",
  S: "[~@2 g3@3 f#3 g3 e3@4 ~@2 d3@2 b2@5 a2@2 d3 g2@5 a2@2 b2@2]/4",
  T: "[~@4 g3@4 f#3@4 g3@2 e3@10 d3@4 e3@2 b2@10 ~@2 b2@2 d3@2 e3@17 ~]/4",
  U: "[c#4@6 a3 ~@3 b3 c#4 b3 ~ a3@10 g#3@8]/2", V: "a3@7 ~", W: "[c#3@8 b2@5 ~ a2@7 ~ a3@2 g#3@8]/2",
  X: "a3@5 ~ a3@5 ~ a3@4", Y: "e3", Z: "~@2 d3@3 ~ a3@10", AA: "[c#3@8 e3@6 a3@8 g#3 a3 g#3@4 e3@2 a3@10 e3@8]/3",
  AB: "a2", AC: "[c#4@8 ~@2 b3 c#4 b3 ~ a3@10 g#3@4 e3@2 a3@18]/3",
  AD: "[c#3@8 e3@4 ~@2 a3@10 g#3@4 a3@2 f#3@10 e3@7 ~]/3", AE: "e3@7 ~", AF: "~ c#3 ~ a3@5", AG: "~@2 c#3@3 ~ g3@10",
  AH: "[c#3@8 e3@6 a3@6 ~@2 g#3 a3 g#3@4 e3@2 a3@10 e3@4 ~@2 e3 d3]/3", AI: "c#3@11 ~@5",
})).s("gm_fretless_bass").gain(0.4)

// chords · acoustic guitar nylon · "Guitar 1"
const acoustic_guitar_nylon = note(`<
  A B@2 C D E@2 F@2 G@2 H@2 I J K L M N O@2 P Q R@2 S@2 T@2 U@2 V W X L Y Z AA@2 AB AC AD AE@2 AF AG AH@2 AI AJ@2 AK@2
  AL@2 AM@2 AN J K AO M AP AQ@2 AR AS AT@2 AU@2 AV@2 AW AX AY W X AZ@2 BA BB@2 BC BD
>`.pickRestart({
  A: "~@14 e2 f#2",
  B: "[~@2 e3@2 [e3,a3,c#4] [c#4,d4] a3 ~ [g#2,b3,e4]@2 e3 ~ [g#2,b3]@2 [f#2,e3,a3,c#4]@6 ~@2 f#2@2 e2@2 e2@2 ~@2 e2@2, a2@7 ~@5 [e3,e4] ~@7 [e3,a3,c#4]@4 [e3,a3,c#4]@4 [e3,a3,c#4]@4]/2", // A Dmaj7 E G#m F#m7 E A
  C: "[f#2,a3,d4]@2 ~ f#2 e2!2 ~ e2, ~ [a3,d4] [e3,a3,b3,d4] [g#3,b3,d4]", // D D5 Esus4 G#dim
  D: "[a2,e3,a3,c#4]@4 ~@2 a2@2 ~@4 [e3,a3,c#4]@2 e2 f#2, ~ [e3,a3,c#4]!2 ~, ~@10 a2@5 ~", // A
  E: "[[e3,a3,c#4]@4 [e3,a3,c#4] [c#4,d4] a3 ~ [g#2,e3,b3,e4]@2 e3 ~ [g#2,b3,e4]@2 f#2@3 ~ f#2@2 ~@2 f#2@2 e2 ~ e2@2 ~@2 e2@2, a2@7 ~@5 e3@8 [e3,a3,c#4]@4 [e3,a3,c#4]@4 [e3,a3,c#4]@4, ~@7 [a3,c#4]@3 ~@6]/2", // A Dmaj7 E A
  F: "[[f#2,a3,d4]@4 ~@2 f#2@2 e2 ~ e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2, ~ [a3,d4] [e3,a3,c#4] e3@2 ~@3, ~@3 [a3,c#4] [g#3,b3]!2 [a3,c#4] [b3,d4]]/2", // D D5 A G#m A Bm
  G: "[[a2,e3,a3,c#4]@4 [a3,c#4] [c#4,d4] a3 ~ [g#2,e3,b3,e4]@3 ~ [g#2,f#4] ~ f#2@3 ~ f#2@2 ~@2 f#2@2 e2 ~ e2@2 ~@2 e2@2, ~ a2 ~@6, ~@2 e3 ~@4 [e3,a3,c#4]@3 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2]/2", // A Dmaj7 E G#7 A
  H: "[[f#2,a3,d4]@2 ~ f#2 ~ e2 ~ e2 [e2,g#3,b3]@2 ~ e2 ~ e2 ~ e2, ~ [a3,d4] [e3,a3,c#4] e3@2 ~@3, ~@3 [a3,c#4] ~ [g#3,b3] [a3,c#4] [b3,d4]]/2", // D E D5 A G#m A Bm
  I: "[f#2,a3,c#4]@2 [a3,c#4] f#2 [a3,c#4] f#2 [a3,c#4] f#2", J: "[f2,g#3,c#4]@2 ~ f2 ~ f2 ~ f2, ~ [g#3,c#4]!3",
  K: "[e2,g3,c#4]@2 ~ e2 ~ e2 ~ e2, ~ [g3,c#4]!3", L: "[f#2,e3,f#3,a#3]!2 [g#2,f#3,b3] [a#2,f#3,c#4]",
  M: "[b2,a3,d4]@2 [a3,d4] b2 [a3,d4] b2 ~ b2, ~@3 [a3,d4]", N: "~ [e2,e3,a3,b3] [e2,e3,a3,b3,d4]@6",
  O: "[~@4 c#4 ~ a3@2 ~@2 e3@2 [b3,e4]@2 f#2@3 ~ f#2@2 ~@2 f#2@2 e2 ~ e2@2 [e3,a3,c#4]@2 e2@2, a2@2 [g#2,b3,e4] g#2 ~@4, ~@4 e3@4 ~@4 e3 ~ [e3,a3,c#4]@6 [e3,a3,c#4]@4 [e3,a3,c#4]@4 ~@4, ~@5 [c#4,d4]@2 ~@25]/2", // E5 A E A Dmaj7
  P: "[f#2,a3,d4]@2 d4 f#2 [e3,b3,d4] e2 [e3,g#3,b3,d4] e2, ~@4 a3@7 ~@5, ~@8 e2 ~@7", // D E7
  Q: "[a2,e3,a3,c#4]@4 ~@2 a2@2 ~@2 a2@2 ~@3 f#2, ~ [e3,a3,c#4]!3, ~@7 e2", // A
  R: "[~@2 e3@2 [a3,c#4] ~ a3@2 ~@2 e3@2 [g#2,e3,b3,e4] ~ f#2@3 ~ f#2@2 ~@2 f#2@2 e2 ~ e2@2 ~@2 e2@2, a2@2 [g#2,b3,e4] ~@5, [a3,c#4]@2 e3@2 ~@3 [e3,a3,c#4]@3 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [e3,g#3,c#4]@2, ~@5 [c#4,d4]@2 ~@25]/2", // A E A C#m Dmaj7
  S: "[[f#2,a3,d4]@4 ~@2 f#2@2 e3 ~ e3 ~ [a3,c#4]@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2, ~@4 [a3,d4]@4 [e2,a3,c#4]@4 e3@9 ~@11, ~@4 [g#3,b3]!2 [a3,c#4] [b3,d4]]/2", // D A D5 A G#m A Bm
  T: "[[e3,a3,c#4]@4 [a3,c#4] ~ a3@2 [g#2,b3,e4]@4 [g#2,f#4] ~ f#2@3 ~ f#2@2 ~@2 f#2@2 e2 ~ e2@2 ~@2 e2@2, a2 ~@3, ~@2 e3@2 ~@3 [e3,a3,c#4]@3 [e3,a3,c#4]@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2, ~@5 [c#4,d4]@2 ~@25]/2", // A E G#7 A Dmaj7
  U: "[[f#2,a3,d4]@2 ~ f#2 [e3,a3,c#4] e2 ~ e2 ~ e2 ~ e2 ~ e2 ~ e2, ~@4 [a3,d4]@4 e2 ~@3 e3@6 ~@14, ~@3 [a3,c#4] [g#3,b3]!2 [a3,c#4] [b3,d4]]/2", // D A D5 A G#m A Bm
  V: "f#2 ~ f#2@2 ~@2 f#2@2 ~@2 f#2@2 ~@2 f#2@2, [a3,c#4]!4", W: "f2!2 ~ f2 ~ f2 ~ f2, [g#3,c#4]!4",
  X: "e2 ~ e2@2 [g3,c#4]@2 e2@2 [g3,c#4]@2 e2@2 ~@2 e2@2, [g3,c#4] ~@2 [g3,c#4]", // Gdim
  Y: "[b2,a3,d4]@2 ~ b2 ~ b2 ~ b2, ~ [a3,d4]!3", Z: "~ [e2,e3,a3,b3,d4] [e2,e3,a3,b3,d4]@6",
  AA: "[~@2 e3@2 c#4 [c#4,d4] a3@2 [b3,e4]@2 e3 ~ [e3,b3,e4] ~ f#2@3 ~@3 e3 ~ e3@2 e2 ~ e2@2 ~@2 e2@2, a2@8 g#2@5 ~@5 f#2@6 ~@8, ~@4 e3@3 ~@7 [e3,a3,c#4]@6 [a3,c#4]@4 [e3,g#3,c#4]@4 [e3,g#3,c#4]@4]/2", // Dmaj7 E5 A C#m
  AB: "f#2 ~ f#2@2 ~@2 f#2@2 e2 ~ e2@2 ~@2 e2@2, [a3,d4]!2 [e3,a3,b3,d4] [e3,g#3,b3,d4]", // D5 Esus4 E7
  AC: "e3 ~ e3@2 ~@2 a2@2 e3 ~ [a2,e3]@2 ~@2 a2 b2, [a2,a3,c#4] [e3,a3,c#4] [a3,c#4] [e3,a3,c#4]", // A5 A
  AD: "g3 ~ g3@2 ~@2 c3@2 [b2,b3,d4]@2 g3 ~@3 b2@2, [c3,c4,e4] [g3,c4,e4] ~ [g3,b3,d4]", // Bm C G
  AE: "[[e3,a3,c4]@2 ~ g2 [f#2,d3,a3,c4]@2 ~ f#2 [g2,g3,b3]@2 ~ g2 [f#2,d3,a3]@2 ~ f#2, a2@2 ~ [a3,c4] ~@4, ~ [e3,a3,c4] ~ d3@2 [d3,g3,b3] ~ [d3,a3]]/2", // Am D7 G D Am G D5
  AF: "[g3,b3]@4 ~@2 b2@2 g3 ~ g3@2 [g3,b3]@2 b2@2, e2@8 ~@4 e2 ~@3, ~@4 [g3,b3]@4 [e3,b3]@5 ~@3", // G E5
  AG: "[c3,g3,c4,e4]@4 ~@2 c3@2 [b2,g3,b3,d4]@3 ~@3 b2@2, ~ [g3,c4,e4] ~ [g3,b3,d4]", // C G C G
  AH: "[[a2,e3,a3,c4]@2 ~ a2 [f#2,d3,a3,c4]@2 ~ f#2 [g2,g3,b3]@2 ~ g2 [f#2,d3,a3]@2 [f#2,d3,a3]@2, ~ [e3,a3,c4] ~ d3@2 [d3,g3,b3] ~@2, ~@3 [a3,c4] ~@4]/2", // Am D7 G D Am G Am
  AI: "[e3,b3] [g#3,b3] [a3,c#4] [b3,d4], e2, ~ e3@3", // E5 G#m A Bm
  AJ: "[~@2 e3@2 e3@2 a3 ~@3 [g#2,b3,e4]@2 e3 ~ [f#2,e3,a3,c#4]@6 ~@2 f#2@2 [e2,e3,a3,c#4]@4 ~@2 e2@2, a2@7 ~@25, [a3,c#4] ~@4 [e3,a3,c#4] ~ [e3,g#3,c#4]]/2", // E F#m7 A C#m
  AK: "[[f#2,a3,d4]@4 ~@2 f#2@2 [e2,e3,a3,c#4]@4 a3@2 ~@2 [g#3,b3]@3 ~@3 e2@2 ~@2 e2@2 ~@2 e2@2, ~@4 [a3,d4]@4 ~@4 [e3,c#4]@4 e3 ~@3 [g#3,b3]@4 [a3,c#4]@4 [b3,d4]@4, ~@14 e2@5 e2@2 ~@11]/2", // D A G#m D5 C#m G#m A Bm
  AL: "[e3 ~ e3@2 [b3,c#4] ~ a3@2 [g#2,b3,e4]@2 e3 ~ [g#2,b3,e4]@2 f#2@3 ~ f#2@2 ~@2 f#2@2 e2 ~ e2@2 ~@2 e2@2, a2 ~@3, [a3,c#4]@4 e3@3 ~@7 [e3,a3,c#4]@6 [e3,a3,c#4]@4 [e3,g#3,c#4]@4 [e3,g#3,c#4]@4, ~@5 [c#4,d4]@2 ~@25]/2", // Bsus2 E A C#m Dmaj7
  AM: "[[f#2,a3,d4]@4 ~@2 f#2@2 e2 ~ e2@2 ~@4 [g#3,b3]@4 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2, ~@4 a3@8 [a3,c#4]@4 ~@4 [g#3,b3]@4 [a3,c#4]@5 ~@3, ~ d4 [e3,c#4] e3@4 [b3,d4], ~@7 e2@3 ~@6]/2", // D G#m A G#m A C#m Bm
  AN: "[f#2,e3,a3,c#4]@2 [a3,c#4] f#2 [a3,c#4] f#2 [a3,c#4] f#2", // F#m7 A
  AO: "[f#2,e3,f#3,a#3]@4 [f#2,e3,a#3]@4 [g#2,f#3,b3]@4 [a#2,f#3,c#4]@3 ~", // F#7 G#m7 F#
  AP: "~@2 [e2,e3,a3,b3,d4]@2 e2@9 ~ e2@2, ~ [e3,a3,b3,d4]@3", // Esus4
  AQ: "[~@2 e3@2 c#4 ~ a3@2 ~@2 e3@2 ~@2 f#2@3 ~ f#2@2 ~@2 f#2@2 [e2,g#3,c#4]@4 ~@2 e2@2, a2 g#2 ~@2, ~@5 [c#4,d4]@2 ~ [b3,e4]@4 [b3,e4]@4 ~@12 [g#3,c#4]@4, ~@7 [e3,a3,c#4]@3 [e3,a3,c#4]@2 ~@4]/2", // C#m Dmaj7 E5 C#5 A
  AR: "[f#2,a3,d4]@2 [a3,d4] f#2 [e3,a3,b3,d4] e2 ~ e2, ~@8 e2 ~@3 [g#3,b3,d4]@4", // D D5 Esus4 G#dim
  AS: "[a2,e3,a3,c#4]@4 ~@2 a2@2 ~@2 a2@2 [e3,a3,c#4]@2 ~ f#2, ~@2 [e3,a3,c#4]@2 [e3,a3,c#4]@2 ~ e2", // A
  AT: "[~@2 e3@2 a3 ~ a3@2 ~@2 [g#2,e3,b3,e4]@2 e3 ~ f#2@3 ~@3 e3 ~ e3@2 e2 ~ e2@2 ~@2 e2@2, a2@4 ~@5 f#2@3 ~@4, [a3,c#4]@2 [e3,c#4]@2 ~@3 [e3,a3,c#4]@3 [a3,c#4]@2 [e3,g#3,c#4]@2 [e3,g#3,c#4]@2]/2", // E A C#m A C#m
  AU: "[[f#2,a3,d4]@4 ~@2 f#2@2 [e2,e3,a3,c#4]@3 ~ a3@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 e2@2 ~@2 [e2,e3]@2, ~@4 [a3,d4]@4 ~@4 e3@9 ~@11, ~@3 c#4 [g#3,b3]!2 [a3,c#4] [b3,d4]]/2", // D A E D5 G#m A Bm
  AV: "[~@2 e3@2 c#4 ~ [a2,a3]@2 ~@2 e3@2 f#4 ~ f#2@3 ~ f#2@2 ~@2 f#2@2 [e3,a3] ~ e3@2 ~@2 e2@2, [a2,a3,c#4]@4 e3@4 [g#2,b3,e4]@4 ~@2 [e3,a3,c#4]@6 [e3,a3,c#4]@4 [e2,c#4]@5 ~@3, ~@5 [c#4,d4]@2 ~@21 [e3,g#3,c#4]@4]/2", // A A5 A E A C#m Dmaj7 C#m
  AW: "[f#2,a3,d4]@4 ~@2 f#2@2 [a3,c#4]@2 e3 ~@3 e2@2, ~@4 [a3,d4]@4 e2@5 ~@3, ~@8 e3 ~@3 [e3,a3,c#4]@4", // D A D5 A
  AX: "~ e2 ~ e2 ~ e2 ~ e2, [g#3,b3]!2 [a3,c#4] [b3,d4]", AY: "[f#2,a3,c#4]@2 ~ f#2 ~ f#2 ~ f#2, ~ [a3,c#4]!3",
  AZ: "[[f#2,e3,f#3,a#3]@2 [f#2,a#3]@2 [g#2,b3]@2 [a#2,c#4]@2 [b2,a3,d4]@2 ~ b2 ~ b2 ~ b2, ~ e3@2 f#3@2 [a3,d4] [f#3,a3,d4]!2]/2", // F#7 F# G#m A#m Bm7 D5 D
  BA: "e3 ~ [e2,e3,a3,b3,d4]@2 [e2,e3,a3,b3,d4]@8 ~@4", // Esus4
  BB: "[[a3,c#4]@2 e3@2 [e3,a3,c#4] ~ a3@2 [g#2,b3,e4]@2 e3 ~ [g#2,b3,e4]@2 e3@3 ~ e3@2 ~@2 f#2@2 e2@2 e2@2 ~@2 e2@2, a2@4 ~@3 [f#2,a3,c#4]@3 ~@6, e3 ~@4 [c#4,d4]@2 ~@13 [e3,a3,c#4]@4 [g#3,c#4]@4 [g#3,c#4]@4]/2", // A E F#m Dmaj7 A C#5
  BC: "[f#2,a3,d4]@2 ~ f#2 [e2,e3,a3,b3,d4]@2 [g#2,e3,b3,d4]@2, ~ [a3,d4] ~@2", BD: "[a2,e3,a3,c#4]@3 ~",
})).s("gm_acoustic_guitar_nylon").gain(0.4)

// chords · electric guitar jazz · "Guitar 2"
const electric_guitar_jazz = note(`<
  ~@13 A@2 B C D@2 E@2 F G ~ H ~@2 I@2 J K L@2 M N O@2 P@2 F Q R S T U R S T V W@2 X Y Z@2 AA AB AC@2 AD AE AF B AG@2 AH
  AI ~ AJ ~@2 AK@2 AL ~@11
>`.pickRestart({
  A: "[f#4@3 g#4@4 ~]/2", B: "a4@13 ~@3", C: "a#3@2 b3 c#4", D: "[d4@11 ~@3 [e4,a4,b4]@15 ~@3]/2",
  E: "[e4@7 ~ f#4@6 f#4@10 e4@4 b4@4]/2", F: "[a4,d5]@2 [a4,e5] [a4,d5]", G: "[b4,d5]", H: "~ f#5 g#5 a5@5",
  I: "[e4@7 ~ f#4@5 ~ f#4@10 e4@7 ~]/2", J: "d4@7 ~ d4@6 ~@2", K: "f#4@3 ~", L: "[f#4@5 ~ g#4@9 ~]/2", M: "c#4@15 ~",
  N: "a#3@2 b3 ~", O: "[[e4,a4,d5]@7 ~]/2", P: "[[a4,c#5]@6 ~@2 [f#4,a4]@6 [f#4,a4]@10 [c#4,e4]@4 [a4,c#5]@3 ~]/2",
  Q: "[b4,d5]@13 ~@3", R: "[c5,e5] [b4,d5]", S: "[a4,c5] [f#4,a4]", T: "[g4,b4] [f#4,a4]",
  U: "[e4,g4]@8 [f#4,a4]@4 [f#4,a4] g4@3", V: "[e4,g#4]@7 ~ a4@4 b4@4", W: "[~@4 b4@2 a4 ~@3 e5@3 ~ b4@13 ~@5]/2",
  X: "~@2 d5 e5 b4@2 b4 a4", Y: "b4@7 ~", Z: "[~@4 [c#5,e5]@2 [a4,c#5] ~ [e5,g#5]@2 ~@2 g#5@2 [c#5,e5]@18]/2",
  AA: "~@4 f#5@2 a5 ~ [c#5,e5]@4 c#5 b4 a4@2, ~@4 d5@4 ~@4 e5@3 ~", AB: "[b4,e5]@13 ~@3",
  AC: "[f#4@11 ~ g#4@15 ~ g#4@4]/2", AD: "[g4,a4]@3 ~", AE: "a#3@4 b3@2 c#4 ~", AF: "[a4,d5]@7 ~",
  AG: "[[a4,c#5]@6 ~@2 [f#4,a4]@6 a4@10 [a4,c#5,e5,a5]@7 ~, ~@7 f#4@3 ~@6]/2", // A F#m A
  AH: "[d5,a5]@7 ~ [d5,f#5,a5]@3 ~ [e5,g#5]@4", AI: "a5@15 ~", AJ: "~@2 f#5@2 g#5 ~ g#5@9 ~",
  AK: "[b4@7 ~ b4@3 ~ a4@10 ~@2 f#4@8]/2", AL: "[f#4,a4]@7 ~ [e4,a4]@8",
})).s("gm_electric_guitar_jazz").gain(0.22).pan(0.6)

// chords · electric guitar jazz · "Guitar 2" · soft notes
const electric_guitar_jazz_2 = note("<~@17 A@2 ~@15 B ~@9 C ~@8 D ~@4 E ~@3 F ~@2 G H ~@18>".pickRestart({
  A: "[~@14 d5@15 ~@3]/2", B: "~@6 c#4 ~", C: "~@13 b4@3", D: "~@13 f5 ~@2, ~@6 e5 ~", E: "~@3 f4", F: "[e4,d5]@13 ~@3",
  G: "f#5@7 ~@5 d5@4, a4@5 ~@11", H: "e5@15 ~, c#5@13 ~@3",
})).s("gm_electric_guitar_jazz").gain(0.16).pan(0.6)

// other · accordion
const accordion = note(`<
  ~ A@2 B C@2 ~@7 D E F G H@2 I@2 B D ~@4 J@2 K L M E F N O@2 A@2 B P Q@4 R S@2 T U@2 V L W@2 K L M E F N O@2 X@2 B D Y
  Z AA@2 AB@2 AC@2 AD E F N O@2 A@2 B AE
>`.pickRestart({
  A: "[a4@4 b4@3 a4@5 e4 d4 c#4@2]/2", B: "d4@2 e4 g#4", C: "[a4@5 ~@3]/2", D: "a4", E: "g#4", F: "g4", G: "f#4",
  H: "[~@5 a4 f#4 e4@9, ~@12 e4 ~@19]/2", I: "[a4@6 b4 c#5 b4@6 a4@10 e4@2 d4@2 c#4@4]/2",
  J: "[e4@4 b4@3 f#4@5 e4@4]/2", K: "f#4 e4", L: "g#4@2 a4 b4", M: "c#5@3 a4", N: "a#4@2 b4 c#5",
  O: "[d5@10 b4@2 [a4,b4] [f#4,a4] e4@18]/2", P: "a4@5 b4 [a4,c#5] [b4,d5]",
  Q: "[e5 ~ g5@6 [b4,d5,f#5]@4 [b4,d5]@2 [c5,e5]@6 b4 c5 b4 ~@7 b4@8 a4 g4 ~@6 b4@10 ~@4 b4@4, c5@7 ~@15 a4@8 ~@10 a4@6 ~@10 a4@4 ~@4, ~@24 d5@19 ~ d5@12 ~@2 d5@6]/4", // Bm C
  R: "~ g5@3 [b4,d5]@4, [c5,e5] ~", S: "[a4 e5 a4@2 b4@2 [a4,d5]@2, c5@8 d5@15 ~@9]/2", T: "g#4@2 a4 b4, e5@7 ~",
  U: "[[c#5,e5]@4 [b4,e5]@3 [a4,e5]@9]/2", V: "d4 e4", W: "[a4@2 ~ c#5 b4@3 a4@9]/2",
  X: "[a4@3 c#5 b4@2 ~ a4@5 e4 d4 c#4@2]/2", Y: "c#4 b3", Z: "a3@3 c#4", AA: "[d4@2 c#4 e4@3 c#4 d4]/2",
  AB: "[e4@3 a4 b4@3 a4@7 e4@2]/2", AC: "[d4@2 e4@3 g#4 a4 b4]/2", AD: "a4 c#5@7", AE: "a4@11 ~@5",
})).s("gm_accordion").gain(0.11).pan(0.3)

// other · acoustic guitar steel · "Guitar 3"
const acoustic_guitar_steel = note(`<
  A B C@2 D ~@5 E F ~@4 G H I ~ J K L M ~@4 N O@2 P Q R S@2 T ~@2 U V@2 ~@7 W@2 ~@2 X@2 ~@9 Y Z AA AB AC ~ AD AE AF F
  ~@5 AG AH ~@2 AI AJ
>`.pickRestart({
  A: "~@14 e2 f#2", B: "a2@9 ~@7", C: "[~@4 [e4,a4]@3 ~ [b3,e4]@3 ~ a3@11 ~ a3@4 g#3@4, ~@3 e3 ~@2 d4@2]/2",
  D: "[a3,c#4]@13 ~@3", E: "~@2 [e4,a4]@2 [b3,e4]@2 c#4 e4", F: "d4 ~", G: "~@2 b3 c#4", H: "d4@3 ~",
  I: "~@2 f#4 ~ f#4@12", J: "~@4 [e4,a4]@3 ~ [b3,e4]@3 ~ [e3,a3]@3 ~", K: "~@4 a3@3 ~ a3@3 ~ g#3@3 ~, d4@7 ~ d4@8",
  L: "[a3,c#4]@12 ~@2 e3 f#3", M: "a3@7 ~", N: "~@4 [e4,a4]@4 [b3,e4]@3 ~ [e3,a3]@4",
  O: "[[a3,d4]@8 ~@2 b3@2 e4@2 b3@15 ~@3]/2", P: "a4@7 ~", Q: "g#4@13 ~@3", R: "g4@13 ~@3",
  S: "[f#4@7 ~ g#4@4 ~@4 b4@12 ~@4, ~@13 a#4@5 ~@14]/2", T: "~@2 e2 ~ e2@12",
  U: "~@4 a3 b3 c#4 d4 e4 d4 a3 f#3 e3 f#3 a3 b3", V: "[a3@3 ~ c#4@2 e4 ~ e4@4 b3@2 a3@4 ~@14]/2",
  W: "[~@4 b4@2 a4 ~@7 b4@10 ~@8]/2", X: "[~@4 d5@2 c#5 ~ g#5@3 ~ g#5@2 e5@17 ~]/2",
  Y: "~@4 [e4,a4]@3 ~ [b3,e4]@3 ~ [e3,a3]@4", Z: "a3@7 ~ a3@4 g#3@3 ~, d4@15 ~",
  AA: "~@6 e3 f#3 [a3,b3] b3 c#4 d4 c#4 b3 a3 b3", AB: "b3 ~", AC: "~@2 b3 d4@5",
  AD: "~@4 b3 a3 f#3 e3@4 ~ e3 f#3 a3 b3", AE: "b3@3 ~@5", AF: "~@4 e4 ~ e4@6 b3@2 a3@2", AG: "~@10 e3 f#3 a3@2 b3@2",
  AH: "~@2 e3 ~ e3@11 ~", AI: "~@2 c#4 d4 c#4@2 d4@2 c#4@2 d4@2 c#4@2 d4@2", AJ: "c#4@5 ~@3",
})).s("gm_acoustic_guitar_steel").gain(0.24).pan(0.3)

// other · epiano2 · "Chorused Piano"
const epiano2 = note(`<
  ~@3 A B C D@2 E ~ F@2 G H I J K@2 L M@2 N O P ~@2 Q@4 R S T@4 U@2 V ~@17 W X Y@2 Z ~@3 AA ~ AB@2 AC@2 AD@2 ~@3 AE AF@2
  ~ AG AH ~@4
>`.pickRestart({
  A: "~@2 f#5@5 ~, ~ a5@6 ~", B: "~@2 e5@2 b5@2 a5@4 e5@5 ~", C: "e5@7 ~", D: "[~@8 f#5@15 ~@9]/2",
  E: "~ c#5, ~ e5@3, ~@3 d5@5", F: "[~@4 a5@4 e5@13 ~@11]/2", G: "~@6 e5@3 ~ e5@3 ~ e5@2", H: "f#5@13 ~ f#5@2",
  I: "g#5@15 ~", J: "~ a5", K: "[~@10 f#5@3 ~ f#5@18]/2", L: "~ e5@3", M: "[~@2 a5@2 e5@9 ~@3]/2", N: "a5@3 e5",
  O: "~@6 b5 a5 e5@8", P: "a5@7 ~", Q: "[~@10 e6@7 ~@3 a5@4 g#5@6 f#5@14 a5@13 ~@7, ~@2 e5@7 ~@23, ~@6 b5@11 ~@47]/4",
  R: "~@7 e6, ~@5 e5@3", S: "f#5", T: "[~@10 g#5@4 c#5@19 ~@5 c#5@4 f#5@4 c#6@8 ~@10]/4", U: "[~@2 e5 ~ e5@26 ~@2]/2",
  V: "~ a5 e5@2", W: "~@7 e5, ~@3 e4@5, ~@5 b4@3", X: "f#4@13 ~@3", Y: "[c#5@5 ~@3]/2",
  Z: "~@5 f#5@3, ~ f#4@7, ~@3 c#5@5", AA: "~ f#5@3, ~ a5@7", AB: "[~@10 a5@6 e5@9 ~@7, ~ a4@11 ~@4, ~@6 e5@9 ~@17]/2",
  AC: "[~@8 e4@5 ~@19, ~@4 a4@19 ~@9]/2", AD: "[~@5 e5@7 ~@4, ~ e4@11 ~@4, ~@3 b4@9 ~@4]/2", AE: "f#5@13 ~@3",
  AF: "[~@10 c#5@21 ~, ~@2 c#4@17 ~@13, ~@3 g#4@6 ~@7]/2", AG: "~@3 d5@5, ~@2 d4@13 ~, ~ a4@3",
  AH: "~@2 [e4,e5] ~ [e4,e5]@9 ~@3", // E
})).s("gm_epiano2").gain(0.27).pan(0.3)

// drums · hihat
const hihat = s("hh").struct("<[x!4] ~@22 [~ x ~ x]!60 ~@2>").gain(0.24)

// drums · congas
const congas = s("conga:13").struct("<~ [~ x ~ x]!83 ~>").gain(1.02)

// drums · congas
const congas_2 = s("conga:18").struct(`<
  ~ A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2
  B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B C A@2 B ~
>`.pickRestart({
  A: "~@3 x ~@4", B: "~@3 x ~ x ~@2", C: "~@5 x ~@2",
})).gain(1.02)

// drums · congas · soft notes
const congas_soft = s("conga:18").struct(`<
  ~ A@2 ~ B A@2 ~ B A@2 ~ B A@2 ~ B A@2 ~ B A@2 ~ B A@2 ~ B A@2 ~ B A@2 ~ B A@2 ~ B A@2 ~ B A@2 ~ B A@2 ~ B A@2 ~ B A@2
  ~ B A@2 ~ B A@2 ~ B A@2 ~ B A@2 ~ B A@2 ~ B A@2 ~@2
>`.pickRestart({
  A: "~@5 x ~@2", B: "~@3 x ~@4",
})).gain(0.51)

// drums · congas
const congas_3 = s("conga:33").struct(`<
  ~ A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B C D A B
  C D A B C D A B C D A B C D A B C D A B C D A B A ~
>`.pickRestart({
  A: "x", B: "x!2 ~@6", C: "x ~@6 x", D: "x!2 ~@5 x",
})).gain(1.02)

// drums · congas · soft notes
const congas_soft_2 = s("conga:33").struct(`<
  ~ 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 ~ A ~ B ~ A ~ B ~
>`.pickRestart({
  A: "~ x ~@5 x", B: "~ x ~@6",
// … 18 more lines

More by Eric Clapton