Strudelify
Ain't No Mountain High Enough cover art

Supremes Ladies

Ain't No Mountain High Enough

The Supremes

KeyE♭ majorTempo101 bpm
0:00/0:00
// Ain't No Mountain High Enough — The Supremes
// 101 bpm, 3/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: Full arrangement: all 106 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(101/3)

// 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, A@4 for four bars: edit a riff to change every repeat.

// other · piano
const piano = note(`<
  A@2 B@2 C D E F@2 G H@2 ~@31 I J K L M@2 N O P ~@5 Q R S T U V W X Y Z AA AB AC AD AE@2 AF AG@2 AH@2 ~@10 AI AJ AK AL
  AM AN ~@10 AO AP
>`.pickRestart({
  A: "[~@19 b4@4 gb4@4 ~ a4@4 b4@4 gb4@4 a4@8]/2", B: "[~ b4@4 a4@4 gb4@8 ~ b4@4 gb4@4 ~ b4@4 c5@8 bb4@4 ~ c5@4]/2",
  C: "eb5 bb4 c5 ~@2 [bb1,bb2], ~@12 f5@11 ~", // Bb
  D: "[bb1,bb2] bb2 [bb1,bb2] bb2 [bb1,bb2] bb2, bb5 ~@3 bb5 ~@3 bb5 ~@3 bb5 ~@3 bb5 ~@3 bb5 ~@3", // Bb
  E: "~@2 eb5 f5 g5@2 eb5@2 d5@2 f5@2", F: "[d5@2 f5@2 d5@2 f5@2 d5@2 eb5@4 c5 d5 eb5@2 f5@2 eb5@2 g5@2]/2",
  G: "eb5 g5 d5 f5 d5 f5", H: "[d5 f5 d5 eb5@4 ~@5]/2", I: "~@8 [g3,g5]@3 ~ [g3,g5]@3 ~ [g3,g5]@3 ~ [g3,g5]@3 ~",
  J: "[f3,f5]@6 ~@2 [f3,f5]@7 ~ [f3,f5]@2 ~@2 [f3,f5]@2 ~@2", // F
  K: "[f3,f5]@3 ~ [eb3,eb5]@8 [c3,c5]@4 [eb3,eb5]@4 [f3,f5]@3 ~", L: "~@8 [g3,g5]@2 ~@6 [f3,f5]@3 ~ [f3,f5]@3 ~",
  M: "[[f3,f5]@7 ~ [f3,f5]@2 ~@2 [f3,f5]@2 ~@2 [f3,f5]@4 [eb3,eb5]@7 ~ [c3,c5]@3 ~ [eb3,eb5]@3 ~ [c3,c5]@3 ~@5 [g3,g5]@3 ~]/2", // F Eb C Eb C G
  N: "[g3,g5]@3 ~ [g3,g5]@3 ~ [f3,f5]@7 ~ [f3,f5]@3 ~ [f3,f5]@3 ~", // G F
  O: "[f3,f5]@2 ~@2 [f3,f5]@2 ~@2 [f3,f5]@3 ~ [eb3,eb5]@11 ~", P: "[c3,c5]@7 ~@17",
  Q: "~@21 eb5 [eb4,eb5]@2, ~@10 eb4 ~", R: "[eb4,eb5]@2 [c4,c5]@2 [c4,c5]@3 [ab3,ab4] [eb3,eb4]@2 [d3,d4]@2",
  S: "[c3,c4] [d3,d4] [eb3,eb4]@4", T: "~@6 [eb4,eb5]!2 eb5@2 [c4,c5]!2", U: "[c4,c5]@2 [a3,a4]!2 [a3,a4]@8",
  V: "~@10 [eb5,g5,bb5]!2", W: "[eb5,g5,bb5] ~@2", X: "~@2 [d5,g5,b5]!2 [d5,g5,b5]@4 ~@4",
  Y: "~@6 [eb5,g5,c6]!2 [eb5,g5,c6]@4", Z: "~@2 [bb4,db5,g5]", AA: "[g4,db5,f5]@4 [ab4,c5,eb5]@4 ~@3 [c5,c6]",
  AB: "[c5,c6]@2 [ab4,ab5]!2 [ab4,ab5]@2 [eb4,eb5]!2 [eb4,eb5]@2 [c4,c5]!2", // C Ab Eb C
  AC: "[c4,c5]@2 [eb4,eb5] [d4,d5] [c4,c5] [d4,d5]", AD: "[eb4,eb5]@10 [eb4,eb5]!2",
  AE: "[[eb4,eb5]@2 [c4,c5]!2 [c4,c5]@2 a3 [a3,a4] [a3,a4]@12 ~@4]/2", AF: "~@2 [g4,eb5,g5,bb5]!2 [g4,eb5,g5,bb5]@8",
  AG: "[~@13 [g5,b5] [g4,d5,g5,b5]@2 [g4,d5,g5,b5]@16 ~@16, ~@6 [g4,d5] ~@17]/2", // G G5
  AH: "[[c5,eb5,g5]@16 [e5,g5,c6]@17 ~@15]/2", AI: "~@5 g5", AJ: "~ [eb5,g5]!2 ~@2 [eb5,g5]",
  AK: "~@4 [d5,f5]@2 ~ bb4 ~@2 [d5,f5]@2", AL: "~ [d5,f5] ~ [eb5,g5] ~@2", AM: "[eb5,g5] ~@2 g5 ~ f5",
  AN: "~@4 [d5,f5]@11 ~ e5@6 ~@2", AO: "~@16 [gb4,eb5] ~@3 gb4 ~@3", AP: "[gb4,eb5] ~@11 [gb4,eb5]@3 ~@9",
})).s("gm_piano").gain(0.3)

// other · piano · soft notes
const piano_soft = note("<~@67 A ~@3 B ~@16 C D E F G H ~@10 I J>".pickRestart({
  A: "~@10 [c5,c6] ~", B: "~@6 a4 ~@5", C: "~@4 [c5,eb5] eb5", D: "[c5,eb5] ~@2 [c5,eb5]!2 ~",
  E: "[bb4,d5]@2 [bb4,d5]@2 ~@3 d5 [bb4,d5] bb4@2 ~, ~@9 d5 ~@2", F: "[bb4,d5] ~ [c5,eb5] ~ [c5,eb5] [eb5,g5]",
  G: "~ [c5,eb5]!2 eb5 [bb4,d5] d5", H: "[bb4,d5]@2 ~@6 bb4@3 ~", I: "~@20 eb5 ~@3",
  J: "~@2 [gb4,eb5] [eb4,b4]@2 f4 ~@6, ~@10 db5 ~@13", // Ebm Abm
})).s("gm_piano").gain(0.15)

// bass · acoustic bass
const bass = note(`<
  A@3 B@2 C D E F@2 G H@2 I J K@7 L M@4 N@3 O P@4 Q R@3 S T@3 U V W X Y Z@2 AA AB AC AD J AE@3 AF AG@3 AH AI@3 AJ AK AL
  AM AN@2 AO@2 AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC@2 BD BE BF BG BH BI BJ BK BL BM BN BO@2 BP BQ BR BS
>`.pickRestart({
  A: "[~@11 b2@48 ~@3 b2@3 ~@5 b2@2]/3", B: "[~@7 bb2@22 ~@3 bb2@3 ~ bb2@11 ~]/2", C: "bb2 bb1 bb2 bb1 bb2 bb1",
  D: "ab2@2 ~@2 ab2@7 ~ eb2@2 f2@2 ab2@3 ~ ab2@3 ~", E: "f2@3 ~ gb2@3 ~ g2@2 ~@2 g1@3 ~ bb1@2 ~@2 c2@4",
  F: "[~@2 g1@2 c2@3 ~ bb1@3 ~ bb1@2 ~@2 ab1@2 ~@2 ab1@7 ~ eb2@3 ~ ab2@2 ~@2 ab2@3 ~ f2@3 ~ gb2@3 ~]/2",
  G: "g2@3 ~ bb2@2 ~@2 b2@2 ~@2 c3@6 g2@2 c2@2 ~@2", H: "[c2@3 ~ eb2@2 c2@2 f1@6 c2 ~ f2 ~@3 f2@20 ~@4 bb1@4]/2",
  I: "c2@2 d2@2 eb2@6 a1 ~", J: "bb1@11 ~",
  K: "[bb1@2 ~@2 bb2@30 ~@2 ab2@24 ~@4 ab2 ~@3 ab2@32 g2@32 c2@15 ~ c3@8 c2@4 c3 ~@3 bb2 ~@3]/7", L: "ab2@11 ~",
  M: "[ab2 ~@3 ab2@31 ~ g2@31 ~ c2@15 ~ c3@8 c2 ~@3]/4",
  N: "[bb1 ~@3 ab1@25 ~@3 ab1 ~@3 bb1@17 ~ f1@2 bb1@6 f1@2 bb1@4 ab1@4]/3", O: "g1@15 ~ g1@4 bb1 ~@3",
  P: "[b1 ~@3 c2@7 ~ c2@8 c2@8 g1@3 ~ a1 ~@3 ab1@26 ~@2 ab1 ~@3 bb1@18 f1@2 bb1@6 f1@2]/4", Q: "bb1@4 ab1@4 g1@15 ~",
  R: "[g1@4 bb1 ~@3 b1 ~@3 c2@8 c2@8 c2@8 g1 ~@3 a1 ~@3 ab1@17 ~ ab1@2 ab1@4 ab1@4]/3",
  S: "a1 ~@3 bb1@7 ~ bb1@9 ~ f1@2",
  T: "[bb1@4 f1@4 bb1 ~@3 ab1 ~@3 g1@13 ~ g2@2 g1@4 bb1@4 b1 ~@3 c2@7 ~ c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~ c2@3 ~]/3",
  U: "c2@3 ~ c2@3 ~ ab1@2 ~@2 ab1@9 ~ eb2@2", V: "f2 ~ ab2@4 f2@2 g2@2 bb2 ~",
  W: "b2@2 ~@2 c3@5 ~ g2@2 c2 ~@3 c2@3 ~ bb1@3 ~", X: "ab1 ~ ab1@5 eb2 ab1 ~ ab1@2",
  Y: "f1@2 gb1@2 g1@2 bb1 ~ b1 ~ c2@2",
  Z: "[~@2 g2@2 c2@2 ~@2 c3@2 g2@2 c3@2 bb2@2 ab1@2 ~@2 ab1@8 ab2@2 ~@2 ab1@2 ~@2 ab1@4 f1@4 gb1@3 ~]/2",
  AA: "g1@2 g2 ~ d2 ~ c2@4 c3@2", AB: "eb2@2 ~@2 g1@2 ~@2 f1@9 ~ c2@3 ~ g1 ~",
  AC: "f1@2 ~@2 f1@7 ~@3 f1 ~ f1@2 ~@2 a1@2 ~@2", AD: "c2@2 ~@2 d2@2 ~@2 eb2@11 ~ a1@2 ~@2",
  AE: "[bb1 ~ bb2@18 ab2@14 ~ eb2]/3", AF: "ab2", AG: "[~@4 eb2@2 g2@2 a2@27 ~@3 eb2@2 a2@21 ~@3 a2@2 ~@6]/3",
  AH: "bb2@7 ~", AI: "[bb2@2 ~@6 b2@23 ~ g2@8 c3@21 ~@3 c3@2 ~@6]/3", AJ: "bb2@7 g2 eb2@4",
  AK: "bb2@2 eb2 ~@3 eb2 ~ ab1 ~@3 ab1@8 c3@2 ab2@2", AL: "eb2 ~@3 eb2@8 ab2@2 eb2@2 ab2@8",
  AM: "f2@5 ~ f2@2 c2@8 ab1@7 ~", AN: "[a1 ~@3 a1@10 eb2@2 a2 ~@3 a2@10 a1@2 a1@4 a1@2 ~@2 a1@8]/2",
  AO: "[a1@4 a1@4 a1@8 bb1 ~@3 bb1@10 eb2@2 bb2@4 bb1@4 a1@4 bb1@3 ~]/2", AP: "b1 ~@3 b1@8 f2@2 g2@2 b2@4 b2@4",
  AQ: "g2@4 b2@4 c3@7 ~ g2@6 g2@2", AR: "eb2@4 eb2@4 d2@3 ~ b1@3 ~ c2@4 c2@4", AS: "c2!6", AT: "ab1 ~@7",
  AU: "~@4 ab1@3 ~ g1@2 ~@14", AV: "~@6 g1 ~ f1 ~@3", AW: "~@10 f1 ~", AX: "eb1 ~@5 c1@4 c1@2",
  AY: "c2@4 bb1@3 ~ ab1@2 ~@14", AZ: "~@2 ab1 ~ ab1 ab1@3 g1 ~@3", BA: "~@6 g1 ~ g1 g1@3", BB: "f1 ~@9 f1 ~",
  BC: "[f1@2 f1@6 eb1@4 g1@4 bb1@4 c2@8 c2@4 c2@4 bb1@4 ab1@7 ~]/2", BD: "ab1@3 eb2 ab1@2 bb1@2 c2@2 db2@2",
  BE: "eb2 ~@3 eb2@6 gb1@6 g1 ~@3 c2@2 bb1 ~", BF: "~@2 c2@2 c2@2 bb1@2 ab1 ~@3 ab1@4 ab2@8",
  BG: "c2@4 bb1@3 ~ c2@3 ~ db2@4 eb2@6 ~@2", BH: "d2 ~@3 c2@8 c3 ~@3 bb2 ~@3 g2 ~@3",
  BI: "db2@4 db3@4 ab2@4 eb2@4 db2 ~ db2@2 ab2@4", BJ: "db3@4 db2@2 f2@2 gb2@2 ~@2 gb2@9 ~ db2@2",
  BK: "gb2@2 f2@2 e2@2 eb2@5 ~ d2@2 ~@2 db2@5 ~ db2@2", BL: "ab2@2 ~@2 db3@8 ab2@2 db3@2 ab2@2 eb2@2 db2@3 ~",
  BM: "gb2@2 gb2@2 db2 ~ bb2@4 f2 bb2", BN: "eb2@2 eb2@2 eb2@2 ~@2 db2@3 ~ f1@2 gb1@2 g1@2 ab1@2 a1@2 bb1@2",
  BO: "[b1@3 ~ b1@2 db2@2 eb2@4 bb1@3 ~ gb2@2 ~@2 gb2@2 db2@4 ~@2 db2@2 ~@2 gb2@2 db2@2 eb2@2 f2@2 gb2@2 db2@2 eb2@2 d2@2]/2",
  BP: "db2@4 db2@2 ab2@5 ~ ab2@2 db2@2 ~@2 db2@2 eb2@2 db2@2",
  BQ: "eb2@2 db2@2 eb2@2 f2@2 gb2@3 ~ gb2@2 ~@2 db2@2 ~@2 bb1@4", BR: "~@2 f2@2 bb1@2 ~@2 eb2@4 eb3 ~@11",
  BS: "eb2 ~@3 eb2@2 b1@3 ~ db2@2 eb2@3 ~@9",
})).s("gm_acoustic_bass").gain(0.4)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  A B C D E@2 F@4 G@4 H I@2 ~@10 J@5 K@7 L@3 ~ M@3 N@4 O@4 P Q@2 ~@9 R S@3 T@2 U@2 V@2 W X Y Z AA AB AC AD AE AF AG AH@7
  AI@4 AJ AK@3 AL@3 ~
>`.pickRestart({
  A: "~@11 b4!13", B: "b4!24", C: "b4 ~ b4!5 ~ b4!16", D: "b4!2 ~ b4!4 bb4!17", E: "[bb4!14 bb4@34]/2",
  F: "[[ab4,c5] [g4,bb4] [ab4,c5]]/4", G: "[[g4,f5]@12 [bb4,eb5]@19 ~ bb3@12 a3@16 bb3@28 a3@8, ~@8 eb4@13 ~@3]/4",
  H: "[ab3,c4]", I: "[[c4,eb4] [ab3,d4]@8 ~@3]/2", J: "[~ [c4,eb4]@8 [bb3,d4]@21]/5",
  K: "[c4@3 [c4,eb4]@8 d4@7 f4@2 ~@12 c4@3 [c4,eb4]@7, ~@11 bb3@23 ~@8, ~@20 d4@13 ~@9]/7", // Cm
  L: "[~ d4@7 f4@2 d4@8, ~ bb3@17]/3", M: "[~@8 g4@16 ~@16 d4@12 [bb3,eb4]@19 ~, ~ eb4@4 ~@4, ~@6 f4@7 ~@5]/3",
  N: "[g4@16 ~@16 d4@12 [bb3,eb4]@19 ~ g4@16 f4@16, eb4 ~ eb4, ~@4 f4@7 ~@13]/4", // Eb5
  O: "[[d4,f4]@3 [bb3,eb4]@5 bb3@3 a3@4 bb3@4 a3@5, ~ eb4@2]/4", P: "[c4,eb4]@23 ~", Q: "[[c4,eb4]@3 ~ d4@32 ~@12]/2",
  R: "~@16 [bb3,db4]@7 ~", S: "[[bb3,db4]@7 ~ [ab3,c4]@47 ~ c4@4 d4@4 c4@4 d4@4, ~@7 ab3@2]/3", T: "[[a3,c4]@23 ~]/2",
  U: "[[a3,c4] [bb3,eb4]@2]/2", V: "[[b3,d4]@32 eb4@7 ~ eb4@6 ~@2]/2", W: "eb4@7 ~ eb4@6 ~@2 e4 ~@3 e4 ~@3",
  X: "e4 ~@3 e4 ~@3 e4 ~@3 e4 ~@3 e4 ~@3 e4 ~@3", Y: "g4 ~@11, eb4 ~@23", Z: "~@2 [eb4,g4] ~ [d4,f4] ~@7",
  AA: "~@6 [d4,f4] ~ eb4 ~@3, ~@16 c4 ~@7", AB: "~@20 [c4,eb4] ~@3", AC: "[bb3,d4] ~@11 [bb3,d4]@11 ~",
  AD: "[bb3,e4]@8 [eb4,g4] ~@15", AE: "~@4 [eb4,g4] ~@3 [eb4,g4] ~ [eb4,g4]@5 ~ [d4,f4] ~@7",
  AF: "~@12 [d4,f4] ~@3 [d4,f4] ~ [d4,f4]@4 ~@2", AG: "[c4,eb4] ~@19 [c4,eb4] ~@3",
  AH: "[[c4,eb4] ~ [c4,eb4]@5 ~ [bb3,d4] ~@11 [bb3,d4]@12 [bb3,e4]@8 c5@32 d5@32 c5@32 d5@24 bb4@8, ~@5 g4@16]/7", // Cm Bb Bbdim
  AI: "[[gb4,b4] [f4,bb4] [gb4,b4]]/4", AJ: "[f4,bb4] [ab4,db5]", AK: "[[g4,bb4]@7 ~ [gb4,b4]@31 ~ [f4,bb4]@32]/3",
  AL: "[[gb4,b4]@32 [f4,bb4]@12 [ab4,db5]@12 [g4,bb4]@7 ~@9]/3", // B5 Bb5 Db5 Gm
})).s("gm_string_ensemble_1").gain(0.3)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  A@3 B@3 C D E F G H@2 I J K ~@16 L@6 M N O P Q R ~@7 S T U V W@2 X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP
  ~@13 AQ AR AS AT ~ AU AV ~@10
>`.pickRestart({
  A: "[~@11 [gb3,b3,eb4]@49 ~@2 [gb3,b3,eb4]@2 ~@6 [gb3,b3,eb4]@2]/3", // B
  B: "[~@7 [ab3,c4,eb4]@24 ~ [ab3,c4,eb4] ~@3 [bb3,d4,f4]@36]/3", C: "[eb4,g4]@7 ~ [eb4,g4]@7 ~ [d4,ab4]@7 ~",
  D: "[d4,ab4]@7 ~ [d4,bb4]@6 ~@2 [d4,bb4]@6 ~@2", E: "[eb4,g4]@6 ~@2 [eb4,g4]@6 ~@2 [eb4,g4]@7 ~",
  F: "[eb4,g4]@5 ~@3 d4@5 ~@3 [d4,ab4]@6 ~@2, ~@8 ab4 ~@15", G: "[d4,bb4]@3 ~ [d4,bb4]@3 ~ [eb4,g4]@3 ~",
  H: "[[eb4,g4]@6 ~@2 [bb3,eb4,g4]@4 [bb3,eb4,g4]@4 [bb3,eb4,g4]@2 ~@2 [a3,eb4,g4]@8 [a3,eb4,g4]@4 [a3,eb4,g4]@2 ~@2 [bb3,eb4,g4]@7 ~ [bb3,eb4,g4]@4]/2", // Eb Am7b5 Eb
  I: "[bb3,eb4,g4]@4 [bb3,eb4,g4]@4 [bb3,eb4,g4]@8 [a3,eb4,g4]@7 ~", J: "[ab3,c4,eb4,g4]",
  K: "[eb4,g4]@2 ~@3 f4@19, ~ [ab3,c4,d4]@5", // Eb Dm7b5
  L: "[~@13 g4@31 [bb3,d4,f4]@33 ~@3 [bb3,d4,f4]@25 ~@4 f4@18 ~ [bb3,c4,e4]@13 ~@3, ~@12 [ab3,c4,eb4]@31 ~@65 [bb3,d4]@18 ~@18]/6", // Bb C7 Ab Bb
  M: "[c4,eb4,g4]@3 ~ [c4,eb4,g4]@3 ~ [c4,eb4,g4] ~@5 [c4,eb4,g4]@2 [c4,eb4,g4]@3 ~ [c4,eb4,g4]@3 ~", // Cm
  N: "[c4,eb4,g4] ~@7 [ab3,d4,f4]@3 ~ [ab3,d4,f4]@3 ~ [ab3,d4,f4] ~@5 [ab3,d4,f4]@2", // Cm Ddim
  O: "[ab3,d4,f4]@3 ~ [ab3,d4,f4]@3 ~ [ab3,d4,f4] ~@3 [g3,d4,f4]@3 ~ [g3,d4,f4]@3 ~ [g3,d4,f4]@3 ~", // Ddim G7
  P: "[bb3,d4,f4] ~@5 [g3,d4,f4]@2 [g3,d4,f4]@3 ~ [g3,d4,f4]@3 ~ [bb3,d4,f4] ~@3 [g3,d4,f4]@2 ~@2", // Bb G7 Bb G7
  Q: "~@2 [g3,d4,f4] ~@3 [g3,d4,f4]@2 [g3,bb3,c4,e4] ~@3", R: "[g3,bb3,e4]@2 ~@6 [bb4,g5] ~@15",
  S: "~@8 [bb3,eb4,g4]@7 ~ [bb3,eb4,g4] ~@3 [a3,eb4,g4]@4", // Eb Am7b5
  T: "~@4 [a3,eb4,g4] ~@3 [a3,eb4,g4] ~@3 [bb3,eb4,g4]@7 ~ [a3,eb4,g4] ~@3", // Am7b5 Eb Am7b5
  U: "[a3,eb4,g4] ~@3 [a3,eb4,f4] ~@3 [a3,eb4,g4]@2 ~@6 [a3,eb4,f4]@2 ~@6", V: "[c4,eb4]@5 ~",
  W: "[[c4,eb4] ~@3 [ab3,d4]@33 ~@3 [ab3,c4,eb4]@8]/2", // Cm Abdim Ab
  X: "[ab3,c4,eb4] ~@3 [ab3,c4,eb4]@4 [ab3,c4,eb4]@7 ~ [ab3,c4,eb4] ~@3 [ab3,c4,eb4]@4", // Ab
  Y: "[ab3,c4,eb4]@7 ~ [ab3,c4,eb4] ~@3 [ab3,c4,eb4]@4 [ab3,c4,eb4]@7 ~", // Ab
  Z: "[ab3,c4,eb4] ~@3 [ab3,c4,eb4]@4 [a3,c4,eb4]@8 [c4,eb4] ~@3 [a3,c4,eb4]@4", // Ab Adim Cm Adim
  AA: "[a3,c4,eb4]@8 [a3,c4,eb4] ~@3 [a3,c4,eb4]@4 [a3,c4,eb4]@8", // Adim
  AB: "[c4,eb4] ~@3 [a3,c4,eb4]@4 [a3,c4,eb4]@7 ~ [a3,c4,eb4] ~@3 [a3,c4,eb4]@4", // Cm Adim
  AC: "[bb3,eb4,g4]@7 ~ [eb4,g4] ~@3 [bb3,eb4,g4]@4 [bb3,eb4,g4]@8", // Eb
  AD: "[bb3,eb4,g4] ~@3 [bb3,eb4,g4]@4 [b3,d4,g4]@7 ~ [b3,d4,g4] ~@3 [b3,d4,g4]@4", // Eb G
  AE: "[b3,d4,g4]@8 [b3,d4,g4] ~@3 [b3,d4,g4]@4 [c4,eb4,g4]@7 ~", // G Cm
  AF: "[c4,eb4,g4] ~@3 [c4,eb4,g4]@4 [c4,eb4,g4]@8 [c4,eb4,g4] ~@3 [c4,eb4,g4]@4", // Cm
  AG: "[bb3,eb4,g4]@7 ~ [eb4,g4] ~@3 [bb3,eb4,g4]@4 [bb3,db4,g4]@8", // Eb Gdim
  AH: "[bb3,db4,g4] ~@3 [bb3,db4,g4]@4 [ab3,c4,eb4]@7 ~ [ab3,c4,eb4] ~@3 [ab3,c4,eb4]@4", // Gdim Ab
  AI: "[ab3,c4,eb4]@8 [ab3,c4,eb4] ~@3 [ab3,c4,eb4]@4 [ab3,c4,eb4]@7 ~", // Ab
  AJ: "[ab3,c4,eb4] ~@3 [ab3,c4,eb4]@4 [ab3,c4,eb4]@8 [ab3,c4,eb4] ~@3 [ab3,c4,eb4]@4", // Ab
  AK: "[a3,c4,eb4]@7 ~ [c4,eb4] ~@3 [a3,c4,eb4]@4 [a3,c4,eb4]@8", // Adim Cm Adim
  AL: "[a3,c4,eb4] ~@3 [a3,c4,eb4]@4 [a3,c4,eb4]@7 ~ [c4,eb4] ~@3 [a3,c4,eb4]@4", // Adim Cm Adim
  AM: "[a3,c4,eb4]@8 [a3,c4,eb4] ~@3 [a3,c4,eb4]@4 [bb3,eb4,g4]@4 [bb3,eb4,g4]@4", // Adim Eb
  AN: "[eb4,g4] ~@3 [bb3,eb4,g4]@4 [bb3,eb4,g4]@4 [bb3,eb4,g4]@4 [bb3,eb4,g4] ~@3 [bb3,eb4,g4]@4", // Eb
  AO: "[b3,d4,g4]@4 [b3,d4,g4]@4 [b3,d4,g4] ~@3 [b3,d4,g4]@4 [b3,d4,g4]@4 [b3,d4,g4]@4", // G
  AP: "[b3,d4,g4] ~@3 [b3,d4,g4]@4 ~@16", AQ: "[c5,eb5,g5] ~@15 [c5,eb5,g5] ~@7", AR: "~@8 [bb4,d5,f5] ~@15",
  AS: "[bb4,d5,f5] ~@15 [g4,c5,eb5] ~@7", AT: "~@8 [g4,c5,eb5] ~@15",
  AU: "[b4,eb5,gb5]@2 [b4,eb5,gb5]!2 [b4,eb5,gb5]@2 [b4,eb5,gb5]!2 [b4,eb5,gb5]@2 [b4,eb5,gb5]!2", // B
  AV: "[b4,eb5,gb5]@4 [b4,eb5,gb5]@2 [b4,eb5,gb5] ~@17", // B
})).s("gm_acoustic_guitar_steel").gain(0.13)

// other · electric guitar jazz
const electric_guitar_jazz = note(`<
  A@2 B@2 C D E F@2 G H I ~@19 J K ~@3 L@2 ~@5 M N O P Q@2 R S T ~@4 U@3 V@3 W X@3 Y Z@3 AA@2 AB@2 AC AD@2 ~@18 AE AF AG
  AH AI AJ AK AL AM AN AO
>`.pickRestart({
  A: "[~@19 b3@4 gb3@4 ~ a3@4 b3@4 gb3@4 a3@8]/2", B: "[~ b3@4 a3@4 gb3@9 b3@4 gb3@4 ~ b3@4 c4@8 bb3@4 ~ c4@4]/2",
  C: "eb4@4 bb3@4 c4@4 [d4,f4]@7 ~@5, ~@3 bb3 ~@2", D: "bb3!6", E: "~@2 eb3 f3 g3@2 eb3@2 d3@2 f3@2",
  F: "[d3@4 f3@4 d3@4 f3@4 d3@4 eb3@8 c3@2 d3@2 eb3@2 d3@2 c3@3 ~@5 eb3@2 f3@2]/2",
  G: "g3@4 eb3@4 d3@4 f3@4 d3@4 f3@3 ~", H: "d3 f3 d3 eb3@2 ~", I: "g3 f3@3 ~@8", J: "~ [f3,f4]@5",
  K: "[e3,e4]@11 ~@13", L: "[~@12 [f3,f4]@20 [e3,e4]@11 ~@5]/2", M: "~@8 [c4,eb4]@6 ~@2 [c4,eb4]@5 ~@3",
  N: "[ab3,eb4]@5 ~@3 [ab3,eb4]@6 ~@2 [bb3,d4]@6 ~@2", O: "[bb3,d4]@2 ~@2 [c4,eb4]@11 ~ [c4,eb4]@6 ~@2",
  P: "[c4,eb4]@6 ~@2 [c4,eb4]@5 ~@3 [ab3,eb4]@5 ~@3", // Cm Ab5
  Q: "[[ab3,eb4]@6 ~@2 [bb3,d4]@6 ~@2 [bb3,d4]@2 ~@2 [c4,eb4]@11 ~ [c4,eb4]@6 ~@2 [c4,eb4]@5 ~@3]/2", // Ab5 Bb Cm
  R: "[c4,eb4]@5 ~@3 [ab3,eb4]@5 ~@3 [ab3,eb4]@6 ~@2", S: "[bb3,d4]@6 ~@2 [bb3,d4]@2 ~@2 [c4,eb4]@11 ~",
  T: "[c4,eb4] ~@3", U: "[~@4 [eb3,eb4]@11 ~ [eb3,eb4] [d3,d4]]/3",
  V: "[[c3,c4]@4 [d3,d4]@4 [eb3,eb4]@31 ~ [eb3,eb4]@15 ~ [eb3,eb4]@8 [f3,f4]@7 ~]/3", W: "[g3,g4]",
  X: "[~@4 [g3,g4] ~@3 [g3,g4]@22 ~@2 [g3,g4]@2 ~@2 [g3,g4]@2 ~@2 [g3,g4]@22 ~@2 [g3,g4]@5 ~@3]/3", // G
  Y: "[g3,g4]@14 ~@2 [g3,g4]@7 ~", Z: "[[f3,f4]@7 ~ [eb3,eb4]@45 ~@3 [eb3,eb4]@4 [d3,d4]@4 [c3,c4]@4 [d3,d4]@3 ~]/3",
  AA: "[[eb3,eb4]@11 ~]/2", AB: "[[eb3,eb4]@7 ~ [f3,f4]@7 ~ [g3,g4]@25 ~@3 [g3,g4] ~@3]/2", AC: "[g3,g4]@7 ~",
  AD: "[[g3,g4]@7 ~ [g3,g4]@32 ~@8]/2", // G
  AE: "~@8 [db5,db6]@2 ~@2 [db5,db6] ~ [db5,db6] ~ [db5,db6]@2 ~@2 [db5,db6]@2 [db5,db6]@2", // Db
  AF: "~@2 [db5,db6] ~ [db5,db6]@3 ~ [db5,db6]@3 ~ [db5,db6]@2 ~@2 [db5,db6] ~ [db5,db6] ~ [db5,db6] ~@3", // Db
  AG: "[db5,db6]@3 ~ [db5,db6] ~ [db5,db6]@2 ~@2 [db5,db6]@2 [db5,db6]@2 ~@2 [db5,db6] ~ [db5,db6] ~ [db5,db6]@2 [db5,db6] ~", // Db
  AH: "[db5,db6]@3 ~ [db5,db6] ~ [db5,db6]@2 ~@2 [db5,db6] ~ [db5,db6]@2 ~@2 [db5,db6]@2 ~@2 [db5,db6]@2 [db5,db6]@2", // Db
  AI: "[db5,db6]@2 [db5,db6] ~ [db5,db6]@2 [db5,db6] ~ [db5,db6]@3 ~ [db5,db6] ~ [db5,db6]@2 ~@2 [db5,db6] ~ [db5,db6]@4", // Db
  AJ: "~@4 [db5,db6] ~ [db5,db6] ~ [db5,db6]@2 [db5,db6] ~ [db5,db6]@2 [db5,db6] ~ [db5,db6]@2 ~@2 [db5,db6] ~ [db5,db6] ~", // Db
  AK: "[db5,db6]@2 ~@2 [db5,db6]@2 [db5,db6]@3 ~ [db5,db6] ~ [db5,db6]@3 ~ [db5,db6]@3 ~ [db5,db6]@2 ~@2", // Db
  AL: "[db5,db6] ~ [db5,db6] ~ [db5,db6] ~@3 [db5,db6]@3 ~ [db5,db6] ~ [db5,db6]@2 ~@2 [db5,db6]@2 [db5,db6]@2 ~@2", // Db
  AM: "[db5,db6] ~ [db5,db6] ~ [db5,db6]@2 [db5,db6] ~ [db5,db6]@3 ~ [db5,db6] ~ [db5,db6]@2 ~@2 [db5,db6] ~ [db5,db6]@2 ~@2", // Db
  AN: "[db5,db6]@2 ~@2 [db5,db6]@2 [db5,db6]@2 [db5,db6]@2 [db5,db6] ~ [db5,db6]@2 [db5,db6] ~ eb5 ~@3 eb5 ~@3", // Db
  AO: "eb5 ~@3 eb5 ~ b4@3 ~ db5@2 [b4,eb5]@2 ~@10", // B
})).s("gm_electric_guitar_jazz").gain(0.19)

// chords · harpsichord
const harpsichord = note(`<
  ~@16 A@3 B@3 C D@5 ~@30 E F@3 G H@3 I J@3 K@2 L@2 M N O P Q R S T U V W X Y Z@2 ~@5 AA AB@2 AC AD AE@2 AF AG AH@2 AI
>`.pickRestart({
  A: "[~@12 [ab4,c5,eb5,g5]@25 ~@3 [ab4,c5,eb5,g5] ~@3 [ab4,bb4,d5,f5]@27 ~]/3", // Abmaj7 Bb7
  B: "[d5@4 [g4,bb4,d5,f5]@26 ~@2 d5@4 [g4,bb4,d5,f5]@15 ~ [g4,bb4,c5,e5]@19 ~]/3", C: "[ab4,c5,eb5]@7 ~, g5@11 ~@13",
  D: "[[ab4,c5,eb5,g5] ~@3 [ab4,bb4,d5,f5]@30 ~@2 [g4,bb4,d5,f5]@28 d5@4 [g4,bb4,d5,f5]@15 ~ [g4,bb4,c5,e5]@19 ~@17]/5", // Abmaj7 Bb7 Gm7 C7
  E: "~@4 [eb4,eb5] [d4,d5]", // Eb D
// … 194 more lines

More by The Supremes