Strudelify
Bad Case Of Lovin' You ( Doctor, Doctor) cover art

1999

Bad Case Of Lovin' You ( Doctor, Doctor)

Robert Palmer

KeyE majorTempo153 bpm
0:00/0:00
// Bad Case Of Lovin' You ( Doctor, Doctor) — Robert Palmer
// 153 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 114 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(153/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 · distortion guitar · "ds guitar"
const distortion_guitar = note(`<
  ~ A B@2 ~ C@4 D@4 E@8 F@3 G@2 ~ H ~ I@5 J@2 K L M@2 K N@3 O@2 P@2 Q R@3 S@2 ~ T ~ U@5 V@2 W X Y@2 W Z@4 AA@6 AB@4 AC
  AD AE AF AG AD AE AH@3 AI AJ AI AK AL AH@3 AI AM ~ AN ~ AO@8
>`.pickRestart({
  A: "~@7 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~@3 [b3,e4]@2", // E5
  B: "[~@4 [b3,e4]@3 ~@3 [b3,e4]@2 ~ [b3,e4]@3 ~@3 [a3,d4]@11 ~ [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~@3 [b3,e4]@2]/2", // E5 D5 E5
  C: "[~@7 [b3,e4]@3 ~ [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@2 ~ [b3,e4]@3 ~@3 [a3,d4]@11 ~ [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~@3 [b3,e4]@6 ~@19]/4", // E5 D5 E5
  D: "[~@8 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@2 ~ [b3,e4]@3 ~@3 [a3,d4]@11 ~ [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~@3 [b3,e4]@6 ~@19]/4", // E5 D5 E5
  E: "[~@2 [a3,e4]@24 [b3,f#4]@24 ~@6 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@2 ~ [b3,e4]@3 ~@3 [a3,d4]@6 ~@6 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@2 ~ [b3,e4]@3 ~@3 [a3,d4]@11 ~ [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~@3 [b3,e4]@6 ~@19]/8", // A5 B5 E5 D5 E5 D5 E5
  F: "[~@2 [a3,e4]@24 [b3,f#4]@24 ~@7 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~@3]/3", // A5 B5 E5
  G: "[[b3,e4]@3 ~@3 [b3,e4]@2 ~@4 [b3,e4]@2 ~ [b3,e4]@3 ~@3 [a3,d4]@6 [b3,e4]@3 ~@18]/2", H: "~ [b3,e4] ~@6",
  I: "[~ a3@16 b3@8 [b3,f#4]@8 ~@2 [b3,e4]!4 ~, ~ e4@24 ~@15]/5", // B5 E5
  J: "[[b3,e4]@2 ~@4 [b3,e4]@3 ~@3 [b3,e4]@2 ~ [b3,e4]@3 ~@3 [a3,d4]@11 ~ [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~@3]/2", // E5 D5 E5
  K: "[b3,e4] ~@3", L: "~@3 [b3,e4]!4 ~",
  M: "[[b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@2 ~ [b3,e4]@3 ~@3 [a3,d4]@11 ~ [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~@3]/2", // E5 D5 E5
  N: "[~@3 [a3,e4]@24 ~ [b3,f#4]@24 ~@6 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~@2]/3", // A5 B5 E5
  O: "[~ [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@2 ~ [b3,e4]@3 ~@3 [a3,d4]@6 ~@6 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~@2]/2", // E5 D5 E5
  P: "[~ [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@2 ~ [b3,e4]@3 ~@3 [a3,d4]@11 ~ [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~@2]/2", // E5 D5 E5
  Q: "~ [b3,e4]@6 ~@17", R: "[~@4 [a3,e4]@24 [b3,f#4]@24 ~@6 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~@2]/3",
  S: "[~ [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@2 ~ [b3,e4]@3 ~@3 [a3,d4]@6 [b3,e4]@3 ~@17]/2", T: "~@4 [b3,e4]@3 ~@17",
  U: "[~@4 a3@48 b3@24 ~ [b3,f#4]@24 ~@6 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~, ~ e4@18 ~@11]/5", // B5 E5
  V: "[~@2 [b3,e4]@2 ~@4 [b3,e4]@3 ~@3 [b3,e4]@2 ~ [b3,e4]@3 ~@3 [a3,d4]@11 ~ [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~]/2", // E5 D5 E5
  W: "~ [b3,e4]@3 ~@8", X: "~@11 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~",
  Y: "[~@2 [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@2 ~ [b3,e4]@3 ~@3 [a3,d4]@11 ~ [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 ~]/2", // E5 D5 E5
  Z: "[~@5 [a3,e4]@48 [b3,f#4]@36 ~ [b3,f#4]@4 ~@2]/4", // A5 B5
  AA: "[[a#3,f4]@2 ~ [a3,e4]@24 [e3,b3]@24 [a3,e4]@12 [g#3,c#4]@9]/6", AB: "[~@2 [b3,f#4]@24 ~@2 [b3,e4]!4]/4",
  AC: "~@3 [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@2 ~ [b3,e4]@3 ~@3", // E5
  AD: "[a3,d4]@11 ~ [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3", AE: "~ [b3,e4]@2 ~@5", AF: "~@4 [b3,e4]!4",
  AG: "~@3 [b3,e4]@2 ~@4 [b3,e4]@3 ~@3 [b3,e4]@2 ~ [b3,e4]@3 ~@3", // E5
  AH: "[~@7 [a3,e4]@24 [b3,f#4]@24 ~@6 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@2]/3", // A5 B5 E5
  AI: "~@4 [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@2 ~ [b3,e4]@3 ~@2", // E5
  AJ: "~ [a3,d4]@6 ~@6 [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@2", // D5 E5
  AK: "~ [a3,d4]@11 ~ [b3,e4]@3 [b3,e4]@3 [b3,e4]@3 [b3,e4]@2", AL: "~@2 [b3,e4]@3 ~@7",
  AM: "~ [a3,d4]@6 [b3,e4]@3 ~@14", AN: "~@7 [b3,e4]@3 ~@14",
  AO: "[~@7 a3@48 ~ b3@24 [b3,f#4]@21 [b3,e4]@27 [b3,e4]@2 ~ [e3,b3]@3 ~ [e3,b3]@3 [b3,e4]@39 ~@15, ~@7 e4@72 ~@113]/8", // B5 E5
})).s("gm_distortion_guitar").gain(0.19)

// other · overdriven guitar · "od guitar 1"
const overdriven_guitar = note(`<
  ~@4 A B@2 ~ C@3 ~@15 D@2 E F@4 ~@3 G H@2 ~@15 I@2 J K@4 L@6 M@3 N@3 O@2 P@2 Q@2 ~@6 R S@2 ~@16 T U V@2 W@2 X Y@3
>`.pickRestart({
  A: "~@4 a3@3 d4@2 ~ e4@3 f#4@3 ~@2 d4 a3@3 g3@2, ~@17 e4@2 ~@5", B: "[~ e3@12 ~@11]/2",
  C: "[~@4 a3@3 ~ d4@2 ~ e4@3 f#4@3 e4 d4 ~ a3@3 g3@3 e3@24 ~@22]/3", D: "[~@7 e3@2 e3 ~@6]/2", E: "~@18 e3@2 ~ g3@2 ~",
  F: "[g#3@3 a3@41 ~ f#3@6 e3@24 ~@21]/4", G: "~@6 a3@3 d4@2 ~ e4@3 f#4@3 e4@2 d4 a3@3", H: "[g3 e3@8 ~@7]/2",
  I: "[~@22 e3@6 e3@3 ~@17]/2", J: "~@19 e3@2 ~ g3@2", K: "[~ g#3@3 a3@41 ~ f#3@6 e3@24 ~@20]/4",
  L: "[~@5 d5@26 ~ d5@9 d5@6 b4@3 ~@30 a3@3 d4@2 ~ e4@3 f#4@3 e4@2 d4 a3@3 g3@3 d5@26 ~ d5@9 d5@6 b4, ~@25 d5@16 ~@31]/6",
  M: "[~@2 b4@9 [d5,g5]@3 ~@6 d5@12 a5@3 e6@3 e6@6 d6@2 ~ c6@3 a5@3 a5@6 b5@3 f#5@3 b5@6 ~, ~@20 g5@9 ~@43]/3", // G5
  N: "[e6@2 c#6@6 a5@3 b5@4 ~@2 a5@6 g5@3 ~ d6@2 d#6@2 ~ e6@2 ~@2 e6@5 d6@3 ~ d#6@2 b5@2 ~@5 b5@6 a5@3 f#5@3 b5@3 ~@3]/3",
  O: "[a#5@3 ~@3 a5@23 ~@3 g3@3 ~ c#4@3 e4@3 f4@3 f#4@3]/2", P: "[e4 c#4 e3@8 ~ d3 g#3 b3 c4 c#4]/2",
  Q: "[b3 g#3 a3@8 ~@6]/2", R: "~@9 a3@3 d4@2 ~ e4@2 ~ f#4@3 e4@2 d4", S: "[a3 g3 e3@8 ~@6]/2", T: "~ e3@6 e3@3 ~@14",
  U: "~@11 e3", V: "[~ g3@2 ~ g#3@2 ~ a3@41]/2", W: "[~ f#3@6 ~ e3@24 ~@16]/2", X: "~@11 [f5,a5]@9 g5@3 ~",
  Y: "[~@2 a5@5 ~ d4@3 d4@2 ~@2 b3@2 ~ e4@39 ~@15]/3",
})).s("gm_overdriven_guitar").gain(0.32).pan(0.9)

// other · overdriven guitar · "od guitar 2"
const overdriven_guitar_2 = note("<~@33 A@2 B@3 ~@7 C@2 D@3 ~@11 E@4 F@4 ~@13 G@2 H I@2 ~@7 J@2 K@3 ~@15>".pickRestart({
  A: "[~@3 a5@23 ~ a5@3 ~@3 g5@4 ~@2 e5@6 d5@3]/2", B: "[e5@6 g5 a5@10 ~@7]/3",
  C: "[a4 [b4,c5] [d5,e5] [f5,g5,a5] b5@36 [a5,a#5]@2 ~ a5@3 g5@2]/2", D: "[~ a5@3 g5@48 ~@20]/3",
  E: "[~@5 a5@26 ~ a5@9 a5@6 g5@3 a5@32 ~@14]/4", F: "[~@5 a5@26 ~ a5@9 a5@6 g5@3 e5@27 ~@19]/4",
  G: "[~@6 a5@23 ~ a5@3 ~@3 g5@4 ~@2 e5@5 ~]/2", H: "d5@2 ~ e5@18 g5@3", I: "[a5@5 ~@3]/2",
  J: "[~@4 [a4,b4] [c5,d5,e5] [f5,g5,a5] b5@36 [a5,a#5]@2 ~ a5@2]/2", K: "[~ g5@3 a5@3 g5@48 ~@17]/3",
})).s("gm_overdriven_guitar").gain(0.36).pan(0)

// bass · electric bass finger · "bass"
const bass = note(`<
  ~ A B C D@6 E@6 F@7 G H I ~ J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ ~ AK AL AM AN AO@7 AP@6 AQ
  AR AS AT AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU ~ BV BW BX@8
>`.pickRestart({
  A: "~ e2@3 e2@2 ~ e2@3 e2@3 ~ e2@2 e2@3 e2@2 ~ e2@2", B: "~ e2@3 e2@3 e2@3 e2@3 e2@2 ~ e2@3 e2@3 e2@2",
  C: "~ e2@3 e2@3 e2@2 ~ e2@3 ~ e2@2 e2@3 e2@3 e2@2",
  D: "[~@2 b1@3 b1@2 d2@3 e2@3 g2@3 ~ e2 d2 a1@3 ~ g1@3 e2@3 e2@3 e2@3 e2@2 ~ e2@2 ~ e2@2 ~ e2@3 e2@3 e2@3 e2@2 ~ e2@3 e2@3 e2@3 e2@2 ~ e2@2 ~ e2@3 e2@2 ~ e2@2 ~ e2@3 e2@2 ~ e2@2 ~ e2@2 ~ e2@3 e2@3 b1@3 b1@3 d2@2 ~ e2@3 g2@3 e2 d2 ~ a1@3 g1@3 e2@3 e2@2 ~ e2@3 e2@2 ~ e2@3 e2@2 ~ e2@3 e2]/6",
  E: "[~@2 e2@3 e2@3 e2@2 ~ e2@3 e2@3 e2@2 ~ e2@3 e2@3 e2@2 ~ e2@3 e2@2 ~ e2@3 e2@2 ~ e2@2 ~ e2@2 ~ e2@3 e2@2 ~ e2@3 e2@2 ~ e2@3 e2@2 ~ e2@2 ~ e2@2 ~ e2@3 a1@2 ~ a1@3 a1@3 a1@3 a1@3 a1@2 ~ a1@3 a1@2 ~ b1@3 b1@3 b1@3 b1@2 ~ b1@3 b1@2 ~ b1@3 b1@2 ~ e2@3 e2@2 ~ e2@3 e2@3 e2@2 ~ e2@2 ~ e2@2 ~ e2]/6",
  F: "[~@2 e2@3 e2@3 e2@3 e2@3 e2@2 ~ e2@2 ~ e2@3 e2@3 e2@2 ~ e2@3 e2@3 e2@3 e2@2 ~ e2@2 ~ e2@3 e2@3 e2@3 e2@3 e2@2 ~ e2@3 e2@3 e2@3 e2@3 e2@2 ~ e2@3 e2@3 e2@3 e2@3 e2@2 ~ e2@2 ~ e2@3 e2@2 ~ e2@2 ~ e2@3 e2@3 e2@2 ~ e2@3 e2@2 ~ e2@3 e2@2 ~@2 a1@2 a1@3 a1@2 ~ a1@3 a1@2 ~ a1@3 a1@3 a1@3 ~ b1@2 ~ b1@2 ~ b1@3 b1@3 b1@2 ~ b1@2 b1@2 ~@2]/7",
  G: "b1@3 e2@3 e2@3 e2@3 e2@2 ~ e2@2 ~ e2@2 ~ e2@3", H: "e2@3 e2@3 e2@2 ~ e2@3 e2@3 e2@3 e2@2 ~ e2@3",
  I: "e2@2 ~ e2@3 ~@18", J: "~ e2 ~@6", K: "~@6 e1 g1", L: "g#1@3 a1@3 a1@3 a1@3 a1@2 ~ a1@2 ~ a1@3 a1@3",
  M: "a1@3 a1@2 ~ a1@2 ~ a1@2 ~ a1@3 a1@2 ~ a1@3 a1@2 ~", N: "b1@3 e2@3 e2@3 e2@3 e2@2 ~ e2@2 ~ e2@3 e2@3",
  O: "e2@2 ~ b1@3 b1@3 b1@3 b1@3 b1@2 ~ b1@3 b1@3", P: "b1@3 e2@3 e2@2 ~ e2@3 e2@3 e2@3 e2@2 ~ e2@3",
  Q: "e2@2 ~ e2@3 e2@3 e2@3 e2@3 e2@3 e2@2 ~ e2@3", R: "e2@3 e2@3 e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@3",
  S: "e2@3 b1@2 ~ b1@3 d2@2 ~ e2@3 g2@3 e2 ~ d2 a1@3", T: "g1@3 e2@2 ~ e2@3 e2@3 e2@3 e2@3 e2@2 ~ e2@3",
  U: "e2@3 e2@3 e2@3 e2@2 ~ e2@2 ~ e2@3 e2@2 ~ e2@3", V: "e2@3 e2@2 ~ e2@2 ~ e2@3 e2@3 e2@2 ~ e2@3 e2@2 ~",
  W: "e2@2 ~ e2@3 e2@3 e2@3 e2@3 e2@3 e2@2 ~ e2@2 ~", X: "e2@3 a1@3 a1@3 a1@3 a1@3 a1@2 ~@2 a1@2 a1@3",
  Y: "~ a1@2 ~ b1@3 b1@2 ~ b1@2 ~ b1@3 b1@2 ~ b1@2 ~ b1@2", Z: "~ b1@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@3 e2@2 ~ e2@2 ~ e2@2",
  AA: "~ e2@3 e2@2 ~ e2@3 e2@3 e2@2 ~ e2@2 ~ e2@2 ~ e2@2", AB: "~ e2@3 e2@2 ~ e2@3 e2@2 ~ e2@3 d3@3 g#2@3 d3@2",
  AC: "~ g#2@3 d3@3 f#2@9 e2@3 e2@2 ~ e2@2", AD: "~ e2@3 e2@3 e2@2 ~ e2@3 e2@2 ~ e2@2 ~ e2@2 ~ e2@2",
  AE: "~ e2@3 e2@3 e2@2 ~ e2@3 e2@2 ~ e2@3 e2@2 ~ e2@2", AF: "~ e2@3 a1@2 ~ a1@2 ~ a1@2 ~ a1@3 a1@3 a1@3 a1@2",
  AG: "~ a1@2 ~ b1@3 b1@3 b1@3 b1@3 b1@3 b1@3 b1@2", AH: "~ b1@3 e2@3 e2@3 e2@3 e2@2 ~ e2@2 ~ e2@2 ~ e2@2",
  AI: "~ e2@3 e2@3 e2@2 ~ e2@3 e2@3 e2@2 ~ e2@2 ~ e2@2", AJ: "~ e2@2 ~ e2@3 ~@17", AK: "~@4 e2@3 ~@17",
  AL: "~@19 e1@3 g1@2", AM: "~ g#1@3 a1@2 ~ a1@3 a1@3 a1@2 ~ a1@2 ~ a1@3 a1@2",
  AN: "~ a1@3 ~ a1@3 a1@2 a1@3 ~ a1@2 a1@3 ~ a1@2 a1@2",
  AO: "[~@2 b1@2 e2@3 ~ e2@2 ~ e2@3 e2@2 ~ e2@2 ~ e2@3 e2@3 e2@2 ~ b1@2 ~ b1@3 b1@2 ~ b1@3 b1@3 b1@3 b1@3 b1@3 e2@3 e2@2 ~ e2@2 ~ e2@2 ~ e2@3 e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@3 e2@3 e2@3 e2@3 e2@2 ~ e2@3 e2@3 e2@2 ~ e2@3 e2@3 e2@3 e2@2 ~ e2@3 e2@2 ~ e2@3 b1@3 b1@3 d2@2 ~ e2@3 g2@3 e2 ~ d2 a1@3 g1@3 e2@2 ~ e2@3 e2@3 e2@2 ~ e2@2 ~ e2@2 ~ e2]/7",
  AP: "[~@2 e2@2 ~ e2@3 e2@3 e2@3 e2@2 ~ e2@2 ~ e2@3 e2@3 e2@3 e2@2 ~ e2@3 e2@3 e2@2 ~ e2@2 ~ e2@2 ~ e2@2 ~ e2@3 e2@2 ~ e2@2 ~ e2@3 e2@3 e2@3 e2@2 ~ e2@2 ~ e2@3 a1@2 ~ a1@3 a1@3 a1@3 a1@2 ~ a1@2 ~ a1@3 a1@2 ~ a1@3 a1@3 a1@3 a1@2 ~ a1@2 ~ a1@3 a1@3 a1@3 b1@3 ~ b1@2 ~ b1@3 b1@2 ~ b1@3 b1@2 ~]/6",
  AQ: "b1@2 ~ b1@2 ~ b1@3 b1@2 ~ b1@2 ~ b1@2 ~ b1@4 ~@2", AR: "a#1@4 ~@2 a1@3 a1@3 a1@3 a1@3 a1@2 ~ a1@3",
  AS: "a1!4 c#2 e2 g2 f#2", AT: "e2@3 c#2@3 e2@2 ~ e2@3 e2@3 e2@3 e2@2 ~ e2@2 ~",
  AU: "e2@3 e2@3 e1@2 ~ e1@3 g#1@3 b1@3 d2@3 c#2@3", AV: "b1@3 g#1@3 a1@3 a1@2 ~ a1@2 ~ a1@3 a1@3 a1@3",
  AW: "a1@2 ~ a1@3 c#2@2 ~ c#2@3 c#2@3 c#2@3 c#2@3 c#2@2 ~", AX: "c#2@2 ~ c#2@2 ~ b1@3 b1@2 ~ b1@3 b1@3 b1@2 ~ b1@3",
  AY: "b1@2 ~ b1@6 b2@2 ~ b2@3 b2@3 b2@3 b2@3", AZ: "b2@3 b2@6 b1@3 b1@2 ~ b1@3 b1@2 ~ b1@2 ~",
  BA: "b1@2 ~ b1@3 e2@3 e2@3 e2@2 ~ e2@2 ~ e2@2 ~ e2@3", BB: "e2@3 e2@3 e2@3 e2@3 e2@2 ~ e2@3 e2@3 e2@3",
  BC: "e2@3 e2@3 e2@2 ~ e2@2 ~ e2@3 e2@3 e2@2 ~ e2@2 ~", BD: "e2@2 ~ e2@3 b1@2 ~ b1@3 d2@2 ~ e2@2 ~ g2@3 e2 ~ d2",
  BE: "a1@3 g1@3 e2@3 e2@2 ~ e2@3 e2@2 ~ e2@2 ~ e2@2 ~", BF: "e2@3 e2@2 ~ e2@3 e2@3 e2@3 e2@3 e2@3 e2@2 ~",
  BG: "e2@2 ~ e2@2 ~@2 e2@3 e2@2 e2@3 ~ e2@2 e2@2 ~@2 e2@2", BH: "e2@3 e2@3 e2@3 ~ e2@2 e2@2 ~@2 e2@2 e2@3 ~ e2@2",
  BI: "~ e2@2 ~ e2@2 ~ a1@3 a1@2 ~ a1@3 a1@3 a1@2 ~ a1@2", BJ: "~ a1@2 ~ a1@3 b1@3 b1@3 b1@3 b1@3 b1@2 ~ b1@2",
  BK: "~ b1@2 ~ b1@3 e2@3 e2@3 e2@2 ~ e2@2 ~ e2@2 ~ e2@2", BL: "~ e2@3 e2@2 ~ e2@2 ~ e2@3 e2@3 e2@3 e2@3 e2@2",
  BM: "~ e2@2 ~ e2@2 ~ e2@2 ~ e2@3 e2@3 e2@2 ~ d3@3 g#2@2", BN: "~ d3@3 g#2@3 d3@3 f#2@9 e2@2 ~ e2@2",
  BO: "~ e2@3 e2@2 ~ e2@3 e2@2 ~ e2@3 e2@2 ~ e2@3 e2@2", BP: "~ e2@2 ~ e2@2 ~ e2@3 e2@3 e2@3 e2@3 e2@2 ~ e2@2",
  BQ: "~ e2@3 e2@3 a1@3 a1@3 a1@3 a1@2 ~ a1@2 ~ a1@2", BR: "~ a1@2 ~ a1@3 b1@2 ~ b1@2 ~ b1@3 b1@2 ~ b1@3 b1@2",
  BS: "~ b1@3 b1@2 ~ e2@3 e2@3 e2@3 e2@2 ~ e2@2 ~ e2@2", BT: "~ e2@3 e2@3 e2@3 e2@3 e2@2 ~ e2@2 ~ e2@3 e2@2",
  BU: "~ e2@2 ~ e2@3 e2@3 ~@14", BV: "~@7 e2@3 ~@14", BW: "~@11 e1",
  BX: "[~ g1@3 g#1@3 ~ a1@3 a1@2 ~ a1@3 a1@2 ~ a1@2 ~ a1@2 ~ a1@3 a1@2 ~ a1@3 a1@3 a1@2 ~ a1@3 a1@3 a1@2 ~ a1@3 b1@3 e2@2 ~ e2@3 e2@2 ~ e2@3 e2@2 ~ e2@3 e2@2 ~ e2@3 b1@3 b1@3 b1@3 b1@3 b1@3 b1@2 ~ b1@2 ~ e2@6 e2@3 e2@2 ~ e2@2 ~ e2@3 e2@3 e2@2 ~ e2@3 b2@3 a2@3 ~ g2@3 e2@39 ~@15]/8",
})).s("gm_electric_bass_finger").gain(0.48)

// chords · electric guitar clean · "cl guitar L"
const electric_guitar_clean = note(`<
  ~ A B@2 ~ C D@2 ~ C D@2 E@4 F@2 G@2 ~ H@3 I@2 ~ J ~ K@2 L@3 M@2 ~ N O@2 ~ P@3 Q@2 R@2 ~ S@3 T@2 ~ U ~ V@2 W@3 X@2 ~ Y
  Z@2 ~ AA@2 AB@2 AC@2 AD@2 AE@4 ~ AF ~ AG ~ AH ~ AI ~ AJ@3 ~ AK ~ AL ~ AM@3 ~ AN ~ AO ~ AP@2 AQ@5 ~
>`.pickRestart({
  A: "~@8 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@3 ~@7, ~@7 e3@3 ~@3 e3@3 ~@8", // E
  B: "[~@20 [a3,d4,f#4]@11 ~ [g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@7, ~@19 d3@11 ~ e3@3 ~@14]/2", // D E
  C: "~@8 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@7", // E
  D: "[~@20 [d3,a3,d4,f#4]@11 ~ [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@7]/2", // D E
  E: "[~@23 [e3,a3,c#4,e4]@2 ~ [e3,a3,c#4,e4]@24 [f#3,b3,d#4,f#4]@24 ~@6 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@7]/4", // A B E
  F: "[~@20 [d3,a3,d4,f#4]@6 ~@7 e4@3 ~@3 e4@3 ~@6, ~@32 [e3,g#3,b3]@3 ~@3 [e3,g#3,b3]@3 ~@7]/2", // D E
  G: "[~@21 f#4@11 ~ [b3,e4]@3 ~@3 [b3,e4]@3 ~@6, ~@20 [d3,a3,d4]@11 ~ [e3,g#3]@3 ~@3 [e3,g#3]@3 ~@7]/2", // E5 D5 E
  H: "[[e3,a3,c#4,e4]@2 ~ [e3,a3,c#4,e4]@24 [f#3,b3,d#4,f#4]@24 ~@6 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@6]/3", // A B E
  I: "[~@7 [d3,a3,d4,f#4]@2 [e3,g#3,b3,e4] ~@6]/2", J: "~ [e3,g#3,b3,e4] ~@6",
  K: "[[e3,a3,c#4,e4]@2 ~ [e3,a3,c#4,e4]@24 ~@21]/2", // A
  L: "[~ [e3,g#3,b3,e4]@8 [f#3,b3,d#4,f#4]@8 ~@2 [e3,g#3,b3,e4] ~ [e3,g#3,b3,e4] ~@2]/3", // E B E
  M: "[~@21 [d3,a3,d4,f#4]@11 ~@2 e4@3 ~@3 e4@3 ~@5, ~@11 [e3,g#3,b3] ~ [e3,g#3,b3] ~@2]/2", // D E
  N: "~@10 e4@3 ~@3 [b3,e4]@3 ~@5, ~@3 [e3,g#3,b3] ~ [e3,g#3] ~@2", // E5 E
  O: "[~@22 [d4,f#4]@11 ~ [g#3,b3,e4]@3 ~@3 [b3,e4]@3 ~@5, ~@21 [d3,a3]@11 ~ e3@3 ~@3 [e3,g#3]@3 ~@6]/2", // D E E5 D5 E
  P: "[~ [e3,a3,c#4,e4]@2 ~ [a3,c#4,e4]@24 [f#3,b3,d#4,f#4]@24 ~@6 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@5, ~ e3@8 ~@15]/3", // A B E
  Q: "[~@22 [d3,a3,d4,f#4]@6 ~@6 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@5]/2", // D E
  R: "[~@22 [d3,a3,d4,f#4]@11 ~ [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@5]/2", // D E
  S: "[~@2 [c#4,e4]@2 [e3,a3,c#4,e4]@24 ~ f#4@24 ~@6 e4@3 ~@3 e4@3 ~@4, ~ [e3,a3]@2 ~@25 [f#3,b3,d#4]@24 ~@6 [e3,g#3,b3]@3 ~@3 [e3,g#3,b3]@3 ~@5]/3", // C#m A A5 B E
  T: "[~@23 f#4@5 ~ [b3,e4]@3 ~@16, ~@22 [d3,a3,d4]@6 [e3,g#3]@3 ~@17]/2", U: "~@5 [b3,e4]@3 ~@16, ~@4 [e3,g#3]@3 ~@17",
  V: "[~@2 [e3,a3,c#4,e4]@2 ~ [a3,c#4,e4]@24 ~@19, ~ e3@6 ~@5]/2", // A
  W: "[~@5 [g#3,b3,e4]@24 [f#3,b3,d#4,f#4]@24 ~@6 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@4, ~ e3@6 ~@11]/3", // E B E
  X: "[~@23 [d3,a3,d4,f#4]@11 ~ [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@4]/2", // D E
  Y: "~@11 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@4", // E
  Z: "[~@24 f#4@11 ~ [b3,e4]@3 ~@3 [b3,e4]@3 ~@3, ~@23 [d3,a3,d4]@11 ~ [e3,g#3]@3 ~@3 [e3,g#3]@3 ~@4]/2", // E5 D5 E
  AA: "[~@3 [e3,a3,c#4,e4]@2 ~ [c#4,e4]@24 ~@18, ~@5 [e3,a3]@24 ~@19]/2", // A C#m A5
  AB: "[~@2 [b3,d#4,f#4]@8 ~@4 [f#3,b3,d#4,f#4] ~, ~@5 f#3@24 ~@19]/2", AC: "[[f3,a#3,d4,f4] ~ [e3,a3,c#4,e4]@8 ~@6]/2",
  AD: "[~ [e3,g#3,b3,e4]@4 ~@3]/2", AE: "[~ [e3,a3,c#4,e4]@4 [g#3,c#4,e4,g#4]@4 [f#3,b3,d#4,f#4]@4 ~@3]/4",
  AF: "~@12 [e3,g#3,b3,e4]@3 ~@4 e4@3 ~@2, ~@6 [e3,g#3,b3] ~", // E
  AG: "~ f#4@11 ~ [b3,e4]@3 ~@3 [b3,e4]@3 ~@2, [d3,a3,d4]@11 ~ [e3,g#3]@3 ~@3 [e3,g#3]@3 ~@3", // E5 D5 E
  AH: "~@13 [b3,e4]@3 ~@3 [b3,e4]@3 ~@2, ~@4 [e3,g#3] ~ [e3,g#3] ~", // E5 E
  AI: "~ [a3,d4,f#4]@11 ~ [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@3 ~@2, d3@11 ~ e3@3 ~@3 e3@3 ~@3", // D E
  AJ: "[~@4 [e3,a3,c#4,e4]@2 ~ [e3,a3,c#4,e4]@24 [f#3,b3,d#4,f#4]@24 ~@6 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@2]/3", // A B E
  AK: "~ [d3,a3,d4,f#4]@6 ~@6 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@2", // D E
  AL: "~ [d3,a3,d4,f#4]@11 ~ [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@2", // D E
  AM: "[~@5 [c#4,e4]@2 ~ e4@23 ~ f#4@24 ~@6 [b3,e4]@3 ~@3 [b3,e4]@3 ~, ~@4 [e3,a3]@2 ~ [e3,a3,c#4]@24 [f#3,b3,d#4]@24 ~@6 [e3,g#3]@3 ~@3 [e3,g#3]@3 ~@2]/3", // C#m E5 A5 A B E
  AN: "~@2 [d4,f#4]@5 ~ [b3,e4]@3 ~@13, ~ [d3,a3]@6 [e3,g#3]@3 ~@14", AO: "~@8 [g#3,b3,e4]@3 ~@13, ~@7 e3@3 ~@14",
  AP: "[~@5 [e3,a3,c#4,e4]@2 ~ [e3,a3,c#4,e4]@24 ~@16]/2", // A
  AQ: "[~@8 [e3,g#3,b3,e4]@24 [f#3,b3,d#4,f#4]@21 [e3,g#3,b3,e4]@27 [e3,g#3,b3,e4]@2 ~ [e3,g#3,b3,e4]@3 ~ [e3,g#3,b3,e4]@3 [e3,g#3,b3,e4]@15 ~@15]/5", // E B E
})).s("gm_electric_guitar_clean").gain(0.22).pan(0.7)

// chords · electric guitar clean · "cl guitar R"
const electric_guitar_clean_2 = note(`<
  ~ A@2 B@2 C@2 D@2 E@2 D@2 F ~ E@2 G@2 H@2 I ~ J K ~@4 L ~@3 J M N O N P Q R S ~ T U T V T W X ~ Y Z ~@4 X ~@3 AA AB AA
  AC AA AD AE AF AG ~@12 AH AI AJ AK AL AM AN AO AP ~ AQ AR AQ AR AQ AS AT ~ AU@2 ~@4 AT ~@7
>`.pickRestart({
  A: "[~@11 [e3,g#3]@3 ~@3 [e3,g#3]@3 ~@3 [e3,g#3,b3]@3 ~@3 [e3,g#3,b3]@3 ~@3 [e3,g#3,b3]@2 ~ [g#3,b3,e4]@3 ~@7, ~@10 [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 e4@3 ~@3 e4@3 ~@3 e4@3 e3@3 ~@8]/2", // E E5
  B: "[~@11 [e3,g#3,b3]@3 ~@3 [e3,g#3,b3]@3 ~@3 [e3,g#3,b3]@2 ~@23, ~@10 e4@3 ~@3 e4@3 ~@3 e4@3 ~@23]/2", // E
  C: "[~@11 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@2 ~ [e3,g#3,b3,e4]@3 ~@7]/2", // E
  D: "[~@11 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@22]/2", // E
  E: "[~@11 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 [e3,g#3,b3,e4]@3 ~@7]/2", // E
  F: "e4 [e3,a3,c#4] ~@22", // A
  G: "[~@12 e3@3 ~@3 e3@2 ~@4 e3@2 ~@4 e3@2 ~@4 e3@2 ~ e4@3 ~@6, ~@11 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@3 [e3,g#3,b3]@3 ~@7]/2", // E
  H: "[~@12 [e3,g#3]@3 ~@3 [e3,g#3]@3 ~@3 [e3,g#3]@2 ~@22, ~@11 [b3,e4]@3 ~@3 [b3,e4]@3 ~@3 [b3,e4]@3 ~@22]/2", // E E5
  I: "~ [e3,a3,c#4,e4] ~@22", J: "~@4 [e3,g#3,b3,e4] ~ [e3,g#3,b3,e4] ~",
  K: "[e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@2 ~ [e3,g#3,b3,e4]@3 ~@6", L: "~ [c#4,e4] [e3,a3] ~@21",
  M: "[e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@2 ~@4 [e3,g#3,b3,e4]@3 [e3,g#3,b3,e4]@3 ~@6", // E
  N: "~@13 e3@3 ~@3 e3@2 ~@3, ~@4 [g#3,b3,e4] ~ [g#3,b3,e4] ~", O: "~ e3@2 ~@21, [g#3,b3,e4] ~@7",
  P: "~ e3@2 ~@4 [e3,g#3]@3 ~@3 [e3,g#3]@2 ~ [b3,e4]@3 ~@5, [g#3,b3,e4] ~ [b3,e4] ~ [b3,e4] [e3,g#3] ~@2", // E E5 E E5 E
  Q: "~@13 [e3,g#3]@3 ~@3 [e3,g#3]@3 ~@2, ~@4 [b3,e4] ~ [b3,e4] ~", R: "~ [e3,g#3]@2 ~@21, [b3,e4] ~@7",
  S: "~@2 [e3,a3,c#4,e4] ~@21", T: "~@13 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@2",
  U: "~ [e3,g#3,b3,e4]@2 ~@4 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 [e3,g#3,b3,e4]@3 ~@5", // E
  V: "~ [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 [e3,g#3,b3,e4]@3 ~@5", W: "~ [e3,g#3,b3,e4]@3 ~@20",
  X: "~@3 [e3,a3,c#4,e4] ~@20", Y: "~@14 e3@3 ~@3 e3@2 ~@2, ~@13 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@3 ~@2",
  Z: "~@2 e3@2 ~@4 e3@2 ~@4 e3@2 ~ e4@3 ~@4, ~ [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@3 [e3,g#3,b3]@3 ~@5", // E
  AA: "~@14 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~", // E
  AB: "~@2 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@2 ~@4 [e3,g#3,b3,e4]@3 [e3,g#3,b3,e4]@3 ~@4", // E
  AC: "~@2 [e3,g#3,b3,e4]@3 ~@19", // E
  AD: "~@2 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~@3 [e3,g#3,b3,e4]@3 ~ e4@3 ~@3, ~@17 [e3,g#3,b3]@3 ~@4", // E
  AE: "~@15 e3@3 ~@3 [e3,g#3]@2 ~, ~@14 [g#3,b3,e4]@3 ~@3 [b3,e4]@3 ~", AF: "~ [e3,g#3] ~@6, ~@2 [b3,e4]@3 ~@19",
  AG: "~@4 [e3,a3,c#4,e4] ~@19", AH: "~@16 e3@3 ~@3 e3@2, ~@5 [g#3,b3,e4] ~ [g#3,b3,e4]",
  AI: "~@4 e3@2 ~@4 e3@2 ~@4 e3@2 ~ e4@2 ~@3, ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] [e3,g#3,b3] ~", // E
  AJ: "~@16 e3@3 ~@3 [e3,g#3]@2, ~@5 [g#3,b3,e4] ~ [b3,e4]", AK: "~@2 [e3,g#3] ~@9, ~ [b3,e4] ~@6",
  AL: "~@16 [e3,g#3]@3 ~@3 [e3,g#3]@2, ~@5 [b3,e4] ~ [b3,e4]", // E E5
  AM: "~@4 [e3,g#3]@3 ~@3 [e3,g#3,b3]@3 ~@3 [e3,g#3,b3]@2 ~ [b3,e4]@3 ~@2, ~ [b3,e4] ~ e4 ~ e4 [e3,g#3] ~", // E E5 E
// … 77 more lines

More by Robert Palmer