Strudelify

Running on Faith

Eric Clapton

KeyG majorTempo63 bpm
0:00/0:00
// Running on Faith — Eric Clapton
// 63 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 102 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(63/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 steel · "Guitar"
const acoustic_guitar_steel = note(`<
  A@2 B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB@2 AC@2 AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR AS AT
  AU AV AW AX@2 ~ AY AD AZ AD BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX BY BZ@2 CA CB CC
  CD CE CF@2 CG CH CI CJ CK CL CM@3
>`.pickRestart({
  A: "[a5 b5 b5@4 a5@2 a5@3 ~@3 g5@5 ~@4 d5 e5@2 ~ g5 e5 [a#4,d5] b4 ~]/2", B: "g4@3 ~ d6 c6 a#5 b5 g5@6 ~ g5",
  C: "e5@4 ~@2 e5!2 f#5 f5@4 ~@2 f5", D: "d#5 e5 ~ c5 g4@7 ~ d5 e5 ~ [e5,g5]", E: "f#5@2 ~ d5 a4@5 ~@3 b4 a4 g4 ~",
  F: "g5@5 [a3,e4,a4]@3 [c4,g4,c5]@5 [c4,g4,c5,e5]@2 ~", G: "[d4,a4,d5,f#5]@3 ~@3 d5 c#5 c5@3 ~ a#4 a4 g4 ~",
  H: "g5@3 g5 ~@12", I: "~@8 d5 e5@4 d5 b4 f5", J: "g5 ~", K: "~@5 b4 a4 g4 a4 b4@6 ~",
  L: "[g4,c5,e5]@5 ~@2 f#4 g4 ~ c5@3 ~ g4 a4", M: "[d5,f#5]@8 ~@6 e3 f#3", N: "g3@4 ~@2 e4 g4 [c5,e5]@4 ~@2 g4 a4",
  O: "[d5,f#5]@4 ~@2 d5 c#5 c5@3 a4 b4 a4 g4 ~", P: "g5@3 ~@13", Q: "~@4 e5!2 ~ g5 e5@2 ~ a#4 b4 a4 g4 ~",
  R: "g4@11 ~@5", S: "~@3 a4 a#4 a4 ~ g4 a4 b4@6 ~", T: "[g4,c5,e5]@5 ~@2 f#4 g4 ~ c5 g4 c5 ~ g4 a4", U: "[d5,f#5] ~",
  V: "~@6 f4 g4 [g4,c5,e5]@3 ~ c5 ~ b4 [g4,a4]", W: "g5@3 ~ g5 ~ f#5 ~ f5@3 ~ f5 ~ [e4,a4] [g4,c5]",
  X: "[g4,c5,e5]@11 ~@5", Y: "[f#4,b4,d#5]@12 ~@3 d#5", Z: "e5@11 ~@5",
  AA: "~@6 e4 [g4,c5] [g4,c5]@3 ~ [f#4,b4]@3 [e4,a4]", AB: "[[e4,a4,c#5]@19 ~@13]/2",
  AC: "[[g4,c5,e5]@21 c#5 d5 c5 [c5,e5]@2 ~ a4 a#4 a4 g4 ~]/2", AD: "g5@5 ~@11", AE: "~@4 d5 e5@2 d5 e5@3 ~ b4 a4 g4 ~",
  AF: "g4@5 ~@11", AG: "~@10 f5 g5@4 ~", AH: "~@7 e4 g4 ~ c5 g4 c5 ~ g4 a4", AI: "[d5,f#5]@11 ~@5",
  AJ: "~@6 e4 g4 [g4,c5,e5]@4 ~@2 [g4,c5,e5] [a4,d5,f#5]", AK: "[a4,d5,f#5]@4 ~@2 d5 c#5 c5@3 ~@5",
  AL: "a5 b5@4 ~ b5!3 d6 ~ d6@2 ~ d6 c#6", AM: "g5@5 ~@5 d5 e5 g5 ~ a5 ~", AN: "a5 b5@4 ~ b5 [b5,c6] e6 ~ d6@4 ~ d6",
  AO: "a#5 b5@4 ~ b5 a#5 a5@2 ~ [d4,g4] ~ [a4,c#5] [a#4,c#5] [b4,d#5]", // G5 A A#m B
  AP: "[c5,e5] g5 [c5,e5] [b4,d#5] [c5,e5]@7 ~@2 e5 f5!2", // C B C
  AQ: "f#5 a5 f#5 f5 d5@5 [a#4,d5] [a4,c#5] [g4,b4] a4 g4 d4 ~", // A# A G
  AR: "g4 f5 g5@3 d5 f5!2 d5 c#5 a#4 b4!2 g3 b3 [g3,d4,f4]", // G7
  AS: "g4 ~ f#4 d4 f#4 d4 [a#3,b3] g3 [g3,d4,g4] [a#4,d5,f5] [c5,e5,g5] ~ g5 ~ [g4,b4,d5] [f#4,g4,a#4,c5,d5,e5,f5,g5]", // Bmaj7 G5 A# C G C7
  AT: "[g4,c5,e5,g5]@11 ~@5", AU: "[f#4,b4,d#5,f#5]@4 ~@2 [f#4,b4,d#5] ~ b4 f#4 b4@3 b4 ~@2", AV: "e5@5 ~@11",
  AW: "~@6 [e4,a4] [g4,c5] [g4,c5]@3 ~ [f#4,b4]@3 [e4,a4]", AX: "[[e4,a4,c#5]@21 ~@11]/2",
  AY: "~@6 f#4 a4 d5@2 ~ [d4,a4] b4 a4 g4 ~", AZ: "~@6 e5 g5 e5@2 ~ a4 b4 a4 g4 ~",
  BA: "~@5 b5 d6 ~ c#6!2 a#5 b5 g5@2 e4 g4", BB: "[g4,c5,e5]@12 ~@2 [g4,c5] [a4,d5]",
  BC: "[a4,d5,f#5]@8 ~@4 [a4,d5,f#5]@2 [d4,g4] g4", // D G5
  BD: "[f4,a4,c5] ~ [f4,a4,c5,d5]!3 ~ [f4,a4,c5,d5]!3 ~ [f4,a4,c5,d5]!3 ~ [f4,a4,c5,d5] [g4,b4,d5]", // F Dm7 G
  BE: "[e4,g4,c5,d5] ~ [e4,g4,c5,d5]!3 ~ [e4,g4,c5,d5]!3 ~@3 [f4,a4,c5,d5] ~ [f4,a4,c5,d5] [d4,g4,b4,d5]", // C Dm7 G
  BF: "[d4,g4,b4,d5]@3 ~ [d4,g4,b4,d5] ~ [d4,g4,b4,d5] [e4,g4,b4,d5] [f4,a4,c5,d5] ~ [f4,a4,c5,d5]!3 ~ [f4,a4,c5,d5] ~", // G Em7 Dm7
  BG: "[e4,g4,c5,d5] ~ [e4,g4,c5,d5]!3 ~ [e4,g4,c5,d5]!2 ~ f5 [a#4,d5] [a4,c#5] a#4 b4 g4 f4", // C A# A
  BH: "[g4,b4,d5]@3 ~ [g4,b4,d5] ~ b4 ~ [f4,a4,c5,d5]@2 ~ [f4,a4,c5,d5]!2 ~ [f4,a4,c5,d5] ~", // G Dm7
  BI: "[e4,g4,c5,d5] ~ [e4,g4,c5,d5]!2 f5 g5@4 f5 d5 f5 ~ [a#4,d5] [a4,c#5] [b4,d5]", // C A# A Bm
  BJ: "[d4,g4,b4]@2 ~ [g4,b4,d5] [d4,g4,b4,d5] ~ [d4,g4,b4,d5]!2 [f4,a4,c5,d5]@3 ~ [f4,a4,c5,d5] ~ [f4,a4,c5,d5]!2", // G Dm7
  BK: "[e4,g4,c5,d5] ~ [e4,g4,c5,d5]!2 [e4,g4,c5,d5]@2 ~ [e4,g4,c5,d5]!2 ~ [e4,g4,c5,d5]!5 [d4,g4,b4,d5]", // C G
  BL: "[d4,g4,b4,d5]@2 ~ [d4,g4,b4,d5]!2 ~ [d4,g4,b4,d5] ~ [f4,a4,c5,d5]@2 ~ [f4,a4,c5,d5] [f4,a4,c5,d5]@2 ~ [e4,g4,c5]", // G Dm7 C
  BM: "[e4,g4,c5,d5] ~ [e4,g4,c5,d5]!3 ~ [e4,g4,c5,d5]!3 ~ [e4,g4,c5,d5]!2 [e4,g4,c5] [e4,g4,c5,d5]!2 [g4,b4,d5]", // C G
  BN: "[d4,g4,b4,d5]@2 ~ [d4,g4,b4,d5]!2 ~ [d4,g4,b4,d5]!2 [f4,a4,c5,d5]@2 ~ [f4,a4,c5,d5] [f4,a4,c5,d5]@3 ~", // G Dm7
  BO: "[e4,g4,c5,d5]@2 ~ [e4,g4,c5,d5] [e4,g4,c5,d5]@2 ~ [e4,g4,c5,d5] [e4,g4,c5,d5]@2 ~ [e4,g4,c5,d5]!4 [d4,g4,c5,d5]", // C Csus2
  BP: "[d4,g4,b4,d5] ~ [d4,g4,b4,d5]!3 ~ [d4,g4,b4,d5] ~ [f4,a4,c5,d5] ~ [f4,a4,c5,d5]!3 ~ [f4,a4,c5,d5] ~", // G Dm7
  BQ: "[e4,g4,c5,d5]@3 ~ [e4,g4,c5,d5]@2 ~ [e4,g4,c5,d5]!2 ~ [e4,g4,c5,d5] ~ [e4,g4,c5,d5]!3 [d4,g4,b4,d5]", // C G
  BR: "[d4,g4,b4,d5]@2 ~ [d4,g4,b4,d5]!2 ~ [d4,g4,b4,d5]!2 [f4,a4,c5,d5]@2 ~ [f4,a4,c5,d5]!2 ~ [f4,a4,c5,d5] [d4,g4,b4]", // G Dm7 G
  BS: "[e4,g4,c5,d5]@2 ~ [e4,g4,c5,d5]!2 ~ [e4,g4,c5,d5]!2 [d4,g4,b4,d5] ~ [e4,g4,c5,d5]!5 [d4,g4,b4,d5]", // C G C G
  BT: "[d4,g4,b4,d5]!3 ~ [d4,g4,b4,d5] ~ [d4,g4,b4,d5] ~ [f4,a4,c5,d5] ~ [f4,a4,c5,d5]!3 ~ [f4,a4,c5,d5] [d4,g4,b4,d5]", // G Dm7 G
  BU: "[e4,g4,c5,d5]!5 ~ [e4,g4,c5,d5]!3 ~ [e4,g4,c5,d5]!2 [d4,g4,b4,d5] [f4,a#4,d5]@2 [d5,g5,b5]", // C G A# G
  BV: "[d5,g5,b5] ~ [g5,b5] ~ [g5,b5,d6]@2 [d4,g4,b4]!2 [c5,f5,a5]!3 ~ [c5,f5,a5]@2 ~ [d4,f4,g4,a#4,d5]", // G F Gm7
  BW: "[g4,c5,e5]!5 [d4,g4,b4] [f4,a#4,d5,f5]@3 ~ g4 f4 [f4,g4,a#4] [g4,c5]!2 [d4,g4]", // C G A# Gm7 C5 G5
  BX: "~ [g5,b5,d6]!3 [b5,d6] [a5,c6] b5 b5@2 ~ [f5,a5] [f5,g5,a5,b5] [g5,b5] ~ [f5,a5] [g4,b4]", // G Bm Am F G7 G F G
  BY: "[a#4,d5] [c5,e5] ~ [c5,e5] [a#4,c5,d5,e5] [g4,b4] [a#4,d5] [g4,a#4,b4,d5] [c5,e5] ~ [a#4,d5] [g4,b4] [a#4,d5] [g4,b4] f4 [f4,g4,b4]", // A# C C7 G A# G C A# …
  BZ: "[g4!2 d5 [f5,g5]@2 ~ [b4,d5] [g5,a#5]@2 a#5 c6!2 d6 a5 a#5 [g5,b5]@2 c6 d6 c#6 b5 g5 d6 c#6 b5 g5 ~ [f5,a5] [g5,b5] [f5,a5] [g5,b5] [c5,e5,a5]]/2", // Fsus2 Bm Gm G F G F G …
  CA: "[d5,g5,b5]@3 ~ [d5,g5,b5] [d4,g4,b4] ~ [f4,a#4,d5] [c5,f5,a5] [c5,f5] c5!2 [c5,f5]@2 [d4,g4,b4] [a#3,c4,f4,g4,a#4,c5]", // G A# F F5 G A#sus2
  CB: "[g4,c5] c4 [c4,g4,c5] [a#3,f4,a#4] [d4,f4,g4,a#4] [g4,c5] [f4,a#4] [d4,g4] [f4,a#4]!2 [d4,g4] [f4,f#4] [d4,g4] [f4,g4] [d4,f4] d4", // C5 A#5 Gm7 C5 A#5 G5 A#5 G5 …
  CC: "[d5,g5,b5] g5!3 [d5,g5]@2 [d4,g4] [g4,c5,e5] [c5,f5,a5] c5!3 [c5,f5,a5]@2 [d4,g4,b4] [d4,g4]", // G G5 C F G G5
  CD: "d6 [f#5,a#5,c6] [g5,b5] g5@2 [c6,d6] b5 [g5,b5]@2 [b5,d6] [a5,c6] [a#5,b5] [g5,b5] ~ f5 g5", // Cm7b5 G Csus2 G Bm Am Bmaj7 G
  CE: "~ [a#3,b3,e4,f4] [g3,d4] [g4,a4] b4 a4 b4 ~ a#4 a4 [d4,g4] f4 [d4,g4] ~ g5@2, ~@14 f5 ~", // G5 Gsus2 G5
  CF: "[~ g5 f5 [c#5,d5] d5 c#5 [a#4,d5] [b4,d#5] g4 f4 [d4,g4] [f4,f#4,a#4,b4] [d4,g4,b4]@7 ~ [d4,g4,b4,d5] ~ [d4,g4,b4,d5]!2 [f4,a4,c5,d5] ~ [f4,a4,c5,d5]!3 ~ [f4,a4,c5,d5] [d4,g4,b4]]/2", // Dmaj7 A# B G5 F#maj7 G Dm7 G
  CG: "[e4,g4,c5,d5] ~ [e4,g4,c5,d5]!3 ~ [e4,g4,c5,d5]!2 a#4 a4 [g4,b4] e4 g4 a4 g4 e4", // C G
  CH: "[d4,g4,b4,d5]@2 ~ [d4,g4,b4,d5]!2 ~ [d4,g4,b4,d5] ~ [f4,a4,c5,d5] ~ [f4,a4,c5,d5]!3 ~ [f4,a4,c5,d5] ~", // G Dm7
  CI: "[e4,g4,c5,d5] ~ [e4,g4,c5,d5]!3 ~ [e4,g4,c5,d5]!3 ~ [e4,g4,c5,d5]!2 ~ [g3,d4] [d4,g4] [g4,b4], ~@12 [e4,g4,c5,d5]@3 ~", // C G5 G C
  CJ: "[g3,d4,g4,b4,d5]@5 ~@3 [f4,a4,c5,d5]@3 ~ [f4,a4,c5,d5] ~@3", CK: "~ f4 g4@7 f5 g5@2 ~@2 [d5,f5] f5",
  CL: "d5 c5 a#4 g4 f4 ~ g4 [g4,c5]@5 ~ [f4,g4] d4 a#4", // C5 Fsus2
  CM: "[~ b4 g4 ~ f4 g4 f4 ~ f4@2 d4 ~ [a#3,f4,a#4]@6 [c4,g4,c5]@17 ~@13, ~@7 g4@2 ~@39]/3", // A#5 C5
})).s("gm_acoustic_guitar_steel").gain(0.39)

// chords · piano
const piano = note(`<
  ~@15 A B C B D E F G H I J K L M N O P Q R S T U V W X Y Z Y AA AB AC AD AE AF AG AH L M@2 AI AJ Q AK AL AM AB AN AO
  AP AQ AR AS AR AT AU AV AW AX AY AT AZ AT AZ AX AZ AT AZ AT AZ AT AZ AT AZ AT AZ AT AZ AT AZ AT AZ AT BA ~@4
>`.pickRestart({
  A: "~@12 [d4,f#4,a4]@3 ~", B: "[g4,b4,d5]@3 [g4,b4,d5]@3 ~ [g4,b4,d5] [d4,f#4,a4]@2 ~ [d4,f#4,a4]@4 ~",
  C: "[e4,g4,b4]@2 ~ [e4,g4,b4]@3 ~ [e4,g4,b4]@3 ~ [e4,g4,b4]@3 ~ [e4,g4,b4]", // Em
  D: "[e4,g4,b4]@2 ~ [e4,g4,b4]@3 ~ [e4,g4,b4] [d4,f4,g4,b4] [d4,f4,g4,b4]@2 ~ [d4,f4,g4,b4]@3 ~", // Em G7
  E: "[c4,e4,g4]@2 ~ [c4,e4,g4]@3 ~ [c4,e4,g4] [c4,e4,g4]@2 ~ [c4,e4,g4]@4 ~", // C
  F: "[d4,f#4,a4]@2 ~ [d4,f#4,a4]@3 ~ [d4,f#4,a4]@3 ~ [d4,f#4,a4]@4 ~", // D
  G: "[d4,g4,b4]@2 ~ [d4,g4,b4]@3 ~ [d4,g4,b4] [c4,e4,g4]@2 ~ [c4,e4,g4]@3 ~ [c4,e4,g4]", // G C
  H: "[d4,f#4,a4]@2 ~ [d4,f#4,a4]@3 ~ [d4,f#4,a4] [d4,f#4,g4,b4]@2 ~ [d4,f#4,g4,b4]@3 ~ [d4,f#4,g4,b4]", // D Gmaj7
  I: "[c4,e4,g4]@2 ~ [c4,e4,g4]@3 ~@2 [c4,e4,g4]@2 ~ [c4,e4,g4]@4 ~", // C
  J: "[b3,d#4,f#4,a4]@2 ~ [b3,d#4,f#4,a4]@4 ~ [d#4,f#4,a4]@2 ~ [b3,d#4,f#4,a4]@2 ~ [b3,d#4] [f#4,a4], ~@8 b3 ~@7", // B7 D#dim B7 B F#m
  K: "[e4,g4,b4]@2 ~ [e4,g4,b4]@4 ~ [e4,g4,b4]@2 ~ [e4,g4,b4]@5", // Em
  L: "[c4,e4,g4]@2 ~ [c4,e4,g4]@2 ~ [c4,e4,g4]!2 [c4,e4,g4]@3 ~ [c4,e4,g4]@2 ~ [c4,e4,g4]", // C
  M: "[c#4,e4,g4,a4]@2 ~ [c#4,e4,g4,a4]@4 ~ [c#4,e4,g4,a4]@2 ~ [c#4,e4,g4,a4]@4 ~", // A7
  N: "[c#4,e4,g4]@2 ~ [c#4,e4,g4]@4 ~ [c#4,e4,g4,a4]@2 ~ [c#4,e4,g4,a4]@4 ~", // C#dim A7
  O: "[c4,e4,g4]@2 ~ [c4,e4,g4]@4 ~ [c4,e4,g4]@2 ~ [c4,e4,g4] c4 e4 g4 c5", // C
  P: "[d4,f#4,a4]@7 ~ [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@3 ~, e4 ~@15", // D
  Q: "[d4,g4,b4]@2 ~ [d4,g4,b4]@5 [d4,f#4,a4]@2 ~ [d4,f#4,a4]@3 ~@2", // G D
  R: "[d4,e4,g4,b4]@2 ~ [d4,e4,g4,b4]@4 ~ [d4,e4,g4,b4]@2 ~ [d4,e4,g4,b4]@4 ~", // Em7
  S: "[d4,g4,b4]@2 ~ [d4,g4,b4]@4 ~ [d4,f#4,a4]@3 [d4,f#4,a4]@5", // G D
  T: "[e4,g4,b4,d5]@2 ~ [e4,g4,b4,d5]@5 [d4,f#4,g4,b4]@2 d4 f#4 g4 b4 [d4,f#4,g4,b4] ~", // Em7 Gmaj7
  U: "[c4,e4,g4]@2 ~ [c4,e4,g4]@4 ~ [c4,e4,g4]@2 ~ [c4,e4,g4]!2 ~ [c4,e4,g4] ~", // C
  V: "[d4,f#4,a4]@2 ~ [d4,f#4,a4]@4 ~ [d4,f#4,a4]@2 ~ [d4,f#4,a4]@3 ~ [d4,f#4,a4]", // D
  W: "[d4,g4,b4]@2 ~ [d4,g4,b4]@4 ~ [c4,e4,g4]@2 ~ [c4,e4,g4]@4 ~", // G C
  X: "[d4,f#4,a4]@2 ~ [d4,f#4,a4]@3 d4 f#4 [c4,d4,f#4] [f#4,a4] [a4,c5] [c5,e5] [c4,d4] [d4,f#4] [f#4,a4] [a4,c5]", // D D7 F#m Am C Csus2 D F#m …
  Y: "[d4,g4,b4]@2 ~ [d4,g4,b4]@3 ~ [d4,g4,b4] [d4,f#4,a4]@2 ~ [d4,f#4,a4]@3 ~ [d4,f#4,a4]", // G D
  Z: "[d4,e4,g4,b4]@2 ~ [d4,e4,g4,b4]@3 ~ [d4,e4,g4,b4] [d4,e4,g4,b4]@2 ~ [d4,e4,g4,b4]@2 ~ [c4,e4,g4] ~", // Em7 C
  AA: "[d4,e4,g4,b4]@2 ~ [d4,e4,g4,b4]@3 ~ [d4,e4,g4,b4] [d4,f#4,g4,b4]@3 [d4,f#4,g4,b4]@4 [d4,f#4,g4,b4]", // Em7 Gmaj7
  AB: "[c4,e4,g4]@2 ~ [c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~ [c4,e4,g4]", // C
  AC: "[d4,f#4,a4]@2 ~ [d4,f#4,a4]@3 ~ [d4,f#4,a4]@3 ~ [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]", // D
  AD: "[d4,g4,b4]@2 ~ [d4,g4,b4] [e4,g4,b4]@2 ~ [e4,g4,b4] [c4,e4,g4]@2 ~ [c4,e4,g4] [c4,e4,g4]@2 ~ [c4,e4,g4]", // G Em C
  AE: "[d4,g4,b4]@2 ~ [d4,g4,b4] [d4,g4,b4]@2 ~ [d4,g4,b4]@2 ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~", // G
  AF: "[c4,e4,g4]@3 ~ [c4,e4,g4]@2 ~ [c4,e4,g4] [c4,e4,g4]@3 ~ [c4,e4,g4]@3 ~", // C
  AG: "[d#4,f#4,a4]@3 ~ [d#4,f#4,a4]@2 ~ [d#4,f#4,a4] [d#4,f#4,a4]@3 ~ [d#4,f#4,a4]@3 ~", // D#dim
  AH: "[e4,g4,b4]@2 ~ [e4,g4,b4]@4 ~ [e4,g4,b4]@2 ~ [e4,g4,b4]@2 ~@3", // Em
  AI: "[c4,e4,g4]@2 ~ [c4,e4,g4]@4 ~ [c4,e4,g4]@2 ~ [c4,e4,g4]@4 ~", // C
  AJ: "[d4,f#4,a4]@2 ~ [d4,f#4,a4]@4 ~ [d4,f#4,a4]@2 ~ [d4,f#4,a4]@4 ~", // D
  AK: "[d4,e4,g4,b4]@2 ~ [d4,e4,g4,b4]@4 ~ [d4,e4,g4,b4]@2 ~ [d4,e4,g4,b4]@5", // Em7
  AL: "[d4,g4,b4]@2 ~ [d4,g4,b4]@4 ~ [d4,f#4,a4]@3 [d4,f#4,a4]@4 ~", // G D
  AM: "[e4,g4,b4,d5]@2 ~ [e4,g4,b4,d5]@5 [d4,f#4,g4,b4]@2 ~ [d4,f#4,g4,b4]@4 ~", // Em7 Gmaj7
  AN: "[d4,f#4,a4]@2 ~ [d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@3 ~ [d4,f#4,a4]@2 ~ [d4,f#4,a4]!2", // D
  AO: "[a4,c5]@3 ~ [f4,a4]@3 ~ [f4,a4]@3 ~ [a4,c5]@3 ~", AP: "[e4,g4]@3 ~ [e4,g4]@3 ~ [e4,g4]@3 ~ [f4,a4]@3 ~",
  AQ: "[d4,g4]@3 ~ [d4,g4]@3 ~ f4 ~ a4 ~ f4 a4 c5 d5", AR: "[e4,g4]@3 ~ [e4,g4]@3 ~ [g4,c5]@3 ~ [e4,g4]@3 ~",
  AS: "[d4,g4]@3 ~ [d4,g4]@3 ~ [f4,a4]@3 ~ f4 a4 [d4,f4,a4] ~", AT: "[d4,g4]@3 ~ [g4,b4]@3 ~ [f4,a4]@3 ~ [a4,c5]@3 ~",
  AU: "[e4,g4]@3 ~ [g4,c5]@3 ~ [e4,g4]@3 ~ e4 g4 c5 d5", AV: "[d4,g4]@3 ~ [g4,b4]@3 ~ [f4,a4]@3 ~ [f4,a4]@3 ~, d5 ~@15",
  AW: "[e4,g4,c5]@3 ~ [e4,g4]@3 ~ [g4,c5]@3 ~ [e4,g4]@3 ~", AX: "[d4,g4]@3 ~ [g4,b4]@3 ~ [f4,a4]@3 ~ f4 a4 c5 d5",
  AY: "[e4,g4,d5]@3 ~ [g4,c5]@3 ~ [e4,g4]@3 ~ [g4,c5]@3 ~", AZ: "[e4,g4]@3 ~ [g4,c5]@3 ~ [e4,g4]@3 ~ [g4,c5]@3 ~",
  BA: "~ [c4,e4,g4]@13 ~@2", // C
})).s("gm_piano").gain(0.15).pan(0.3)

// bass · acoustic bass · "AcousticBs"
const bass = note(`<
  ~@8 A B A C D E F G A H I J D E F K L M L N O@2 D P Q H R C D S T U A V W X D S Y Z D AA L AB O AC D AD Q L R AE D S E
  AF AG D AG D AG D AG D AG D AG D AG D AG D AG D AG D AG D AG D AG D AG D AG D AG D AG AH ~@4
>`.pickRestart({
  A: "g2@5 ~@3 f#2@5 ~@3", B: "e2@5 ~@3 e2@2 ~@2 e2@3 ~", C: "e2@5 ~@3 d2@2 ~@2 d2@2 ~@2", D: "c3@5 ~@3 c3@5 ~@3",
  E: "a2@5 ~@3 a2@5 ~@3", F: "g2@5 ~@3 e2@5 ~@3", G: "a2@5 ~@3 a2@2 ~@2 a2@3 ~", H: "e2@5 ~@3 e2@3 ~ e2@3 ~",
  I: "d2@5 ~@3 d2@5 ~@3", J: "e2@5 ~@3 d2@3 ~ d2@2 ~@2", K: "d2@5 ~@3 d2@2 ~@2 d2@3 ~", L: "e2@5 ~@3 e2@5 ~@3",
  M: "d#2@5 ~@3 d#2@5 ~@3", N: "g2@5 ~@3 g2 ~@3 d2@3 ~", O: "c#2@5 ~@3 c#3@5 ~@3", P: "d2@5 ~@3 d2@3 ~ d2@2 ~@2",
  Q: "g2@5 ~@3 d3@5 ~@3", R: "d2@5 ~@3 f#2@5 ~@3", S: "f#2@5 ~@3 f#2@5 ~@3", T: "d2@5 ~@3 c3@5 ~@3",
  U: "f#2@5 ~@3 d2@3 ~ d2@3 ~", V: "e2@5 ~@3 e2 ~ d2 ~ e2 ~ c2 ~", W: "d3@5 ~@3 f#2@5 ~@3", X: "e2@5 ~@3 d2@3 ~ d2@3 ~",
  Y: "g2@5 ~@3 c3@5 ~@3", Z: "g2@5 ~@3 g2@5 ~@3", AA: "f#2@5 ~@3 f#2@3 ~ f#2@3 ~", AB: "g2@5 ~@3 g2 ~@3 f#2 ~@3",
  AC: "c#3@5 ~@3 c#3@5 ~@3", AD: "d3@5 ~@3 d3@3 ~ d3@2 ~@2", AE: "e2@5 ~@3 d2@5 ~@3", AF: "c3@5 ~@3 c3@2 ~@2 c3 ~ c3 ~",
  AG: "b2@5 ~@3 a2@5 ~@3", AH: "~ c3@13 ~@2",
})).s("gm_acoustic_bass").gain(0.12).pan(0.7)

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

// drums · snare
const snare = s("sd").struct("<~@8 [~ x ~ x]!89 ~@5>").gain(0.23)

// drums · hihat
const hihat = s("hh").struct("<~@8 [x!8]!88 [x ~ x ~ x ~ x ~ x ~ x ~ x ~@2 x] [~ x ~@14] ~@4>").gain(0.23)

// drums · tambourine
const tambourine = s("tb").struct("<~@8 [~ x ~ x]!22 [~ x ~@2] [~ x ~ x]!66 ~@5>").gain(0.23)

stack(acoustic_guitar_steel, piano, bass, kick, snare, hihat, tambourine)

More by Eric Clapton