Strudelify
Would I Lie to You cover art

Duophonic

Would I Lie to You

Charles & Eddie

KeyB minorTempo101 bpm
0:00/0:00
// Would I Lie to You — Charles & Eddie
// 101 bpm, 4/4, key B minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 11 "CHOIR AAHS" choir aahs (copy of ch 9 "CLEAN GTR" electric guitar clean)
// note: Full arrangement: all 116 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(101/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 · epiano2 · "E.PIANO 2"
const epiano2 = note("<~@17 A@4 B@3 C@2 D E@2 ~@8 F@4 G@3 C@2 D E@2 ~@16 H@8 I ~@7 J D E@2 K@2 ~@29>".pickRestart({
  A: "[[g#3,b3,e4]@23 ~ [b3,d4] ~ [a3,c#4]@3 ~ d3@12 [d3,e4]@21 ~, e3@29 ~ [g#3,b3]@32 ~@2]/4", // E Bm A Dsus2 G#m
  B: "[[g#3,b3,e4]@17 ~ [g#3,e4] ~ g#3@4 d4 ~ [g#3,c#4]@3 ~ [d3,g#3,b3]@18, e3@29 ~@19, ~@20 d4@3 ~@25]/3", // E C#m C#5 G#dim
  C: "[b3@8 d4 ~ c#4@6 [e3,a3]@5 ~ [e3,a3,c#4]@10, [d3,g#3]@9 ~@7, ~@4 b3@5 ~@7, ~@5 a3@2 ~@9]/2", // A5 A Ddim
  D: "[e3,g#3]@8 ~@2 e3@5 ~, b3@3 ~ [g#3,b3]@3 ~", // E G#m
  E: "[[f#3,a#3,c#4]@3 ~ [f#3,a#3,c#4]@3 [f3,g3,b3,d4]@9, e3@5 ~ e3@7 ~ a#3 ~@17]/2", // F# G7
  F: "[~@16 d4@2 ~@6 [b3,d4] ~ [a3,c#4]@2 d4@2 d3@12 [d3,e4]@21 [a4,a#4], e3@29 ~@35, [g#3,b3]@23 ~@3 b3 ~@3 [g#3,b3]@32 ~@2, e4@10 e4@5 e4@5 ~@12]/4", // Bm A Dsus2 A#maj7 G#m
  G: "[b4@2 ~@16 [g#3,e4] ~ g#3@4 d4 ~ [g#3,c#4]@3 ~ [d3,g#3,b3]@18, e3@29 ~@19, [g#3,b3,e4]@17 ~@3 d4@3 ~@25, ~ d5@9 ~@14]/3", // C#m C#5 G#dim E
  H: "[[g#3,b3,e4]@7 ~ b3@2 d4@2 e4@2 e4@6 d4@2 ~@2 [e3,b3,d4] ~ [e3,a3,c#4]@3 ~ [g#3,b3]@10 ~@2 a3 a#3 b3 e4 b3 a#3 a3 g3 f#3@2 g3@4 [e3,b3,d4] ~ [e3,a3,c#4]@3 ~ [g#3,b3]@9 ~@5 g4 g#4 b4 f#4 ~ e4 d4 b3 [b3,e4]@4 [e3,a#3,b3,d4] ~ [e3,a3,c#4]@3 ~ [g#3,b3,e4]@7 ~ g4@3 ~ e4@2 e4 ~ e4@2 ~@8 [e3,a#3,b3,d4] ~ [e3,a3,c#4]@5 ~, e3@23 ~@7 d3@26 ~@6 d3@25 ~@7 d3@24 ~@10, ~@8 a3 ~@79 e4@5 ~@9 b3@10 ~@16]/8", // E E7 A G#m E7 A G#m E5 …
  I: "[e3,g#3,b3]@3 ~@13", J: "[e3,a3]@5 ~ [e3,a3,c#4]@10", K: "[[f3,g3,b3,d4]@9 ~@7, f4@13 ~@19]/2",
})).s("gm_epiano2").gain(0.42).pan(0.6)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  ~@4 A B C D E F G H I F G H J K L M N K L M N O P Q@2 F G H R F G H J S T U V W X Y Z O P Q@2 F G H R F G H J AA G H R
  AA G H J AB AC AD AE AB AF AG AH AI ~@3 AJ ~@3 O P Q@2 AK F G H R F G H J AA G H R AA G H J AA G H R AA G H J AA G H R
  AL@2
>`.pickRestart({
  A: "~@8 b3@2 a3 ~ f#3 e3 d3@2, ~@8 a#3 ~@7", B: "g1@3 ~ g1@2 ~@4 e1@2 ~@2 f#1@2", C: "g1@3 ~ g1@2 ~@4 g1@2 a1@2 b1@2",
  D: "b1@3 ~ b1@2 ~@4 f#1@2 ~@2 b1@2", E: "b1@3 ~ b1@2 ~ b1!2 ~ b1@2 d2@2 b1@2", F: "g1@3 ~ g1@3 ~@3 e1@2 ~@2 f#1@2",
  G: "g1@3 ~ g1@3 ~@3 g1@2 a1@2 b1 ~", H: "b1@3 ~ b1@2 ~@4 f#1@2 ~@2 a1@2", I: "b1 ~ b1 ~@2 d2 e1 f#1",
  J: "b1@3 ~@3 c#2@2 ~@2 d2@3 ~ e2@2", K: "e1@9 ~ e1@2 ~@2 e1@2", L: "e1@2 ~ c#2 ~ d2 ~ e2",
  M: "e1@9 ~ e1@3 ~ g3@2, ~@14 e3 ~", N: "[d3,g#3]@3 ~ c#2 d2 c#2 b1", O: "a1@7 ~ a1 ~ a1@2 c#2@2 f#2@2",
  P: "~@8 e1 ~ e1@3 ~ e1@2, e2@15 ~",
  Q: "[~@8 a3@2 [e3,a#3]@3 ~ g1@5 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~, f#1@13 ~@19, ~@8 d#3 ~@23]/2", // Edim
  R: "b1@2 ~@2 b1 ~ b1!2 d2@2 b1!2 d2@2 b1 ~", S: "e1@5 ~ e1@2 ~@2 e1@3 ~ e1@2", T: "e1@3 ~@3 c#2@2 ~@2 d2@3 ~ e2@2",
  U: "e1@3 ~@3 e1@2 ~@2 e1@4 g3@2, ~@14 e3 ~", V: "~ e1@3 ~ d2 c#2 b1, [d3,g#3]@5 ~@3",
  W: "e1@5 ~ e1 ~ e1@2 e1@2 ~@2 e1@2", X: "e1@5 ~ c#2@2 ~@2 d2@3 e2 d2 b1", Y: "e1@5 ~ e1@2 ~@2 e1@4 [e3,g3] ~",
  Z: "~ e1@3 c#2 d2 c#2 b1, [d3,g#3] ~", AA: "g1@5 ~ b2 a2 g2 ~ e2 ~ d2 ~ g1 ~", AB: "e1@5 ~ e1 ~@3 e1@2 ~@2 e1 ~",
  AC: "e1@5 ~ e1 ~ e1 ~ e1@2 d2@2 b1@2, ~@14 a#1 ~", AD: "e1@4 ~@2 e1 ~ e1 ~ e1@3 ~ e1@2",
  AE: "~@2 e1 ~ e1@3 ~ e1@2 d2@2 c#2 ~ b1@2", AF: "e1@2 ~ e1!2 ~ e1@4 d2@2 c#2@2 b1@2",
  AG: "e1@2 ~ e1!2 ~ e1@2 ~ e1 e1@3 ~ e1@2", AH: "~ e1 e1@3 ~ e1@3 ~ e1 ~ e1@4", AI: "e1 ~@3",
  AJ: "[d3,g#3,b3]@3 ~ [d3,g#3,b3]@2 [d3,g#3,b3] ~@9", // G#dim
  AK: "g1 ~ g1 ~ g1 ~ g1 ~ [g1,g2] ~ [g1,g2] ~ [g1,g2] ~ [g1,g2] ~", AL: "[g1@5 ~ b2 a2 g2 ~ e2 ~ d2 ~ g1@17 ~]/2",
})).s("gm_electric_bass_finger").gain(0.5)

// chords · piano · "A.PIANO 1"
const piano = note(`<
  ~ A@4 B@4 C@4 A@4 D@8 E F G@2 H@4 I@4 ~ J@7 E F G@2 K@4 L@4 M@4 N@4 ~ J@7 O ~@6 P E F G@2 Q R@4 S@4 T@4 U@4 V@4 W@4
  X@4 Y@2
>`.pickRestart({
  A: "[[g3,b3,d4,g4,b4,d5,g5]@5 ~@3 [g3,b3,d4,g4,b4,d5,g5] ~ [g3,b3,d4,g4,b4,d5,g5]@2 ~@2 [g3,b3,d4,g4,b4,d5,g5]@6 ~@4 [g3,b3,d4,g4,b4,d5,g5] ~ [g3,b3,d4,g4,b4,d5,g5]@3 ~ [f#3,b3,d4,f#4,b4,d5,f#5]@6 ~@4 [f#3,b3,d4,f#4,b4,d5,f#5] ~ [f#3,b3,d4,f#4,b4,d5,f#5]@3 ~ [f#3,b3,d4,f#4,b4,d5,f#5]@6 ~@4 [f#3,b3,d4,f#4,b4,d5,f#5] ~ [f#3,b3,d4,f#4,b4,d5,f#5]@3 ~@3]/4", // G Bm
  B: "[[g3,b3,d4,g4,b4,d5,g5]@5 ~@3 [d4,b4,g5] ~ [d4,b4,g5]@3 ~ [d4,b4,g5]@8 ~@2 [d4,b4,g5] ~ [d4,b4,g5]@3 ~ [d4,b4,f#5]@8 ~@2 [d4,b4,f#5] ~ [d4,b4,f#5]@3 ~ [d4,b4,f#5]@9 ~ [d4,b4,f#5] ~ [d4,b4,f#5]@5 ~]/4", // G Bm
  C: "[~@8 [g3,b3,d4,g4,b4,d5,g5] ~ [g3,b3,d4,g4,b4,d5,g5]@2 ~@2 [g3,b3,d4,g4,b4,d5,g5]@6 ~@4 [g3,b3,d4,g4,b4,d5,g5] ~ [g3,b3,d4,g4,b4,d5,g5]@3 ~ [f#3,b3,d4,f#4,b4,d5,f#5]@6 ~@4 [f#3,b3,d4,f#4,b4,d5,f#5] ~ [f#3,b3,d4,f#4,b4,d5,f#5]@3 ~ [f#3,b3,d4,f#4,b4,d5,f#5]@6 ~@4 [f#3,b3,d4,f#4,b4,d5,f#5] ~ [f#3,b3,d4,f#4,b4,d5,f#5]@3 ~@3]/4", // G Bm
  D: "[[e2,e3,g#3,b3]@23 ~ [e2,e3,b3,d4] ~ [e2,e3,a3,c#4]@3 ~ [e2,e3,g#3,b3]@25 ~ [e2,e3,b3,d4] ~ [e2,e3,a3,c#4]@4 g4@2 g#4@20 ~@4 [e2,e3,b3,d4] ~ [e2,e3,a3,c#4]@3 ~ [e2,e3,g#3,b3]@25 ~ [e2,e3,b3,d4] ~ [e2,e3,a3,c#4]@4 ~@2, ~@62 [e2,e3,g#3,b3]@25 ~@41]/8", // E E7 A E E7 A E7 A …
  E: "[e3,a3,c#4,e4]", F: "[g#3,b3,e4]@7 ~, e3",
  G: "[[f#3,a#3,c#4,e4]@14 [g3,a3,b3,d4,f4]@8 ~@2 [g3,a3,b3,d4]@2 [g3,a3,d4,f4] ~ [g3,a3,b3,d4,f4] ~ [g3,a3,b3,d4,f4] ~, ~@24 f4 ~ b3@2 ~@4]/2", // F#7 G7 G Dm G7
  H: "[[g3,b3,d4,g4,b4,d5,g5]@5 ~@3 [d4,b4,g5] ~ [d4,b4,g5]@2 ~@2 [d4,b4,g5]@6 ~@4 [d4,b4,g5] ~ [d4,b4,g5]@3 ~ [d4,b4,f#5]@6 ~@4 [d4,b4,f#5] ~ [d4,b4,f#5]@2 ~@2 [d4,b4,f#5]@6 ~@4 [d4,b4,f#5] ~ [d4,b4,f#5]@5 ~]/4", // G Bm
  I: "[[d4,b4,g5]@4 ~@4 [d4,b4,g5] ~ [d4,b4,g5]@2 ~@2 [d4,b4,g5]@6 ~@4 [d4,b4,g5] ~ [d4,b4,g5]@2 ~@2 [d4,b4,f#5]@6 ~@4 [d4,b4,f#5] ~ [d4,b4,f#5]@2 ~@2 [d4,b4,f#5]@6 ~@4 [d4,b4,f#5] ~ [d4,b4,f#5]@5 ~]/4", // G Bm
  J: "[~@8 [e2,e3,b3,d4] ~ [e2,e3,a3,c#4]@3 ~ [e2,e3,g#3,b3]@25 ~ [e2,e3,b3,d4] ~ [e2,e3,a3,c#4]@4 g4@2 g#4@20 ~@4 [e2,e3,b3,d4] ~ [e2,e3,a3,c#4]@3 ~ [e2,e3,g#3,b3]@25 ~ [e2,e3,b3,d4] ~ [e2,e3,a3,c#4]@4 ~@2, ~@46 [e2,e3,g#3,b3]@25 ~@41]/7", // E7 A E E7 A E7 A E …
  K: "[[g3,b3,d4,g4,b4,d5,g5]@5 ~@3 [d4,b4,g5] ~ [d4,b4,g5]@2 ~@2 [d4,b4,g5]@6 ~@4 [d4,b4,g5] ~ [d4,b4,g5]@3 ~ [d4,b4,f#5]@6 ~@4 [d4,b4,f#5] ~ [d4,b4,f#5]@2 ~@2 [d4,b4,f#5]@5 ~@5 [d4,b4,f#5] ~ [d4,b4,f#5]@5 ~]/4", // G Bm
  L: "[[d4,b4,g5]@4 ~@4 [d4,b4,g5] ~ [d4,b4]@2 ~@2 [d4,b4,g5]@5 ~@5 [d4,b4,g5] ~ [d4,b4,g5]@3 ~ [d4,b4,f#5]@5 ~@5 [d4,b4,f#5] ~ [d4,b4,f#5]@2 ~@2 [d4,b4,f#5]@5 ~@5 [d4,b4,f#5] ~ [d4,b4,f#5]@3 ~@3, ~@10 g5 ~@53]/4", // G Bm
  M: "[[d4,b4,g5]@4 ~@4 [d4,b4,g5] ~ [b4,g5] ~@3 [d4,b4,g5]@6 ~@4 [d4,b4,g5] ~ [d4,b4,g5]@2 ~@2 [d4,b4,f#5]@6 ~@4 [d4,b4,f#5] ~ [d4,b4,f#5]@2 ~@2 [d4,b4,f#5]@5 ~@5 [d4,b4,f#5] ~ [d4,b4,f#5]@5 ~, ~@5 d4 ~@26]/4", // G Em G Bm
  N: "[[d4,b4,g5]@4 ~@4 [d4,b4,g5] ~ [d4,b4,g5]@2 ~@2 [d4,b4,g5]@5 ~@5 [d4,b4,g5] ~ [d4,b4,g5]@2 ~@2 [d4,b4,f#5]@6 ~@4 [d4,b4,f#5] ~ [d4,b4,f#5]@2 ~@2 [d4,b4,f#5]@5 ~@5 [d4,b4,f#5] ~ [d4,b4,f#5]@5 ~]/4", // G Bm
  O: "[e3,g#3,b3]@3 ~@13", // E
  P: "~@8 [g6,a6,b6,c7] [d6,e6,f6] [a5,b5,c6] [f5,g5] [c5,d5,e5] [a4,b4] [e4,f4,g4] [b3,c4,d4]", // Cmaj7 Dm Am Fsus2 C Asus2 Em Bm
  Q: "[g3,b3,d4,f4] ~ [g3,b3,d4,f4] ~ [g3,b3,d4,f4] ~ [g3,b3,d4,f4] ~ [g3,b3,d4,f4] ~ [g3,b3,d4,f4] ~ [g3,b3,d4,f4] ~ [g3,b3,d4,f4] ~", // G7
  R: "[[g3,b3,d4,g4,b4,d5,g5]@5 ~@3 [d4,b4,g5] ~ [d4,b4,g5]@2 ~@2 [d4,b4,g5]@6 ~@4 [d4,b4,g5] ~ [d4,b4,g5]@3 ~ [d4,b4,f#5]@5 ~@5 [d4,b4,f#5] ~ [d4,b4,f#5]@2 ~@2 [d4,b4,f#5]@6 ~@4 [d4,b4,f#5] ~ [d4,b4,f#5]@5 ~]/4", // G Bm
  S: "[[d4,b4,g5]@4 ~@4 [d4,b4,g5] ~ [d4,b4,g5]@3 ~ [d4,b4,g5]@5 ~@5 [d4,b4,g5] ~ [d4,b4,g5]@3 ~ [d4,b4]@5 ~@5 [d4,b4,f#5] ~ [d4,b4,f#5]@2 ~@2 [d4,b4,f#5]@5 ~@5 [d4,b4,f#5] ~ [d4,b4,f#5]@5 ~, ~@30 f#5 ~@33]/4", // G Bm
  T: "[[d4,b4,g5]@4 ~@4 [d4,b4,g5] ~ [d4,b4,g5]@2 ~@2 [d4,b4,g5]@5 ~@5 [d4,b4,g5] ~ [d4,b4,g5]@3 ~ [d4,b4,f#5]@6 ~@4 [d4,b4,f#5] ~ [d4,b4,f#5]@2 ~@2 [d4,b4,f#5]@6 ~@4 [d4,b4,f#5] ~ [d4,b4,f#5]@5 ~]/4", // G Bm
  U: "[[d4,b4,g5]@4 ~@4 [d4,b4,g5] ~ [d4,b4,g5]@2 ~@2 [d4,b4,g5]@5 ~@5 [d4,b4,g5] ~ [d4,b4,g5]@3 ~ [d4,b4,f#5]@6 ~@4 [d4,b4,f#5] ~ [d4,b4,f#5]@2 ~@2 [d4,b4,f#5]@5 ~@5 [d4,b4,f#5] ~ [d4,b4,f#5]@5 ~]/4", // G Bm
  V: "[[d4,b4,g5]@4 ~@4 [d4,b4,g5] ~ [d4,b4,g5]@2 ~@2 [d4,b4,g5]@6 ~@4 [d4,b4,g5] ~ [d4,b4,g5]@3 ~ [d4,b4,f#5]@5 ~@5 [d4,b4,f#5] ~ [d4,b4,f#5]@2 ~@2 [d4,b4,f#5]@6 ~@4 [d4,b4,f#5] ~ [d4,b4,f#5]@5 ~]/4", // G Bm
  W: "[[d4,b4,g5]@4 ~@4 [d4,b4,g5] ~ [d4,b4]@2 ~@2 [d4,b4,g5]@5 ~@5 [d4,b4,g5] ~ [d4,b4,g5]@3 ~ [d4,b4,f#5]@6 ~@4 [d4,b4,f#5] ~ [d4,b4,f#5]@3 ~ [d4,b4,f#5]@6 ~@4 [d4,b4,f#5] ~ [d4,b4,f#5]@5 ~, ~@10 g5 ~@53]/4", // G Bm
  X: "[[d4,b4,g5]@4 ~@4 [d4,b4,g5] ~ [d4,b4,g5]@2 ~@2 [d4,b4,g5]@6 ~@4 [d4,b4,g5] ~ [d4,b4,g5]@3 ~ [d4,b4,f#5]@6 ~@4 [d4,b4,f#5] ~ [d4,b4,f#5]@3 ~ [d4,b4,f#5]@6 ~@4 [d4,b4,f#5] ~ [d4,b4,f#5]@5 ~]/4", // G Bm
  Y: "[[d4,b4,g5]@5 ~@3 [d4,b4,g5] ~ [d4,b4,g5]@2 ~@2 [d4,b4,g5]@18]/2", // G
})).s("gm_piano").gain(0.33).pan(0.4)

// chords · rock organ · "ORGAN 3"
const rock_organ = note("<~@8 A B ~@36 C D@2 ~@16 E@8 ~@8 F G@4 ~@30>".pickRestart({
  A: "~@11 b5 e6@2 d6@2", B: "d6!5 ~@11", C: "g#4@15 ~", D: "[f#4@13 ~ [f4,g4,b4]@17 ~]/2",
  E: "[[b4,e5]@23 ~ [b4,d5] ~ [a4,c#5]@2 ~@28 [b5,d6] ~ [a5,c#6]@3 ~ g#5@9 ~@37 b6@4 e7@14 ~@2, ~@15 [g#4,b4,d5]@48 ~, ~@62 d6@37 ~ [d6,e6]@26 ~@2, ~@31 b5@13 ~@3 e7@9 ~@8, ~@78 b6@29 ~@5 b6@4 ~@12]/8", // E5 Bm A Bm A G#dim Dsus2
  F: "[a4,c#5,e5]", G: "[[g#4,b4]@7 ~ [f#4,a#4,c#5]@6 ~ [f4,g4,b4]@9 [f4,g4,b4,f5]@7 ~, e5@14 ~ d5@16 ~]/4",
})).s("gm_rock_organ").gain(0.33).pan(0.6)

// chords · rock organ · "ORGAN 3" · soft notes · A5 Edim
const rock_organ_soft = note("<~@45 [[e4,a4]] [e4@15 ~] [[e4,a#4]@7 ~] ~@68>").s("gm_rock_organ").gain(0.2).pan(0.6)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@5 A@2 B C A@2 B C D@2 E C ~@2 F ~@2 G H ~ I J K@2 L@2 M C L@2 M C ~@2 F ~@2 G H ~ I J K@2 L@2 M C L@2 M C L@2 M C
  L@2 M C ~@16 I J K@2 ~ L@2 M C L@2 M C L@2 M C L@2 M C L@2 M C L@2 M C L@2 M C L ~
>`.pickRestart({
  A: "~@2 [d4,g4,b4,d5] ~@5", B: "~@4 [d4,f#4,b4,d5]@3 ~@9", C: "~@2 [d4,f#4,b4] ~@5", D: "~@4 [d4,g4,b4,d5]@3 ~@9",
  E: "~@2 [d4,f#4,b4,d5] ~@5", F: "[b3,d4,g#4]@3 [a#3,c#4,g4] [b3,d4,g#4] ~@11", G: "~@15 [d4,g#4]",
  H: "[b3,d4,g#4]@3 g4 [b3,d4,g#4] ~ [c#4,e4,a4] ~ [b3,d4,g#4]@3 [a#3,c#4,g4] [b3,d4,g#4] ~@3", I: "~ [e4,a4]@3",
  J: "~@8 [b3,e4]@7 ~, ~@6 g#4@9 ~", K: "[[c#4,f#4]@13 ~ [d4,g4]@5 ~@13]/2", L: "~@2 [g4,b4,d5] ~@5",
  M: "~@2 [f#4,b4,d5] ~@5", // Bm
})).s("gm_acoustic_guitar_steel").gain(0.5)

// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note("<~@18 A ~@3 B C ~@4 D ~@9 A ~@3 B C ~@4 D ~@35 D ~@31>".pickRestart({
  A: "~@15 [d4,g#4]", B: "~@15 b3", C: "~@3 [a#3,c#4] ~@12", D: "~@6 [b3,d4,g4]@9 ~",
})).s("gm_acoustic_guitar_steel").gain(0.3)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@4 A B ~@3 C ~@2 D E ~@15 C ~@2 F C ~@15 C ~@2 G C ~@3 C ~@2 H C ~@24 C ~@2 I C ~@2 D C ~@2 I C ~@2 J C ~@2 I C ~@2 J
  C ~@2 I C ~
>`.pickRestart({
  A: "~@14 [b3,d4,g4]!2", B: "[b3,d4,g4] ~@3", C: "[g3,b3,d4]@3 ~@13", D: "~@7 a3", E: "[g3,b3,d4] ~@3", F: "~@14 b3!2",
  G: "~@14 [g3,b3,d4] [b3,d4]", H: "~@10 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4]!2", I: "~@15 b3", J: "~@14 [g3,b3,d4] ~",
})).s("gm_overdriven_guitar").gain(0.2).pan(0.4)

// chords · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note("<~@32 A ~@19 B ~@36 C ~@7 D ~@7 D ~@7 D ~@2>".pickRestart({
  A: "~@14 [g3,d4]!2", B: "~@15 g3", C: "~@14 b3 [g3,d4]", D: "~@14 [g3,b3] [g3,d4]",
})).s("gm_overdriven_guitar").gain(0.1).pan(0.4)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@5 A B C D ~@20 E@4 F@5 ~@11 E@12 F@5 ~ G@6 ~@13 E@28 H@2>".pickRestart({
  A: "d5@4 e5@4 f#5@2 g5@3 ~ g5@2", B: "d5@2 e5@2 f#5 g5@3", C: "f#5@2 d5@3 g5@2 g5", D: "f#5 b4@2 ~",
  E: "[d5@4 e5@4 f#5@2 g5@4 d5@6 e5@4 f#5@2 g5@4 f#5@6 d5@6 g5@4 f#5@6 b4@9 ~@3]/4",
  F: "[d5@4 e5@4 f#5@2 g5@4 d5@6 e5@4 f#5@2 g5@4 f#5@6 d5@6 g5@4 f#5@6 b4@25 ~@3]/5",
  G: "[~@56 e6@15 ~@9 b5@4 ~@8 e4@3 ~, e3@47 ~, ~@16 e4@68 b5@11 ~, ~@32 e5@40 e6@23 ~, ~@44 b5@36 e5@15 ~]/6",
  H: "[d5@2 e5@2 f#5 g5@2 g5@9]/2",
})).s("gm_string_ensemble_1").gain(0.3).pan(0.6)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@5 A B C D ~@16 E F@2 ~ A B C D A B C D ~ G@2 H@2 I ~@2 E F@2 ~ A B C D A B C D A B C D A B C D ~@7 J K J L J M J L ~
  E F@2 ~@2 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 N@2
>`.pickRestart({
  A: "[d4,g4,b4]@4 ~@4 [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~", // G
  B: "[d4,g4,b4]@4 ~@8 [d4,g4,b4] ~ [d4,g4,b4] ~", // G
  C: "[d4,f#4,b4]@4 [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [b3,d4,f#4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~", // Bm G
  D: "[d4,f#4,b4]@4 [b3,d4,f#4] ~ [b3,d4]@4 ~@6, ~@3 f#4 ~@4", E: "~@2 e5 ~ e5!3 ~ e5 ~ e5 ~ e5 ~ e5 ~",
  F: "[e5@2 d5 ~ d5 ~ c#5 ~ c#5 ~ e5 ~@3 e5@5 ~@13]/2", G: "[~@8 d4@2 ~@2 b3 ~ c#4@6 ~@12]/2",
  H: "[~@6 d5 ~ g#5 ~ e5 ~ e5@6 ~@10 f#5@2 e5 ~]/2", I: "e5@2 d5 ~ d5@2 e5@4 ~@6",
  J: "~@12 [b3,e4,g#4,c#5]@2 [b3,g#4,b4,e5] ~", K: "[d4,g#4,b4,e5]@3 ~ [b3,e4,g#4,c#5]@2 [b3,e4,g#4,b4]@3 ~@7",
  L: "[b3,g#4,b4,e5]@3 ~@13", M: "[d4,g#4,b4,e5]@2 [b3,e4,g#4,c#5] [b3,e4,g#4] ~@4, ~@3 b4@2 ~@3",
  N: "[[d4,g4,b4]@4 ~@4 [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4] ~ [d4,g4,b4]@17 ~]/2", // G
})).s("gm_electric_guitar_clean").gain(0.39).pan(0.8)

// drums · kick
const kick = s("bd").struct(`<
  ~ A@4 B@22 C D B@3 E B@14 F G B@3 H B@3 C B@3 I B@3 J B@8 E@5 K ~@2 B@2 F L M B@3 N B@3 J B@21 ~
>`.pickRestart({
  A: "x ~@6 x!2 ~ x ~@3 x ~", B: "x ~@4 x ~ x", C: "x ~@4 x!3", D: "~@3 x ~@4", E: "x ~@9 x!2 ~@2 x ~", F: "x ~@2 x",
  G: "~ x!2 ~ x ~ x ~", H: "x ~@9 x ~@2 x ~ x", I: "x ~@9 x!2 ~@3 x", J: "x", K: "x ~@12 x ~ x", L: "~ x!7",
  M: "x ~ x!5 ~", N: "x ~@9 x!2 ~@2 x!2",
})).gain(0.48)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<A ~@7 A ~@15 A ~@11 A ~@7 B ~@19 A ~@8 C@5 ~@2 A ~@12 A ~@22>".pickRestart({
  A: "~@5 x ~@2", B: "~@11 x ~@4", C: "~@6 x!2 ~@8",
})).gain(0.3)

// drums · low tom
const low_tom = s("lt").struct("<~@4 A ~@11 B ~@10 B A ~@15 C ~@3 D ~@23 E ~@10 F ~ G ~@30>".pickRestart({
  A: "~@5 x ~@2", B: "~@11 x ~@4", C: "~@7 x", D: "~@12 x!3 ~", E: "~ x ~@5 x", F: "~@3 x",
  G: "~@2 x!2 ~@4 x ~@4 x ~@2",
})).gain(0.54)

// drums · hihat
const hihat = s("hh").struct("<~ [x!16]!78 ~@2 [x!16]!33 [x!13 ~ x ~] ~>").gain(0.3)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  A ~@3 A ~@3 A ~@3 B ~@11 A ~@2 C D ~@7 A ~@7 E ~@11 F ~@7 A ~@7 G ~@7 A ~@2 C ~ H ~@7 A ~@22
>`.pickRestart({
  A: "~@7 x", B: "~@5 x ~ x", C: "~@11 x ~@4", D: "~@11 x!2 ~@3", E: "~ x", F: "~@8 x ~@2 x ~@4",
  G: "~@5 x ~ x!2 ~ x ~ x!2 ~@2", H: "~@4 x ~@4 x!2 ~ x ~@3",
})).gain(0.54)

// drums · open hat
const open_hat = s("oh").struct("<~@80 [~ x ~@2] ~@35>").gain(0.48)

// drums · high tom
const high_tom = s("ht").struct("<A ~@7 A ~@7 B ~@7 A ~@11 A ~@27 A ~@15 A ~@12 A ~@22>".pickRestart({
  A: "~ x", B: "~@5 x ~@2",
})).gain(0.48)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@23 A ~ B ~ A ~@3 A ~@3 A ~@9 B ~ A ~@3 A ~@3 A ~@7 A ~@7 A ~@7 A ~ B ~@2 A ~@3 A ~@3 A ~@21
>`.pickRestart({
  A: "x", B: "~@7 x",
// … 15 more lines