Strudelify
Just a Gigolo cover art

1990 · Masterpieces of Sarah Vaughan

Just a Gigolo

Vaughan Sarah

KeyA♭ majorTempo140 bpm
0:00/0:00
// Just a Gigolo — Vaughan Sarah
// 140 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 130 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/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, A@4 for four bars: edit a riff to change every repeat.

// chords · brass section
const brass_section = note(`<
  ~@13 A B C D E F G H I@2 J@2 K@3 L M N O P Q R S ~ T@2 U V W X Y Z T@2 U ~ AA@2 AB AC AD@2 AE@2 AF AG AH ~ T@2 U AI AJ
  AK AL AM AN AO AP AQ AR AS AN AT AU AV AW AQ AX AY AZ BA BB BC BD BE BF BG BH ~ BI BJ U BK BL BM BN BO BI BP BQ BR BS
  BT BU@2 BV@2 BW@2 BX BY BZ CA CB@2 CC@2 CD CE CF CG CH CI CJ CK@2
>`.pickRestart({
  A: "~@5 [ab3,c4,eb4]@7", B: "gb4@12 f4@5 ~ gb4@5 ~, [bb3,db4]@23 ~", C: "[a3,c4,eb4,f4]@12 [c4,eb4,f4,a4]@11 ~",
  D: "bb4@12 c5@11 ~, f4@11 ~", E: "bb4@11 ~@11 [db5,eb5]@2, [f4,db5]@23 ~, ~ ab4",
  F: "[eb4,ab4,c5]@11 ~ [a4,c5,eb5]@12", G: "[f4,bb4,db5]@11 ~ [g4,bb4,eb5]@12",
  H: "[eb4,ab4,c5]@10 [eb4,eb5]@8 [f4,f5]@3 ~@3", I: "[~@16 [ab3,ab4]@2 ~@4 [ab3,c4,eb4,g4]@25 ~]/2",
  J: "[ab3@12 [a3,eb4]@11 ~ [ab3,bb3,db4]@16 eb4@3 ~@5, f4@5 ~, c4@23 ~@25]/2", // Adim Bbm7
  K: "[~@16 [g3,g4]@2 ~@4 [ab3,db4,f4,ab4]@17 ~ [ab3,db4,f4,ab4]@2 ~@4 [g3,bb3,eb4,g4]@25 ~]/3", // G Db Eb
  L: "[ab3,eb4,ab4]@16 [f3,f4]@2 [ab3,ab4]@3 ~@3", M: "[ab3,c4,ab4,ab5], eb4@11 ~", N: "[gb3,bb3,db4,gb4,gb5]",
  O: "[c4,f4,f5]@12 [eb4,eb5]@4 ~@2 [c4,c5]@3 ~@3, [f3,a3]", P: "[db4,db5] [f3,eb4,eb5], bb3@23 ~",
  Q: "[bb3,f4,f5] [bb3,e4,e5], db4", R: "[ab3,c4,eb4,eb5]@13 ~@3 [a3,c4,eb4,gb4,a4,c5,eb5,gb5]@7 ~",
  S: "[bb3,db4,f4,bb4,db5,f5] ~@7", // Bbm
  T: "[[eb4,ab4,c5,eb5]@29 ~ [d4,g4,d5]@6 [db4,gb4,bb4,db5]@5 ~ [c4,f4,a4,c5]@5 ~, ~@15 b4@2 ~@7]/2", // Ab G5 Gb F
  U: "[c4,f4,a4,c5]@21 ~ [c4,f4]@2", V: "~@5 [d4,d5]@7", W: "[f4,bb4,db5]@3 ~@13 [db4,f4,ab4]@7 ~",
  X: "[db4,f4,ab4]@3 ~@13 [db4,f4,ab4]@7 ~", Y: "[ab3,ab4]@3 ~@7 [c4,eb4,ab4]@8 f4@5 ~",
  Z: "[ab3,c4,eb4,ab4]@3 ~@7 [ab3,ab4]@12 ~@2", AA: "[~@10 [ab3,ab4]@29 ~ [c4,c5]@8, [f3,f4]@13 ~@3]/2",
  AB: "~@12 bb4@11 ~, [db4,f4,ab4]@23 ~", AC: "[eb4,g4,bb4,c5]@9 ~ [g4,bb4,c5,eb5]@8 [g4,bb4,c5]@3 ~@3",
  AD: "ab3@3 ~@7 [c4,eb4,ab4]@8 f4@3 ~@3", AE: "ab3@3 ~@7 [db4,f4,ab4]@8 f4@3 ~@3",
  AF: "[a3,c4]@3 ~@7 g4@7 ~ f4@4 ~@2, ~@5 [a3,c4]@6 ~", AG: "[a3,c4]@4 ~@6 g4@7 ~ f4@2 ~@4, ~@5 [a3,c4]@5 ~@2",
  AH: "[d4,f4,ab4,c5] ~@5", AI: "~@10 [d3,d4,d5]@13 ~",
  AJ: "[db4,f4,ab4]@3 ~@7 [ab3,ab4]@8 [f3,f4]@4 ~@2, ~@10 bb3 ~@13", AK: "~@5 [ab3,ab4]@4 [f3,f4]@2 ~",
  AL: "[c4,eb4,ab4]@3 ~@7 [ab3,ab4]@8 [f3,f4]@4 ~@2", AM: "[ab3,ab4]@4 ~@2 [f3,f4]@4 ~@2 [eb3,eb4]@5 ~ [f3,f4]@4 ~@2",
  AN: "~@4 [c4,eb4,f4,ab4] ~@7 [c4,eb4,f4,ab4]@4 [c4,eb4,f4,ab4] ~@7", AO: "[c4,eb4,f4,ab4]@2 ~@8 [c4,eb4,f4,ab4]@13 ~",
  AP: "~@4 [c4,eb4,f4,a4] ~@7 [c4,eb4,f4,a4]@4 [c4,eb4,f4,a4] ~@7", // F7
  AQ: "[c4,a4]@2 ~@8 [c4,eb4,f4,a4]@13 ~, [eb4,f4] ~@23", // F F7 Ebsus2
  AR: "~@4 [db4,ab4]@2 ~@6 [bb3,db4,f4]@3 ~ [bb3,db4,f4]@2 ~@6, ~@4 [bb3,f4] ~@7 ab4@6 ~@6", // Db5 Bbm Bb5
  AS: "[db4,eb4]@2 ~@8 [bb3,db4,eb4,g4]@13 ~, [bb3,g4] ~@23", AT: "[c4,eb4,ab4]@2 ~@8 [ab3,ab4]@13 ~, f4 ~@23",
  AU: "~@3 [c4,eb4,ab4] ~@2 [c4,eb4,f4,ab4]@2 [c4,ab4] ~@3, ~@6 f4 ~@9 [eb4,f4] ~@7", // Ab Fm7 Fm Ebsus2
  AV: "[c4,eb4,ab4]@2 ~@8 [c4,eb4,f4,ab4]@13 ~, f4 ~@23", // Ab Fm7
  AW: "~@6 [c4,eb4,a4]@2 ~@4 [c4,eb4,f4,a4]@4 [c4,f4,a4] ~@7, ~@6 f4 ~@9 eb4@2 ~@6", // Adim F7 F
  AX: "~@6 [bb3,d4,f4]@2 ~@4 [bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 ~@6", // Bb
  AY: "[bb3,d4,f4,ab4,bb4]@3 ~@7 [bb3,d4,f4,ab4,bb4]@13 ~", // Bb7
  AZ: "[f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~", // Bbm7
  BA: "[eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4] ~, ~@11 [db5,eb5]", // Eb7 Eb Dbsus2
  BB: "[f4,ab4,c5,eb5,f5]@3 ~@3 [f4,ab4,c5,eb5,f5]@3 ~@3 [f4,ab4,c5,eb5,f5]@5 ~@5 [f4,ab4,c5,eb5,f5]@2", // Fm7
  BC: "~@4 [f4,ab4,c5,eb5,f5]@3 ~@3 [f4,ab4,c5,eb5,f5] ~ [f4,ab4,c5,eb5,f5]@3 ~ [f4,ab4,c5,f5] ~ [f4,ab4,c5,eb5,f5]@3 ~@3, ~@8 eb5 ~@3", // Fm7 Fm Fm7
  BD: "[f4,a4,c5,eb5,f5]@2 ~@4 [f4,a4,c5,eb5,f5]@3 ~@3 [f4,a4,c5,eb5,f5]@6 ~@4 [f4,c5,eb5,f5]@2, ~@22 a4 ~", // F7
  BE: "~@4 [f4,a4,c5,eb5,f5]@2 ~@4 [f4,a4,c5,eb5,f5] ~ [f4,a4,c5,eb5,f5]@3 ~ [f4,a4,c5,eb5,f5] ~ [f4,a4,c5,eb5,f5]@3 ~@3", // F7
  BF: "[f4,ab4,bb4,db5,f5]@3 ~@3 [f4,ab4,bb4,db5,f5]@3 ~@3 [f4,ab4,bb4,db5,f5]@7 ~@3 [f4,db5,f5]@2, ~@22 [ab4,bb4] ~", // Bbm7 Db Absus2
  BG: "~@4 [f4,ab4,bb4,db5,f5]@2 ~@4 [f4,ab4,bb4,db5,f5] ~ [f4,ab4,bb4,db5,f5]@3 ~ [f4,ab4,bb4,db5,f5] ~ [f4,ab4,bb4,db5,f5]@3 ~ [ab4,bb4,db5,f5] ~, ~@11 f4", // Bbm7
  BH: "[eb4,ab4,c5,eb5] ~@7", // Ab
  BI: "[eb4,ab4,c5,eb5]@3 ~ [eb4,ab4,c5,eb5]@3 ~ [eb4,ab4,c5,eb5]@3 ~ [eb4,ab4,c5,eb5]@3 ~ [eb4,ab4,c5,eb5]@3 ~ [eb4,ab4,c5,eb5]@3 ~", // Ab
  BJ: "[eb4,ab4,c5,eb5]@5 ~ [d4,g4,b4,d5]@5 ~ [db4,gb4,bb4,db5]@5 ~ [c4,f4,a4]@4 ~@2", BK: "~@10 [c4,a4,c5]@13 ~",
  BL: "[db4,f4,ab4]@3 ~@7 [f3,f4]@8 [ab3,ab4]@4 ~@2", // Db F Ab
  BM: "[ab3,db4,f4,ab4]@3 ~@7 [ab3,db4,f4,ab4]@7 ~ [ab3,db4,f4]@3 ~@3, ~@18 ab4@5 ~", // Db
  BN: "[ab3,c4,eb4,ab4]@3 ~@7 [ab3,ab4]@8 [f3,f4]@4 ~@2", BO: "[ab3,ab4]@3 ~@7 [ab3,ab4]@8 [f3,f4]@3 ~@3",
  BP: "[eb4,ab4,c5,eb5]@5 ~ [d4,g4,b4,d5]@5 ~ [db4,gb4,bb4,db5]@5 ~ [c4,f4,c5]@5 ~, ~@6 a4 ~", // Ab G Gb F5
  BQ: "[c4,eb4,f4,a4,c5]@21 ~ [c4,f4]@2", BR: "~@5 [c4,c5]@4 [c4,c5]@2 ~", BS: "[db4,f4,ab4,c5] ~@3 [f3,f4]@2",
  BT: "[ab3,ab4]@3 ~@13 [f3,f4]@8", // Ab F
  BU: "[[ab3,db4,f4,ab4]@3 ~@3 [ab3,db4,f4,ab4]@3 ~@3 [ab3,db4,f4,ab4]@4 bb3@2 [ab3,ab4]@3 ~ [bb3,eb4,g4]@26, ~@16 bb4@5 ~@27]/2", // Db Ab Eb
  BV: "[ab2,ab3]@2 ~@3 [c4,eb4]@4 f4@2 ~, ~@10 ab4@7 ~@7", BW: "[ab2,ab3]@4 ~@6 [db4,f4,ab4]@8 f4@3 ~@3",
  BX: "[c3,c4]@2 ~@3 [c4,eb4,g4]@4 f4@2 ~", BY: "[c3,c4]@5 ~@5 [c4,eb4,g4]@8 f4@3 ~@3",
  BZ: "~@4 [ab3,bb3,db4,f4,ab4]@7 ~@5 [ab3,bb3,db4,f4,ab4]@7 ~", CA: "~@4 [bb3,db4,eb4,g4]@7 ~@5 [bb3,db4,eb4,g4]@7 ~",
  CB: "~@4 [c4,eb4,f4,ab4]@7 ~@5 [c4,eb4,f4,ab4]@7 ~", CC: "~@4 [c4,eb4,f4,a4]@7 ~@5 [c4,eb4,f4,a4]@7 ~",
  CD: "~ ab4, [db4,f4]", CE: "~@6 bb4@5 ~, [eb4,g4]@11 ~",
  CF: "[c4,eb4,ab4]@11 ~ [bb3,db4,gb4]@5 ~ [bb3,db4,gb4]@3 ~ [a3,c4,f4]@2", // Ab Gb F
  CG: "~@4 [a3,c4,eb4,gb4]@3 ~@3 [a3,c4,eb4,gb4]@3 ~@3 [c4,eb4]@2 [a3,c4,eb4,f4]@4 ~@2, ~@16 [a3,gb4] ~@7", // Adim Cm F7 D
  CH: "[bb3,db4,f4,ab4]@3 ~@3 [bb3,db4,f4,ab4]@3 ~@3 [bb3,db4,f4,ab4]@3 ~@3 [bb3,db4,f4,ab4]@4 ~@2", // Bbm7
  CI: "[bb3,db4,f4,ab4]@3 ~@3 [bb3,db4,f4,ab4]@4 ~@2 [bb3,db4,f4,ab4]@5 ~ [bb3,db4,f4,ab4]@5 ~", // Bbm7
  CJ: "[c4,eb4,f4,ab4]@2 ~ [ab3,ab4] [bb3,bb4] c4 [eb4,eb5]@2 db4 [ab3,ab4]@2 bb3, ~@10 c5 ~@5 db5 ~@5 bb4 ~", // Fm7 Ab Bb Eb Ab
  CK: "[[c4,c5]@4 ~@2 [d4,g4,b4]@4 [eb4,ab4,c5]@27 ~@11]/2", // C G Ab
})).s("gm_brass_section").gain(0.22)

// bass · electric bass finger
const bass = note(`<
  ~ A B A C D@2 E B@2 F G D A H I J K L B D@3 E B@2 F G D A H M N K O P ~ D Q R S T G D U D Q V W X@2 T Y D Z AA AB AC
  AD AE ~ D AF AC AG AH AI D U D Z AJ AD T G D U D Z AC AK AL AM AN G D Z AC R AO AN AP AQ D AF AC AR T G D U D AF AC AD
  AS T AT Y D Z AA AU AC AD T G D AV R AW T G AX AY AZ G BA BB@2
>`.pickRestart({
  A: "ab1@6 c2@6 eb2@5 ~ c2@4 ab1 ~", B: "bb1@5 ~ bb1@5 ~ eb2@5 ~ eb2@5 ~", C: "bb1@5 ~ bb1@5 ~ eb2@5 ~ eb2@3 ~ eb2 ~",
  D: "ab1@5 ~ c2@6 eb2@5 ~ f2@4 eb2 ~", E: "ab1@5 ~ ab1@5 ~ a1@5 ~ a1@5 ~", F: "bb1@5 ~ bb1@6 eb2@6 bb1@2 c2@2 db2 ~",
  G: "eb2@5 ~ db2@6 c2@6 bb1@6", H: "gb1@6 bb1@6 db2@5 ~ bb1@4 gb1 ~", I: "f1@6 a1@5 ~ c2@6 eb2@6",
  J: "db2@5 ~ c2@6 bb1@5 ~ ab1@4 a1 ~", K: "bb1@5 ~ bb1@6 db2@5 ~ db2@6", L: "ab1@5 ~ ab1@4 g1 ~ f1@6 a1@5 ~",
  M: "f1@5 ~ a1@5 ~ c2@6 a1@4 f1 ~", N: "bb1@5 ~ bb1@5 ~ f1@5 ~ f1@5 ~", O: "ab1@4 ~@2 ab1@5 ~ f1@2 ~@2 f1@7 ~",
  P: "bb1 ~@7", Q: "ab2@6 g2@5 ~ gb2@5 ~ f2@5 ~", R: "f2@6 eb2@5 ~ c2@5 ~ a1@5 ~", S: "f1@6 a1@4 f1@5 ~ f1 ~ g1@4 f1 ~",
  T: "bb1@5 ~ db2@6 f2@6 db2@4 d2 ~", U: "ab2@6 f2@5 ~ eb2@5 ~ c2@4 eb2 ~", V: "f2@6 eb2@5 ~ c2@6 a1@4 c2@2",
  W: "f1@5 ~ g1@5 ~ ab1@5 ~ a1@6", X: "bb1@6 d2@6 f2@6 d2@4 f2 ~", Y: "eb2@5 ~ db2@6 c2@6 bb1@5 ~",
  Z: "ab2@5 ~ f2@6 eb2@6 c2@4 ab1 ~", AA: "db2@6 f2@6 ab2@6 bb2@4 ab2 ~", AB: "db2@5 ~ db2@6 ab1@6 db2@4 ab1 ~",
  AC: "f1@5 ~ a1@6 c2@5 ~ d2@4 c2 ~", AD: "f2@5 ~ eb2@6 db2@5 ~ c2@5 ~", AE: "bb1 ~@5",
  AF: "ab2@5 ~ g2@5 ~ gb2@5 ~ f2@4 c2 ~", AG: "f2@6 c2@3 ~ f1@6 c2@2 f2@3 ~ f1 ~", AH: "bb1@5 ~ ab1@5 ~ g1@6 f1@6",
  AI: "eb1@6 bb1@6 eb2@5 ~ bb1@4 eb1 ~", AJ: "f1@5 ~ a1@6 c2@6 eb2@4 c2 ~", AK: "f2@6 d2@5 ~ c2@5 ~ a1@4 f1 ~",
  AL: "bb1@5 ~ d2@6 f2@6 g2@4 f2 ~", AM: "bb2@5 ~ g2@5 ~ f2@6 d2@6", AN: "bb1@5 ~ db2@6 f2@6 db2@4 bb1 ~",
  AO: "bb1@5 ~ db2@6 f2@6 db2@6", AP: "ab1@5 ~@19", AQ: "~@16 eb1 ~@5 f1 ~", AR: "f2@6 c2@5 ~ f1@5 ~ c2@4 f2 ~",
  AS: "bb1@5 ~ db2@6 f2@6 db2@4 f2 ~", AT: "eb2@5 ~ bb1@6 eb2@6 bb1@4 db2 ~", AU: "db3@6 ab2@6 f2@6 db2@5 ~",
  AV: "ab2@5 ~ ab2@5 ~ g2@5 ~ gb2@5 ~", AW: "f1@5 ~ c2@6 f2@4 c2 ~ f1@3 ~ c2 ~",
  AX: "ab1@6 eb2@4 ab2 ~ gb1@6 db2@4 gb2 ~", AY: "f1@5 ~ c2@6 f2@6 f1@3 ~ c2 ~", AZ: "bb1@6 c2@5 ~ db2@6 d2@5 ~",
  BA: "ab1@3 ~@3 ab1@2 bb1@2 c2 ~ eb2@4 db2@2 ab1@4 bb1@2", BB: "[c2@4 ~@2 g1@3 ~ ab1@26 ~@12]/2",
})).s("gm_electric_bass_finger").gain(0.42)

// other · piano
const piano = note(`<
  ~ A B C B D@2 E F@2 G H D I J K L M N F D@3 E F@2 G H D I J O P M Q R ~ D S T U V H D W D S X Y Z@2 V AA D AB AC AD AE
  AF R ~ D AG AE AH AI AJ D W D AB AK AF V H D W D AB AE AL AM AN AO H D AB AE T AP AO AQ AR D AG AE AS V H D W D AG AE
  AF AT V AU AA D AB AC AV AE AF V H D AW T AX V H AY AZ BA H BB BC@2
>`.pickRestart({
  A: "ab2@3 c3@3 eb3@3 c3@2 ab2", B: "bb2@5 ~ bb2@5 ~ eb2@5 ~ eb2@6", C: "ab2@6 c3@6 eb3@5 ~ c3@3 ~ ab2 ~",
  D: "ab2@5 ~ c3@6 eb3@5 ~ f3@4 eb3 ~", E: "ab2@5 ~ ab2@5 ~ a2@5 ~ a2@5 ~", F: "bb2@5 ~ bb2@5 ~ eb3@5 ~ eb3@5 ~",
  G: "bb2@5 ~ bb2@6 eb3@6 bb2@2 c3@2 db3 ~", H: "eb3@5 ~ db3@6 c3@6 bb2@6", I: "ab2@6 c3@6 eb3@6 c3@4 ab2 ~",
  J: "gb2@6 bb2@6 db3@5 ~ bb2@4 gb2@2", K: "f2@5 ~ a2@5 ~ c3@6 eb3@6", L: "db3@5 ~ c3@6 bb2@5 ~ ab2@4 a2 ~",
  M: "bb2@5 ~ bb2@6 db3@5 ~ db3@6", N: "ab2@5 ~ ab2@4 g2 ~ f2@6 a2@5 ~", O: "f2@5 ~ a2@5 ~ c3@6 a2@4 f2 ~",
  P: "bb2@5 ~ bb2@5 ~ f2@5 ~ f2@5 ~", Q: "ab2@4 ~@2 ab2@5 ~ f2@2 ~@2 f2@8", R: "bb2 ~@5",
  S: "ab3@6 g3@5 ~ gb3@5 ~ f3@5 ~", T: "f3@6 eb3@5 ~ c3@5 ~ a2@5 ~", U: "f2@6 a2@4 f2@5 ~ f2 ~ g2@4 f2 ~",
  V: "bb2@5 ~ db3@6 f3@6 db3@4 d3 ~", W: "ab3@5 ~ f3@5 ~ eb3@6 c3@4 eb3 ~", X: "f3@6 eb3@5 ~ c3@6 a2@4 c3@2",
  Y: "f2@5 ~ g2@5 ~ ab2@5 ~ a2@6", Z: "bb2@6 d3@6 f3@6 d3@4 f3 ~", AA: "eb3@5 ~ db3@6 c3@6 bb2@5 ~",
  AB: "ab3@5 ~ f3@6 eb3@6 c3@4 ab2 ~", AC: "db3@6 f3@6 ab3@6 bb3@4 ab3 ~", AD: "db3@5 ~ db3@6 ab2@6 db3@4 ab2 ~",
  AE: "f2@5 ~ a2@6 c3@5 ~ d3@4 c3 ~", AF: "f3@5 ~ eb3@6 db3@5 ~ c3@5 ~", AG: "ab3@5 ~ g3@5 ~ gb3@5 ~ f3@4 c3 ~",
  AH: "f3@6 c3@3 ~ f2@6 c3@2 f3@3 ~ f2 ~", AI: "bb2@5 ~ ab2@5 ~ g2@6 f2@5 ~", AJ: "eb2@6 bb2@6 eb3@5 ~ bb2@4 eb2 ~",
  AK: "f2@5 ~ a2@6 c3@6 eb3@4 c3 ~", AL: "f3@6 d3@5 ~ c3@5 ~ a2@4 f2 ~", AM: "bb2@5 ~ d3@6 f3@6 g3@4 f3 ~",
  AN: "bb3@6 g3@5 ~ f3@6 d3@6", AO: "bb2@5 ~ db3@6 f3@6 db3@4 bb2 ~", AP: "bb2@5 ~ db3@6 f3@6 db3@6", AQ: "ab2@5 ~@19",
  AR: "~@16 eb2 ~@5 f2 ~", AS: "f3@6 c3@5 ~ f2@5 ~ c3@4 f3 ~", AT: "bb2@5 ~ db3@6 f3@6 db3@4 f3 ~",
  AU: "eb3@5 ~ bb2@6 eb3@6 bb2@4 db3@2", AV: "db4@6 ab3@6 f3@6 db3@5 ~", AW: "ab3@5 ~ ab3@5 ~ g3@5 ~ gb3@5 ~",
  AX: "f2@5 ~ c3@6 f3@4 c3 ~ f2@3 ~ c3 ~", AY: "ab2@6 eb3@4 ab3 ~ gb2@6 db3@4 gb3@2",
  AZ: "f2@5 ~ c3@6 f3@6 f2@3 ~ c3 ~", BA: "bb2@6 c3@5 ~ db3@6 d3@5 ~",
  BB: "ab2@3 ~@3 ab2@2 bb2@2 c3 ~ eb3@4 db3@2 ab2@4 bb2@2", BC: "[c3@4 ~@2 g2@3 ~ ab2@26 ~@12]/2",
})).s("gm_piano").gain(0.21).pan(0.1)

// chords · piano
const piano_2 = note(`<
  ~ A B A B C D E B F@2 G H C I J F K L B A C M E B F@2 G H C I N F O P Q ~ C R S@2 F@2 T A C R S@2 U@2 F V H W X@2 Y Z
  AA ~ AB AC S@2 F@2 C@2 A@2 N@2 F AD A@4 N@2 U AE ~@2 A@2 N@2 F AF AG ~ AB AC S@2 F AH C@2 AB AC S@2 F@2 AH@2 AI@2 X@2
  Y@2 AJ AH AI@2 Y@2 AK AL AM AN AJ@2 AO AP@2
>`.pickRestart({
  A: "~@4 [ab3,c4,eb4,f4] ~@5 [ab3,c4,eb4,f4] ~@5 [ab3,c4,eb4,f4] ~@5 [ab3,c4,eb4,f4] ~", // Fm7
  B: "~@4 [ab3,bb3,db4] ~@5 [ab3,bb3,db4,f4] ~@5 [g3,bb3,eb4] ~@5 [g3,bb3,eb4] ~, ~@2 f4 ~@9", // Bbm7 Eb
  C: "~@4 [ab3,c4,eb4,ab4] ~@5 [ab3,c4,eb4,ab4] ~@5 [ab3,c4,eb4,ab4] ~@5 [ab3,c4,eb4,ab4] ~", // Ab
  D: "~@4 [c4,eb4]@2 ~@4 [c4,eb4]@2 ~@4 [c4,eb4]@2 ~@4 [ab3,c4,eb4,g4] ~, ~@4 [ab3,g4] ~@5 [ab3,g4] ~@5 [ab3,g4] ~@7", // Cm Abmaj7
  E: "~@4 [ab3,c4,eb4,f4] ~@5 [ab3,c4,f4] ~@5 [a3,c4,eb4,f4] ~@5 [a3,c4,eb4,f4] ~, ~@5 eb4 ~@6", // Fm7 Fm F7
  F: "~@4 [ab3,bb3,db4,f4] ~@5 [ab3,bb3,db4,f4] ~@5 [ab3,bb3,db4,f4] ~@5 [ab3,bb3,db4,f4] ~", // Bbm7
  G: "~@4 [bb3,g4] ~@5 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~, ~@2 eb4 ~@9", // Eb
  H: "~@4 [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~", // Ab
  I: "~@4 [db4,gb4]@2 ~@4 [gb3,bb3,db4] ~@5 [gb3,bb3,db4] ~@5 [gb3,bb3,db4,gb4] ~, ~@4 [gb3,bb3] ~@5 gb4@2 ~@4 gb4@2 ~@6", // Gb5 Gb
  J: "~@4 [f3,a3,c4,eb4] ~@5 [f3,a3,c4] ~@5 [f3,a3,c4] ~@5 [f3,a3,c4,eb4] ~, ~@5 eb4 ~@2 eb4 ~@3", // F7 F F7
  K: "~@4 [ab3,bb3,db4] ~@5 [ab3,bb3,db4,f4] ~@5 [ab3,db4,e4] ~@5 [ab3,db4,e4] ~, ~@2 f4 ~@9", // Bbm7 Dbm
  L: "~@4 [ab3,c4,eb4] ~@5 eb4@2 c4 ~@3 [a3,c4,eb4,f4] ~@5 [a3,c4,f4] ~, ~@10 ab3 ~@11 eb4@2", // Ab F7 F
  M: "~@4 [ab3,c4,eb4,g4] ~@5 [ab3,c4,g4] ~@5 [ab3,c4,g4] ~@5 [ab3,c4,g4] ~, ~@5 eb4 ~@2 eb4 ~@2 eb4", // Abmaj7
  N: "~@4 [a3,c4,eb4,f4] ~@5 [a3,c4,eb4,f4] ~@5 [a3,c4,eb4,f4] ~@5 [a3,c4,eb4,f4] ~", // F7
  O: "~@4 [bb3,db4,f4] ~@5 [bb3,f4] ~@5 [bb3,db4,e4] ~@5 [bb3,db4,e4] ~, ~@5 db4 ~@6", // Bbm Bb5 Bbdim
  P: "~@4 [ab3,c4,eb4] ~@5 [ab3,c4] ~@5 [a3,c4,eb4,gb4]@6 ~@2, ~@5 eb4 ~@6", Q: "[ab3,bb3,db4,f4] ~@11",
  R: "~@4 [ab3,c4,eb4,ab4] ~@5 [g3,b3,d4,g4] ~@5 [gb3,bb3,db4,gb4] ~@5 [f3,a3,c4,f4] ~", // Ab G Gb F
  S: "~@4 [f3,a3,c4,eb4,f4] ~@5 [f3,a3,c4,eb4,f4] ~@5 [f3,a3,c4,eb4,f4] ~@5 [f3,a3,c4,eb4,f4] ~", // F7
  T: "~@4 [ab3,c4,f4] ~@5 [ab3,c4,eb4,f4] ~@5 [ab3,c4,eb4,f4] ~@5 [ab3,c4,eb4,f4] ~, ~@2 eb4 ~@9", // Fm Fm7
  U: "~@4 [ab3,bb3,d4,f4] ~@5 [ab3,bb3,d4,f4] ~@5 [ab3,bb3,d4,f4] ~@5 [ab3,bb3,d4,f4] ~", // Bb7
  V: "~@4 [bb3,db4,eb4,g4] ~@5 [bb3,db4,eb4,g4] ~@5 [bb3,db4,eb4,g4] ~@3 eb4 ~ [bb3,db4,eb4,g4] ~", // Eb7
  W: "~@4 [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~@5 [c4,eb4,gb4,ab4] ~", // Ab Ab7
  X: "~@4 [db4,f4,ab4] ~@5 [db4,f4,ab4] ~@5 [db4,f4,ab4] ~@5 [db4,f4,ab4] ~", // Db
  Y: "~@4 [c4,eb4,f4,a4] ~@5 [c4,eb4,f4,a4] ~@5 [c4,eb4,f4,a4] ~@5 [c4,eb4,f4,a4] ~", // F7
  Z: "~@4 [c4,eb4,f4,a4] ~@5 [c4,eb4,f4,a4] ~@5 [c4,eb4,f4,a4] ~@5 [eb4,f4,a4] ~", AA: "[d4,f4,ab4,c5] ~@7",
  AB: "~@4 [ab3,c4,eb4,f4,ab4] ~@5 [ab3,c4,eb4,f4,ab4] ~@5 [ab3,c4,eb4,f4,ab4] ~@5 [ab3,c4,eb4,f4,ab4] ~", // Fm7
  AC: "~@4 [ab3,c4,eb4,f4,ab4] ~@5 [g3,b3,d4,e4,g4] ~@5 [gb3,bb3,db4,eb4,gb4] ~@5 [f3,a3,c4,eb4,f4] ~", // Fm7 Em7 Ebm7 F7
  AD: "~@4 [g3,bb3,db4,eb4] ~@5 [g3,bb3,db4,eb4] ~@5 [g3,bb3,db4,eb4] ~@5 [g3,bb3,eb4] ~, ~@11 db4", // Eb7 Eb
  AE: "~@4 [ab3,bb3,d4,f4] ~@5 [ab3,bb3,d4,f4] ~@5 [ab3,bb3,d4,f4] ~@5 [ab3,bb3,d4] ~", // Bb7
  AF: "~@4 [ab3,bb3,db4,f4] ~@5 [ab3,bb3,db4,f4] ~@5 [ab3,bb3,db4,f4] ~@5 [ab3,db4] ~", AG: "[c4,eb4,ab4] ~@7",
  AH: "~@4 [bb3,db4,eb4,g4] ~@5 [bb3,db4,eb4,g4] ~@5 [bb3,db4,eb4,g4] ~@5 [bb3,db4,eb4,g4] ~", // Eb7
  AI: "~@4 [c4,eb4,f4,ab4] ~@5 [c4,eb4,f4,ab4] ~@5 [c4,eb4,f4,ab4] ~@5 [c4,eb4,f4,ab4] ~", // Fm7
  AJ: "~@4 [bb3,db4,f4,ab4] ~@5 [bb3,db4,f4] ~@5 [bb3,db4,f4,ab4] ~@5 [bb3,db4,f4,ab4] ~, ~@5 ab4 ~@6", // Bbm7 Bbm Bbm7
  AK: "~@4 [db4,f4,bb4] ~@5 [db4,f4,ab4,bb4] ~@5 [db4,f4,ab4,bb4] ~@5 [db4,f4,ab4,bb4] ~, ~@2 ab4 ~@9", // Bbm Bbm7
  AL: "~@4 [db4,eb4,g4,bb4] ~@5 [db4,eb4,g4] ~@5 [db4,eb4,g4,bb4] ~@5 [db4,eb4,g4,bb4] ~, ~@5 bb4 ~@6", // Eb7
  AM: "~@4 [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~@5 [bb3,db4,gb4] ~@5 [bb3,db4,gb4] ~", // Ab Gb
  AN: "~@4 [a3,c4,eb4,g4] ~@5 [a3,c4,eb4,g4] ~@5 [a3,c4,eb4,f4] ~@5 [a3,c4,eb4,f4] ~", // Am7b5 F7
  AO: "[c4,eb4,f4,ab4]@3 ~@3 ab4 ~ bb4@2 c5 ~ eb5@3 ~ db5 ~ ab4@3 ~ bb4 ~", // Fm7
  AP: "[c5@3 ~@3 [d4,g4,b4]@4 [eb4,ab4,c5]@28 ~@10]/2", // G Ab
})).s("gm_piano").gain(0.14).pan(0.9)

// drums · kick
const kick = s("bd").struct(`<
  ~ A B A B C@2 D@2 C D C D C D C@3 D C D B A@2 B A B A@7 E C ~ A@3 F A@11 B A@6 C ~ A@3 F A B A@24 C ~ A@33 G C H ~
>`.pickRestart({
  A: "x!2", B: "x ~@5 x ~@4 x", C: "x", D: "x ~@10 x", E: "x ~ x", F: "x ~@4 x ~@5 x", G: "x ~ x!2", H: "~@3 x ~ x ~@6",
})).gain(0.4)

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

// drums · hihat
const hihat = s("hh").struct(`<
  ~ A@2 B A@3 B A@2 B A@2 B A@2 B ~@4 A@4 B A@3 B A@4 C D ~ A@4 B A@2 C B A@3 B A@9 D ~ A@16 B A@2 E A@2 ~ F G H G H G I
  D J A@34 D K ~
>`.pickRestart({
  A: "~ x ~ x", B: "x!2 ~ x", C: "~@3 x ~@4 x ~@3", D: "x", E: "~@3 x ~@4 x!2 ~@2", F: "x!4", G: "x ~@2 x ~@2 x ~@4 x",
// … 30 more lines

More by Vaughan Sarah