Strudelify

A Foggy Day

Gershwin

KeyA♭ majorTempo120 bpm
0:00/0:00
// A Foggy Day — Gershwin
// 120 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 124 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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.

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  A B@3 C@3 D@3 E F@3 G@2 H I@4 J@3 K@7 L@7 M@3 ~ N@3 O@3 P@2 Q@5 R@3 S@4 T U@2 V@5 W@2 X@3 Y@4 Z@3 AA@3 AB AC@3 AD@2 AE
  AF AG@3 AH@2 AI AJ@5 AK@2 AL@3 AM@7 AN@5 AO ~@2
>`.pickRestart({
  A: "~ c2@16 ~@2 b1@13", B: "[~@5 bb1@15 ~@2 eb2@2 ~@7 eb2@12 ab1@14 ~@4 ab1@16 ~@4 b1@15]/3",
  C: "[~@4 e2@16 ~@2 bb1@15 ~@5 bb1@17 ~ eb2@12 ~@4 eb2@2 ~ bb1@8 a1@8 ~]/3",
  D: "[ab1@15 ~@4 ab1@17 ~@3 gb1@18 ~ b1@19 bb1@13 ~@2 bb1@3 ~]/3", E: "c2@8 ~ d2@9 eb2@14",
  F: "[~@5 eb2@18 ab1@14 ~@5 ab1@16 ~@3 eb2@18 ab1@9 ~ c2@7]/3", G: "[~@2 db2@16 ~@3 db2@14 ~@5 gb1@18 db2@2 ~@4]/2",
  H: "~ db2@12 c2@18 ~", I: "[gb1@17 ~ f1@19 a1@19 bb1@18 db2@19 ~ eb2@13 ~@2 eb2@3 bb1@7 ~@3 a1@6]/4",
  J: "[~@3 ab1@17 ~ db2@19 ~ c2@19 f1@17 ~@2 bb1@13 ~@2 bb1@2]/3",
  K: "[~ c2@9 db2@9 eb2@17 ~@2 eb2@18 ~ ab1@14 ~@5 ab1@18 ~ b1@19 gb2@9 b1@9 bb1@16 ~@3 d2@15 ~@4 eb2@15 ~@3 eb2@16 ~@3 eb2@14 ~@3]/7",
  L: "[~ bb1@15 ~@4 ab1@15 ~@4 c2@16 ~@3 db2@13 ~@3 db2@2 eb2@10 f2@9 gb2@15 ~@4 gb2@17 ~@2 c2@17 ~@2 db2@16 ~@3 c2@16 ~@3 db2@16 ~@2 c2@13 ~@3]/7",
  M: "[c2@3 f1@18 ~ bb1@17 ~ eb2@14 ~@2 bb1@2 ~ ab1@18 ~@19]/3",
  N: "[~@6 ab1@15 ~@4 ab1@17 ~@2 b1@17 ~ e2@18 ~@2 bb1@13 ~]/3",
  O: "[~ bb1@2 ~ db2@9 d2@9 eb2@14 ~@5 eb2@16 ~@3 ab1@15 ~@3 ab1@15 ~@3]/3",
  P: "[~ gb1@16 ~@3 b1@16 ~@3 bb1@16 ~@3 c2@6]/2",
  Q: "[~@3 d2@8 ~@2 eb2@17 ~ f2@8 ~ g2@8 ~@2 ab2@17 ~ eb2@16 ~@3 eb2@17 ~@2 ab1@9 ~ c2@8 ~ db2@18 ~ ab2@16]/5",
  R: "[~@3 gb2@2 ~@4 db2@2 ~ bb1@9 gb1@9 ~ db2@8 ~ c2@18 ~ eb2@19 f2@18]/3",
  S: "[b1@19 bb1@18 ~ db2@19 eb2@12 ~@3 eb2@2 a1@8 ~@2 a1@9 ab1@16 ~ d2@2 db2@14 ~@2]/4",
  T: "b1@3 c2@9 ~ e2@7 c2@2 ~ f2 ~@5 f2@3", U: "[b1@9 bb1@18 ~ db2@19 eb2@17]/2",
  V: "[~ bb1 ~@6 bb1@2 a1@10 ab1@19 eb2@19 b1@17 ~@2 b1@9 a1@9 bb1@18 ~ d2@19 eb2@17 ~ eb2@9]/5",
  W: "[~ f2@9 eb2@18 ~ bb1@9 a1@9 ab1@17]/2", X: "[~@2 c2@19 db2@18 ~ f2@18 gb2@19 db2@19]/3",
  Y: "[c2@19 db2@19 c2@18 db2@18 ~ c2@10 ~@8 f1@12 ~@8 bb1@15]/4",
  Z: "[~@3 eb2@15 ~@4 ab1@17 ~@2 f1@13 ~@3 b1@3 bb1@7 ~@2 e2@8 ~ eb2@8 ~@2 a1@7 ~]/3",
  AA: "[~ ab1@13 ~@6 eb2@17 ~ b1@13 ~@6 e2@14 ~@5 bb1@14 ~@6]/3", AB: "db2@7 ~@2 eb2@7",
  AC: "[~@5 g1@16 ~@2 ab1@15 ~@4 ab1@14 ~@5 gb1@15 ~@3 b1@15 ~@2]/3",
  AD: "[~@2 bb1@15 ~@4 d2@17 ~ eb2@13 ~@4 eb2@2 f2@6]/2", AE: "~@3 g2@8 ~@2 ab2@15 ~@4", AF: "f2@8 ~ e2@8 ~ eb2@14",
  AG: "[~@6 ab1@16 ~@2 db2@14 ~@5 db2@15 ~@4 gb1@14 ~@4 gb1@15 ~]/3",
  AH: "[~@3 c2@16 ~@3 g1@16 ~@2 f1@18 ~ c2@2 ~@3]/2", AI: "~ c2@3 b1@10 bb1@18",
  AJ: "[~ f2@8 ~ e2@9 ~ eb2@18 ~ bb1@9 g1@9 ab1@17 ~@2 db2@18 ~ c2@19 f2@18 bb1@13 ~@3 bb1@2 ~ db2@9]/5",
  AK: "[d2@9 ~ eb2@17 ~ eb2@8 ~@2 a1@9 ab1@16 ~]/2", AL: "[~@2 c2@18 b1@19 eb2@19 bb1@19 d2@19]/3",
  AM: "[eb2@2 ~@5 eb2@2 f2@9 gb2@9 ~ g2@9 eb2@17 ~@2 bb1@19 ab2@18 ab1@18 ~ db2@19 ab2@7 ~@3 g2@8 ~ gb2@18 ~ db2@17 ~ c2@18 ~ db2@18]/7",
  AN: "[~ c2@18 db2@18 ~ c2@19 f2@19 bb1@18 eb2@18 ~ ab1@2 ~@5 c2@12 db2@2 ~@7 d2@7 ~@3 eb2@4 ~@5]/5",
  AO: "~ a1@6 ab1@4 ~@8 ab1@8 ~@5, ~ g1 ~@30",
})).s("gm_acoustic_bass").gain(0.37).pan(0.3)

// chords · piano · "A.PIANO 1"
const piano = note(`<
  A@3 B C D E F G H@3 I J K@3 L M N@2 O@2 P Q R S@2 T U V@3 W X Y Z@2 AA@5 AB AC AD AE AF AG@2 AH AI AJ@3 AK@2 AL@3 AM
  AN AO AP AQ AR AS AT@2 AU AV AW AX@3 AY AZ@5 BA BB@4 BC BD@2 BE@3 BF@3 BG BH@4 BI BJ@2 BK BL BM@6 BN@2 BO@2 BP BQ@5
  BR@3
>`.pickRestart({
  A: "[~ eb5@4 ~@3 eb5@2 d5@6 eb5@2 ~ g5@5 ~@2 f5@10 ~@2 [db5,ab5]@3 ~@3 c5@2 ~ db5@6 ab5@2 ~ db6 d6 ~@5 eb3@12 [c4,f4,eb5,ab5] [g3,bb3] ~@8 bb3 ~@8 [eb5,eb6] [bb3,ab5], ~ ab3@17 ~@18 bb2@10 ~@50, ~ c3@10 ~@8 [b2,ab3,d4,b4,d5]@18 db4@37 ~@22, ~@7 f5@2 ~@28 ab4@2 ~@18 eb6@17 ~ eb6@2 ~@19]/3", // Db5 Fm7 Gm Eb Bb7 Abdim
  B: "~@7 f6@2 ~@7 db6 [a3,d4,gb4,d6,gb6]@3 ~@6 d4@2 ~@4, ~@7 bb3 ~@8 [db4,gb5]@2 ~@14", // D Gb5
  C: "~ [gb5,db6,gb6] ~@11 [ab3,db4,d4]@2 ~@5 db6@2 ~ [c4,db4,f5,bb5,db6,f6]@3 ~@6, ~@13 gb4 ~@18", // Gb5 Db Bbm
  D: "f6@4 ~@6 f6@3 ~@4 e6@2 ~@4 f6@2 ~@3 [b5,b6]@4", E: "~@2 c6@2 ~@3 c7 ~@3 c6 ~@2 c6 ~@6 c7 ~@2 g3@8, ~@23 db4@9",
  F: "~ [ab3,bb3,c4,eb4] ~@9 ab3 ~@5 ab5@2 ~ [ab3,bb3,c4]@2 ~@7 [ab3,bb3,c4,ab5]@3", // Ab
  G: "~@4 c5 ~@2 [gb3,ab3]@3 ~@3 [b4,bb5]@2 ~@5 b4@2 ~ b4@2 ~ [db4,eb4,ab4,b4]@2 ~ b4@2 ~, ~@4 [b4,bb5]@2 [a3,db4,e4]@3 ~@7 [a3,db4]@9 ~@7, ~@5 b5@3 ~@7 b5@2 gb3@9 ~@6, ~@22 b5@3 ~@7", // Gbsus2 Bmaj7 Abm Bmaj7 A
  H: "[~@4 [a3,eb4]@7 ~@2 [e5,g5,bb5]@3 ~@6 [ab3,d4,g4]@3 ~@7 d4@4 ~@2 [g5,bb5]@2 ~ [ab3,d4]@7 ~@3 g3@2 ~@7 [bb3,db4,f4]@6 [f5,bb5,db6,f6]@3 [bb3,db4,f4]@2 ~@2 [bb5,eb6]@3 ~@3 [db5,db6]@7 ~@2 [bb5,eb6]@3 ~@5, b4@12 d5@3 ~@16 g4@4 ~@3 [d5,e5] ~@9 f5@18 ~@30, ~@3 db4@8 ab3@3 ~@14 ab3@7 ~@13 [bb5,db6]@11 ~@37, ~@49 f6@17 ~@30, ~@50 [bb3,f4]@3 ~@25 bb3@7 ~@2 [bb3,eb5]@2 ~@7]/3", // Adim Edim G Gm Abdim Bbm Eb5 Db …
  I: "~ bb3@2 ~@4 [g5,c6,eb6,g6]@3 [bb3,c4,f4]@2 ~ g6@2 ~@5 [bb3,g6]@8 ~ [bb3,db4,eb4,eb5,bb5]@3, ~@12 [g5,c6,eb6]@3 ~@17", // Cm Bbsus2 Eb Eb7 Cm
  J: "~@4 [bb5,eb6]@2 bb3@7 ~@3 [a3,c4,eb4]@2 ~@7 [gb3,a3,c4,eb4]@7, ~@3 eb5@2 ~@8 gb3@5 ~@14", // Eb5 Adim Gbdim
  K: "[~@2 [ab3,c4,eb4,c5,f5,ab5,c6]@3 ~@7 [ab3,c4,eb4]@2 ~@7 [c4,eb4,c5,f5,ab5,c6]@6 ~ eb6@2 ~ c4@2 ~@2 c6@2 ~@3 [ab4,c5]@4 ~@5 [ab3,bb3,eb4]@2 ~@5 [c5,e5,ab5,c6]@3 ~@4 c6@2 ~@4 [bb3,b5]@6 ~@3 g5@3 ~@6 bb3@2 ~@2 [g5,c6]@3 ~@2, f3@4 ~@15 f3@8 ~@3 [ab3,eb4]@3 ~@5 e3@4 ~@33 eb3@5 ~@16, ~@20 ab3@7 eb5@3 ~@4 c5@3 ~@2 [ab3,eb4]@3 ~@54, ~@40 bb3@2 ~@35 bb3@3 ~@16]/3", // Fm7 Ab Fm7 Ab Absus2 Caug Bmaj7 C5 …
  L: "~ c6@5 ~ db6@2 ~@4 d6@5 ~ [eb4,gb4,gb5,eb6]@3 ~@7 eb4 ~@2, bb3@6 db5@3 [eb3,bb3]@8 ~@11 [a3,c4]@2 ~@2, ~@12 d5@5 ~ eb5@3 ~@11", // Ebm Eb5 Am
  M: "~@3 [eb5,a5,eb6]@2 ~ [c4,eb4,gb4]@2 ~@4 d6 d5@2 ~ [db5,db6]@6 ~@2 b5 [db4,f4,c5,c6]@2 ~@5, ~@3 gb5 ~@11 [a3,c4,eb4,gb4]@7 ab3@5 ~@5", // Ebdim Cdim Db Dbmaj7 Adim
  N: "[~@12 c6@4 ~@2 [eb5,eb6]@2 ~@4 [db5,db6]@4 ~@10 [db4,f4]@2 ~@8 db4@7 gb5@2 ~ f5@3 ~@3, ~@9 ab3@7 ~@13 f4@3 ~@32, ~@11 [f4,c5]@4 ~@5 db4@8 db4@4 ~@25 [g3,db4,f4]@2 ~@5, ~@15 a4@13 ~@4]/2", // Eb Db F5 Gm7b5
  O: "[~ e5@2 ~ eb5@3 ~@6 eb5@4 ~@6 b3@2 ~@4 d5@2 ~ b3@2 ~@23 a4@2 ~ [eb3,eb5] f5@2 a5, ~@3 bb3@2 ~@8 bb3@2 ~@7 [ab4,b4,eb5]@4 ~@5 eb4@3 ~@7 [bb4,eb5]@17 ~ db5@2 ~@3, ~@42 gb5@17 ~@5, ~@50 f4@5 ~ f4@3 ~@5, ~@51 [bb3,c4]@8 ~ [a3,db4]@2 ~@2]/2", // Eb Abm Eb5 Bbsus2 A
  P: "db6 ~@4 db7 [eb3,a3,db4]@9 [ab3,c4,db4,f4]@2 ~@4 db5@2 ~ [ab3,c4,f4]@2 ~@6, ~@3 f6@2 ~@16 ab4 ~@2 db4 ~@7, ~@4 a6@2 f7 ~@25", // Ebm7b5 Dbmaj7 Fm
  Q: "~@2 [c5,db5,f5]@3 ~@4 e5@2 [c4,db4]@2 ~ [db5,f5] ~@5 [db4,f4,c5,f5,c6]@2 ~@8 [bb3,db4] ~, ~@2 db4 ~@11 c5@2 ~@3 bb3@2 ~@9 f4@2", // Dbmaj7 Db Dbmaj7 Bbm
  R: "~@4 bb5@3 [g3,bb3,db4,f4]@4 ~@3 bb5 ~ [g3,bb3,db4,f4,c5,f5,c6]@9 [g3,c4,eb4,eb5,ab5] ~@6, ~@7 [c5,f5,c6]@7 ~@11 [ab3,c5]@2 ~@5", // Gm7b5 Abmaj7 F5 Ab
  S: "[~@2 [g3,c4,eb4]@2 ~@5 ab5@2 ~ [c4,eb4]@2 ~@8 [g3,c4,eb4,ab5]@3 ~@6 [b4,eb5,ab5,b5]@9 [a3,db4,eb4,gb4]@2 ~@5 [b4,ab5,b5]@2 ~ [a3,db4,eb4]@3 ~@6 [a3,db4,eb4,gb4]@2 ~@3, ~@2 ab3 ~@9 ab3 ~@9 ab3 ~@8 [a3,db4,eb4,gb4]@3 ~@13 eb5 ~@16]/2", // Cm Abmaj7 Abm Ebm7b5 E Ebm7b5
  T: "~@2 g5@2 [ab3,d4,f4,bb4,e5,bb5]@3 ~@7 e5@3 ~@6 [d4,f4,c5,c6]@4 ~@3 bb4@2, ~@13 [d4,f4,bb4,bb5]@4 ~@15", // Bb7 Dm7 Bb
  U: "~@4 [c5,c6]@5 ~ eb6@2 ~@6 db4@4 ~ eb6@2 ~@7, f4@8 ~ db4@4 ~@19, ~@9 eb5@2 ~@11 eb5@2 ~@8", // C
  V: "[~@9 f6@5 ~@11 [bb3,db4]@6 ~@3 db4@2 ~@7 [bb3,db4]@7 [g5,ab5]@2 gb5 c4@2 ~@7 [c4,f4]@6 ~@2 gb4 ~ gb3@2 ~@7 [gb3,c4]@7 eb5@2 [ab3,eb4] f5@5, ~@5 db4@9 ~ ab5@17 g6@2 f6@17 ~@2 f5@15 ab4@2 ~@26, ~@15 bb3@2 ~@17 bb3 ~@34 g4@2 f4@17 ~@2 c4@2 ~@4, ~@16 ab6@15 ab6@2 gb6@2 ~@61]/3", // Bbm Abmaj7 F5 Gbdim Ab5
  W: "~ ab5@2 ~ [f3,ab3,c4,eb4,f5]@3 ~@6 [ab3,c4,eb4,ab5]@2 ~@7 [ab3,c4,eb4,bb5]@3 ~@7", // Fm7 Ab
  X: "[ab3,b3,b5]@4 ~@2 e5@2 ~ [ab3,b3]@3 ~@4 e5@2 ~ bb3@8 ~ [bb3,eb4]@2 ~@2, e3 ~@13 c6@2, ~@28 [e3,ab3] ~@3", // Abm Eb5 E
  Y: "~@2 db6@2 ~ [bb3,c4]@2 ~ eb6@3 ~@4 [bb3,c4,ab5]@8 ~ [e3,ab3,bb3,bb5]@3 ~@5", // Bbsus2 Fm Bbm7b5
  Z: "[~@2 [ab3,bb3]@6 db6@2 ~ [ab3,c4]@2 ~ c6@2 ~@5 ab5@7 ~@2 [e3,ab3,bb3,db5,bb5]@4 ~@3 [ab5,db6]@2 ~ [ab3,bb3]@2 ~@4 [c5,c6]@2 ~ [gb3,bb3]@2 ~@7 [gb3,bb3,c4] ~@5, ~@11 bb3 ~ b5@2 ~@5 bb3@8 ~@18 [eb5,ab5] ~@17]/2", // Absus2 Ab Bbm7b5 Db5 Absus2 C Gb Cm7b5 …
  AA: "[~ [ab5,c6,eb6,ab6]@2 a3@3 ~@6 [a3,db4,eb4]@2 ~@5 [ab4,db5,f5,ab5] ~ ab3@3 ~@7 [ab3,c4,db4]@3 ~@4 [bb4,bb5] ~ [g3,db4]@3 ~@6 [g3,db4]@6 ~ [gb3,bb3,c4,eb5,ab5]@3 d3@2 ~@4 ab5@3 ~ [d6,eb6]@2 ~ eb6@2 ~ eb6@2 ~ eb6@2 ~@2 eb6@2 ~ eb6@2 ~ eb6@2 ~ eb6@2 ~ eb6@2 ~ eb6@2 ~@4 [f5,b5,ab6]@2 ~@7 eb6@2 ~@2 gb6 ~@16 a2 b2 [gb3,ab3,db4] ~@8 [f3,c4,eb4] ~@8 [b5,eb6,gb6,b6]@4 ~@3, ~@38 [eb5,gb5,b5]@3 ~@28 db6 ~@45 [f5,b5,ab6]@3 ~@5 d1@3 g1 a1 b1 c2 d2 e2@3 ~@10 ab3@2 ~@7 [f3,ab3,c4,eb4]@2 ~@5, ~@39 b4@2 ~@15 [ab4,d5] ~@2 eb3@58 ~@5 [b0,c1]@10 [f2,g2]@2 [ab5,c6,eb6,f6]@3 ~@23, ~@62 e1@5 ~@13, ~@125 f1@9 ~@26]/5", // Ab Ebm7b5 Db Dbmaj7 Bb Gdim Ab7 Ebmaj7 …
  AB: "[ab5,eb6,ab6]@2 ~ [f3,ab3,c4] ~@2 [gb6,bb6]@2 ~@2 [f5,f6]@2 [a3,db4,d4,gb4] ~@3 ab6@2 ab5 ~ ab6 [a3,db4,d4,ab5] ab6 ~ ab5 ab6 ab5 ~ ab6 ab5 [db4,d4,gb4,ab6] ~, ~@3 eb4@2 [bb5,eb6]@3 ~@7 ab5@2 ~@4 gb4@2 ~@7 ab3@2", // Ab5 Fm Gb F Dmaj7 Amaj7 Dbsus4 Eb5
  AC: "~ ab6 ab5 ~ ab6 ab5@3 [ab3,db4,d4,gb4]@2 ~@4 [f5,db6,f6]@3 [ab3,c4,db4,f4]@2 ~@3 eb6@2 ~@3 [bb5,db6]@5, ab5@2 ~@18 eb5@3 ~@3 [ab3,c4,db4,f4]@4 ~@2, ~@21 bb5@4 ~@2 [f5,f6]@3 ~@2", // Dbsus4 Db Dbmaj7 Bbm Dbmaj7 F
  AD: "~@4 [c4,db4,f4]@3 ~@6 [ab3,c4,db4,f4]@2 ~@5 db6@2 [g3,db4,gb4] ~@2 gb6@3 ~@2 db6@2, ~ eb5@13 ~@5 [eb5,bb5,eb6]@2 ~@3 [gb5,bb5,db6]@4 ~ [gb5,bb5,gb6]@2 ~, ~@2 [bb5,eb6]@15 ~@15, ~@3 ab3@3 ~@16 b3@2 ~@8", // Dbmaj7 Gb Eb5 Gb Eb5
  AE: "[b3,gb4]@2 [e5,bb5,e6]@3 ~@2 [e5,bb5,db6,e6]@2 ~@2 eb6@3 ~@2 [eb5,bb5,eb6]@2 ~ [db5,db6]@3 ~@3 [db5,ab5,db6]@2 ~ [bb3,c4,f4,c5]@2 ~ [db5,db6], [g3,db4] ~@8 [b3,db4,gb4]@2 ~@7 db4@11 ~@3, ~@10 [eb5,bb5]@4 ~@4 [b3,gb4]@4 ~@6 [ab5,c6] ~@3", // B5 Edim Bbdim Eb5 Db Db5 Bbsus2 Db …
  AF: "ab5 ~ [d5,d6]@2 ~ [bb3,c4,f4,eb5,eb6]@2 ~ d5 d6 ~ [db5,db6]@3 ~@9 [g3,bb3,c4,f4]@7 bb5@2, ~@5 g3@3 ~@6 [g3,bb3,c4,f4]@4 ~@14, ~@15 [c5,c6]@16 ~", // D Bbsus4 Db Gm7 C
  AG: "[~@2 b5@4 ~@2 a5@2 ~ [a3,db4,e4,ab4]@3 ~@4 e5 ~@2 gb5 ~ ab5@6 ~ [a3,db4,ab4]@4 ~@3 c5@2 [c4,eb4,g4]@2 ~@5 ab5@2 [ab3,c4,eb4,g4,c5]@6 ~ eb5 ~@2 [f5,gb5]@2 g5@3 ~, ~ [a3,db4,e4,ab4]@2 ~@8 db5@5 ~@4 [a3,db4,ab4]@2 g5@2 ~@15 bb5@4 ~@21, ~@21 eb4@2 ~@7 [eb4,gb5]@7 ab3@5 ~@16 [ab3,c4,d4,g4]@6]/2", // Amaj7 Cm Abmaj7 Gbmaj7 Amaj7 Ebm Abmaj7
  AH: "~ f5@2 [ab3,d4,g4]@7 ~@3 [c4,db4,f4,f5,ab5]@7 db6 ~ [ab3,c4,db4,f4,f5,ab5,eb6]@8 ~@2, ~@5 ab3@5 ~@6, ~@13 eb6@5 ~@14", // G Dbmaj7
  AI: "[gb5,gb6] g5@2 ~@6 [g3,c4,db4,f4,bb5,bb6]@8 ~@2 [g3,ab3,bb3,c4,eb4,f4,eb5,ab5,eb6,ab6]@3 ~@4 c6@2 [g3,c4,eb4,f5,f6]@2 ~@2, [g3,c4,db4,f4,g6]@4 ~@24 ab3 ~@3", // Gb Gm7b5 Cm7 Cm Csus4
  AJ: "[~@5 [c4,eb5,c6,eb6]@2 ~@8 f6@3 ~@6 [gb3,bb3,db4,eb4,gb5,bb5,db6,gb6]@3 ~@6 [gb3,bb3,db4,eb4]@2 ~@5 ab5 ~@2 [gb3,c4]@9 [gb3,c4,eb4]@6 c6@3 ~@3 [c6,eb6]@3 ~@5 f3@3 [c5,f5,ab5]@4 ~@2 bb5@3 ~@5 [ab3,c4,eb4]@7, ~@5 [ab3,eb4,bb5] ~@8 [g3,ab3,c4,eb4,f5,bb5,c6]@3 ~@14 ab5@3 ~@6 [f5,c6,f6]@19 ~@2 [f3,ab3,c4]@4 ~@6 [ab3,c4]@3 ~@22, ~@32 ab6@2 ~@28 eb4@3 ~@5 [ab5,db6]@3 ~@2 c6@2 ~@19, ~@63 [eb5,ab5]@4 ~@2 db5@4 ~@7 bb4@4 ~@3 [ab4,ab5]@9]/3", // Cm Ebm7 Gbdim Cdim Cm Fm Ab Absus2 …
  AK: "[~@3 [ab5,c6]@4 ~@2 [eb5,ab5,db6]@3 [e3,ab3,bb3]@2 ~@2 c6@2 ~@4 [eb5,bb5]@6 [ab4,eb5,ab5]@3 [e3,ab3,bb3,eb4]@7 ab5@2 ~ bb3@2 ~@7 [g3,c4]@2 ~@5 c6@2 ~ [eb5,ab5,c6,eb6]@4, e3@4 ~@15 e3@8 ~@13 [g3,c4,eb4,c5,eb5,ab5,c6]@3 ~@16 [g3,c4,eb4]@2 ~@3, ~ ab3@3 ~@17 [bb3,eb4,bb4]@6 ~@23 [bb3,eb4] ~@9 bb3@2 ~@2, ~@2 [bb3,eb4,c5,eb5]@4 ~@2 db5@4 ~@3 [c5,eb5,ab5]@4 ~@38 ab5 ~@6]/2", // Ab Dbsus2 Bbm7b5 Eb5 Ab5 Emaj7 C5 Ab …
  AL: "[~@5 [g3,bb3,c4,eb4,f5,ab5,c6,f6]@8 ~@2 gb6@4 ~@5 [gb3,a3,eb4,ab5]@5 ~@5 db6 f6 f5 [db6,f6] f5@2 db6 ~ [gb3,a3,c4,eb4]@6 [eb5,eb6]@3 [ab3,c4,db4,f4]@2 ~ db6@2 ~@2 [db5,ab5,db6]@2 [ab3,c4,db4,f4]@2 ~ c6@3 ~ [c5,ab5,c6]@2 [ab3,c4,db4,f4]@2 ~ bb5@2 ~@2 [bb4,bb5]@2 [ab3,c4,db4,f4]@3 ~ ab5@2 ~ [ab4,ab5]@2 [g3,db4]@2 ~ [b4,db5,gb5]@2 ~@2 [gb4,b4,db5,gb5]@2, ~@13 [gb3,gb5]@4 ~@14 a5@18 ~@47, ~@14 [a3,c4,eb4,a5,db6]@4 ~@5 [c4,ab6]@5 ~@2 [f5,ab5,db6,f6]@3 [gb3,a3,c4,eb4]@2 ~@5 f6@9 ~@47, ~@41 [f5,db6]@8 ~@4 db5@2 ~@7 c5@3 ~@16 ab4@2 ~@6 gb4@2 ~@5]/3", // Cm7 Ebdim Db Gbdim Eb Dbmaj7 Db5 Dbmaj7 …
  AM: "~ [g3,db4]@2 e5@3 ~ [e4,b4,e5]@3 ~@2 [eb4,eb5]@4 ~@4 [g3,db4,db5]@7 ab2@2 ~ [g3,c4,c5]@2, ~@10 db4@4 ~@15 gb4@2 ~, ~@11 g3@4 ~@17", // Gdim E5 Eb Gdim C5
  AN: "~@7 [g3,ab3,c4]@2 ~@5 b4@2 ~ [f3,eb4,ab4,eb5]@4 ~@6 eb5@3 ~@2, ~@16 [db3,b3]@3 ~@5 b4@4 ~@4, ~@26 [db3,f3,b3,eb4]@3 ~@3", // Abmaj7 Fm7 Db7
  AO: "~@4 [c3,gb3,bb3,bb4]@2 ~@7 [gb3,bb3,c4,eb4]@2 ~@8 [f3,a3,c4]@2 ~@4 c5@3, ~@4 [eb4,gb4] ~@17 eb4@2 ~@8", // Cm7b5 F Ebm
  AP: "~ db5@2 ~ f5@2 ~ ab5@2 ~@2 c6@5 ~@4 c6@5 ~ ab5@2 [db4,f4]@3 ~, [c4,eb4]@3 ~@6 [ab3,c4]@3 ~@7 [ab3,c4,db4,f4,b5]@3 ~@10, ~@10 [db4,f4,b5]@3 ~@19", // Db Cm Ab Db7
  AQ: "~@3 db5 ~@2 f5@3 ab5@2 ~ c6 ~@2 [g3,db4,f4,eb6]@3 ~@4 d6 ~@2 c6@7, ~@5 [c4,db4,f4]@3 ~@15 db6@2 db4@3 ~@4, ~@24 f4@3 ~@5", // Gm7b5 Dbmaj7
  AR: "~@2 [db4,f4]@2 ~@5 bb5@2 [db4,f4]@3 ~@7 [g3,bb3]@2 ~@4 g5 ~@2 ab5@2, ~@2 c6@5 ~@4 a5@7 ~@2 [f4,ab5]@2 ~@8 bb3 ~", // Db Gm Fm
  AS: "~ c6@2 ~ eb6 ~@2 [bb3,g6]@2 ~@5 ab6@2 [bb3,c4] f6@5 ~ g6@2 ~ [a3,eb4,gb4]@2 ~@4, ~@16 f4@2 ~@7 db4@2 ~@5, ~@13 eb6@2 ~", // Eb Bbsus2 Ebdim
  AT: "[f6@2 ~ [a3,db4,db6]@4 ~@3 eb6@2 ~ b5@4 ~@2 db6@2 ~ [a3,db4,eb4,gb4]@2 ~@8 d4@2 ~@4 c6@2 ~@2 f6@4 ~@2 eb6@2 ~ d6@3 ~@3 bb5@2 ~ [ab3,c4,f5]@4, ~@3 [eb4,gb4]@2 ~@7 [a3,db4,eb4,gb4]@2 ~@8 a5@7 ab3@5 ~@7 [ab3,c4,d4]@3 ~@20, ~@31 [c4,f4]@3 ~@16 [c4,d4]@3 ~@7 [d4,f4]@2 ~@2]/2", // A Ebm7b5 Fm Ebm Ebm7b5 Dm7b5 F5 Csus2 …
  AU: "~@2 e5@2 ~ [c4,eb5]@6 ~@4 [c4,db4,f4]@2 ~ eb6 ~@2 eb6 ~@2 [c4,db4]@2 ~ eb6 ~@2 eb6 ~, ~@15 [d6,eb6] ~@8 eb6 ~@7", // Cm Dbmaj7 Ebmaj7
  AV: "~ [c4,db4,eb6]@2 ~@4 eb6 ~@3 [bb3,g6]@2 ab6@4 ~@3 [bb3,db4]@2 ~@4 [g6,ab6]@2 ~ [gb3,bb3,db4,f4]@3, ~@10 [gb3,db4,gb6]@2 ~@7 f4@3 ~@10, ~@5 eb6 ~@2", // Cm Eb Bbm Abmaj7 Gbmaj7 Gb5
  AW: "~@7 gb6 ab6@6 ~@2 [c4,f4,eb6]@4 ~@3 ab6@2 [gb3,c4,f4]@3 ~@4, ~@7 [gb3,bb3,db4,f4,g6]@2 ~@7 gb3@2 ~@5 g6 ~@8", // F7 F Gbmaj7
  AX: "[eb6@3 gb6 ~ ab6@5 ~@3 eb6@6 f3@3 [ab3,gb6]@2 ab6@2 gb6@2 eb6 ~@2 [ab3,c4,db6]@3 ~@4 b5@2 ~ ab5@5 ~ gb5@3 [f3,ab3,c4,eb4]@3 ~@6 [e3,ab3,bb3,eb4]@8 ~@2 [ab3,bb3,eb4,ab4,eb5]@5 ~ [ab4,db5] ~@2 [ab3,bb3,eb4]@3 ~@4 bb5@2 ~ [e3,ab3,c6]@6 [bb5,eb6]@2, gb3@4 g6@2 ~@6 f4@2 ~@36 e5@6 eb5@11 ~@27 eb5 ~, ~@3 [c4,f4]@5 ~@2 gb3@5 ~@25 [f3,ab3,c4,eb4]@3 ~@26 e3@3 ~@24, ~@13 c4@4 ~@5 [c4,eb4] ~@64 [bb3,eb4]@7 ~@2]/3", // Ab7 Dbmaj7 Fm7 Emaj7 Absus2 Db5 Absus2 Eaug …
  AY: "~ [bb3,c4,f4]@2 ~@5 bb5@2 [bb3,c4,f4]@7 [eb5,bb5,eb6]@2 ~@2 [db4,e5,db6,e6]@3 ~@6 [ab3,bb3]@2, ~@8 [eb5,eb6]@9 ~@3 [e3,ab3,bb3,bb5]@3 ~@6 [e3,db4,e5,bb5,db6,e6]@3", // Bbsus2 Eb5 Dbm Absus2 Eb Bbm7b5 Bbdim
  AZ: "[~@7 [bb5,c6,eb6]@2 ~@6 [bb3,eb4,db5,ab5]@6 ~@4 e3 ~@5 db6@3 ~@3 [eb5,eb6]@4 ~@3 f6@2 ~@3 gb5@2 ~@6 f6@4 ~@2 eb6@2 ~@10 [gb5,db6,gb6]@5 ~@8 eb6@6 ~ b6@3 ~@15 [g5,eb6,g6]@4 ~@2 [ab3,bb3,c4,f4,ab5,c6,eb6,ab6]@2 ~@7 [ab3,bb3,c4,ab5,c6,eb6,ab6]@6 [a3,eb4,gb4,ab5,c6,eb6,ab6]@2 ~ [a3,db4,eb4,gb4,f5,f6]@6 ~ [a3,db4,eb4]@2 ~ e5@5 ~ [a3,db4,gb4,e5,e6]@2 ~ [ab3,db4,eb5,eb6]@4, ~@6 [ab3,bb3,c4,eb5]@3 ~@13 c5@2 [ab3,bb3,db4]@2 ~@8 [ab3,bb3]@7 ~@2 [bb3,c4,db6]@3 ~@6 [bb3,c4,f4]@8 ~@2 [a3,c4,eb4,eb5,bb5]@4 ~@3 db6@6 ~@6 [db6,ab6]@17 ~@2 [bb5,bb6]@17 ~@26 [f5,c6,f6]@11 ~@2 ab5 ~@3, ~@23 c6@2 ~@5 ab5@2 ~@19 [db6,gb6]@2 ~@3 [f5,bb5,db6]@4 ~@9 [f5,bb5,f6]@11 ~@7 bb5@11 ~ db4@8 ab6@10 ~@43, ~@72 c4@8 ~ [c4,db4]@7 bb6@11 ~@7 ab5@11 ~@17 db4 ~@11 [a3,db4,eb4,gb4,e6]@7 ~@7, ~@107 eb6@2 [g3,db4,f4]@8 ~@10 f4@8 ~@8 gb4@3 ~@6 eb4@2 ~@6]/5", // Cm7 Bbm7 Eb Gb5 Cm Fm7 Ab Ab7 …
  BA: "~@2 [ab3,c4,db4,f4]@3 [ab3,c4,db4,f4,db5,db6]@6 ~ [f4,db5,ab5,db6]@2 ~ [g3,c4,db4,f4,ab5]@6 [g3,c4,db4,f4,ab5]@3 [g3,c4,db4,f4,d5,ab5,a5,d6]@8, ~@2 [eb5,ab5,eb6]@12 ~ [c5,c6]@17, ~@11 [ab3,c4,db4]@3 ~@7 [db5,db6]@11", // Dbmaj7 Db Dbmaj7 Ab5 C Dbmaj7 Db
  BB: "[~@2 ab5@3 ~@6 [f3,ab4,ab5]@8 ~ [f3,ab3,c4,eb4,bb4,eb5,bb5]@4 ~@6 [f3,ab3,c4,f5]@5 ~@4 [a3,d4,gb4,db5,gb5,a5,db6]@7 ~@3 [d5,gb5,a5,d6]@6 [ab3,db4,d4,gb4]@9 [ab3,db4,d4,gb4]@3 ~ eb6@8 ~ [ab3,c4,db4,f4,f5,bb5,db6,f6]@3 ~@6 [ab3,db4,f4,bb4,eb5,bb5]@4 ~@5 [ab3,c4,db4,f4,c5,eb5,c6]@4 ~@6 [ab3,c4,db4,f4,db5,f5,ab5,db6]@5 ~@4 [g3,bb3,c4,db4,f4,bb5]@9 ~ [g3,bb3,c4,db4,f4,bb5,db6]@4, ~ [f3,ab3,c4,eb4,eb5,eb6]@3 ~@6 [ab3,c4,eb4]@8 ~@11 [eb4,c5,ab5,c6]@6 ~@13 [a3,db4,d4,gb4]@6 ~ [e5,b5,e6]@20 ~@39 [eb5,g5,eb6]@14, ~@64 [gb5,db6,gb6]@11 ~@48 [f5,f6]@5, ~@67 [ab3,db4,d4,gb4,ab5,ab6]@8 ~@53]/4", // Fm Fm7 Fm Dmaj7 D Dbsus4 Dbmaj7 Bbm7 …
  BC: "~@3 eb6 ~@7 [g3,bb3,c4,db4,f4]@3 [g3,bb3,c4,db4,f4,bb5,bb6]@9 ~ c6@3 ~@5, ~@2 [g5,g6]@21 [f3,ab3,c4,eb4,f6,ab6,c7]@3 ~@6, ~@2 [g3,bb3,c4,db4,f4]@9 [ab5,c6,eb6,ab6]@12 ~@9", // Gm7b5 G Fm7 Gm7b5 Ab
  BD: "[~ [ab3,ab5]@4 ~@5 [f3,ab3,c4,eb4,db5,ab5,db6]@4 ~@5 [f3,ab3,c4,eb4,eb5,ab5,bb5,eb6]@7 ~@3 [e3,ab3,a3,db4]@9 [e3,ab3,a3,db4,gb5,db6,gb6]@6 ~@13 [eb3,ab3,a3,db4,b5,b6]@7, ~@29 [e5,ab5,b5,e6]@15 ab6@20, ~@44 [eb3,ab3,a3,db4]@9 ~ a6@10, ~@45 [ab5,db6,eb6]@19, ~@54 [eb3,ab3,a3,db4] a5@9]/2", // Ab Fm7 Amaj7 Gbm7 Abm E Dbsus2 Absus4 …
  BE: "[~@2 [f6,ab6,c7]@3 ~@4 g5 f5 ~@7 e4@2 ~ d4@17 g3 ~ [g3,bb3,db4,f4,f5,bb5,db6,f6]@4 ~@2 [g3,bb3,f4,f5,bb5,db6]@7 ~@7 db6@2 ~@6 [g3,bb3,f4,db6,f6]@7 ~@3 [f6,gb6]@2 ~@7 [ab3,bb3,c4,eb4] ~@6 eb6@2, ~@2 [ab3,c4,d4]@12 b4 a4 g4 f4@3 [ab3,c4]@18 ~@8 [db4,f6]@10 [db4,f5]@3 f5@3 f5@2 ~ f4@2 f5@8 ~@21, ~@2 [g4,c6]@6 a5@2 ~ e5@9 ~@33 f5@2 db6@3 db6@2 db4@5 db4@10 ~@2 [c4,eb4,g4]@2 ~@8 g4@2 ~@7, ~@12 d5@8 ~@34 bb3@5 bb3@5 [bb3,f5]@4 ~@7 ab3@4 ~@17, ~@13 c5@7 ~@33 g3@5 g3@5 db6@3 [db6,f6]@2 ~@10 g6@8 ~ f6@5 ~@4]/3", // Fm Gm7b5 Gbmaj7 Ab Dm7b5 Ab Db C5 …
  BF: "[~ c6@4 ~@2 ab5@2 ~ [ab3,bb3,c4,eb4,g4]@2 ~@7 [gb3,bb3,db4]@2 ~@8 [gb3,bb3,db4,f4]@2 ~@7 [c4,f4] ~@8 [gb3,c4,f4]@2 ~@8 [f3,ab3,c4,eb4]@2 ~@2 d6@2 [c6,db6]@2 ~@4 db6 ~@2 eb6@2 ~ db6 [f3,ab3,c4,eb4,c6]@2 eb6@2 d6 ~ c6@2 ~@3 db6 ~@2 eb6@2 ~@2 [e3,ab3,bb3,eb4,c6]@2, [bb3,c4,eb4,g4]@3 ~@7 g5@6 gb5@19 ~ gb3@4 ~@14 d6@2 c6@2 ~@8 [f3,ab3,c4]@2 d6@2 ~ c6@2 ~@8 db6@2 ~@2 [ab3,c4,eb4]@2 ~@6 db6@2 ~, ~@38 db6@14 ~ eb6@2 db6@2 ~@3 eb6@2 ~@5 eb6@2 ~@5 d6@2 ~@8 eb6@2 d6@2 ~ c6@2 ~ d6@2 ~@2]/3", // Abmaj7 Gb Gbmaj7 F5 F Fm7 Dbmaj7 Fm7 …
  BG: "~ eb6 ~@5 [e3,ab3,bb3]@2 ~@8 [e3,ab3,bb3] ~@8 [ab3,bb3,eb4]@3 ~@3, ~@3 db6@2 ~@12 eb4@2 ~@4 e3@5 ~@4, ~@4 c6@23 ~@5", // Bbm7b5 Absus2
  BH: "[g6@3 ~@2 bb6@3 ~@2 g6@2 ~ [eb3,g3,bb3]@2 eb6@3 ~ c6@2 ~ [g3,bb3,d4]@2 b5@2 ~ b5@2 g5@2 [eb3,g3,bb3] ~ bb5 c6@3 ~ g5@2 ~ [a3,db4,eb4,a5]@4 ~@6 [a3,db4]@2 ~@7 [a3,eb4] ~@7 eb6 [a3,db4] ~@6 eb6@2 [db4,f4]@2 ~ b5@3 ~ ab5 ~ [ab3,c4,db4,f4]@3 ~@5 f5@2 [ab3,c4,db4,f4]@2 ~@7 [ab3,c4,db4,f4]@2 ~@5 ab5@2 ~ [g3,db4,f4,d6]@2 ~@8 db6 ~, ~@3 [bb3,d4]@3 ~@25 d4@2 ~@14 f5@22 ~@9 bb5@3 ~@6 [bb5,f6]@7 ~@3 ab5@8 ~ bb5@6 ~@16, ~@4 [eb3,g3]@2 ~@16 eb3 ~@24 e6@2 ~@11 db4@2 ~@7 eb4@2 ~@7 [ab3,c4] ~@49, ~@48 f6@18 ~@3 f6@4 ~@5 f6@8 ~@42]/4", // Eb Gm Eb Ebm7b5 A Adim A Db …
  BI: "~@4 b5@3 [db4,c6]@3 ~@4 eb6@2 ~ f6@4 ~@5 [bb3,c4,eb4,ab5,c6,eb6,ab6] ~@5, ~@8 [g3,db4] ~@4 ab3 ~@2", // Dbmaj7 Ab Gdim
  BJ: "[~@3 ab3@2 ~@4 [eb5,ab5,c6,eb6]@2 ~ [bb3,eb4] ab3 ~@2 [ab5,eb6]@2 ~@4 [b3,eb5,ab5,eb6]@4 ~@5 [bb3,gb5,bb5,eb6,gb6]@4 ~@3 [bb5,eb6,gb6] ~ [gb3,bb3,c4,eb4] ~@9 eb3@2 ~@7 [eb3,a3,db4]@2 ~@3, ~@3 bb3 ~@11 eb5@3 ~@19 gb5@2 ~@10 [a3,db4]@2 ~@13]/2", // Ab Eb5 Ab5 Abm Ebm Cm7b5 Ebm7b5 A
  BK: "~@3 f6 ~ [ab3,db4]@2 ~@5 f6@2 ab3@2 ~@5 [db6,f6]@3 [ab3,c4,db4]@2 ~@2 e6@2 ~@2, ~@2 [ab5,db6]@2 c4@2 ~@5 [f5,ab5,db6]@2 ~ db4 ~@5 [f5,ab5]@3 ~@9", // Db5 Db Dbmaj7 Db5 Db Fm
  BL: "~ ab5 f6@2 ~@6 [bb3,c6,bb6,b6]@2 c7@2 ~ c7 c6@2 c7 c6@2 c7 c6 ~ c7 ~ c7 ~@2 c7 c6 ~, ~ [c4,db4]@3 ~@21 c6@2 c6@2 ~@3, ~@14 [g3,db4,f4] ~", // Dbmaj7 Gm7b5
  BM: "[c7 c6@2 c7@2 [g3,db4,f4]@7 ~@3 [ab3,bb3,c4,eb4]@2 ~@7 eb4 c4 ~@5 eb6@2 ~ [ab5,c6,eb6,ab6]@4 ~@6 [bb5,bb6]@6 ~ [ab6,b6]@2 [a3,db4,eb4,gb4]@3 ~@2 b6@3 ~@2 [gb6,ab6,b6]@4 ~@5 [db4,eb4,gb4]@9 [a3,db4,eb4,gb4]@7 g5@2 ~ [bb4,d5,bb5]@3 ~@3 [bb4,d5,bb5]@2 ~@2 c6@5 [c5,c6]@2 ~ [ab3,d4,f4]@3 db6@3 ~ [db5,f5,ab5,db6]@2 ~@3 d6@4 [d5,f5,ab5,d6]@2 ~ g3@2 eb5 eb6@2 ~ [eb5,g5,bb5,eb6]@2 ~@2 f5@3 ~@2 [f5,bb5,f6]@2 ~@4 [bb5,gb6]@2 ~@7 g6@4 [g5,g6]@3 ~@3 [db6,f6,ab6]@3 ~@4 [gb3,bb3,db4,f4]@4 ~@6 [bb5,db6]@2 ~@5, ~@3 c6@9 g3@5 ~@7 [g3,ab3,bb3]@2 ~@5 f3@5 ~@7 [f3,ab3,c4,eb4]@7 ~@7 [eb6,gb6,ab6]@4 ~@8 [b5,eb6,gb6,ab6]@3 ~@16 ab3@12 [ab3,d4,f4]@8 ~@10 [ab3,d4,f4]@7 ~@2 [db4,f4]@4 ~@6 db4@8 db4@5 ~@3 [db6,gb6]@11 ~@28, ~@34 [ab3,c4,eb4]@2 ~@5 [a5,a6]@9 [b5,eb6,gb6]@3 ~@3 b5@3 ~@3 [a3,db4,eb4,gb4,b5,eb6]@4 ~@4 b6@19 ~@2 [d4,f4]@9 ~@12 ab5 ~@7 d5@4 ~@7 bb5 ~@5 [g3,f4]@5 ~@4 [g3,f4]@7 ~@2 [g3,db4,f4]@8 ~@2 [gb3,bb3,db4,f4]@4 ~@15 [gb3,bb3,db4,db5,gb5]@3 ~@5, ~@148 gb5@2 ~@2 [gb5,bb5]@3 ~@2 g5@5 ~@5 ab5@4 ~@21]/6", // Gm7b5 Ab Bb Abm Ebm7b5 Abm7 Ebm7 Ebm7b5 …
  BN: "[~ [gb3,bb3,db4,f4]@7 bb5@2 ~ [gb3,c4,f4]@4 ~@3 [eb5,eb6] ~@2 [db5,db6]@4 ~@5 [gb3,c4]@4 ~@6 ab5@2 ~@7 [ab3,c4,eb4,ab4]@2 ~@7 [ab3,c4,eb4,eb5]@2 ~@4, ~@11 [c5,ab5,c6]@2 ~@7 [gb3,c4]@5 ~@5 [f5,c6]@2 ~@7 c4@2 ~@7 f4@3 ~@7 [f4,ab4,c5] ~@5, ~@30 ab5 ~@33]/2", // Gbmaj7 F Eb Db Gbdim Ab Fm Gbdim …
  BO: "[~@3 [c5,ab5]@2 ~@7 f5 [ab3,c4,eb4]@2 ~@7 [ab3,bb3,eb4,bb5]@8 ~ [ab3,bb3,eb4,ab5,db6]@5 ~@2 [eb5,ab5,bb5] ~@2 bb3 ~@8 [e3,ab3,bb3,eb4,db5,db6]@6 ~ [eb5,bb5,eb6]@2 [ab3,bb3,eb4] c4 ~@3, ~@3 [eb5,f5] ~@8 [c5,ab5,c6]@2 ~@24 eb6@2 ab3@2 ~@5 [c5,c6]@9 ~@8, ~@48 gb5@8 ~ ab5 ~@6]/2", // Fm Ab Absus2 Absus4 Ebsus4 Bbm7b5 Eb5 Absus2 …
  BP: "~@3 db5 ~ [ab3,bb3,c4,eb4]@9 ~ [e3,ab3,bb3,db4,bb4,db5,bb5]@3 ~@6 [e3,ab3,bb3,db4,db5,db6]@8, ~@2 [ab4,eb5,ab5]@11 ~@19", // Ab Bbm7b5 Ab5
  BQ: "[~@11 ab5@5 db2@4 ~@9 [db5,db6]@7 ~@3 [eb3,c5,gb5,bb5,c6]@15 ~@3 [eb3,a3,ab5,db6,f6,ab6]@15 ~ c4@2 ~ bb2@3 [db3,f4]@3 ~@3 [ab3,db4,f4,c5]@6 ~@10 b4@3 c5@5 ~ [ab4,c5]@3 ~@6 [gb4,c5]@4 eb4@7 ~@2 d4@5 ~@2 db4@2 ~@2 c4@8 ab3@4 ~@5, ~ [f3,ab3,c4,eb4,c5,eb5]@17 ~@2 [e3,bb4,bb5]@16 c2@18 f2@20 ~@36 ab2 ~@31 b3@2 ~@7 eb3@2 ~@7, ~ ab5@9 ab4@7 ~@55 a2@2 ~@2 db4 ~@5 [f3,ab4]@8 ~ [eb3,db4,g4,a4,eb5]@13 ~@15 c3@12 ~ db3@10 d3@10 ~@8, ~ c6@8 ~@71]/5", // Db Cm7b5 Db Dbmaj7 Ab Gbdim Fm7 Edim …
  BR: "[~ [g3,db4]@6 ~@15 ab7@64 ~@10, ~ [ab2,gb3,bb3,c4]@8 ~@3]/3", // Gdim Ab7
})).s("gm_piano").gain(0.32).pan(0.6)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note(`<
  A B C@2 D@2 E F G H I@2 J K L@3 M N O@2 P Q ~ R ~ S T U V@2 W@2 X Y Z AA@2 AB ~@5 AC ~ AD ~@3 AE AF AG AH AI AJ ~@2
  AK@2 AL@2 ~ AM AN AO AP ~ AQ AR AS AT AU@2 AV ~ AW AX AY@2 AZ ~@2 BA BB ~@2 BC ~ BD BE@2 BF ~ BG BH BI BJ BK BL BM
  BN@2 BO BP ~@2 BQ BR BS BT BU BV BW@2 BX ~@4 BY@4
>`.pickRestart({
  A: "~ eb4@9 ~@22", B: "~@18 f5@5 ~@9",
  C: "[~@21 [c4,f4]@2 ~@5 c6@3 [g3,c4,f4]@2 ~@6 [f4,f5]@2 ~@17 [a3,db4,gb4]@2 ~@4, ~@21 g3 ~@17 [g3,c4] ~@24]/2", // F5 Csus4 F Gbm C5
  D: "[~@4 [ab3,db4,d4,gb4]@2 ~@17 [ab3,f4]@3 ~@6 [bb5,db6]@3 ~@6 [ab3,c4,db4,f4,f5,bb5,db6]@4 ~@5 [ab3,c4,db4,f4]@4 ~ db6@2 ~@3 [g3,c4,db4,f4]@3 ~, ~@31 [ab3,c4,db4,f4,f5]@4 ~@13 [e5,bb5]@2 ~@4 [f5,bb5]@2 ~@8, ~@49 db6@2 ~@13]/2", // Dbsus4 Db Bbm Dbmaj7 Csus4 Dbmaj7 Edim Bb5
  E: "~@6 c6 ~ c6 ~ c7 ~@2 c7 ~ c7 ~ c6 c7 c6@4 [c4,f4]@9, ~@3 c7@2 db4@3 ~@24, ~@4 [g3,c4,f4]@3 ~@7 [g3,c4,db4,f4]@3 ~@15", // F5 Csus4
  F: "~@11 [c4,eb4] ~@8 eb4@2 ~ g5@3 ~@3 eb4 ~@2, ~@5 bb3 ~@10", // Cm
  G: "~@17 b4@2 b5@3 ~@3 b5 a3@2 b5 ~@3, ~@16 [ab3,e4]@9 ~@7", H: "~@2 b5 ab4@8 ~@2 g4@2 ~@17, ~@6 d4 ~@9",
  I: "[~@9 g4@7 ~@2 db4@2 ~@8 g3@7 ~@2 g3@2 ~ eb5@3 ~@3 [g3,db4,f4]@7 ~@3 [g3,g5]@2 ~@6, ~@55 [c4,f4]@3 ~@6]/2", // Gm7b5 G F5
  J: "~ [g3,c4,f4]@3 ~@6 g3@2 ~@8 [g3,c4,f4,g5,c6,eb6]@8 ~ [gb3,eb6]@3", K: "~@6 [db4,eb4]@9 ~@17, ~@3 gb3@3 ~@10",
  L: "[~@12 f3@2 ~@17 f3@2 ~@8 ab5@2 ~@7 e3 ~@8 [e3,ab3,bb3,eb4]@2 ~@2 ab5@3 ~@3 [e3,e5]@8 ~ [c4,c5,eb5,c6]@3 ~@4 [eb5,g5,c6]@2 [eb3,g3,c4]@3 [c5,eb5]@3 ~@3, ~@40 e5@2 ~@19 c5@4 ~@3 [ab3,eb4,b4]@8 ~ g3@4 ~@15, ~@62 e5@3 ~@19 c5@3 ~@9]/3", // Emaj7 E Cm Abm
  M: "~ g5@6 ~@2 [g3,c4]@8 ~@2 [a3,c4]@2 ~@7 gb4@2 ~@2, [eb3,g3,c4,c5,eb5]@7 ~@25", N: "~@3 a3 ~@8 c4 ~@3",
  O: "[~@2 [ab3,c4,db4,f4]@3 ~@6 [c4,db4,f5,ab5]@4 ~@5 [ab3,c4,f4]@8 ~@10 g3@2 ~@8 [g3,f4]@8 ~@8, ~@7 g3 ~@8, ~@15 a5@13 ~@4]/2", // Dbmaj7 Fm G7
  P: "~@3 [c4,f4]@3 ~@7 [c4,f4]@3 ~@7 f3@2 ~@4 ab4@2 ~, ~@11 eb4 ~@4", // F5
  Q: "f3@2 ~ [ab4,eb5]@2 ~@4 [c4,f4]@2 ~@8 gb3@8 ~@5, ~@7 gb3@4 ~@21, ~@8 bb3@3 ~@21, ~@9 gb4@18 ~@5", // Ab5 F5
  R: "~@2 [ab3,c4,f4] ~@6 c5@2 [ab3,f4]@2 ~@5 g3@4 ~@8 g3 ~", S: "~@12 g3 g5@5 ~@14", T: "~@9 gb4 ~@6",
  U: "~@13 ab3@4 ~@6 ab3@5 ~@2 bb5 ~",
  V: "[[ab3,d4]@8 ~ [g3,f4]@4 ~@4 f6 [g3,f4]@4 ~@7 f6@6 eb5@2 [g3,f4]@9 ~@2 db6@7 ~@2 [gb3,f4]@7, ~@16 f5@2 ~@10 [g3,db4,f4]@7 ~@12 [gb3,db4,f4]@3 ~@14, ~@14 f5 ~@17]/2", // Abdim G7 Gbmaj7 Gm7b5 Gbmaj7
  W: "[~@2 f4@2 ~@7 [gb3,f4]@8 ~@2 [gb3,f4]@2 ~@7 gb3@6 ~@3 c4@3 ~@22, ~@2 gb3 ~@61]/2", X: "~@13 f3@2 ~@8 f3@2 ~@7",
  Y: "eb4@3 ~@7 e3@2 ~@7 [e3,ab3]@8 ~@5, ~@9 eb4@2 ~@7 eb4@9 ~@5", Z: "~@5 f4@2 ~@8 f4@8 ~ db4@2 ~@6",
  AA: "[~@2 [e3,db4]@8 ~ f4@2 ~@7 [ab3,c4,f4]@8 ~@2 [db4,e5]@4 ~@3 db5@2 ~ e3 ~@8 c4@2 ~@13, ~@37 e5 ~ db4@3 ~@22]/2", // Dbm Fm Dbm
  AB: "~@3 [db4,eb4]@3 ~@15 [c4,db4]@3 ~@8", AC: "~@6 ab6 ~@25", AD: "~@2 db6@3 ~@4 g3 ~@9 g3@5 ~@4 g3@2 ~@2",
  AE: "~@3 c4@9 ~@20", AF: "~@18 g3 ~@13", AG: "~@5 g3 ~@26", AH: "~@11 eb4@9 ~@12, ~@5 a5@9 ~@2",
  AI: "~@7 eb4@2 ~@8 f5@3 ~@5 f3@7, ~@16 [f3,ab3,c4]@5 ~@11, ~@16 eb4@3 ~@13", AJ: "~@11 eb4@2 ~@8 ab3@6 ~@5",
  AK: "[~ f5 ~@20 ab5@2 ~@7 ab5@3 ~@6 bb4@2 ~@13 gb5 ~@8]/2", AL: "[~@3 [e4,b4]@3 ~@25 g4@2 ~@31]/2",
  AM: "f3 a3 ~@27 f5@3, ~@28 [ab3,c4]@3 ~", AN: "~@5 ab3@2 ~@17 g3@3 ~@5",
  AO: "~@2 g3@2 ~@7 g3@3 ~@7 c4@2 ~@7 [c4,f4]@2, ~@30 g3 ~", AP: "~@7 [g3,c4,f4]@2 ~@7 g3 ~@15",
  AQ: "~@9 f4@3 ~@6 [ab3,f4]@3 ~@11", AR: "~@5 [g3,db4,f4]@5 ~@5 g3@2 ~@7 [g3,f4]@2 ~@6",
  AS: "~ [g3,f4]@2 ~ eb6 ~@5 f4@2 ~@7 gb3@3 ~@10", AT: "~@2 eb6 ~@13", AU: "[~@31 [f3,eb4]@3 ~@30]/2", AV: "~@7 e3 ~@8",
  AW: "~@6 eb4@2 ~@8 [ab3,db6]@5 ~ [e5,ab5]@3 ~@5 e5@2, ~@15 c4@6 ~@8 db5@3", // Db5 E
  AX: "~@2 e3@7 ~@2 [gb3,f4,bb5]@4 ~@3 bb5@2 gb3@8 ~@2 gb3@2, ~ db4@8 ~@2 f5@2 ~@19", // Gbmaj7
  AY: "[~@7 [gb3,eb4]@8 ~@2 [ab3,f4]@9 ~@4 [b5,eb6,gb6]@5 ~ [f4,eb6]@9 ~@19, ~@17 ab5@17 ~@30, ~@26 [ab3,c4,db4,f4]@8 ~ g3@9 ~@20]/2", // Ebm Db B F7 Dbmaj7
  AZ: "~@9 c6@6 ~@13 [c4,f4]@4", BA: "~@7 db4@7 ~@18", BB: "~@11 c4@2 ~@3", BC: "~ [f3,c4,eb4,c5,c6]@3 ~@28",
  BD: "~@7 b5@2 ~@23", BE: "[~@31 g3@4 ~@10 bb3@2 ~@17, ~@22 bb5@21 ~@21, ~@23 f4@5 ~ f4@4 ~@31, ~@13 f6@4 ~@15]/2",
  BF: "ab3@2 ~@17 f4@2 ~@11", BG: "~@2 eb4@2 ~@17 f3@2 ~@9", BH: "~@2 d6 ~@4 eb4@2 ~@23", BI: "~@13 d4@2 ~@10 c6@2 ~@5",
  BJ: "~@3 bb5@3 ~@12 eb4@2 ~@12", BK: "~@8 db4 ~@23", BL: "~@22 eb6@3 ~@4 [g3,db4,f4]@2 ~",
  BM: "~@7 [g3,f4]@3 ~@6 f4@2 ~@14", BN: "[~@3 [c4,eb4] ~@9 c4 ~@8 eb4@4 ~@5 [gb3,c4,eb4]@3 ~@30, ~@11 f3 ~@20]/2",
  BO: "~@2 f5@2 ~ f4@2 ~@7 [c4,f4]@2 ~@8 f4@2 ~@2 db6@2 ~@2, ~@27 [e5,ab5]@3 ~@2", // F5 E
  BP: "~ [ab3,f4]@4 ~@5 [g3,db4,f4]@3 ~ c6 ~@4 [g3,db4,f4]@3 ~@10, ~ [f5,db6]@2 ~@29", BQ: "~@8 a3@9 ~@15",
  BR: "~@5 c5@5 ~@5 db5@3 ~@7 f5@4 ~@3, ~@6 ab5 ~", BS: "~@10 f6@3 ~@9 db6 ~@9", BT: "~@24 f4@3 ~@5",
  BU: "~@12 f5@2 ~@6 f4@5 ~@5 [f4,c5]@2", // F5
  BV: "~@8 c5@2 ~@7 [f3,c5]@2 ~@7 f3@2 ~@4, ~@7 [gb3,f4,ab4]@3 ~@22, ~@8 eb5 ~@23", // F5 Db
  BW: "[~@4 [f3,c4,eb4] ~@8 f3@2 ~@7 [e3,eb5,ab5,eb6]@8 ~ [e3,eb5]@3 ~@7 [e3,eb4] ~@22, ~@2 ab3 ~@29]/2", // F7 Emaj7
  BX: "~@4 db5@9 ~@19", BY: "[~@31 ab2@2 [a2,b3]@6 ~@14 ab6@64 ~@11]/4",
})).s("gm_piano").gain(0.16).pan(0.6)

// drums · kick
const kick = s("bd").struct(`<
  A B C D E F G H I J K L M I N O P Q R S I T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP H AQ AR AS AT
  AU AF AD AV AW I T AX AY Q AZ BA BB BC BD AC H BE BF Z BG BH BI ~ AL AM A BJ C D BK BL BM AN I J K L BN I N BO P Q R S
  I T U BP BQ BR BF Z BC BS AC BT BU BV AG AH BW AJ BX AL V BY AO BZ CA CB CC ~@2
>`.pickRestart({
  A: "x!2", B: "~@3 x ~@2 x ~@15 x ~@9", C: "~@11 x ~@15 x ~@4", D: "~@14 x ~@2 x ~@14", E: "~ x ~@30",
  F: "~@3 x ~@10 x ~", G: "~@6 x ~@8 x", H: "~@17 x ~@14", I: "~@13 x ~@18", J: "x ~@8 x ~@2 x ~@15 x ~@3",
  K: "~@15 x ~@2 x ~@13", L: "~ x ~@21 x ~@8", M: "~@7 x ~@18 x ~@5", N: "~ x ~@7 x ~@6", O: "~@3 x",
  P: "~@13 x ~@15 x ~@2", Q: "~@19 x ~@12", R: "~@3 x ~@17 x ~@2 x ~@7", S: "~@8 x ~@18 x ~@2 x ~",
  T: "~@3 x ~@15 x ~@12", U: "~@6 x ~@2 x ~@15 x ~@6", V: "~@11 x ~@18 x ~", W: "~@5 x ~@2", X: "~@2 x ~@8 x ~@4",
  Y: "x ~@8 x ~@4 x ~", Z: "~@15 x ~@16", AA: "~ x ~@3 x ~@2", AB: "~@10 x ~@14 x ~@6", AC: "~@15 x ~@15 x",
  AD: "~@9 x ~@6", AE: "~@5 x ~@20 x ~@5", AF: "~@10 x ~@18 x ~@2", AG: "x ~@14 x ~@16", AH: "~@5 x ~@15 x ~@10",
  AI: "~@8 x ~@18 x ~@4", AJ: "~ x", AK: "x ~@10 x ~@4", AL: "~@5 x ~@21 x ~@4", AM: "~@11 x ~@20",
  AN: "~ x ~@15 x ~@14", AO: "~@3 x ~@7 x ~@4", AP: "~@9 x ~@2 x ~@15 x ~@3", AQ: "~ x ~@18 x ~@2 x ~@8",
  AR: "~@7 x ~@24", AS: "~@3 x ~@4", AT: "~@2 x ~@14 x ~@14", AU: "~@7 x ~@15 x ~@8", AV: "~ x ~@10 x ~@3",
  AW: "~@8 x ~@20 x ~@2", AX: "~@5 x ~@18 x ~@7", AY: "~@14 x ~@14 x ~@2", AZ: "~@3 x ~@18 x ~@2 x ~@6",
  BA: "~@9 x ~@17 x ~@2 x ~", BB: "~@7 x ~@8", BC: "~ x ~@2 x ~@15 x ~@11", BD: "~@25 x ~@6", BE: "~@2 x ~@10 x ~@2",
  BF: "~@9 x ~@21 x", BG: "~@2 x ~@18 x ~@10", BH: "~@13 x ~@2", BI: "~@16 x ~@14 x", BJ: "~@6 x ~@14 x ~@10",
  BK: "~ x ~@17 x ~@2 x ~@9", BL: "~@3 x ~@12", BM: "~@2 x ~@18 x ~@8 x ~", BN: "~@7 x ~@18 x ~@2 x ~@2",
  BO: "~@5 x ~@2 x ~@15 x ~@7", BP: "~@11 x ~@9 x ~@10", BQ: "~@7 x ~@9 x ~@2 x ~@11", BR: "~@4 x ~@20 x ~@6",
  BS: "~@7 x ~@2 x ~@14 x ~@6", BT: "~@21 x ~@10", BU: "~@5 x ~@26", BV: "~@5 x ~@10", BW: "~@8 x ~@2 x ~@14 x ~@5",
  BX: "x ~@18 x ~@2 x ~@9", BY: "~ x ~@14 x ~@15", BZ: "~@12 x ~@16 x ~@2", CA: "~@23 x ~@8",
  CB: "~@5 x ~@7 x ~@9 x ~@8", CC: "~@3 x ~@6 x ~@5",
})).gain(0.07)

// … 114 more lines

More by Gershwin