Strudelify

We're in This Love Together

Al Jarreau

KeyF majorTempo159 bpm
0:00/0:00
// We're in This Love Together — Al Jarreau
// 159 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 149 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(159/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 · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
  A@2 B@2 C@2 D E F@2 G@2 H@2 I J K@2 L@2 H@2 M@2 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 U@2 V@2 W@2 X@2 Y Z AA@2 AB@2 AC@2 AD AE
  AF@6 AG@2 N@2 O@2 P@2 Q@2 R@2 S@2 T@2 U@2 AH AI AJ@2 AK@2 AL@2 AM@4 AN@2 AO@2 AP AQ AR@2 AS@2 AT@2 AU@2 AV@2 AW@2 AX@2
  AP AQ AY@2 AZ@2 BA@4 BB@2 BC@2 BD@2 BE AQ AY@2 AZ@2 BA@4 BB@2 BC@2 BD@2 BE AQ BF@2 ~
>`.pickRestart({
  A: "[~@22 c6@25 ~, [bb3,f4,a4]@23 ~, d4@7 ~@9, ~@16 f5@31 ~, ~@9 f6@14 ~]/2", // Bbmaj7
  B: "[[c4,bb4,d5,eb5,g5]@21 ~ d5@7 ~ [c5,eb5,c6]@6 [bb4,bb5]@6 g5@4 ~@2, ~@7 f3@9, ~@21 eb5@8 ~@19, ~@11 g5@7 ~@6]/2", // Cm7 Cm Bb
  C: "[~@22 c6@25 ~, bb4, [a4,d5,f5]@23 ~, ~@19 f6@28 ~]/2", D: "[bb4,d5,eb5,g5]@10 ~ [g4,bb4,eb5]",
  E: "~@4 [g4,eb5]@2 d5@3 ~@3 [g4,eb5]@6 ~@6, ~@4 bb4@4 ~@4 bb4@9 ~@3", F: "[[a3,bb3,d4,f4]@21 ~ [c4,d4]@24 ~@2]/2",
  G: "[[g3,bb3,eb4,f4]@11 [g3,bb3,eb4]@12 ~]/2", H: "[[a3,c4,d4,f4]@21 ~ [c4,d4,f4,a4]@24 ~@2]/2",
  I: "[g3,bb3,eb4,f4]@19 ~@3 [g4,bb4,eb5]@2, ~@22 g5 ~", // Eb
  J: "~@4 [g4,eb5,g5] ~ [f4,d5]@2 ~@4 [g4,bb4,eb5,g5]@6 bb4@4 ~@2, ~@2 bb4 ~@9", K: "[f5@21 ~ [a3,f4]@25 ~]/2",
  L: "[[g3,bb3,eb4,f4]@21 ~@15 [g4,bb4]@11 ~, ~@22 [g3,bb3,eb4,f4]@25 ~]/2", // Eb Gm Eb
  M: "[[g3,bb3,eb4,f4]@20 ~@2 [g4,bb4,eb5,f5,g5]@25 ~]/2", // Eb
  N: "[[a3,c4,d4,f4,a4,c5,d5]@22 [f3,bb3,d4,f4,bb4,d5,f5]@25 ~]/2", // Dm7 Bb
  O: "[[bb3,eb4,g4,bb4]@19 ~@3 [f3,bb3,eb4,g4,bb4,eb5,f5]@25 ~]/2", // Eb
  P: "[~@22 [f3,bb3,d4,f4,f6]@25 ~, [a3,c4,d4,f4]@5 ~@7, ~@18 bb5@29 ~]/2", // Bb Dm7
  Q: "[[g4,bb4,d5,eb5,g5]@21 ~ [bb4,eb5]@2 ~@4 [g4,eb5] ~@7 [g4,bb4,eb5]@5 ~ [f4,bb4,d5]@4 ~@2, ~@22 [g3,bb3,eb4]@25 ~, ~@22 g4 ~@5 bb4@2 ~@18]/2", // Ebmaj7 Eb5 Cm Eb Bb Eb
  R: "[~ [a4,f5]@17 ~@4 [f3,bb3,d4,f4,f6]@25 ~, [a3,c4,d4,f4,d5]@9 bb5@14 ~]/2", // Dm Bb Dm7
  S: "[[bb3,eb4,g4,bb4]@21 ~ [f3,bb3,g4,bb4,eb5,f5]@24 ~@2]/2", T: "[[ab2,bb3,db4,gb4,bb4]@23 ~]/2",
  U: "[[f3,eb4,g4,bb4,eb5,f5]@4 ~@6 [f3,bb3,eb4,g4,bb4,eb5,f5]@3 ~@5 [f3,bb3,eb4,bb4,eb5,f5]@28 ~@2, bb3 ~@8 g4@13 ~@2]/2", // Eb Ebsus2
  V: "[~@22 f6@25 ~, [a4,c5,d5,f5]@23 ~, ~@9 c6@14 ~]/2", // Dm7
  W: "[~@22 [g5,d6]@8 c6@5 ~ bb5@6 g5@6, [g4,bb4,c5,eb5]@23 ~, ~@15 g5@5 ~@4]/2", // G5 Cm7
  X: "[a5@6 f5@4 ~@12 [c5,f6]@25 ~, [f4,d5], c5@9 ~ c5@12 ~@26, ~@18 bb5@29 ~]/2", // F5 Dm
  Y: "[g4,bb4,d5,g5,bb5,d6]@21 ~ [g4,bb4,eb5]@2", Z: "~@4 [g4,bb4,eb5]@2 [f4,d5]@3 ~@3 [g4,bb4,eb5]@6 ~@6",
  AA: "[[bb3,c4,d4,f4]@21 ~ [c4,d4,f4]@25 ~]/2", // Bb Dm7
  AB: "[~@4 f5@5 ~ eb5@5 ~ d5@6 [eb4,c5]@5 ~ bb4@5 ~ a4@5 ~ f4@8, bb3@21 ~@12 c4@6 a3@8 ~, [c4,eb4]@3 g4@2 f4@2 ~@2 d4@2 ~@5]/2", // Cm
  AC: "[[bb3,c4,d4,f4]@22 [c4,d4,f4]@25 ~]/2", // Bb Dm7
  AD: "~@4 eb4 ~ [f4,bb4] ~ bb4 ~ eb4 ~ [c4,f4,bb4]@4 ~ eb4 ~@4 [g4,eb5] ~, ~@11 bb4", // Bb5 Fsus4 Cm
  AE: "~@4 [g4,db5,eb5] ~ [f4,d5]@3 ~@3 [g4,bb4,eb5]@6 [a4,c5,f5]@5 ~, ~@2 bb4 ~@9", // Eb7 Dm Eb F
  AF: "[~@16 f5@6 ~@6 f5@6 ~@6 [a4,f5]@5 ~ eb5@5 ~ d5@5 ~ c5@5 ~ bb4@5 ~ a4@5 ~ g4@5 ~ f4@6 [g3,eb4]@6 [f3,a3,c4,d4]@23 ~ [a3,c4,d4,f4]@24 g3@2, [f4,d5]@46 ~@5 f4@6 eb4@6 d4@6 c4@6 bb3@6 a3@6 ~@57, a4@40 ~@5 g4@7 ~@92, ~@11 [c6,f6]@6 [c5,a5]@6 ~@49]/6", // Dm Cm Dm7 Dm F5 F
  AG: "[[bb3,c4,eb4,f4]@2 ~@2 [bb3,c4,eb4,f4]@3 ~@3 g3@2 [bb3,c4,eb4,f4]@2 ~@2 [bb3,c4,eb4,f4]@2 ~@4 [g3,bb3,eb4,f4]@23 ~@3]/2", // Bbsus4 Eb
  AH: "[bb3,eb4,g4] [c4,d4,f4,a4]", AI: "[d4,g4,bb4] [c4,d4,f4,a4,c5]",
  AJ: "[[g3,b3,e4,g4,b4,d5]@20 ~@2 [g3,c4,e4,g4,c5]@25 ~]/2", AK: "[[c4,e4,f4,a4]@21 ~ [a3,c4,e4,f4,a4,c5]@25 ~]/2",
  AL: "[b4@18 ~@4 [a3,c4,e4,g4,g5]@25 ~, [b3,d4,e4,g4]@7 ~@9, ~@9 c5@14 ~]/2", // Am7 Em7
  AM: "[[a4,c5,f5,a5]@22 [c5,f5,a5]@3 ~@3 [c5,f5,a5]@2 [b4,e5]@2 ~@4 [c5,f5,a5]@9 ~ [e5,g5]@26 [b5,g6]@12 [g5,e6]@12, [c4,f4]@43 ~@3 [b3,d4,g4,b4,d5]@49 ~, g4 ~@3]/4", // F E5 F Em C F5 G
  AN: "[c5@11 ~@7 f5@5 ~, [c4,e4,f4,a4,a5]@23 ~, ~@12 c5@11 ~]/2", // Fmaj7
  AO: "[[d4,e4,g4,c5,d5,g5]@20 ~@2 [g3,b3,e4,g4,b4,c5,e5]@25 ~]/2", AP: "[c4,f4,a4,c5] [d4,g4,c5,d5]",
  AQ: "[ab4,c5,eb5]@12 [c4,f4,a4,c5,f5]@11 ~", AR: "[[d4,e4,g4,b4]@21 ~ [e4,g4,a4,c5]@25 ~]/2",
  AS: "[[e4,f4,a4,c5]@21 ~ [f5,a5,c6,e6]@13 ~ [e5,f5,a5,c6]@12, ~@11 [c4,f4,a4]@13]/2", // Fmaj7 F
  AT: "[[b4,e5,g5,b5]@12 [b4,e5,g5]@9 ~ [g3,b3,c4,e4,g4,c5,e5]@25 ~, [d4,e4,g4]@7 ~@9]/2", // Em Cmaj7 Em7
  AU: "[[c4,e4,f4,a4,c5,f5,a5]@21 ~ [a4,c5,f5]@2 ~@4 [a4,c5,f5] ~ [g4,c5,e5]@4 ~@2 [a4,c5,f5]@5 ~ [g4,c5]@4 ~@2, ~@22 [a3,c4,f4]@23 ~@3]/2", // Fmaj7 F C F C5 F
  AV: "[[d4,e4,g4,b4,e5]@21 ~ [e4,g4,a4,c5,e5]@25 ~]/2", // Em7 Am7
  AW: "[[e4,f4,a4,c5,f5,a5]@21 ~ [c5,f5,a5]@13 ~ [c5,f5]@12, ~@22 [c4,f4,a4]@25 ~]/2", // Fmaj7 F F5 F
  AX: "[[b3,d4,e4,g4,b4,e5,g5]@21 ~ [g3,b3,c4,e4,g4,c5,e5]@25 ~]/2", AY: "[[e4,g4,b4,d5]@21 ~ [c4,e4,g4,a4]@25 ~]/2",
  AZ: "[[e4,f4,a4,c5]@21 ~ [a3,c4,f4,a4,c5]@25 ~]/2", // Fmaj7 F
  BA: "[~@40 c5@5 ~@3 a4@27 ~ [a4,c5,f5,a5] ~@2 g5@3 ~@2 [a4,c5,f5,a5]@6 [a4,c5,f5]@6, [b3,d4,e4,g4]@21 ~ [c4,e4,g4,a4,c6]@25 ~ [c4,f4]@46 ~@2, ~@18 g6@15 ~ e5@10 ~@2 [c5,f5,a5]@28 ~@22, ~@16 e4@8 ~@2 [g4,c5,e5] ~@5]/4", // F Em7 Am7 F5 F C
  BB: "[~ [e5,g5]@20 ~ [g3,b3,c4,e4,g4,c5,e5]@25 ~, [b3,d4,e4,g4,b4]@7 ~@9]/2", // Em Cmaj7 Em7
  BC: "[[c4,e4,f4,a4]@21 ~ [c4,f4,a4,c5]@25 ~]/2", // Fmaj7 F
  BD: "[~@22 [b3,c4,e4,g4,c6,e6]@25 ~, [d4,e4,g4,b4]@7 ~@9, ~@16 g6@31 ~]/2", BE: "[c4,f4,a4,c5] [d4,g4,b4,d5]",
  BF: "[g4,b4,d5,e5,g5]/2", // Em7
})).s("gm_epiano1").gain(0.38)

// chords · epiano1 · "E.PIANO 1" · soft notes
const epiano1_soft = note(`<
  A@2 ~ B ~@3 C D@2 ~@5 E F@2 ~@10 G ~@2 H I@2 J@2 ~@8 K@2 L M ~@6 N O P@2 ~@10 G ~@2 H I@2 J@2 ~@6 Q@2 ~@5 R@3 ~@2 S@2
  ~ T ~@7 U ~@7 T ~@15 V ~@15 V ~@3
>`.pickRestart({
  A: "[~@22 bb5@25 ~, ~@21 d4@25 ~@2]/2", B: "~@6 [eb5,g5]@3 [bb4,eb5]@2 ~", C: "~@2 f4 ~@3 [f4,d5] ~",
  D: "[~@11 [f3,a3,f4]@12 ~]/2", E: "~@3 bb4 ~@5 [f4,d5]@2 ~", F: "[[a4,c5,d5]@22 [c4,d4]@25 ~]/2", G: "[c5,d5,f5]@3 ~",
  H: "~@3 [f4,bb4,d5] ~@8", I: "[c5@9 ~@2 [a4,d5]@12 ~]/2", J: "[~@11 eb4@12 ~]/2", K: "[a4@22 bb4@25 ~]/2",
  L: "eb4@7 ~", M: "~@6 bb4@3 ~@9 [f4,bb4,d5]@5 ~", N: "~@6 c4 ~ [c4,f4] ~@15", O: "~@2 bb4 ~@5", P: "[c5@11 ~@5]/2",
  Q: "[d4@20 ~@2 b3@25 ~]/2", R: "[~@6 g5@3 ~@13 e4@49 ~]/3", S: "[~@22 c4@25 ~]/2", T: "[eb4,g5] ~", U: "~@18 e5@5 ~",
  V: "eb4 ~",
})).s("gm_epiano1").gain(0.22)

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~@3 A B@2 C@2 D@2 E@2 F@2 G@2 H@2 I@2 J@2 K@2 L@2 M@2 N@2 M@2 O@2 M@2 P@2 Q@2 J@2 R@2 S@2 T@2 U@2 V@2 J@2 W@2 X@2 Y@2
  Z@2 AA@2 AB@2 AC@2 O@2 AD@2 O@2 M@2 P@2 AE@2 AF AG AH@2 AI@2 AJ@2 AK@2 AL AM AN AO AP@2 AQ AR AS@2 AT@2 AU@2 AV@2 AU@2
  AW@2 AX@2 AY AZ BA@2 BB@2 BC@2 BD BE BF@2 BG BH BI@2 BJ BK BL@2 BB@2 BC@2 BD BE BF@2 BG BH BI@2 BJ AR BM@2 ~
>`.pickRestart({
  A: "~@12 f2@4 g2@2 bb2@4 g2 ~", B: "[bb1@15 ~ c2@2 db2@3 ~ d2@24 ~@2]/2",
  C: "[c2@13 ~@3 c2 ~ g2@3 ~ f2@12 ~@2 f1@4 g1@2 bb1@3 ~ c2@2]/2", D: "[bb1@15 ~ c2@2 db2@3 ~ d2@25 ~]/2",
  E: "[c2@21 ~ f2@13 ~ f1@4 g1 ~ bb1@3 ~ c2@2]/2", F: "[bb1@15 ~ c2@2 db2@4 d2@16 ~@2 bb1@2 g1@2 ~@4]/2",
  G: "[c2@22 f2@13 ~ f1@3 ~ g1@2 bb1@3 ~ c2@2]/2", H: "[bb1@15 ~ c2@2 db2@4 d2@17 ~ bb1@2 g1@2 ~@4]/2",
  I: "[c2@22 f2@13 ~ f1@3 ~ g1 ~ bb1@3 ~ c2@2]/2", J: "[bb1@15 ~ c2@2 db2@3 ~ d2@16 ~@2 bb1@2 g1@3 ~@3]/2",
  K: "[c2@21 ~ f1@24 ~@2]/2", L: "[bb1@13 ~@3 f1@2 gb1@3 ~ g1@15 ~@3 g1@2 d2@6]/2",
  M: "[c2@21 ~ f2@10 ~@2 f1 ~ f1@10 ~@2]/2", N: "[bb1@13 ~@3 f1@2 gb1@2 ~@2 g1@15 ~@3 g1@2 d2@5 ~]/2",
  O: "[bb1@13 ~@3 f1@2 gb1@2 ~@2 g1@15 ~@3 g1@2 d2@6]/2", P: "[ab1@15 ~]/2", Q: "[f1@3 ~@7 f2@4 ~@4 f1@23 ~@7]/2",
  R: "[c2@20 ~@2 f1@10 ~@2 f2 ~ f1@4 g1@2 bb1@3 ~ c2@2]/2", S: "[bb1@16 c2 ~ db2@3 ~ d2@19 ~ g1@3 ~@3]/2",
  T: "[c2@19 ~@3 f2@17 ~ f1 ~ f1@3 ~@3]/2", U: "[bb1@20 ~@2 d2@16 ~@2 bb1@2 g1@3 ~@3]/2",
  V: "[c2@19 ~@3 f1@11 ~ c2@2 f1@3 ~ g1@2 bb1@3 ~ c2@2]/2",
  W: "[c2@15 ~ c2 ~ c2@3 ~ f1@11 ~ f2@2 f1@4 g1@2 bb1@4 c2@2]/2",
  X: "[bb1@15 ~ c2@2 db2@3 ~ d2@16 ~@2 bb1 ~ g1@3 ~@3]/2", Y: "[c2@21 ~ f1@10 ~@2 c2 ~ f1@3 ~ g1@2 bb1@3 ~ c2@2]/2",
  Z: "[bb1@14 ~@2 c2 ~ db2@3 ~ d2@16 ~@2 bb1@2 g1@4 ~@2]/2", AA: "[c2@20 ~@2 f1@16 ~@2 f1@7 ~]/2",
  AB: "[bb1@13 ~@3 f1@2 gb1@3 ~ g1@15 ~@3 g1@2 d2@5 ~]/2", AC: "[c2@20 ~@2 f2@10 ~@2 f1 ~ f1@10 ~@2]/2",
  AD: "[c2@10 ~ f2@5 ~@2 f1@5 ~]/2", AE: "[f1@5 ~@5 f2@3 ~@5 f1@25 ~@5]/2", AF: "c2@11 ~ bb1@12", AG: "eb2@12 g1@11 ~",
  AH: "[c2@14 ~@2 g1 ~ ab1@3 ~ a1@16 ~@2 a1@2 e2@6]/2", AI: "[d2@21 ~ g2@11 ~ g1 ~ g1@9 ~ g1 ~]/2",
  AJ: "[c2@16 g1@2 ab1@3 ~ a1@17 ~ e2@2 a2@2 e2@2 a1@2]/2", AK: "[d2@20 ~@2 g2@12 g1 ~ g1@10 f1 ~]/2",
  AL: "e1@9 ~ d2@4 ~@2 e2@3 ~@3 e1 ~", AM: "e1@11 ~ e2@8 ~@2 e1@2", AN: "f1@14 ~@2 c2 ~ c2@4 d2 ~",
  AO: "f2@4 g2@2 f2@5 ~ d2@4 c2@2 a1@4 f1@2", AP: "[e1@15 ~ b1 ~ bb1@3 ~ a1@22 ~@2 a1 ~]/2", AQ: "d2@11 ~ e2@11 ~",
  AR: "bb1@11 ~ g1@10 ~@2", AS: "[c2@14 ~@2 e1 ~ g1@3 ~ a1@17 ~ g2@2 a2@3 ~ a1@2]/2",
  AT: "[d2@20 ~@2 g2@10 ~@2 g1 ~ g1@10 a1@2]/2", AU: "[c2@14 ~@2 e1@2 g1@3 ~ a1@15 ~@3 a1 ~ e2@5 ~]/2",
  AV: "[d2@19 ~@3 g2@11 ~ g1 ~ g1@8 ~@2 a1@2]/2", AW: "[d2@19 ~@3 g2@11 ~ g1 ~ g1@9 ~ a1@2]/2",
  AX: "[c2@14 ~@2 e1 ~ g1@3 ~ a1@21 ~@3 a1 ~]/2", AY: "d2@12 e2@11 ~", AZ: "bb1@11 ~ g1@11 ~",
  BA: "[c2@15 ~ e1@2 g1@3 ~ a1@17 ~ g2@2 a2@5 ~]/2", BB: "[d2@21 ~ g2@11 ~ g1 ~ g1@9 ~ a1@2]/2",
  BC: "[c2@16 d2@2 e2@3 ~ a1@18 e2@2 a2@5 ~]/2", BD: "d2@20 ~@2 d2 ~", BE: "g2@8 ~@2 g1 ~ g1@9 ~ a1@2",
  BF: "[c2@14 ~@2 e1@2 g1@3 ~ a1@17 ~ g2@2 a2@6]/2", BG: "d2@14 ~@2 d2@2 a2@3 ~@3", BH: "g2@8 ~@2 g1 ~ g1@8 ~@2 a1@2",
  BI: "[c2@14 ~@2 g1 ~ g1@3 ~ a1@16 e2 ~ g2 ~ a2@2 g2 ~ a1@2]/2", BJ: "d2@11 ~ e2@7 ~ ab1 ~ a1@2", BK: "bb1@6 g1@5 ~",
  BL: "[c2@15 ~ e1@2 g1@3 ~ a1@17 ~ g2@2 a2@6]/2", BM: "c2/2",
})).s("gm_fretless_bass").gain(0.49)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  A B C D E F G H I J K L M N O P Q R K S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ ~@3 AK AC AL AM AN AO AP AQ AP AR
  AS AO AT AU AV AW AX AY AZ BA BB BC BD L BE BF BG BA BH BI BJ BK BL BM BN BO ~@6 BP BQ BR BS BT BU BV BW ~@2 BX BQ BR
  BS BT ~ BY BZ CA CB CC CD CE CF CG CH CI CF CJ CK CL CM CN CO CP CQ CR CD CS CT CU CV CW CF CX CY CZ DA CE DB DC DD DE
  DF DG DH DI DJ DK DL CX DM DN DO DP@2 ~
>`.pickRestart({
  A: "bb3@3 ~ bb3 ~ g3@2 ~ bb3 ~@5 bb3@2 ~ g3@3 bb3 ~@2", B: "~@4 bb3 ~ g3@3 ~@3 bb3@4 ~@2 g3@3 ~@3",
  C: "bb3@3 ~ bb3@2 g3@3 ~ bb3 ~@5 bb3@2 g3 ~@3 c4@2", D: "~@4 g3 ~ c4@3 ~@3 bb3@4 ~@2 g3@2 ~@4",
  E: "bb3@3 ~ bb3 ~ g3@2 ~@2 bb3@2 ~@3 bb3@2 ~ g3@3 ~@3", F: "bb3@2 ~@2 gb3 ~ bb3@2 ~@2 g3 ~ bb3@4 ~@2 g3@3 ~ f3 ~",
  G: "bb3@3 ~ bb3@2 g3 ~@3 bb3 ~@5 bb3 ~ g3@2 ~@2 bb3 ~", H: "~@4 bb3 ~ g3@2 ~@4 bb3@4 bb3 ~ g3@3 ~ f3 ~",
  I: "bb3@3 ~ bb3 ~ g3 ~@3 bb3 ~@5 bb3 ~ g3@3 ~ bb3 ~", J: "~@4 bb3@2 g3@2 ~@4 bb3@3 ~ bb3 ~ g3@2 ~@4",
  K: "bb3@3 ~ bb3 ~ g3@2 ~@2 bb3 ~@5 bb3 ~ g3@2 ~@2 bb3 ~", L: "~@4 bb3@2 g3@2 ~@2 d3 ~ f3@2 ~@2 d3 ~ g3@2 ~@4",
  M: "bb3@3 ~ bb3@2 g3@2 ~@2 bb3 ~@5 bb3 ~ g3@3 bb3@2 ~", N: "~@4 bb3 ~ g3@3 ~@3 bb3@4 bb3 ~ g3@4 g3 ~",
  O: "a3@3 ~ bb3 ~ g3@2 ~@2 bb3 ~@5 bb3@2 g3@2 ~@2 bb3 ~", P: "~@4 bb3 ~ c4@4 ~@2 c4@3 ~@3 bb3@3 ~@3",
  Q: "bb3@3 ~ bb3 ~ g3@2 ~@2 bb3 ~@5 bb3 ~ g3@3 ~ bb3 ~", R: "~@4 bb3@2 g3@2 ~@4 bb3@3 ~@3 g3@3 ~@3",
  S: "~@4 bb3 ~ g3@2 ~@4 f3@3 ~@3 f3@3 ~@3", T: "a3@3 ~ bb3 ~ g3@2 ~@2 bb3 ~ g3 ~@3 bb3 ~ g3@3 bb3 ~@2",
  U: "~@4 bb3 ~ g3@3 ~@3 bb3@4 bb3@2 g3@3 ~ f3@2", V: "bb3@3 ~ bb3 ~ g3@3 ~ bb3 ~@5 bb3 ~ g3@3 ~ bb3 ~",
  W: "g3 ~@3 bb3 ~ g3@2 ~@4 f3@2 ~@4 g3@3 ~@3", X: "bb3@3 ~ bb3 ~ g3@3 ~ bb3 ~@2 g3 ~@2 bb3 ~ g3@3 bb3@2 ~",
  Y: "~@3 bb3@2 ~ g3@3 ~@3 f3@3 ~ d3 ~ g3@3 ~@3", Z: "bb3@3 ~ bb3@2 g3@3 ~ bb3@2 ~@4 bb3@2 g3@3 ~ bb3 ~",
  AA: "~@4 bb3@2 g3@3 ~@3 f3@3 ~@3 f3@3 ~ g3@2", AB: "a3@4 bb3@2 g3@3 ~ bb3 ~@5 bb3@2 g3@3 ~ bb3@2",
  AC: "~@4 bb3@2 g3@3 ~@3 f3@3 ~ d3@2 g3@3 ~@3", AD: "bb3@3 ~ bb3 ~ g3@3 ~ bb3@2 ~@4 bb3 ~ g3@2 ~ eb4@3",
  AE: "~@4 eb4@2 d4@3 ~ g3 ~ bb3@3 ~@3 g3@3 ~@3", AF: "bb3@3 ~ bb3 ~ g3@2 ~@2 bb3@2 ~@4 bb3@2 g3@3 ~ bb3@2",
  AG: "~@4 bb3@2 g3@3 ~@3 f3@3 ~ d3 ~ g3@3 ~ e3 ~", AH: "bb3@3 ~ bb3@2 g3@2 ~@2 bb3 ~@5 bb3@2 g3@3 ~ bb3@2",
  AI: "~@4 bb3 ~ g3@2 ~@4 f3@3 ~@3 f3@6", AJ: "a3 ~@23", AK: "bb3@4 bb3@2 g3@3 ~ bb3 ~@5 bb3 ~ g3@3 bb3@2 ~",
  AL: "bb3@3 ~ bb3@2 g3@2 ~@2 bb3@2 ~@4 bb3 ~ g3@2 ~@2 c4@2", AM: "d4@2 ~@2 g3 ~ c4@3 ~ g3 ~ bb3@3 ~ bb3 ~ g3@3 ~@3",
  AN: "bb3@3 ~ bb3 ~ g3@3 ~ bb3 ~@5 bb3 g3@3 ~@2 bb3 ~", AO: "~@4 bb3 ~ g3@2 ~@4 f3@3 ~@3 g3@3 ~@3",
  AP: "bb3@3 ~ bb3@2 g3@3 ~ bb3 ~ g3 ~@3 bb3 ~ g3@3 ~ bb3 ~", AQ: "~@6 g3@2 ~@2 g3 ~ g3@2 ~@4 bb3@3 ~@3",
  AR: "~@4 bb3@2 g3@3 ~@3 f3@3 ~ d3 ~ g3@3 ~@3", AS: "bb3@3 ~ bb3@2 g3@2 ~@2 bb3 ~@5 bb3@2 g3@3 ~ bb3 ~",
  AT: "bb3@3 ~ bb3@2 g3@3 ~ bb3 ~@5 bb3@2 g3@3 ~ bb3 ~", AU: "~@4 bb3@2 g3@2 ~@4 f3@3 ~@3 g3@3 ~@3",
  AV: "bb3@4 bb3@2 g3@3 ~ bb3 ~@5 bb3 ~ g3@3 ~ bb3 ~", AW: "~@4 bb3 ~ g3@2 ~@4 f3@2 ~@2 d3 ~ g3@4 g3 ~",
  AX: "a3@3 ~ bb3@2 g3@3 ~ bb3 ~@5 bb3@2 g3@3 ~ bb3@2", AY: "~@4 bb3@2 g3@2 ~@2 g3 ~ f3@3 ~@3 g3@3 ~@3",
  AZ: "bb3@3 ~ bb3@2 g3@3 ~ bb3@2 ~@4 bb3 ~ g3@3 ~ bb3 ~", BA: "~@4 bb3@2 g3@3 ~@3 f3@3 ~@3 g3@3 ~ f3@2",
  BB: "bb3@3 ~ bb3 ~ g3@2 ~@2 bb3 ~@5 bb3 ~ g3@3 bb3 ~@2", BC: "~@4 bb3 ~ g3@3 ~@3 f3@4 ~@2 g3@3 ~ f3@2",
  BD: "bb3@3 ~ bb3@2 g3@3 ~ bb3@2 ~@4 bb3@2 g3@3 ~ bb3@2", BE: "bb3@3 ~ bb3@2 g3@3 ~ bb3 ~@5 bb3 ~ g3@2 ~@2 bb3@2",
  BF: "~@4 bb3@2 g3@3 ~@3 f3@3 ~ d3 ~ g3@3 ~ f3 ~", BG: "bb3@3 ~ bb3@2 gb3@3 ~ bb3@2 ~@4 bb3 ~ g3@3 ~ bb3@2",
  BH: "bb3@3 ~ bb3 ~ g3@3 ~ bb3@2 ~@4 bb3 ~ g3@3 ~ bb3@2", BI: "~@4 bb3@2 g3@2 ~@4 f3@3 ~ d3 ~ g3@3 ~ f3@2",
  BJ: "bb3@3 ~ bb3 ~ g3@3 ~ bb3@2 ~@4 bb3@2 g3@3 ~ bb3 ~", BK: "~@4 bb3@2 g3@3 ~@3 f3@3 ~ d3@2 g3@3 ~ f3@2",
  BL: "bb3@3 ~ bb3 ~ g3@3 ~ bb3@2 ~@4 bb3@2 ~ g3@3 bb3@2", BM: "~@4 bb3@2 g3@3 ~@3 f3@4 ~@2 g3@3 ~ f3@2",
  BN: "bb3@3 ~ bb3 ~ g3@3 ~ bb3 ~@5 bb3 ~ g3@3 ~ bb3@2", BO: "~@4 bb3@2 g3@2 ~@2 d3 ~ f3@4 ~@2 f3@3 ~ g3 ~",
  BP: "c4@3 ~ c4 ~ a3@3 ~ c4@2 ~@4 c4@2 a3@3 ~ c4 ~", BQ: "~@4 c4@2 a3@3 ~@3 g3@3 ~ d3 ~ a3@3 ~ g3@2",
  BR: "c4@3 ~ c4 ~ a3@3 ~ c4 ~@5 c4 ~ a3@3 ~ c4 ~", BS: "~@4 c4 a3@2 ~@5 c4@3 ~ c4@2 a3@2 ~@4, ~@12 a3 ~@11",
  BT: "c4@3 ~ c4@2 a3@4 c4 ~@5 c4@2 a3@4 c4 ~", BU: "~@3 c4@3 a3@3 ~@3 g3@3 ~ d3 ~ a3@3 ~ g3@2",
  BV: "c4@3 ~ c4 ~ a3@3 ~ c4 ~@5 c4 ~ a3@3 ~ c4@2", BW: "~@4 c4@2 a3@3 ~@3 c4@4 ~@2 a3@3 ~ g3@2",
  BX: "~@4 c4 ~ a3@3 ~ c4@2 ~@4 c4@2 a3@3 ~ c4 ~", BY: "c4@3 ~ c4 ~ a3@3 ~ c4@2 ~@4 c4@2 a3@4 c4@2",
  BZ: "~@4 c4@2 a3@4 ~@2 g3@3 ~@3 a3@3 ~ g3@2", CA: "c4@3 ~ c4 ~ a3@3 ~ c4 ~@5 c4 ~ a3@4 c4 ~",
  CB: "~@4 c4@2 a3@3 ~@3 g3@3 ~@3 a3@3 ~ g3@2", CC: "c4@3 ~ c4 ~ a3@3 ~ c4@2 ~@4 c4 ~ a3@3 ~ c4@2",
  CD: "~@4 c4@2 a3@3 ~@3 g3@4 ~@2 a3@3 ~ g3@2", CE: "c4@4 c4@2 a3@3 ~ c4@2 ~@4 c4@2 a3@4 c4 ~",
  CF: "~@4 c4@2 a3@4 ~@2 g3@3 ~@3 g3@3 ~ a3@2", CG: "c4@3 ~ c4@2 a3@3 ~ c4 ~@5 c4 ~ a3@4 c4@2",
  CH: "~@4 c4@2 a3@4 ~@2 g3@3 ~ d3@2 a3@3 ~ g3@2", CI: "c4@3 c4@2 ~ a3@3 ~ c4@2 ~@4 c4 ~ a3@4 c4 ~",
  CJ: "c4@3 ~ c4 ~ a3@3 ~ c4 ~@5 c4@2 a3@4 c4 ~", CK: "~@2 c4 a3@2 ~ g3@2 ~ a3@2 g3",
  CL: "c4@3 ~ c4@2 a3@2 ~ c4 ~@5 c4 ~ a3@2 ~@5", CM: "~@8 c4 ~@3", CN: "c4@3 db4 c4 ~ a3@3 ~ c4@2 ~@4 c4@2 a3@3 c4@2 ~",
  CO: "~@3 c4@2 a3@4 ~@2 g3@3 ~@3 a3@3 ~@2 g3@2, ~@8 d3 ~@3", CP: "c4@3 c4@2 ~ a3@3 c4@2 ~@5 c4 ~ a3@4 c4@2",
  CQ: "~@4 c4@2 a3@3 ~ g3 ~ g3@3 ~@3 g3@4 a3@2", CR: "c4@3 ~ c4@2 a3@3 c4 ~@6 c4@2 a3@3 ~ c4@2",
  CS: "c4@3 ~ c4@2 a3@3 ~ c4@2 ~@4 c4@2 a3@4 c4@2", CT: "~@4 c4 ~ a3@3 ~@3 g3@3 ~@3 g3@4 a3@2",
  CU: "c4@3 ~ c4@2 a3@3 ~ c4 ~@7 a3@4 c4 ~, ~@16 c4@5 ~@3", CV: "~@4 c4@2 a3@3 ~@3 g3@3 ~@3 g3@4 a3@2",
  CW: "c4@3 ~ c4@2 a3@3 ~ c4@2 g3 ~@3 c4@2 a3@3 ~ c4 ~", CX: "c4@3 ~ c4@2 a3@3 ~ c4 ~@5 c4@2 a3@3 ~ c4@2",
  CY: "~@4 c4@2 a3@4 ~@2 c4@3 ~ c4@2 a3@4 a3 ~", CZ: "c4@4 c4@2 a3@3 ~ c4 ~@5 c4@2 a3@3 ~ c4 ~",
  DA: "~@6 g3@3 ~@2 c4@3 ~@3 c4@4 ~@3", DB: "~@4 c4@2 a3@3 ~@3 c4@4 c4@2 a3@3 ~ g3@2",
  DC: "c4@3 ~ c4@2 ab3@4 c4 ~@5 c4@2 a3@4 ~@2", DD: "c4@3 ~@3 a3@3 ~@3 c4@3 ~ c4@2 a3@3 ~ a3 ~",
  DE: "c4@3 ~ c4@2 a3@3 ~ c4@2 ~@4 c4@2 a3@3 ~ c4 ~", DF: "~@4 c4@2 a3@3 ~@3 g3@3 ~@3 g3@3 ~ a3@2",
  DG: "c4@3 ~ c4@2 a3@2 ~@4 c4@3 ~ c4@2 a3@3 ~ c4 ~", DH: "~@4 b3 ~ c4@3 ~@3 c4@3 ~ c4 ~ a3@4 g3@2",
  DI: "c4@3 ~ c4@2 a3@3 ~ c4@2 ~@4 c4 ~ a3@4 c4 ~", DJ: "~@4 c4@2 a3@3 ~@3 g3@2 ~@4 g3@3 ~ a3@2",
  DK: "c4@3 ~ c4@2 a3@3 ~ c4 ~@5 c4@2 a3@4 c4 ~", DL: "c4@4 c4 ~ a3@4 b3@2 c4@4 d4@2 ~@6",
  DM: "~@4 c4@2 a3@3 ~@3 g3@2 ~@4 g3@4 a3@2", DN: "c4@3 ~@2 a3@2 ~@3 c4 ~@5 c4 ~ a3@3 ~@3, ~@2 c4 ~@9",
  DO: "c4@5 ~ c4@3 ~@9 g3@4 a3 ~", DP: "[c4@7 ~]/2",
})).s("gm_electric_guitar_muted").gain(0.29).pan(0.4)

// chords · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note(`<
  ~@24 A@3 ~@5 B@3 ~@29 C@3 ~@5 D@2 E ~@23 F@3 ~@5 G@3 ~@5 H@3 ~@5 I@3 ~@5 F@3 ~@5 J@3 ~@8
>`.pickRestart({
  A: "[a4@21 ~ a4@5 ~ g4@6 f4@8 g4@3 ~ f4@6 eb4@6 ~@14]/3", B: "[a4@22 a4@5 ~@2 g4@6 f4@5 ~ g4@6 f4@6 eb4@11 ~@8]/3",
  C: "[a4@21 ~ a4@5 ~ g4@6 f4@5 ~ g4@6 f4@6 eb4@10 ~@10]/3", D: "[a4@21 ~ a4@5 ~ g4@6 f4@5 ~ g4@8]/2",
  E: "f4@4 ~ eb4@11 ~@8", F: "[[b4,d5]@22 [b4,d5]@5 ~ [a4,c5]@6 [g4,c5]@5 ~ [a4,c5]@6 [g4,c5]@6 [f4,a4]@11 ~@9]/3",
  G: "[~ [b4,d5]@21 [b4,d5]@5 ~ [a4,c5]@6 [g4,c5]@6 [g4,d5]@6 [g4,c5]@6 [f4,a4]@10 ~@10]/3", // Bm Am C5 G5 C5 F
  H: "[[b4,d5]@22 [b4,d5]@5 ~ [a4,c5]@6 [g4,c5]@5 ~ [a4,c5]@6 [g4,c5]@6 [f4,a4]@10 ~@10]/3", // Bm Am C5 Am C5 F
  I: "[~ d5@21 [b4,d5]@5 ~ [a4,c5]@6 [g4,c5]@6 [g4,d5]@6 [g4,c5]@6 [f4,a4]@11 ~@9, b4@7 ~@17]/3", // Bm Am C5 G5 C5 F
  J: "[~ d5@21 [b4,d5]@5 ~ [a4,c5]@6 [g4,c5]@6 [g4,d5]@6 [g4,c5]@6 [f4,a4]@10 ~@10, b4@7 ~@17]/3", // Bm Am C5 G5 C5 F
})).s("gm_electric_guitar_jazz").gain(0.25).pan(0.4)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  ~@24 A@2 B@2 C@2 D@2 E@2 B@2 F@2 G@2 ~@24 A@2 B@2 C@2 D@2 E@2 B@2 F@2 G@2 H I J@2 K@2 L@2 M@2 N@2 K@2 O@2 P Q J@2 K@2
  L@2 M@2 N@2 K@2 J@2 P Q J@2 K@2 L@2 M@2 N@2 K@2 J@2 P Q J@2 K@2 L@2 M@2 N@2 K@2 J@2 P Q R@2 ~
>`.pickRestart({
// … 129 more lines

More by Al Jarreau